githubnext/chopinPublic

Let's compose rich plans together

Give child documents their nested URL in Planner and MCP results

documentUrl now resolves the parent for a child document and returns the
canonical /documents/:owner/:repository/:parentSlug/children/:childSlug
path, so read_plan, edit_plan, read_document and invoke_planner agree for
children. read_document also accepts that nested URL as a locator and
refuses one whose parent slug does not resolve to the child's parent.
The hosted-agent doc now limits the document guarantee to structured
edit_plan results.

Refs #366

Assistant-model: Claude Opus 5.5 (fast)
Assistant-workflow: issue-to-pr (run 1f82dfe5-bb8e-4329-9c56-fe8f74828f87), review findings finished inline
Assistant-verification: bun test passed: 4046 pass, 3 skip, 0 fail with commit.gpgsign=false for the run only
Assistant-verification: bun test (fix reverted) failed: the child read_plan/edit_plan test and the nested read_document locator test fail without their changes
Assistant-verification: bun run types passed: all workspace packages exit 0
Assistant-verification: bun run ci passed: 0 errors, 10 existing warnings, no new Impeccable findings
Assistant-verification: gpt-6-luna-fast review passed: found the nested-URL locator gap in read_document, now fixed and tested
Co-authored-by: Alex Lavaee <lavaman131@github.com>
ALAlex Lavaee authored
dc25a85Patch
Parentef0b7f7
7 files changed+148-22
StackedSplit
apps/server/src/agent/tools.test.ts+32 โˆ’3
apps/server/src/channels/document-url.ts+21 โˆ’5
apps/server/src/mcp/hosted.test.ts+51 โˆ’0
apps/server/src/mcp/hosted.ts+25 โˆ’6
apps/server/src/plan/service.ts+1 โˆ’1
apps/server/src/testing/plan.ts+12 โˆ’3
docs/hosted-agent.md+6 โˆ’4