fix(auth): recover from corrupt stored OAuth token#874
Conversation
|
Codex review: passed. Reviewed June 23, 2026, 3:44 AM ET / 07:44 UTC. Summary Reproducibility: yes. Current main is source-reproducible: corrupt stored token JSON returns a generic decode error and the caller only maps missing keyring entries to re-auth; I did not execute tests because this review is read-only. Review metrics: 2 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land this narrow sentinel-based fix after required CI is green, keeping operational keyring/backend errors fatal while routing corrupt stored credentials to re-auth. Do we have a high-confidence way to reproduce the issue? Yes. Current main is source-reproducible: corrupt stored token JSON returns a generic decode error and the caller only maps missing keyring entries to re-auth; I did not execute tests because this review is read-only. Is this the best way to solve the issue? Yes. The PR uses the narrow sentinel/classifier approach requested by the linked report, so corrupt present tokens can re-auth without masking operational keyring errors. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against fc13b4147e20. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Closes #872
Summary
Release note
Corrupt stored OAuth token JSON now surfaces the normal re-auth guidance instead of making every command fail with a fatal decode error.
Validation