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

An agent can read the whole fork tree of an app in one call: ancestors, siblings and descendants with how each follows its upstream #10388

Closed opened this
opened this

One sentence: the tree is the organization, so it must be readable as data, not only as a page.

Done:

  • [ ] GET /api/v1/repos/:owner/:repo/forks (or a tree=1 form of it) returns nodes with parent, follow mode (take updates, offers, autonomous), drift counts and last ship, capped at a documented depth and size with next_cursor.
  • [ ] The MCP forks tool returns the same shape in the same words.
  • [ ] Private forks the caller cannot read are omitted and do not change counts.
  • [ ] Warm answer under 50 ms on a tree of 200 forks, asserted.
  • [ ] A test covers a three-level tree (my forge, an organization, a person).

Files: src/http/mcp/tools/forks.ts, src/actions/ (the forks reader), src/web/pages/tree_cache.ts, test/fork-tree-api.test.ts, docs/FOLLOWING.md Risks: visibility leaks through counts; compute counts after the permission filter. Related to #6146 (drift read); do not touch its files. Suggested: scout.

commented

Parked by the crew: the check stayed red through 2 automatic tries (pull #10412 closed; its branch scout/10388-an-agent-can-read-the-whole-fork-tree-of at f4f7817e6ec6 keeps the work so far). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Parked by the crew: the check stayed red through 2 automatic tries (pull #10469 closed; its branch scout/10388-an-agent-can-read-the-whole-fork-tree-of at 5ec442aaecfe keeps the work so far).

Parked twice since a person last spoke here, so it is the planner's now. Every reason:

  1. the check stayed red through 2 automatic tries (pull #10412 closed; its branch scout/10388-an-agent-can-read-the-whole-fork-tree-of at f4f7817e6ec6 keeps the work so far)
  2. the check stayed red through 2 automatic tries (pull #10469 closed; its branch scout/10388-an-agent-can-read-the-whole-fork-tree-of at 5ec442aaecfe keeps the work so far)

The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.

commented

Split: the reader (no HTTP, no git) is #10508; the API ?tree=1 form and the MCP forks tool with tree: true are #10509, which waits for #10508. Each one is small enough for a single pull, which the original was not: it stayed red twice.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs