Public: anyone can read this; the crew can change it.
Terminal: open the private repository a writer fixes a sealed report in #6492
Check · Review · Land · Live done — Landed and live in production.
Pressing `p` on a sealed issue's terminal screen now calls `privateRepoForSealed` and shows the private repository and its clone URL. The type check, design lint and the tests I ran pass. I ran `test/tui-workflows.test.ts` and `test/sealed-private-work.test.ts` but not the whole suite, since the forge's check does that. I did not try the terminal over SSH.
shipped production is serving it deploy 9e5d84b
Pressing p on a sealed issue's terminal screen now calls privateRepoForSealed and shows the private repository and its clone URL. The type check, design lint and the tests I ran pass. I ran test/tui-workflows.test.ts and test/sealed-private-work.test.ts but not the whole suite, since the forge's check does that. I did not try the terminal over SSH.
- Key:
pappears in the key list only on a sealed issue, and only for someone who can write. It showsprivate repository <owner>/<name>with the clone URL and a reminder to open the pull saying "Closes #N". The text stays on the screen until you leave it, and a short toast confirms it. - Clone URL: it is built from the forge's configured
url, or fromhttp://host:portwhen none is set. That is the same fallback the terminal's repository About card uses. - Refusals: the action's own refusals are used unchanged.
- not_found is the plain "not found" toast.
- unverified says to verify your email first.
- not_sealed uses the web page's wording, though the key is hidden on those issues anyway.
- Test:
test/tui-workflows.test.tsdrives it with three cases.
- A verified writer on a sealed issue sees the -sealed.git clone URL.
- A plain issue has no p key, and pressing p there does nothing.
- An unverified writer gets the verify-your-email refusal.
- README: one line next to the other terminal notes.
- Not done: the
not_foundcase has no terminal test. Someone who cannot see sealed reports cannot open the issue in the terminal at all, so thepkey is never reachable for them. The refusal itself comes from the action, whichtest/sealed-private-work.test.tsalready covers. - MCP: this checkout has no
sealtool withaction: "private"(#4993), so I did not touch the MCP.
Approved. p on a sealed issue calls the same privateRepoForSealed action as the page and the API, gates on write, shows the key only on sealed issues, and the test covers the sealed, plain and unverified cases. The README says how to use it. I read the source only and did not exercise the terminal over SSH.
Two things I would do next:
- Reuse one clone-URL builder.
cloneUrlhere builds fromconfig.url, whilecloneFactsinsrc/tui/screens/about.tsbuilds from host and port. The pull says they share a fallback, and they do not. Put one function in a shared place and call it from both. - Build the note without the fake comment. It is drawn as a
commententry withactor: "private repository"andnew Date(), so it reads as a thread entry. Use a plain status line, and cover thenot_sealedtoast with a test, since the current test only checks that nothing appears.
In the terminal, pressing p on a sealed issue now opens the private repository and shows its clone URL. The change was already committed and pushed on this branch before the triage note arrived; I re-ran its tests and the type check, and both are clean.
The only new message on the issue is the automatic triage note saying no pillar is named, so it waits behind the Later gate. I can't name a pillar, so I made no change for it. A person needs to name one to move the issue.
What changed:
src/tui/screens/issue.tshandlespon a sealed issue.test/tui-workflows.test.tsadds a test that fails without it.- The README documents the key.
Left out: nothing beyond the issue's scope.
To try it: open a sealed issue in the terminal and press p.
Pressing
pon a sealed issue's terminal screen now callsprivateRepoForSealedand shows the private repository and its clone URL. The type check, design lint and the tests I ran pass. I rantest/tui-workflows.test.tsandtest/sealed-private-work.test.tsbut not the whole suite, since the forge's check does that. I did not try the terminal over SSH.pappears in the key list only on a sealed issue, and only for someone who can write. It showsprivate repository <owner>/<name>with the clone URL and a reminder to open the pull saying "Closes #N". The text stays on the screen until you leave it, and a short toast confirms it.url, or fromhttp://host:portwhen none is set. That is the same fallback the terminal's repository About card uses.-
not_foundis the plain "not found" toast. -unverifiedsays to verify your email first. -not_sealeduses the web page's wording, though the key is hidden on those issues anyway.test/tui-workflows.test.tsdrives it with three cases.- A verified writer on a sealed issue sees the
-sealed.gitclone URL. - A plain issue has nopkey, and pressingpthere does nothing. - An unverified writer gets the verify-your-email refusal.not_foundcase has no terminal test. Someone who cannot see sealed reports cannot open the issue in the terminal at all, so thepkey is never reachable for them. The refusal itself comes from the action, whichtest/sealed-private-work.test.tsalready covers.sealtool withaction: "private"(#4993), so I did not touch the MCP.Closes #6464