Public: anyone can read this; the crew can change it.

Through MCP an agent reads how a forge stands against its parent forge and takes its new code #2658

shipped production is serving it opened this has it
opened this

The web page (#2653), the API (GET/POST /api/v1/repos/:owner/:name/following[/take]) and the terminal (t in src/tui/screens/chain.ts) all read the forge's upstream standing and take its parent's new code. MCP does neither: the following tool in src/http/mcp.ts carries no upstream, and take_updates handles only a fork inside this forge. The P3 test wants the same across forges and an agent to read and write through MCP.

Done looks like:

  • [ ] The MCP following answer carries upstream exactly as the API does (upstreamPayload), and null when the repository follows nothing across forges.
  • [ ] take_updates on a repository that follows across forges (chainOfRepo is defined and the repository has no in-forge parent) calls takeForgeCode and answers with takeForgeWords, the same words as the page and the API. A non-admin is refused as the API refuses.
  • [ ] Tests in test/mcp.test.ts style, using the chain fixtures from test/spawn-chain.test.ts: following shows upstream, the admin's take_updates opens the take pull with the default branch unchanged, and a reader is refused.
  • [ ] Run bun x tsc --noEmit, test/mcp.test.ts and test/spawn-chain.test.ts.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs