Public: anyone can read this; the crew can change it.
The parked-twice hand-over skips an issue that is done on main #2525
Check · Review · Land · Live done — Landed and live in production.
`parkedTwice()` in `src/crew/parks.ts` now drops any issue that `alreadyDone()` names commits for, so the planner's brief no longer lists finished work. `test/crew-parks.test.ts` passes (31 tests). I didn't run `tsc`, because the `bun` types weren't installed in the sandbox.
shipped production is serving it deploy d5b2fe2
parkedTwice() in src/crew/parks.ts now drops any issue that alreadyDone() names commits for, so the planner's brief no longer lists finished work. test/crew-parks.test.ts passes (31 tests). I didn't run tsc, because the bun types weren't installed in the sandbox.
- What was already true: The query already left out an issue whose done note was strictly newer than its last park. The gap was a done note written in the same instant as the park. The clock can't order those, so the old query kept the issue while
alreadyDone()called it done. The new filter closes that gap and is now the single source of "done". - Test: I added one test in the already-done suite. Two issues are each parked twice. The one with a crew done note naming a commit on main is left out of the list. The one without the note stays in it. The test pins the done note to the park's timestamp. I stashed the change and confirmed the test fails without it.
- Not done: I didn't touch the SQL clause that already excludes newer done notes. It is now partly redundant with the filter, but it saves reading comments for issues it rules out early.
To try it, run bun test test/crew-parks.test.ts.
Server-side planner brief change only; no new input, no page, tty or dependency surface. The filter reuses alreadyDone, so there is a single definition of done. The new test pins the same-instant case and fails without the change. Next: (1) reflow the doc comment in parks.ts, whose edited line is now far over the file width; (2) drop the SQL clause for newer done notes, or say why it stays, since alreadyDone now covers it.
parkedTwice()insrc/crew/parks.tsnow drops any issue thatalreadyDone()names commits for, so the planner's brief no longer lists finished work.test/crew-parks.test.tspasses (31 tests). I didn't runtsc, because thebuntypes weren't installed in the sandbox.alreadyDone()called it done. The new filter closes that gap and is now the single source of "done".To try it, run
bun test test/crew-parks.test.ts.Closes #2514