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

The parked-twice hand-over skips an issue that is done on main #2525

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

`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

opened this

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.

Closes #2514

commented

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.

Approved

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.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs