Feat/delegate task profile - #11169
DJHellscream wants to merge 14 commits into
Conversation
|
This closes a gap I've been working around for months — profile routing via terminal subprocess. The profile/toolset separation as orthogonal concerns is the right call. Good to see this moving. |
c217bd9 to
8b07886
Compare
|
Resolved conflicts with base branch |
8b07886 to
95e4096
Compare
GottZ
left a comment
There was a problem hiding this comment.
This was generated by AI during triage.
Summary
Three PRs are associated with this complex, but they cover two distinct scopes: #11169 implements profile-backed Hermes ACP delegation and worker isolation, while #14568 and #15454 document the existing delegation concurrency and spawn-depth controls. The latter pair does not address the profile-routing failure fixed by #11169.
Related pull requests
- #11169
related— (+1121/-90) — primary implementation: adds an explicitprofilepath that launcheshermes --profile <name> acp, forwards the selected profile through dispatch, applies the child toolset boundary inside the ACP worker, skips parent context/memory injection, and adds transport, timeout, identity, display, documentation, and regression coverage. Its concurrency/depth documentation overlaps already-merged #15454 and should be rebased or trimmed, but that overlap does not replace its profile-routing fix. - #14568 [closed]
related— (+33/-7) — superseded documentation patch: documentsmax_concurrent_childrenandmax_spawn_depth, adds a high-concurrency cost warning, and updates the delegation tool description; it does not implement profile-backed delegation. It remains relevant because its substantive changes and authorship were carried into merged #15454, with the example configuration knobs kept commented following the documented maintainer decision. - #15454 [merged]
related— (+34/-7) — merged reference implementation for the concurrency/depth documentation from #14568: lands the warning, tool-description update, tuning table, configuration comments, and attribution mapping. It addresses documentation discoverability rather than the profile/runtime fallback corrected by #11169.
Duplicates
#14568 and #15454 are substantially the same documentation change; #15454 is the merged salvage that supersedes #14568. #11169 is not a duplicate, although some of its concurrency/depth documentation overlaps #15454.
Suggested consolidation
Merge #11169 after rebasing and removing or reconciling the documentation already landed through #15454 — its diff uniquely fixes profile-backed worker routing and ACP-side isolation. Keep #15454 as the merged documentation reference; #14568 can remain closed as superseded by #15454, and neither #14568 nor #15454 should be treated as a substitute for #11169.
Cross-PR triage: Reviewed 3 pull requests and 0 issues in this complex. Each diff was read against this issue; Assessment working set: 95 kB of PR diffs, 7 kB of issue/PR text, 1 kB of discussion (6 comments), 1 verify verdict. verdicts reflect diff content, not PR titles. Part of an automated triage batch.
What Does This PR Do?
This PR makes
delegate_task(profile=...)reliably launch a profile-backed Hermes ACP worker under the selected profile's runtime/home instead of silently falling back to the parent runtime.It also tightens delegated-worker isolation:
This is the right approach because it makes named-profile delegation explicit and reliable without changing the behavior of normal non-profile delegation.
Related Issue
No dedicated issue for this change.
Type of Change
Changes Made
tools/delegate_tool.pydelegate_task(profile=...)build a profile-backed Hermes ACP child reliably.messaging, sosend_messagecannot leak into children.run_agent.pyacp_adapter/session.pyagent/copilot_acp_client.pytests/tools/test_delegate.pytests/acp/test_session.pytests/agent/test_copilot_acp_client.pytests/run_agent/test_run_agent.pywebsite/docs/guides/delegation-patterns.mdwebsite/docs/reference/tools-reference.mdwebsite/docs/user-guide/features/delegation.mdHow to Test
Run the targeted delegate/profile test slice:
In a Hermes session with any existing named profile, invoke
delegate_task(profile="<your-profile>", toolsets=["terminal","file"]).Confirm the delegated worker:
hermes --profile <your-profile> acp.delegate_task,clarify,memory,execute_code, orsend_message.Checklist
Code
fix(scope):,feat(scope):, etc.).pytest tests/ -qand all tests pass. See full-suite note below.Documentation & Housekeeping
docs/, docstrings) - or N/A.cli-config.yaml.exampleif I added/changed config keys - or N/A.CONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows - or N/A.Screenshots / Logs
Targeted delegate/profile slice:
Local disposable delegate-profile smoke also passed after rebasing onto current
main.Full-suite note:
origin/mainis baseline-red.main.maindid not confirm a branch-only regression.