feat(web): stage disabled account-link consent - #2407
Conversation
b57cef8 to
8acbcf8
Compare
There was a problem hiding this comment.
Changes requested: Terminal browser sessions cannot initiate another verification.
Warning
Changes requested · head 8acbcf8 · 1 finding: 1 minor
| Severity | Finding | Where |
|---|---|---|
| minor | F1 Terminal session cookie permanently blocks fresh verification | src/channels/linkBrowser.ts:177 |
Full review
F1 (minor, high confidence) — After cancellation, failure, or expiry, the browser retains its link: cookie. The page shows a terminal state, while /begin rejects every bound session with 409, so that browser cannot start the fresh verification the UI calls for without manually deleting its cookie. Add a protected way to replace a terminal session while preserving the bounded receipt-retry window.
8acbcf8 to
b6d1211
Compare
There was a problem hiding this comment.
Changes requested: After the result window closes, a committed session is misclassified as expired and can restart.
Warning
Changes requested · head b6d1211 · 1 finding: 1 minor
| Severity | Finding | Where |
|---|---|---|
| minor | F2 Spec contradiction — account-link-consent.md item 4: committed session can restart after result window | src/channels/linkBrowser.ts:202 |
Full review
F2 (minor, high confidence): At the old result window’s deadline, the store returns expired even for a committed intent. The browser adapter then offers and accepts /restart, contrary to the spec’s promise that committed sessions cannot restart. A user with still-valid Access proof can begin another ceremony for the already-linked pair. Preserve the bounded result-read window, but distinguish an expired committed result from an intent that may restart, and cover that boundary in both stores.
Co-Authored-By: coreplane-switchboard[bot] <318072483+coreplane-switchboard[bot]@users.noreply.github.com>
b6d1211 to
81dc0d4
Compare
There was a problem hiding this comment.
LGTM: F2 is resolved: committed intents remain claimed after the result window while result reads expire; no remaining findings.
Note
Approved · head 81dc0d4 · no findings
Full review
F2 is resolved. Committed sessions remain ineligible for restart after the result window closes, while old-result reads still expire. No remaining findings.
Requested by justin · Thread
Stages a disabled browser adapter and Access–Slack consent UI. A browser can restart failed verification without losing its bounded result retry, while a committed link remains fenced after that window closes.
Why: #2395 adds the consent step after #2401 in the U2 sequence. Record 0081 remains proposed; this PR grants no live linking or cross-surface authority.
Where to look
Feedback wanted: Check the default-off boundary, terminal restart and committed-result fence, plus the isolated UI’s fit with the ongoing refactor.
Risk: A browser guard error could weaken future linking. This adapter and preview remain unwired. Activation, rate limits, revocation, authorization and history migration require separate review.
Verified: 65 focused tests, bot and web typechecks, scoped consistency checks, exact-head CI and Switchboard LGTM at
81dc0d4pass. No live linking was exercised.Decisions (3)
Validation (5 criteria)
specs:check,specs:coverage --require,hygiene:checkandvocabulary:checkpassed.81dc0d4d8285a83e21180732769e1945b1488864; GitHub auto-approved the same head.