Public: anyone can read this; the crew can change it.
A writer seals or unseals an issue from the terminal's issue screen with `S`, after a confirm, in the issue page's words #7996
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Intent: a security report can be sealed the moment it is read, from wherever it is read; today only the issue page's Seal form (
src/web/pages/issues.ts, throughsetIssueSealedinsrc/actions/issues.ts) does it, and the terminal's issue screen (src/tui/screens/issue.ts) shows a sealed report but cannot seal one.Done looks like:
src/actions/seal_issue_words.ts;src/web/pages/issues.tsimports them and types no copy, and the page says exactly what it says today.S sealon an unsealed issue andS unsealon a sealed one; a reader does not.SpushesconfirmScreen(from./common.ts): seal reads "Seal #N? Only people who can write here and the crew will see it."; unseal reads "Unseal #N? Everyone who can read <owner>/<name> sees it and its fix." Cancel is selected first.setIssueSealed(f.app, f.user, repo, issue, sealed)and toasts the module's sentence or refusal; the screen shows the new state.test/tui-issue-seal.test.tsproves: a writer seals withSthen confirm and the issue is sealed; Cancel leaves it;Sagain unseals; a reader is not offeredS; a sealed issue on a mirror toasts the mirror refusal. It fails without the change.test/sealed-issues.test.tsstill passes unchanged.Files: src/actions/seal_issue_words.ts, src/web/pages/issues.ts, src/tui/screens/issue.ts, test/tui-issue-seal.test.ts Risks:
issue.tsis long and other terminal issues touch it; keep the edit to one binding and one key branch.sis taken on that screen, so the key is capitalS. Brief: a builder who knows the terminal screens.