• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lsm / neokai / 26801534950 / 23
82%
dev: 82%

Build:
DEFAULT BRANCH: dev
Ran 02 Jun 2026 06:02AM UTC
Files 334
Run time 11s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Jun 2026 06:00AM UTC coverage: 23.645% (-0.008%) from 23.653%
26801534950.23

push

github

web-flow
fix(codex-auth): stale token refresh, re-add after removal, logout/login cycle (#2052)

* fix(codex-auth): stale token refresh, re-add after removal, logout/login cycle

Three related fixes for the OpenAI Codex provider auth flow:

1. **Stale OAuth token**: When token refresh fails (invalid/revoked refresh
token), clear stale credentials via logout() so the user is prompted to
re-authenticate instead of getting repeated 401s.

2. **Cannot re-add provider after removal**: Built-in providers were
unregistered on delete but never re-registered on re-add. Now
initializeProviders() is called in auth.login and syncProviderToRegistry
to restore missing core providers to the registry.

3. **Logout button broken flow**: ProviderCredentialManager.removeCredentials
was updating auth_type to 'none', causing the UI to show "No authentication
required" instead of a Login button after logout. Removed the auth_type
mutation so the provider's required auth type is preserved.

Tests added/updated for all three fixes.

* fix(codex-auth): address review feedback on refresh, re-register, logout

1. Distinguish transient vs definitive token refresh failures:
   - refreshCodexToken now returns CodexRefreshResult with a `definitive` flag
   - 4xx errors (except 408/429) = definitive (invalid/revoked token)
   - 5xx, 429, network errors = transient (preserve credentials)
   - Only clear credentials on definitive failures

2. Re-register only the provider being restored:
   - Added registerBuiltInProvider(factory) that registers a single provider by ID
   - Used in auth.login and syncProviderToRegistry instead of initializeProviders()
   - Prevents deleted providers from being resurrected when unrelated built-ins are added

3. Remove persisted stale credential rows:
   - auth.refresh now calls credentialManager.removeCredentials() on definitive failure
   - auth.logout now always calls removeCredentials() after provider.logout()
   - syncProviderToRegistry skips applying store... (continued)

21955 of 92854 relevant lines covered (23.64%)

12.37 hits per line

Source Files on job daemon-online-rpc-4 - 26801534950.23
  • Tree
  • List 334
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 26801534950
  • db9cf46e on github
  • Prev Job for on dev (#26801282614.17)
  • Next Job for on dev (#26826748007.28)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc