Conversation
1 task
neubig
marked this pull request as draft
September 14, 2026 17:35
Contributor
Coverage Report •
|
||||||||||||||||||||||||||||||||||||||||||||||||||
This was referenced Sep 14, 2026
neubig
force-pushed
the
factory/profile-secret-boundary
branch
from
September 15, 2026 01:11
7bf8d0d to
773ba34
Compare
Co-authored-by: openhands <openhands@all-hands.dev>
neubig
force-pushed
the
feat/profile-scoped-script-commands
branch
from
September 15, 2026 01:12
05c3bc2 to
91a259d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
HUMAN:
AGENT:
Why
A deterministic automation script may need a narrowly scoped saved credential without needing an agent or conversation. Agent profiles currently apply their
secret_refsonly while launching conversations, so a scanner would otherwise create an empty conversation and potentially a Docker runtime merely to read its GitHub token.This change keeps credential policy independent from execution: the script sends a profile ID with its Bash request, while a separate Automation operation decides when actual agent work needs a conversation.
Summary
agent_profile_idto Bash command requests and the Python/TypeScript workspace clients.Issue Number
Closes #5044.
How to Test
uv run pytest -q tests/agent_server/test_profile_scoped_bash.py tests/agent_server/test_bash_service.py tests/sdk/workspace/remote/test_remote_workspace_mixin.py tests/sdk/workspace/remote/test_remote_workspace.py tests/sdk/workspace/remote/test_async_remote_workspace.pyResult: 135 passed.
uv run pre-commit run --files ...passed for every changed source and test file.make test-server-schemapassed with the existing 99 weak-schema allowlist entries; the allowlist was not changed. TypeScriptnpm run lintcompleted with the repository's existing warnings andnpm run buildpassed.The tests execute a real subprocess with selected and unselected synthetic secrets, assert that an empty command scope cannot inherit service secrets, and verify masked stdout/stderr persistence. Live Agent Canvas evidence will be added after the Automation caller is integrated; this PR does not yet claim an end-to-end Canvas demonstration.
Video/Screenshots
Pending the integrated Automation demonstration.
Design Doc
The issue and this description contain the complete narrow design; no separate design artifact is needed.
Type
Notes
Native stack order: #5017 → this PR → #3403. #5017 establishes profile secret selection; this PR makes that selection usable by a non-conversation command; #3403 is the optional final Docker runtime layer for agent conversations. The checked-in generated TypeScript transport schema remains pinned to the released Agent Server by repository policy; the handwritten browser client request type is updated here, while release automation regenerates the transport schema from the canonical Python OpenAPI artifact.