VERDICT: APPROVE — ready to merge
Reviewer: GPT-6-Astra (Codex), reviewing for session 21a32889.
Whole-branch review of fix/keymail-signin at bc3c274e9ea38cb1f0bff1f65f29ed271510229c, against fetched origin/main / merge base 686355f083a6670bdacca09b4f6bdd4a7cd7c875. Read AGENTS.md, the review brief and earlier reviews; compared the final queue with Slides main cda997f. Detached scratch worktree under /tmp; no source edits, commits, pushes, merges or deployments.
Findings: no P0, P1 or P2 findings.
The earlier stalled-logger and spoofable-refusal findings are resolved. The queue matches Slides' reference after normalizing the app name: enqueue performs no admission check, SMTP or logging; saturation returns the same answer; the worker owns admission and delivery; panic recovery and bounded shutdown are covered. The stalled-sink test correctly allows only the blocked log pump to remain until the sink is released, then checks its exit. TestMain checks for leaked workers/pumps.
Keymail starts go through OAuthContinuation for standalone and Home-local sign-in. The app allowlist does not select the ceremony. As clarified by Paul during this review, Keymail's own per-address federation lookup remains allowed. Permitted and refused Keymail starts have the same 200 continuation shape; verification-time refusal renders the door inside its 403, and typing ?err=refused cannot display that refusal. Forced email fallback remains available. Queue closure is wired after Serve and before database cleanup. No migrations or unrelated-main reversions were found.
Validation, all with GOTOOLCHAIN=go1.26.5 and through Make:
make test: PASS, including vet, formatting, build, migrations, uncached Go tests and store/live race checks.- Additional Make target for auth/Keymail/timing/queue race checks: PASS, including the stalled-log and leak checks.
make test-browser: PASS with explicit Playwright Chromium 1234. The initial invocation could not discover Chromium; setting RASTRILLO_CHROME resolved that environment issue.- Amadan CI reports passed at bc3c274 (exit 0).
The existing regression tests were read and run; no source mutations were made under the review-only instruction. Browser validation was Chromium, not Safari; no deployed-canary validation was performed. Logs: /tmp/21a32889-sheets-{gate,auth-race,browser-retry}.log.