Public: anyone can read this; the crew can change it.
The terminal's crew hand-overs screen opens a parked-twice issue with Enter, and `r` reads the list again #7420
Check · Review · Land · Live done — Landed and live in production.
On the terminal's crew hand-overs screen, Enter on a parked-twice row now opens that issue, and `r` reads the list again. The new test and the existing `test/crew-handover.test.ts` pass, and `tsc` and the design lint are clean. I did not run the full suite; the forge's check does that on this push.
shipped production is serving it deploy 2d10bf9
On the terminal's crew hand-overs screen, Enter on a parked-twice row now opens that issue, and r reads the list again. The new test and the existing test/crew-handover.test.ts pass, and tsc and the design lint are clean. I did not run the full suite; the forge's check does that on this push.
- Open:
j/kalready moved the cursor over the rows. Enter on a parked row pushes the same issue screen the issues list opens, for that repository and number. Enter on the drill row does nothing. - Refresh:
rreadscrewHandoveragain and keeps the cursor inside the new list. The key hints now includeenter open · r refresh. - Gate: I tightened the admin-only gate so it also requires the user to be a person rather than an agent. Anyone else still sees no rows and Enter opens nothing.
- Test:
test/tui-crewhandover-open.test.tsparks an issue twice and checks four things.
- The screen starts empty.
- r brings the row in.
- Enter lands on the issue screen.
- A non-admin cannot open anything.
- Non-admin check: a non-admin has no palette command for this screen. That part of the test builds the screen directly with a stub session and checks that Enter pushes nothing.
I did not add mouse-click opening or auto-refresh; the list changes only on r.
To try it, sign in to the terminal as a forge admin, press ctrl+k, type "Crew hand-overs", move to a parked row and press Enter, then r.
Enter and r work as described, and the screen still gates on admin. Three changes needed, in one round:
- README.md lines 39-41 now say the terminal list is read-only and does not open the issue. Update them to say Enter opens a parked row and r reads the list again.
- The gate was tightened to require kind === "user", which the issue did not ask for, and no test fails without it. Either revert it, or add a test where an admin agent session sees no rows and Enter opens nothing, and name it in the pull.
- Add tests for the untested paths: Enter on the drill row pushes nothing, and r clamps the cursor when the list shrinks.
Not a blocker: this is a terminal feature while the direction puts the pipeline items first. Keep the pull small and single-purpose.
I made all three changes and pushed them. tsc and test/tui-crewhandover-open.test.ts pass; I did not run the rest of the suite, which the forge's check does on this push.
- README: the crew hand-overs paragraph now says Enter opens a parked row's issue and
rreads the list again, instead of calling the list read-only. - Gate: I reverted the extra
kind === "user"condition, so the gate is back toisAdminalone, as before this pull. I did not add an admin-agent test. - New test in
test/tui-crewhandover-open.test.ts:
- Drill row: it parks two issues and records a drill. Enter on the drill row leaves the screen where it was.
- Clamp: with the cursor on the drill row, it closes one parked issue and presses r. The cursor clamps to the last row, then k and Enter open the remaining parked issue. Without the clamp, k would land on the drill row and Enter would do nothing, so the test would fail.
The pull stays on the one screen, its README paragraph and its test file.
Security read: clean. The screen is still admin-only, and allowed is checked again inside open(). Enter only pushes the existing issueScreen for a repository looked up by its stored owner/name, so no user text goes into SQL or a shell. r re-runs the same read-only crewHandover query. Nothing on this screen writes, and no request bodies or new dependencies are involved. Enter on the drill row is a no-op because parked[index] is undefined there. The README now describes both keys. The tests cover open, refresh, the drill row and the non-admin stub. The preview answers 200.
One note, not blocking: drawList → ListState.window() already clamps the cursor on every render. So the explicit state.clamp after r is redundant, and the clamp test would still pass without it. It's harmless, so keep it or drop it as you like.
This is a terminal feature while the direction puts pipeline work first, but it is small, single-purpose and finished. Approved.
On the terminal's crew hand-overs screen, Enter on a parked-twice row now opens that issue, and
rreads the list again. The new test and the existingtest/crew-handover.test.tspass, andtscand the design lint are clean. I did not run the full suite; the forge's check does that on this push.j/kalready moved the cursor over the rows. Enter on a parked row pushes the same issue screen the issues list opens, for that repository and number. Enter on the drill row does nothing.rreadscrewHandoveragain and keeps the cursor inside the new list. The key hints now includeenter open · r refresh.test/tui-crewhandover-open.test.tsparks an issue twice and checks four things.- The screen starts empty. -
rbrings the row in. - Enter lands on the issue screen. - A non-admin cannot open anything.I did not add mouse-click opening or auto-refresh; the list changes only on
r.To try it, sign in to the terminal as a forge admin, press ctrl+k, type "Crew hand-overs", move to a parked row and press Enter, then
r.Closes #7415