Port upstream 0.69.0: mark Kimi windows blocked by an exhausted monthly limit (stacked on #691) - #697
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Thermo-nuclear reviewReviewed against upstream v0.69.0 steipete#4091 ( Verdict: no blockers. Behavior matches the spec. Spec parity (checked line by line):
Findings (fixed in the follow-up commit):
Left as is (non-blocking):
Local checks after the fixes: |
|
Follow-up to the thermo-nuclear review: pushed c220563 ("Address thermo review"). Fixed:
Left, with reasons: Kimi-shaped DTO/locale names on the generic mechanism (one provider today, rename would touch about ten files), redundant reserve clearing in Checks: fmt clean, clippy -D warnings pass on |
CUA proofBuild commit: c220563 (PR head) plus one uncommitted proof-only patch, not part of the PR: Data path: seeded via the existing Commands: Note: the "All" overview is compact (first two rows only), so the four-row checks were made on the Kimi tab of the pop-out; the tray panel overview showed the same Weekly / Rate limit rows with "Blocked by monthly limit". Scenario A: monthly pool exhausted
Scenario B: control (monthly 50%)
Screenshots (local, not committed), under
No real personal data appears in any screenshot. |
CUA proof (rerun)Build commit: c220563 (PR head, "Address thermo review"). Rerun on a rebuilt debug exe with profile isolation: home, config, data and cache dirs all resolve under a proof-only directory, so no real account or settings from the machine are read. Proof-only patch (uncommitted, reverted after the build, not part of the PR): root Data path: bridge-shaped Kimi snapshot via the existing Commands: Scenario A: monthly pool exhausted
Scenario B: control (monthly 50%)
Screenshots (local, not committed), in
No personal data appears in either screenshot. |
Summary
When Kimi's monthly membership pool (
kimi-monthly, "Total usage") is exhausted (remaining <= 0, reset in the future or unknown), the shorter windows (primary, secondary,kimi-code-7d; a window without minutes counts as the 5h lane) render as 100% used with "Blocked by monthly limit". Their reset, pace, reserve and session-forecast text is cleared; the pool row keeps the reset. Raw percentages in the snapshot and explicit menu-bar selections are unchanged. Unknown-usage, expired or available monthly pools never block.Upstream reference
RateWindow.bindingQuotaProjection,MenuCardView.blockingQuotaMetrics); audit entrykimi-blocking-monthly(PR 7).Ported / Deferred
core::BlockedWindows::evaluate(provider-declared blocker viaProviderId::blocking_quota_window_id, Kimi only), bridge fieldblockedByMonthlyLimit(Rust DTO +bridge.ts), MenuCard metric-row presentation,PanelBlockedByMonthlyLimitlocale key (en-US).Validation
cargo +1.98.0 fmt --all: cleancargo +1.98.0 clippy --workspace --all-targets -- -D warnings: passcargo +1.98.0 test -p codexbar: 2236 passed, 0 failed, 1 ignoredcargo +1.98.0 test -p codexbar-desktop-tauri: 488 passed, 0 failedpnpm run build: ok;pnpm run lint: only pre-existing warnings in untouched filesAffected areas
Kimi provider windows, bridge DTO, tray card (MenuCard), locale catalog.
UI proof
Pending: coordinator will capture CUA proof on a fresh build.