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

lsm / neokai / 25954432999 / 12
81%
dev: 81%

Build:
DEFAULT BRANCH: dev
Ran 16 May 2026 06:02AM UTC
Files 295
Run time 8s
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

16 May 2026 05:58AM UTC coverage: 19.22% (-0.02%) from 19.238%
25954432999.12

push

github

web-flow
feat: add 429 retry exhaustion detection and auto-recovery (#1915)

* feat: add 429 retry exhaustion detection and auto-recovery

When providers return 429 (rate limited), the SDK retries with
exponential backoff. When all retries exhaust, the session previously
stalled indefinitely requiring manual user intervention.

This change adds:
- RateLimitWatchdog: detects 429 exhaustion and schedules auto-retry
  after a 10-minute cooldown (configurable), up to 3 cycles
- rate_limit_cooldown processing state variant for UI visibility
- Frontend RateLimitCooldownBanner with countdown, retry-now, and cancel
- RPC handlers: session.cancelRateLimitRetry, session.retryNowAfterRateLimit
- Watchdog auto-cancels when user sends a new message before retry fires

* fix: address review feedback for 429 auto-retry feature

- P0: skip setIdle() after scheduling rate limit cooldown to preserve state
- P1: add rate_limit_cooldown to isAgentSessionAlive status check
- P2: remove lastUserMessage from processingState (kept in watchdog only)
- P2: add finally blocks to RateLimitCooldownBanner buttons for state reset
- P3: remove unused jest import from watchdog test
- Fix duplicate rateLimitCooldownScheduled declaration scoping

* fix: harden 429 detection and propagate cooldown status to space projections

- Case-insensitive rate-limit matching (handles "Rate limit" etc.)
- Exclude 402/quota/billing errors from auto-retry path
- Refuse cooldown scheduling when no user message available to retry
- Gate errorManager.handleError when cooldown scheduled (avoids
  terminal session.error in Space workflows during recoverable 429)
- Add rate_limit_cooldown to space activity SQL CASE projection
- Add rate_limit_cooldown to deferred injection busy-state check

* fix: await cooldown state write, add cooldown to space activity types

- Make scheduleRetry async and await setRateLimitCooldown to prevent
  race with concurrent user messages or retry-now
- Add null message guard to schedule... (continued)

15350 of 79865 relevant lines covered (19.22%)

9.86 hits per line

Source Files on job daemon-online-rpc-1 - 25954432999.12
  • Tree
  • List 295
  • Changed 8
  • Source Changed 8
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25954432999
  • cac8164f on github
  • Prev Job for on dev (#25954359365.26)
  • Next Job for on dev (#25955303188.12)
  • 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