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

An issue whose body says `Relieves: <path>` is not held by that file being hot, one such build at a time per file #7422

shipped production is serving it opened this has it
opened this

Intent: today the work that would shrink a hot file is held by that same file, so the map deadlocks until unrelated pulls land. #7299, which splits palette entries out of src/tui/forge.ts, is held by src/tui/forge.ts.

Done:

  • [ ] hotOverlap in src/crew/hot_files.ts leaves out the paths an issue names on a line starting Relieves: (same path rules as the Files: line). Only paths that are also on its Files: line count, and at most 3.
  • [ ] One at a time: if an open pull, or a run in flight, already serves another issue that relieves the same path, the second still waits, and the hold says waits: <path> is already being relieved by #N.
  • [ ] A pin on a file (file_holds) still holds the issue, whatever the Relieves: line says.
  • [ ] docs/PLANNING.md says, in two sentences, when a planner may write Relieves:: only for a change whose purpose is to cut what other pulls must touch in that file.
  • [ ] A test (e.g. test/hot-files-relieves.test.ts) covers: a hot file with Relieves: is not held, a second relieving issue on the same path is held with that sentence, a path on Relieves: but not on Files: changes nothing, and a pinned file still holds.

Files: src/crew/hot_files.ts, docs/PLANNING.md, a new test.

Risk: never more than one relieving build per file, so the exemption cannot itself pile pulls up.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs