Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3238f50
feat(delegate): drive the public @uipath/delegate-stdio host
Mihaiii Sep 29, 2026
e533674
fix(delegate): record an interrupted tool as an error, not a success
Mihaiii Sep 29, 2026
7e23755
fix(delegate): categorize WAF blocks, SSE connect timeouts and sessio…
Mihaiii Sep 29, 2026
dc9c694
fix(delegate): keep the LLMGW_* secret out of agent shells when a tok…
Mihaiii Sep 29, 2026
780a4fb
feat(delegate)!: read the delegate-stdio host's own env var names; ro…
Mihaiii Sep 29, 2026
8359f4f
fix(delegate): keep the usage of the calls under a max_turns cut
Mihaiii Sep 30, 2026
c4f3554
fix(delegate): keep tool rows whose result has no open call
Mihaiii Oct 1, 2026
6a00727
fix(delegate): make crash retry independent of the stderr tail
Mihaiii Oct 1, 2026
9890cd9
feat(delegate)!: send auth to the host as an init option; read the DE…
Mihaiii Oct 1, 2026
4563218
docs(notes): shorten the Delegate agent section
Mihaiii Oct 1, 2026
0ea0d99
fix(delegate): record the SDK's LoadSkill call as the canonical Skill…
Mihaiii Oct 1, 2026
4292979
feat(delegate)!: find a global delegate-stdio install; rename DELEGAT…
Mihaiii Oct 3, 2026
4033863
chore(delegate): require @uipath/delegate-stdio 1.203.0
Mihaiii Oct 3, 2026
e4d64e5
fix(delegate): keep a non-retryable init error terminal on a respawn
Mihaiii Oct 3, 2026
03b00a8
fix(delegate): match an init 401/403 as a whole word
Mihaiii Oct 3, 2026
496f3e9
docs: say that the sdk_options keys and record depend on the agent type
Mihaiii Oct 3, 2026
a4cb6fd
docs(delegate): describe the host env scrub as defense in depth
Mihaiii Oct 3, 2026
669455d
test(golden): give the Delegate golden-coverage exemption a true reason
Mihaiii Oct 3, 2026
404b099
test(overrides): pin the sdk_options guard on the registry, not its c…
Mihaiii Oct 3, 2026
94e4a5a
fix(delegate): reject an sdk_options.effort that is not a string
Mihaiii Oct 3, 2026
b2a09d7
test(golden): add Delegate golden-master scenarios
Mihaiii Oct 3, 2026
722fcae
fix(delegate): let the init keys coder_eval owns win over sdk_options
Mihaiii Oct 3, 2026
92dacee
fix(errors): match an HTTP status code in an error message as a whole…
Mihaiii Oct 3, 2026
6b8c58f
fix(delegate): keep the conversation on a session conflict after a fi…
Mihaiii Oct 3, 2026
eabfe32
fix(delegate): record no host for a DELEGATE_BACKEND_URL that does no…
Mihaiii Oct 3, 2026
68bc9b5
Merge branch 'main' into chore/move-delegate-sdk-2
Mihaiii Oct 3, 2026
d0c92e3
Merge branch 'main' into chore/move-delegate-sdk-2
Mihaiii Oct 5, 2026
7a21aef
test(delegate): show the host's results when the live shell check fails
Mihaiii Oct 6, 2026
5fedb1d
ci(delegate): add temporary shell probes to the Delegate live job
Mihaiii Oct 6, 2026
3bccd36
ci(delegate): replace the shell probes with an auth/host A/B/C probe
Mihaiii Oct 6, 2026
6001edc
ci(delegate): remove the temporary shell probes
Mihaiii Oct 6, 2026
44326cb
Merge branch 'main' into chore/move-delegate-sdk-2
Mihaiii Oct 6, 2026
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
Prev Previous commit
Next Next commit
test(overrides): pin the sdk_options guard on the registry, not its c…
…ontents

Three tests matched the literal "claude-code, delegate agents". With a
plugin installed that registers another kind with sdk_options, such as
coder_eval_uipath's studio-web, the message lists more kinds and the
tests fail. Match the fixed part of the message instead.

Add a test that a throwaway registered kind whose config declares
sdk_options accepts -D agent.sdk_options.*. This is the generic
contract that lets coder_eval_uipath remove its override patch.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
  • Loading branch information
Mihaiii and claude committed Oct 3, 2026
commit 404b09949fa1f5e42fbe532395d4c793b11d5078
2 changes: 1 addition & 1 deletion tests/test_merge_characterization.py
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ def test_system_prompt_file_override_clears_sibling(self):

def test_sdk_options_on_codex_raises_friendly(self):
task = _live_task(agent={"type": "codex"})
with pytest.raises(OverrideError, match="only supported for claude-code, delegate agents"):
with pytest.raises(OverrideError, match=r"agent type codex\. This option is only supported for "):
apply_overrides(task, {"agent.sdk_options.effort": "high"})

def test_lineage_cli_source_for_touched_paths_only(self):
Expand Down
29 changes: 27 additions & 2 deletions tests/test_overrides_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,17 +144,42 @@ def test_agent_type_injection_switches_subclass(self):

def test_sdk_options_on_codex_raises(self):
task = _make_task(agent=parse_agent_config(type="codex"))
with pytest.raises(OverrideError, match="only supported for claude-code, delegate agents"):
with pytest.raises(OverrideError, match=r"agent type codex\. This option is only supported for "):
apply_overrides(task, {"agent.sdk_options.effort": "high"})

def test_sdk_options_effort_on_delegate_applies(self):
task = _make_task(agent=parse_agent_config(type="delegate"))
apply_overrides(task, {"agent.sdk_options.effort": "high"})
assert task.agent.sdk_options == {"effort": "high"}

def test_sdk_options_applies_to_any_registered_kind_that_declares_it(self):
"""A plugin kind whose config declares ``sdk_options`` passes the guard, not only the built-ins."""
from typing import Any, Literal

from pydantic import Field

from coder_eval.agents.registry import AgentRegistry
from coder_eval.models import BaseAgentConfig

class _PluginConfig(BaseAgentConfig):
type: Literal["sdk-options-plugin"] # type: ignore[assignment]
sdk_options: dict[str, Any] = Field(default_factory=dict)

class _PluginAgent:
def __init__(self, config, route=None, **kwargs):
self.config = config

AgentRegistry.register("sdk-options-plugin", _PluginConfig)(_PluginAgent)
try:
task = _make_task(agent=parse_agent_config(type="sdk-options-plugin"))
apply_overrides(task, {"agent.sdk_options.mode": "fast"})
assert task.agent.sdk_options == {"mode": "fast"}
finally:
AgentRegistry._registry.pop("sdk-options-plugin", None)

def test_sdk_options_with_agent_type_codex_raises(self):
task = _make_task(agent=parse_agent_config(type="claude-code"))
with pytest.raises(OverrideError, match="only supported for claude-code, delegate agents"):
with pytest.raises(OverrideError, match=r"agent type codex\. This option is only supported for "):
apply_overrides(task, {"agent.sdk_options.effort": "high"}, agent_type="codex")

def test_unknown_root_raises(self):
Expand Down
Loading