Expired tokens no longer fail silently
Buddy now detects expired OAuth tokens at launch and shows a clear re-login
option in Settings instead of leaving a dead credential in place. If a provider
rejects a request mid-session, an inline card appears in the chat pointing you
straight to Settings — no more silent failures or mysterious empty responses.
What you could see
- An expired provider token made the session fail with no explanation. The
stale credential stayed in the auth store, Settings showed it as configured,
and prompts silently returned errors. Buddy now probes OAuth providers at boot
and purges dead tokens automatically — Settings shows "Token expired — Sign in"
so you can re-authenticate in one click. - A mid-session auth failure produced no visible feedback. If the provider
rejected a prompt for auth reasons, the response simply never arrived. Now an
inline error card appears immediately with a link to Settings. - Background reflect or consolidation auth failures were invisible. If a
background task failed due to an expired token overnight, you had no way to
know. The next session now surfaces those failures as an inline card before
your first prompt.
What changed underneath
Model catalog updated: Claude 4.6 models replace earlier entries for the
balanced and powerful tiers; OpenAI Codex mapped to GPT-5.6 Luna/Terra/Sol.
The --force-model retry-reflect script flag was replaced with --fresh for
cleaner re-authentication. One test-only assertion was corrected after the
catalog change.
372 BDD scenarios and 1076 unit tests pass. The auth probes add one API call per
OAuth provider at boot — typically <200ms — and nothing changes for users whose
tokens are still valid.