fix(linux): surface provider-scoped rate windows and drop unmeasured ones - #3785
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 20, 2026, 9:13 PM ET / September 21, 2026, 01:13 UTC (Revision 6). ClawSweeper reviewWhat this changesThe Linux desktop and Omarchy integration display measured provider-specific quota windows, omit synthetic or unmeasured windows, and protect scoped identifiers in exported snapshots. Merge readiness✅ Ready for maintainer review This PR remains useful: main and v0.63.0 still omit scoped quota windows and display synthetic placeholders. The revised patch has convincing native before/after proof and no actionable correctness findings. Priority: P2 Review scores
Verification
How this fits togetherThe Linux desktop converts CodexBar CLI usage JSON into quota cards, notifications, and private IPC snapshots. Omarchy reads those snapshots to display the same usage data. flowchart TD
A[CLI usage JSON] --> B[Shared quota model]
B --> C[Filter unmeasured windows]
C --> D[Native quota cards]
C --> E[Notification transitions]
C --> F[Private IPC snapshot]
F --> G[Omarchy display]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Keep one shared quota projection that honors the CLI’s measurement flags, preserves general-window ordering, and exports private scoped identities. Do we have a high-confidence way to reproduce the issue? Yes: main’s projection ignores extraRateWindows and treats a synthetic zero-used session as full remaining quota. The supplied native before/after evidence corroborates that path; this review did not execute it. Is this the best way to solve the issue? Yes: extending the existing shared model is the narrowest repair, and the patch preserves standard keys, fractional cadence labels, and stored preferences. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against cae98134ef95. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (5 earlier review cycles)
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
Include measured provider-specific windows after standard quotas and omit synthetic, unmeasured or unstable-ID entries. Preserve existing cadence labels. Namespace notification identities and keep provider-controlled IDs opaque at the IPC boundary. Cover ordering, redaction, alert collisions and native snapshots, with packaged Qt before/after proof using synthetic data. Refs steipete#3785. Co-authored-by: jsonMartin <4033621+jsonMartin@users.noreply.github.com>
bd42b31 to
a0a2601
Compare
|
Maintainer native proof for a0a2601. All data is synthetic. The production Qt app was rebuilt for the baseline and candidate; the candidate archive was installed before launch. The baseline renders a synthetic session as 100% remaining and omits the measured model cap. The candidate removes that placeholder, keeps the general weekly window first, and shows the measured 7%-remaining scoped cap. A long label wraps at narrow width, and every bounded extra remains reachable by scrolling. The native snapshot regression also verifies that email-bearing IDs and titles stay private with identity display enabled. Notification tests cover IDs that collide with standard windows or status. Before: After: Narrow window and scrolling: |
|
Merged as 9d3f6bf. Thanks @jsonMartin! The maintained candidate passed Native proof used Ubuntu 26.04, Qt 6.10.2 and Node 26.9.0 with synthetic HOME/XDG directories and a fake provider CLI. The production Qt archive was packaged, installed and launched. Baseline regressions demonstrated the phantom full session and missing model cap; the contributor candidate also exposed raw scoped IDs in snapshots, which the final patch protects. Narrow layout, scrolling, notification collisions, reordering and identity redaction were checked. Before/after screenshots and details are above. Exact-head general CI and Linux desktop CI passed, including both macOS shards and Linux x86-64/ARM64. The musl job was skipped by the normal path gate. Canonical main is synchronized and clean; task-owned proof machines were released. |
Since #3785 the Linux popup and Omarchy panel rendered both the per-family representative bucket and its named copy. The shared Usage.js now keeps each representative first with its family title and bucket key and drops the duplicate, matching only on the Antigravity provider, exact quota-summary ID prefix and equal raw values. Also makes the Linux account-action log test wait for file contents rather than existence. Adopts #3799 and #3839. Co-authored-by: jsonMartin <4033621+jsonMartin@users.noreply.github.com>




Linux and Omarchy dropped measured provider-specific quota windows and could show synthetic or unmeasured windows as full or exhausted quota. This change appends measured scoped windows after the standard windows, rejects unusable entries, and preserves existing fractional-day labels.
Scoped windows require stable, nonempty IDs. Their internal notification keys have a separate namespace, preventing collisions with standard quota and status state. IPC exports opaque keys that remain stable for the backend process, and email-bearing titles stay redacted regardless of the native identity-display preference. Standard window keys are unchanged.
Validation:
make checkand independent review through P2 passed.Thanks @jsonMartin for the original fix and the Omarchy 4.0.3 / CodexBar CLI 0.61.0 reproduction. Maintainer runtime proof uses synthetic data and no real provider credentials. Before/after images are attached in the proof comment.