fix: stabilize plan usage dashboard and connect snapshot (ADA-128)#172
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 10fd795c6e
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 413682dc2e
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Fixes ADA-128.
Filters Codex Spark rate-limit buckets, fixes deterministic provider/window ordering and the Codex/Anthropic divider, and moves all plan-usage probing into one two-minute background snapshot store. The initial server-config RPC exchange now carries the current snapshot, so connect performs no on-demand usage request or provider probe.
Guardrails cover Spark-only fallback, stable ordering/provider boundary, background cadence/failure handling, deduplicated provider aliases, HTTP/MCP snapshot reads, client projection, and the initial WebSocket config exchange.
Verification:
vp check,vp run typecheck, 169 targeted tests,vp run build:desktop, and Playwright against disposableada-128-local. The browser made zero/api/plan-usagerequests on connect; the first RPC frame contained Codex+Claude usage; the popover showed no Spark, fixed Codex-before-Claude ordering, and one clear provider divider. Screenshots:/tmp/ada-128-local-connect.png,/tmp/ada-128-local-usage-fixed.png.