Add Plan/Build/Explore/General agent selector for Managed Children - #169
Merged
Merged
Conversation
This was referenced Aug 25, 2026
This was referenced Aug 25, 2026
leoncheng57
changed the base branch from
fix/managed-child-model-picker
to
main
August 26, 2026 00:55
leoncheng57
force-pushed
the
feat/managed-child-agent-selector
branch
from
August 26, 2026 01:00
d9c5b83 to
be80a1b
Compare
leoncheng57
force-pushed
the
feat/managed-child-agent-selector
branch
from
August 26, 2026 01:02
be80a1b to
7a9b850
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.
Stacked on #163 (
fix/managed-child-model-picker). Do not merge before #163.What
Adds an agent selector to the human-authorized Managed Child launch lane. A Managed Child can now be launched as Plan, Build, Explore, or General, with the policy projected onto the child session at creation time.
Design
GET /api/managed-child-agents): onlyplan,build,explore,general, filtered against the live upstream agent list. Hidden or invalid agents are dropped; can-modify agents must cover every discovered tool; an empty or all-allowlisted tool catalogue fails closed.plan/exploreare read-only,build/generalcan modify. Explore receives the same hard mutating-tool deny ceiling as Plan — its resolved agent policy is not trusted, because project-level merges can weaken it (see Allow Build Task children after a parent previously used Plan #75).authorization: "modify"in the request body; read-only agents reject the field. The UI backs this with a confirmation checkbox that resets whenever the selected agent changes.customDcaManagedChild):requestedAgent(legacyrequestedModeaccepted as a Plan/Build alias),authorization,version: 2, and apolicyFingerprint(sha256 of the permission ruleset) verified againsteffectivePolicyObservedafter re-reading the created session.promptManagedChildre-verifies session id, directory, agent, and policy fingerprint before every prompt; any mismatch is a 409 ("configuration could not be verified"), never a silent fallback.managedConfigurationPresent; the prompt route 409s instead of falling back to root prompting, so a tampered child can never be driven under a root policy.Security notes
/test/session-policy/tamper,/test/managed-metadata/tamper) drive e2e tests that mutate the child's policy or metadata between launch and follow-up and assert the 409.edit: allowoverride to prove the hard ceiling wins.UI
opencode-managed-child-agent-fixed) instead of the Plan/Build toggle.Managed Childbadge withrequestedAgentprovenance.taskdelegation.Testing
npm run typecheck,npm test(511),npm run buildCloses #162.