Repository navigation
Conversation
🌱 graft blast radius2 areas changed → 3 areas can be affected. 6 dependent symbols, depth 2. flowchart TB
A0(("Workspace Build Graph<br/>4 symbols"))
A1(("Graph Engine<br/>1 symbol"))
A2(("Pull Request Review<br/>1 symbol"))
classDef reached fill:#D9EDF3,stroke:#3AA7C9,stroke-width:1.5px,color:#0E313C;
class A0,A1,A2 reached;
Who knows this code — 3 people across 5 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 6 dependent symbols, grouped by areaWorkspace Build Graph — 4 symbols in 4 files
Graph Engine — 1 symbol in 1 file
Pull Request Review — 1 symbol in 1 file
Test signal per changed area — 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.
49 test suites also reference this code51 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 buildnow warns when Git cannot confirm that the build cache is ignored. The build still succeeds if writing.gitignorefails.Closes #772.
Evidence
The regression makes
.gitignoreunwritable by creating a directory at that path. Onmain, the build exits 0 and prints 'is git-ignored'. With the fix, it exits 0 and warns on stderr. The test then removes the directory, rebuilds and confirms the ignore rule withgit check-ignore.Focused build and context tests and the TypeScript check passed on Windows.
Risk
The build footer now uses the same Git ignore check as the cache writer, so a missing Git binary or a failed check also produces the warning.
Unverified
Full suite and non-Windows runs.