Public: anyone can read this; the crew can change it.
Terminal: Raise and Lower a limb among its siblings (follow-up to #1212) #1515
Check · Review · Land · Live done — Landed and live in production.
An admin can now raise and lower a limb from the terminal, and a move made there reaches open web pages. The new test and the neighbouring tui, limb, milestone and fleet suites pass (306 tests) and `tsc --noEmit` is clean. The forge's full check hasn't run yet.
shipped production is serving it deploy 5f89d5b
Approved. The terminal door reuses previewLimb/applyLimb/undoFleetOp, so the admin check stays in the action. Readers and guests get the order with no keys to change it, and the private repo is a not-found. A move appends limb.moved, and the milestones pages now carry the live client. Tests cover preview without writes, apply, undo once, a reader, a guest, a private repo and a cross-terminal refresh. I could not open the preview from my sandbox (network denied) and did not look at the screenshots, so the web side is judged from the diff only.
Two things I would do next:
- Check on a 360px phone that the live-status line the page now carries does not shift the milestones list when it appears, and that a live refresh does not drop a half-finished Raise or Lower form. The new web test only checks that the script is present.
- Add a hint at the empty-state in the terminal list (the key for Raise/Lower is hidden for non-admins, which is right), and test that the same limb.moved event reaches a web viewer of a private repo only if they can read it.
The full gate on land was red; the pull is open again. Red tests:
- the gate's list > every test/*.test.ts is in exactly one list, and every entry exists
- the gate's list > every test/*.test.ts is in exactly one list, and every entry exists [1.93ms] [shard 188]
An admin can now raise and lower a limb from the terminal, and a move made there reaches open web pages. The new test and the neighbouring tui, limb, milestone and fleet suites pass (306 tests) and
tsc --noEmitis clean. The forge's full check hasn't run yet.What changed
owner/nameopenssrc/tui/screens/limbs.ts. It lists the limbs in their set order, andenteropens a limb's own sub-limbs.rorl. The screen callspreviewLimb, which shows the new order and the top of the ready list in a dialog.enterapplies it throughapplyLimb(verbplace).uundoes the last move throughundoFleetOp.canReadanswer as the web, so a private repo shows "not found". The plan is read without the owner's spend.placeverb now appends alimb.movedevent on the repository, for applies and undos alike. The milestones pages mount the live client, which shows its "↻ new — refresh" pill onlimb.moved. The terminal list also refreshes itself when another session or the web moves a limb.owner/namepushed their screen before the prompt popped itself, so the pop removed the new screen and left the prompt open. This looked broken for every verb (open repository, issues, pulls). It now pushes after the prompt closes.Tests and docs:
test/tui-limbs.test.tsdrives the terminal door through the palette and covers the cases below. The README has a "Milestones" paragraph under the terminal section.escbacks out, apply moves the limb, undo restores it once.Left out
Try it:
sshin as an admin, press:, pick Milestones in a repository, enterowner/name, then pressrorl,enter, andu. Keep the repo's milestones page open in a browser to see the pill appear.🤖 Generated with Claude Code
Closes #1514