Inherit active registered tools in spawn children#10
Conversation
ofriw
left a comment
There was a problem hiding this comment.
Note: This review was generated by an AI agent. If you'd like to talk with other humans, drop by our Discord!
Nice direction overall, but I’m not comfortable approving this yet because the verification doesn’t fully support the contract the PR now claims. The main issue is the new non-builtin inheritance “e2e” coverage in agenticoding.test.ts: it still runs through a mocked child session factory, so it only proves that the tool name is passed into config, not that a spawned child can actually execute an inherited non-builtin tool through the real createAgentSession/tool stack. Since the README, changelog, and tool metadata now make a stronger user-facing promise around active registered non-builtin tools, I think we need at least one real contract-level test to back that up.
There’s also a smaller cleanup issue in CHANGELOG.md: main already has an ## [Unreleased] section near the bottom, and this PR adds a second one at the top, so merging as-is will leave duplicate unreleased sections. Requested changes are therefore: add one real boundary test for the new spawn inheritance contract, and fold the changelog note into the existing unreleased section instead of introducing a second header.
Attached is an agent optimized description of the changes in this PR - AGENT_REVIEW.md
|
FB-010 repair pushed in commit Summary:
Local verification:
|
Summary
Spawned child agents now inherit the parent session's active registered executable tools, so delegation through
spawncan keep legitimate MCP, extension, package/project, local extension, and built-in tool access while still blocking recursive session-control tools.Requirements
spawnandhandoffunavailable inside spawned children.Acceptance criteria
spawnandhandoffunconditionally.Contract changes
spawnchild sessions now inherit active registered executable parent tools source-agnostically instead of only built-in tools.spawn/handoffaccess, inactive tools, unregistered phantom names, or generic parent custom-tool forwarding.Out of scope
spawn,handoff, or automatic handoff inside children.How to verify
From the package checkout, prepare the local Pi test loader and run:
Optional real-session confidence check: start Pi with
spawnand an active registered MCP/extension tool such as a ChunkHound tool, spawn a child, and confirm the child can use that tool while still lacking recursivespawn/handoffaccess.Epic reference