Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ Before every commit and before opening a PR, always run:
ruff check && ruff format --check && pytest tests
```

All three must pass. Fix any lint, format, or test failures before committing. This applies when working as an AI assistant too — run the checks, fix failures, then commit.
All three must pass. Fix any lint, format, or test failures before committing. This applies when working as an AI assistant too — run the checks, fix failures, then commit and push.

---

Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

All notable changes to `uipath_llm_client` (core package) will be documented in this file.

## [1.5.10] - 2026-03-26

### Changed
- Removed `X-UiPath-LLMGateway-AllowFull4xxResponse` from default request headers to avoid PII leakage in logs

## [1.5.9] - 2026-03-26

### Fix
Expand Down
5 changes: 5 additions & 0 deletions packages/uipath_langchain_client/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

All notable changes to `uipath_langchain_client` will be documented in this file.

## [1.5.10] - 2026-03-26

### Changed
- Removed `X-UiPath-LLMGateway-AllowFull4xxResponse` from default request headers to avoid PII leakage in logs

## [1.5.9] - 2026-03-26

### Fix
Expand Down
2 changes: 1 addition & 1 deletion packages/uipath_langchain_client/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"langchain>=1.2.13",
"uipath-llm-client>=1.5.9",
"uipath-llm-client>=1.5.10",
]

[project.optional-dependencies]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
__title__ = "UiPath LangChain Client"
__description__ = "A Python client for interacting with UiPath's LLM services via LangChain."
__version__ = "1.5.9"
__version__ = "1.5.10"
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class UiPathBaseLLMClient(BaseModel, ABC):
default_headers: Mapping[str, str] | None = Field(
default_factory=lambda: {
"X-UiPath-LLMGateway-TimeoutSeconds": "295", # server side timeout, default is 10, maximum is 300
"X-UiPath-LLMGateway-AllowFull4xxResponse": "true", # allow full 4xx responses (default is false)
# "X-UiPath-LLMGateway-AllowFull4xxResponse": "true", # allow full 4xx responses (default is false) — removed from default to avoid PII leakage in logs
},
description="Default request headers to include in requests",
)
Expand Down
2 changes: 1 addition & 1 deletion src/uipath/llm_client/__version__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
__title__ = "UiPath LLM Client"
__description__ = "A Python client for interacting with UiPath's LLM services."
__version__ = "1.5.9"
__version__ = "1.5.10"
4 changes: 2 additions & 2 deletions src/uipath/llm_client/httpx_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class UiPathHttpxClient(Client):
_streaming_header: str = "X-UiPath-Streaming-Enabled"
_default_headers: Mapping[str, str] = {
"X-UiPath-LLMGateway-TimeoutSeconds": "295", # server side timeout, default is 10, maximum is 300
"X-UiPath-LLMGateway-AllowFull4xxResponse": "true", # allow full 4xx responses (default is false)
# "X-UiPath-LLMGateway-AllowFull4xxResponse": "true", # allow full 4xx responses (default is false) — removed from default to avoid PII leakage in logs
}

def __init__(
Expand Down Expand Up @@ -207,7 +207,7 @@ class UiPathHttpxAsyncClient(AsyncClient):
_streaming_header: str = "X-UiPath-Streaming-Enabled"
_default_headers: Mapping[str, str] = {
"X-UiPath-LLMGateway-TimeoutSeconds": "295", # server side timeout, default is 10, maximum is 300
"X-UiPath-LLMGateway-AllowFull4xxResponse": "true", # allow full 4xx responses (default is false)
# "X-UiPath-LLMGateway-AllowFull4xxResponse": "true", # allow full 4xx responses (default is false) — removed from default to avoid PII leakage in logs
}

def __init__(
Expand Down
4 changes: 2 additions & 2 deletions tests/core/test_base_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -886,7 +886,7 @@ def test_client_has_default_headers(self):

client = UiPathHttpxClient(base_url="https://example.com")
assert "X-UiPath-LLMGateway-TimeoutSeconds" in client.headers
assert "X-UiPath-LLMGateway-AllowFull4xxResponse" in client.headers
assert "X-UiPath-LLMGateway-AllowFull4xxResponse" not in client.headers
client.close()

def test_client_merges_custom_headers(self):
Expand Down Expand Up @@ -970,7 +970,7 @@ def test_async_client_has_default_headers(self):

client = UiPathHttpxAsyncClient(base_url="https://example.com")
assert "X-UiPath-LLMGateway-TimeoutSeconds" in client.headers
assert "X-UiPath-LLMGateway-AllowFull4xxResponse" in client.headers
assert "X-UiPath-LLMGateway-AllowFull4xxResponse" not in client.headers

def test_async_client_with_retry_config(self):
"""Test async client creates retryable async transport."""
Expand Down