Repository navigation
Conversation
🌱 graft blast radius3 areas changed → 1 area can be affected. 1 dependent symbol, depth 2. flowchart TB
A0(("MCP Server<br/>1 symbol"))
classDef reached fill:#D9EDF3,stroke:#3AA7C9,stroke-width:1.5px,color:#0E313C;
class A0 reached;
Who knows this code — 2 people across 4 areas
Ownership is git history over each area's own files, weighted towards recent work (120-day half-life). Merge commits and bots are dropped, and you are dropped from your own PR. A name with no All 1 dependent symbol, grouped by areaMCP Server — 1 symbol in 1 file
Test signal per changed area — 1 ✓ · 1 ✗ · 1 –Reached = a node under a test path has a resolved edge into the changed symbol. It undercounts anything called indirectly — through a CLI, a spawned process or a dynamic import — so read a low ratio as “look here”, never as a coverage gate.
4 test suites also reference this code4 symbols, kept out of the diagram and the table so they cannot crowd out the areas a reviewer has to look at.
Open the interactive graph → — click an area to see its dependent symbols at file:line. |
Summary
graft map [dir] --scc/trail map [dir] --sccand MCPgraft_repo_map { "scc": true }views. CLI--scc --jsonserializes the direct{ components, edges }result.src/graph/scc.ts, using the existing directed dependency relations and exact node IDs. Include files, isolates, self-recursive singletons, and every inter-component dependency, without transitive reduction or input mutation.Verification
npm ci: installed missing dev dependencies; prepare/build completed on Node v26.11.1.env DO_NOT_TRACK=1 GRAFT_NO_TRAIL_SWITCH=1 node --import tsx --test test/graph-scc.test.ts test/mcp-tools.test.ts: 28/28 passed, no skips. Covers exact partitions/anchors, input reversal and immutability, complete provenance, empty input, a 20,000-node directed path, and real MCP rejected-request/no-refresh then accepted-request/source-edit refresh behavior. The new freshness regression failed before implementation and passed afterward.node node_modules/typescript/bin/tsc --noEmit -p tsconfig.json: passed.node --import tsx .scc-smoke.mjs(throwaway script, removed): passed against real commands and actual JSON-lines stdio MCP servers. Exact fixture produced 5 components, 3 links, 2 singleton boundaries; preserved both A→B dependencies and the direct A→c link. Verified complete CLI text/JSON, graft/trail aliases, unchanged ordinary text/JSON and wiring bytes, initialization hint, six schemas with optional boolean, canonical/legacy MCP aliases,scc:false, budget conflicts, missing graphs, custom graph directories, workspace-parent errors without refreshing stale children, child-root CLI/MCP success, and ordinary per-child workspace maps. MCP waited for initialization, collected responses by ID, enforced a 15-second deadline, and terminated children.env DO_NOT_TRACK=1 GRAFT_NO_TRAIL_SWITCH=1 npm test: 1,441 passed / 1,448 total; 7 failed, no skips. Full suite is not clean. Failures are outside SCC surfaces: one migration test ingraft-to-trail.test.ts, one migration test inhosts-trail.test.ts, three session/note-routing tests intrail-home.test.ts, and stale-cache timing plus migration-nudge tests inupkeep-hooks.test.ts. This run includedGRAFT_NO_TRAIL_SWITCH=1, which explicitly disables migration (src/upkeep-run.ts:75); no unrelated code/tests were changed. Scoped SCC/MCP verification above passed afterward.Closes #632