Skip to content

feat(gui): show weighted Codex pool capacity and next recovery - #878

Merged
Wibias merged 13 commits into
lidge-jun:devfrom
luvs01:feat/provider-capacity-aggregate
Aug 3, 2026
Merged

feat(gui): show weighted Codex pool capacity and next recovery#878
Wibias merged 13 commits into
lidge-jun:devfrom
luvs01:feat/provider-capacity-aggregate

Conversation

@luvs01

@luvs01 luvs01 commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add a display-only configured-weight capacity estimate to the OpenAI (Codex login) Providers overview.
  • Keep the effective runtime account's raw quota visible as separate context, identify incomplete quota windows, and report the earliest reset as a percentage of total pool capacity restored.
  • Exclude unknown, incomplete, stale, paused, and reauthentication-required rows from numeric totals while preserving visible coverage context and safe fallback behavior.
  • Keep configured/weighted units and projected post-reset aggregates internal; the GUI shows weighted pool used %, effective-account raw %, reset time, and +N% pool capacity recovery only.
  • Preserve routing, pinning, thread affinity, pause state, cooldowns, and automatic switching behavior.

Closes #874

Verification

  • Root typecheck: bun run typecheck
  • Focused backend capacity/quota tests: 44/44 passed
  • Focused GUI adapter/shell tests: 17/17 passed
  • Full GUI test suite: 510/510 passed
  • cd gui && bun run build
  • cd gui && bun run lint
  • cd gui && bun run lint:i18n
  • Localized docs build: cd docs-site && bun run build (206 pages)
  • bun run privacy:scan
  • git diff --check
  • Independent post-fix and post-rebase reviews found no P0-P2 issues.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive surfaces were reviewed for secrets, auth, and unsafe defaults; this change exposes no account identifiers or credentials and does not alter routing policy.

Summary by CodeRabbit

  • New Features
    • Added pooled provider capacity estimates, including weighted usage, effective-account quotas, recovery timing, and capacity shares.
    • Added indicators for incomplete or partial quota coverage and reset windows.
    • Added localized capacity and accessibility labels in English, German, Japanese, Korean, Russian, and Chinese.
  • Bug Fixes
    • Improved handling of stale, empty, failed, and incomplete quota data, including cached reports.
  • Documentation
    • Documented capacity estimates and clarified they do not affect routing or account selection.

luvs01 added 7 commits August 2, 2026 17:28
Use configured plan weights to summarize routable Codex quota windows while retaining effective-account raw quota and incomplete coverage.

Show next capacity recovery as a share of the weighted pool without changing routing or account selection.

Refs lidge-jun#874
Carry weighted pool metadata through the provider workspace shell and reject stale per-account quota readings.

Key report caching to a privacy-safe signature of every aggregation-relevant account state while keeping configured weight units internal.

Refs lidge-jun#874
Document the Providers overview's weighted pool percentage, effective-account quota, recovery display, incomplete coverage, and display-only routing boundary.

Refs lidge-jun#874
Replace stale provider quota state authoritatively, retain per-window coverage, and distinguish aggregate, fallback, and coverage-only reports.

Reject cache commits when pool presentation state changes during a probe and allow recovery details to wrap in narrow panes.

Refs lidge-jun#874
Keep pool account counts partitioned while reporting partial limit-window coverage separately.

Render coverage-only reports in the Providers overview and expire stale effective-account fallbacks without restamping their quota data.

Refs lidge-jun#874
@github-actions github-actions Bot added the enhancement New feature or request label Aug 2, 2026
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Wibias, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 36 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5fdffbe6-c110-451f-9bc6-39f61faf2468

📥 Commits

Reviewing files that changed from the base of the PR and between 72a258b and 6fadee9.

📒 Files selected for processing (10)
  • docs-site/src/content/docs/ja/guides/web-dashboard.md
  • docs-site/src/content/docs/ko/guides/web-dashboard.md
  • docs-site/src/content/docs/ru/guides/web-dashboard.md
  • docs-site/src/content/docs/zh-cn/guides/web-dashboard.md
  • gui/src/i18n/de.ts
  • gui/src/i18n/en.ts
  • gui/src/i18n/ja.ts
  • gui/src/i18n/ko.ts
  • gui/src/i18n/ru.ts
  • gui/src/i18n/zh.ts
📝 Walkthrough

Walkthrough

This change adds weighted Codex pool-capacity aggregation, freshness-aware quota reporting, strict GUI parsing, Providers overview rendering, partial-window indicators, localized strings, responsive styling, documentation, and tests.

Changes

Codex pool capacity

Layer / File(s) Summary
Capacity aggregation
src/codex/auth-api.ts, src/providers/codex-capacity.ts, tests/provider-capacity.test.ts
The backend resolves the effective account and aggregates eligible Codex accounts using configured plan weights. It reports window usage, recovery, exclusions, incomplete coverage, and current-account data.
Quota reporting and cache coherence
src/providers/quota.ts, tests/provider-quota.test.ts, tests/provider-account-quota.test.ts
Quota reporting publishes sanitized aggregation metadata, supports aggregate, fallback, and coverage-only results, and uses pool-sensitive cache validation.
GUI report parsing and freshness
gui/src/provider-workspace/report.ts, gui/src/components/provider-workspace/ProviderWorkspaceShell.tsx, gui/tests/provider-capacity.test.ts, gui/tests/provider-capacity-shell.test.tsx
The GUI validates aggregation contracts, rejects stale or malformed reports, replaces reports on successful empty responses, and retains only fresh data after failures.
Providers overview display
gui/src/components/provider-workspace/ProviderOverviewDashboard.tsx, gui/src/components/QuotaBars.tsx, gui/src/styles/*, gui/src/i18n/*, docs-site/src/content/docs/guides/*
The overview displays weighted estimates, recovery details, current-account quotas, coverage warnings, and localized partial-window markers. Documentation describes the display-only estimate and routing boundary.

Estimated code review effort: 5 (Critical) | ~90 minutes

Sequence Diagram(s)

sequenceDiagram
  participant AccountStore
  participant QuotaService
  participant CapacityAggregator
  participant ProviderOverview
  AccountStore->>QuotaService: provide Codex account and quota state
  QuotaService->>CapacityAggregator: aggregate eligible pool accounts
  CapacityAggregator-->>QuotaService: weighted windows and coverage metadata
  QuotaService-->>ProviderOverview: aggregate, fallback, or coverage-only report
  ProviderOverview-->>ProviderOverview: render capacity, recovery, and partial-window status
Loading

Possibly related PRs

Suggested reviewers: lidge-jun, wibias, ingwannu

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the GUI feature: weighted Codex pool capacity and next recovery.
Linked Issues check ✅ Passed The implementation covers the weighted estimates, recovery, coverage, fallback, display-only routing boundary, localization, docs, and tests required by [#874].
Out of Scope Changes check ✅ Passed All changes support [#874], including backend aggregation, GUI rendering, localization, documentation, caching, and targeted tests; no unrelated code is identified.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 74a6e22a8b

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/providers/codex-capacity.ts
Comment thread src/providers/quota.ts
Comment thread src/providers/codex-capacity.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs-site/src/content/docs/guides/providers.md`:
- Around line 27-46: Update the localized providers guides in
ja/guides/providers.md, ko/guides/providers.md, ru/guides/providers.md, and
zh-cn/guides/providers.md to include the English guide’s Pool capacity section:
configured-weight pool capacity estimates, the effective account’s raw quota,
reset recovery information, incomplete and partial-window coverage behavior, and
the display-only routing limitation. Translate the content appropriately while
preserving the existing Pool/Direct guidance.

In `@gui/src/components/provider-workspace/ProviderOverviewDashboard.tsx`:
- Around line 255-260: Update the recoveryRows rendering and its row key near
recoveryRows so each row uses a stable unique identifier based on its window
source rather than the display label. Distinguish fiveHour, weekly, monthly, and
each custom window (using an appropriate custom-window identity), while
preserving labels for display and avoiding collisions across localized standard
labels and raw custom labels.

In `@gui/src/components/provider-workspace/ProviderWorkspaceShell.tsx`:
- Around line 278-286: Add the cancelled check at the start of the quota
request’s catch handler, before setQuotaReports or writeSessionListCache can
run. Keep the existing freshQuotaReportRecord fallback unchanged, and ensure
rejected superseded or unmounted requests perform no state or cache updates
while preserving the finally loading cleanup.

In `@gui/src/i18n/de.ts`:
- Line 1383: Update the German translation value for pws.capacity.estimate to
grammatical wording that conveys an estimate calculated from the configured plan
weights, matching the English source meaning and preserving its use as the
ProviderCapacityQuota label.

In `@gui/src/i18n/ru.ts`:
- Line 1045: Update the Russian translation value for "pws.capacity.incomplete"
so the unknown-plan count is explicitly presented as a subset included within
the excluded-account count, matching the relationship expressed by the other
locale translations rather than as an additive parallel count.

In `@gui/src/provider-workspace/report.ts`:
- Around line 106-113: Rename the flatMap callback parameter in the
customWindows transformation from value to entry, updating all references within
that callback while preserving its existing filtering and mapping behavior.

In `@gui/tests/provider-capacity-shell.test.tsx`:
- Line 19: Update the recovery timestamp assertion near RECOVERY_AT to derive
the expected formatted value with the same Intl.DateTimeFormat configuration
used by ProviderCapacityQuota, including the test locale and ambient timezone,
instead of hardcoding date/time alternatives. Keep the assertion focused on the
formatter output so it remains valid across runner timezones.
- Around line 267-278: The aggregatePayload helper currently omits the
partialWindowAccounts and monthly members later assigned by the test, and the
test file is not type-checked in CI. Widen aggregatePayload’s declared payload
shape or include both members in its returned literal, then add the GUI test
TypeScript project to CI so provider-capacity-shell.test.tsx is checked.

In `@gui/tests/provider-capacity.test.ts`:
- Around line 100-107: Update the assertions in the provider capacity test to
scope each flex-wrap and overflow-wrap check to its intended selector, matching
the existing css.slice(css.indexOf(...)) pattern used for the container rule.
Ensure .pws-capacity-recovery assertions inspect only that rule and
.quota-stacked-limit-group assertions inspect only its rule, rather than the
entire stylesheet text.

In `@src/providers/codex-capacity.ts`:
- Around line 85-90: Update configuredWeight to use Object.hasOwn when checking
normalized against CODEX_CONFIGURED_CAPACITY_WEIGHTS, ensuring inherited
Object.prototype keys such as constructor, toString, and valueOf are rejected
and the function only returns configured numeric weights.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: be790c01-eace-4bae-85b8-98c8187c4557

📥 Commits

Reviewing files that changed from the base of the PR and between f9b9440 and 74a6e22.

📒 Files selected for processing (21)
  • docs-site/src/content/docs/guides/providers.md
  • docs-site/src/content/docs/guides/web-dashboard.md
  • gui/src/components/QuotaBars.tsx
  • gui/src/components/provider-workspace/ProviderOverviewDashboard.tsx
  • gui/src/components/provider-workspace/ProviderWorkspaceShell.tsx
  • gui/src/i18n/de.ts
  • gui/src/i18n/en.ts
  • gui/src/i18n/ja.ts
  • gui/src/i18n/ko.ts
  • gui/src/i18n/ru.ts
  • gui/src/i18n/zh.ts
  • gui/src/provider-workspace/report.ts
  • gui/src/styles/provider-overview-dashboard.css
  • gui/src/styles/provider-quota.css
  • gui/tests/provider-capacity-shell.test.tsx
  • gui/tests/provider-capacity.test.ts
  • src/codex/auth-api.ts
  • src/providers/codex-capacity.ts
  • src/providers/quota.ts
  • tests/provider-capacity.test.ts
  • tests/provider-quota.test.ts

Comment thread docs-site/src/content/docs/guides/providers.md
Comment thread gui/src/components/provider-workspace/ProviderOverviewDashboard.tsx Outdated
Comment thread gui/src/components/provider-workspace/ProviderWorkspaceShell.tsx
Comment thread gui/src/i18n/de.ts Outdated
Comment thread gui/src/i18n/ru.ts Outdated
Comment thread gui/src/provider-workspace/report.ts
Comment thread gui/tests/provider-capacity-shell.test.tsx
Comment thread gui/tests/provider-capacity-shell.test.tsx
Comment thread gui/tests/provider-capacity.test.ts Outdated
Comment thread src/providers/codex-capacity.ts
@luvs01
luvs01 force-pushed the feat/provider-capacity-aggregate branch from 74a6e22 to b4f963d Compare August 2, 2026 09:50
@Wibias

Wibias commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

[GD] Verdict: approve-comment

PR: #878 — feat(gui): show weighted Codex pool capacity and next recovery
Head: b4f963d86 on dev (mergeStateStatus: CLEAN)

Semantic propagation

  • Concepts audited: configured plan weights; weighted pool aggregation math; quota window family (fiveHour/weekly/monthly/custom); 30-minute freshness bound; pool-state cache signature; effective-account selection; presentation modes (aggregate / effective-account-fallback / coverage-only); pws.capacity.* i18n keys; user docs.
  • Authoritative sources: issue #874 weight table and formulas; src/codex/quota.ts parseUsageQuota (window producers); src/codex/routing.ts getEffectiveActiveCodexAccountId; src/providers/quota.ts cache contract.
  • Producers and consumers checked: src/providers/codex-capacity.tssrc/providers/quota.ts/api/provider-quotas (src/server/management/provider-routes.ts) → GUI report.tsProviderOverviewDashboard / QuotaBars; CLI consumers (src/cli/account-api.ts, src/cli/account-extended.ts) tolerate empty-quota rows.
  • Public/derived representations checked: management API strips totalWeight/consumedWeight/remainingWeight (negative test asserts no weight or projected fields leak); GUI parser requires kind/scope/incomplete and fails closed on capacity-weighted-v2; coverage-only nulls currentAccount.quota.
  • Material variant partitions checked: known plans (plus/business/prolite/pro), unknown/missing/paused/reauth/stale rows, mixed-age rows, zero-consumption resets, same-time resets, expired resets, empty pool, direct vs pool mode, legacy reports without aggregation.
  • Positive and negative assertions checked: issue #874 30.77% synthetic, recovery share 19.23%, prototype-key rejection (constructor/toString/valueOf), no projected post-reset percentage, no account ids/emails in the cache digest.
  • Unmapped surfaces: none.
  • Unproven equivalence assumptions: backend custom-window aggregation has no direct unit test; it shares the exact addWindow/finalizeWindow path with standard windows and GUI custom-window parsing/rendering is covered.
  • Representation mismatches: none.
  • Variant coverage gaps: backend custom-window aggregation test (soft); paused/reauth current-account fallback branch (see Bugs).
  • Axis verdict: pass

Usefulness

Real fix for issue #874: the Providers overview previously mirrored one persisted/effective account and could show 100% while other pool members still had capacity. This adds the display-only weighted estimate, the effective account's raw quota, next-recovery time/percent, and exclusion coverage context with a safe fallback. Delivers the claimed value.

Bugs / correctness

  • Method: bug-review.md — Bugbot: n/a-unavailable (Codex host); complementary: done (silent_failures, resource_leaks, edge_cases, boundary_conditions, time_clocks, api_compatibility, state_consistency, error_propagation, parsing_serialization, ui_async_state, concurrency_races, network_cancellation).
  • Findings: none blocking.
  • Residual (Low): the effective-account-fallback branch in src/providers/quota.ts shows the active account's raw quota with only a freshness check, while currentQuotaForDisplay (src/providers/codex-capacity.ts) also excludes paused / needs-reauth accounts; display-only inconsistency in the all-excluded edge, no routing impact. Same branch uses < vs <= at the freshness boundary.
  • Fixed this session: none (nothing blocking).

Security

  • Scope: read-only display aggregation; no auth/token/outbound changes; cache digest excludes account ids/emails; aggregation strips internal weight units; no new logging; bun run privacy:scan green.
  • Findings: none confirmed. Risk: Low.
  • Fixed this session: none.

Spec / standards

  • Spec source: linked issue #874. All listed requirements implemented: weights table, formulas, exclusions, recovery share, per-window independence, expired-reset handling, effective-account fallback, display-only routing boundary. Docs updated in EN + ja/ko/ru/zh-cn.
  • Standards: Bun-native, tests co-located near the subsystem, i18n parity enforced, git diff --check clean; no CONTRIBUTING/ADR violations found.

Reviews

  • Owners/maintainers: no open threads.
  • Bots: 13/13 threads resolved and verified against b4f963d (Codex P2 x3, CodeRabbit x10). One reply overstates "GUI test typecheck coverage is added": the test payload was widened, but no CI typecheck project was added (GUI tests remain unchecked by tsc; all other verification claims check out).

Base / CI

  • Behind/conflicts: clean (mergeStateStatus: CLEAN).
  • Required checks: green — ubuntu, macos, windows, npm-global x3, enforce-target, label, react-doctor, CodeRabbit.
  • Local tip compile/tests: bun run typecheck pass; backend focused 44/44; GUI focused 17/17; GUI full 510/510; gui lint + lint:i18n pass; gui build pass; docs build 206 pages; privacy scan pass; git diff --check clean. Full backend suite: 6978 pass / 3 fail, all environmental and in files untouched by this PR (Windows symlink EPERM x2, local Codex CLI shape x1).

Gate

none — not draft, no WIP/do-not-merge, ship-gate.mjs returned ready on all components.

Bottom line

Useful, spec-complete, well-tested feature; every review thread is addressed and verified at the reviewed head. No blocking findings. Merge-ready.

@Wibias

Wibias commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

[GD] Merge ready

PR: #878 — feat(gui): show weighted Codex pool capacity and next recovery
Head: b4f963d86dev (mergeStateStatus: CLEAN)
Linked issues: #874

Reviews

  • Humans (owners first): none open.
  • Bots: 0 unresolved threads; 13/13 Codex + CodeRabbit threads resolved and verified at b4f963d.
  • Own bug + security + spec/standards: bug-review (Bugbot n/a-unavailable, complementary done) + security-review (Pass, Low risk) + spec/standards (issue #874 fully implemented) on tip. Blockers fixed: none.

Tip freshness

  • Updated from dev: already current.
  • Compiles/tests against tip: bun run typecheck pass; backend focused 44/44; GUI focused 17/17; GUI full 510/510; gui lint + lint:i18n pass; gui build pass; docs build 206 pages; privacy scan pass.
  • Conflicts: none.

Checks

  • Local/CLI: all green (see above; full backend suite 6978 pass / 3 environmental failures in untouched files — Windows symlink EPERM x2, local Codex CLI shape x1; CI matrix green on the same head).
  • Required CI: green on b4f963d (ubuntu, macos, windows, npm-global x3, enforce-target, label, react-doctor, CodeRabbit).
  • Policy: code-owner enforcement n/a (advisory), stale approvals n/a, merge queue n/a.

Residual

  • Low (non-blocking): effective-account-fallback shows a paused/reauth active account's raw quota (freshness-only guard) while the aggregate branch hides it; display-only, no routing impact.
  • Author reply overstates GUI-test typecheck coverage (payload widened, no CI project added).

Ready to merge.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs-site/src/content/docs/guides/web-dashboard.md`:
- Around line 108-112: Move the Providers overview paragraph from between the
Codex Auth introductory colon and its bullets to immediately after the final
bullet in that list, preserving its text and link. Keep the Codex Auth colon
directly followed by the intended bullet list.

In `@docs-site/src/content/docs/ja/guides/providers.md`:
- Around line 38-41: Update the account-pool links in the localized providers
guides for ja, ko, ru, and zh-cn to use the locale-specific Starlight-generated
heading fragments, or add a shared raw-HTML anchor to each translated dashboard
heading and reference it consistently.

In `@gui/src/components/QuotaBars.tsx`:
- Around line 312-320: Add role="note" to the partial-window span rendered by
QuotaBars for incomplete windows, preserving its visible text and title. Update
the corresponding test to query and assert the named note role using the
existing window-qualified label.

In `@src/providers/quota.ts`:
- Around line 261-277: Update the effective-account fallback around the quota
freshness check to exclude accounts that are paused or require reauthentication,
matching the eligibility behavior of currentQuotaForDisplay. Only return the
report when the quota is fresh and the active account is eligible; otherwise
preserve the existing aggregation fallback behavior.
- Around line 111-135: The cacheKeyWithAggregationState function must not call
listCodexAuthAccounts or otherwise perform upstream I/O while computing the
cache key. Replace the account-list fetch with an existing non-I/O in-memory
snapshot or version representing Codex pool state, and use it to derive the
aggregation signature while preserving the base-key behavior and unavailable
fallback. Ensure commit-time key calculation cannot trigger quota probes before
the provider-quota freshness check.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ff97dbf4-6880-4ecb-aa3f-55736e7dfb5f

📥 Commits

Reviewing files that changed from the base of the PR and between 74a6e22 and edd3be6.

📒 Files selected for processing (23)
  • docs-site/src/content/docs/guides/providers.md
  • docs-site/src/content/docs/guides/web-dashboard.md
  • docs-site/src/content/docs/ja/guides/providers.md
  • docs-site/src/content/docs/ko/guides/providers.md
  • docs-site/src/content/docs/ru/guides/providers.md
  • docs-site/src/content/docs/zh-cn/guides/providers.md
  • gui/src/components/QuotaBars.tsx
  • gui/src/components/provider-workspace/ProviderOverviewDashboard.tsx
  • gui/src/components/provider-workspace/ProviderWorkspaceShell.tsx
  • gui/src/i18n/de.ts
  • gui/src/i18n/en.ts
  • gui/src/i18n/ja.ts
  • gui/src/i18n/ko.ts
  • gui/src/i18n/ru.ts
  • gui/src/i18n/zh.ts
  • gui/src/provider-workspace/report.ts
  • gui/src/styles/provider-overview-dashboard.css
  • gui/src/styles/provider-quota.css
  • gui/tests/provider-capacity-shell.test.tsx
  • gui/tests/provider-capacity.test.ts
  • src/codex/auth-api.ts
  • src/providers/codex-capacity.ts
  • src/providers/quota.ts

Comment thread docs-site/src/content/docs/guides/web-dashboard.md Outdated
Comment thread docs-site/src/content/docs/ja/guides/providers.md
Comment thread gui/src/components/QuotaBars.tsx
Comment thread src/providers/quota.ts
Comment thread src/providers/quota.ts Outdated
Wibias added 2 commits August 3, 2026 18:46
- docs: keep the Providers overview paragraph after the Codex Auth bullet list
- docs: stable codex-auth-and-account-pools anchors in ja/ko/ru/zh-cn
- gui: expose the partial-window aria-label via role=note
- quota: exclude paused/reauth accounts from the effective-account fallback
- tests: reset the provider-quota reconcile guard between test files

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs-site/src/content/docs/ja/guides/web-dashboard.md`:
- Around line 86-87: Synchronize the translated dashboard guides with the
English Providers overview by adding the localized display-only weighted
capacity estimate link and summary after the account-pool list in
docs-site/src/content/docs/ja/guides/web-dashboard.md lines 86-87,
docs-site/src/content/docs/ko/guides/web-dashboard.md lines 86-87,
docs-site/src/content/docs/ru/guides/web-dashboard.md lines 89-90, and
docs-site/src/content/docs/zh-cn/guides/web-dashboard.md lines 80-81; preserve
the existing Codex Auth anchor and use the corresponding localized Providers
overview wording.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3df8b9d8-a570-4ef8-8fb7-533406fffa9e

📥 Commits

Reviewing files that changed from the base of the PR and between edd3be6 and 72a258b.

📒 Files selected for processing (15)
  • docs-site/src/content/docs/guides/web-dashboard.md
  • docs-site/src/content/docs/ja/guides/web-dashboard.md
  • docs-site/src/content/docs/ko/guides/web-dashboard.md
  • docs-site/src/content/docs/ru/guides/web-dashboard.md
  • docs-site/src/content/docs/zh-cn/guides/web-dashboard.md
  • gui/src/components/QuotaBars.tsx
  • gui/src/i18n/de.ts
  • gui/src/i18n/en.ts
  • gui/src/i18n/ja.ts
  • gui/src/i18n/ko.ts
  • gui/src/i18n/ru.ts
  • gui/src/i18n/zh.ts
  • gui/tests/provider-capacity-shell.test.tsx
  • src/providers/quota.ts
  • tests/provider-account-quota.test.ts

Comment thread docs-site/src/content/docs/ja/guides/web-dashboard.md
@Wibias

Wibias commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Thanks @luvs01 — merging this.

Why it helps: the Providers overview now reports the whole Codex pool's configured-weight capacity instead of only the persisted selected account, so an exhausted-but-selected account can no longer mask usable pool capacity. It keeps the effective account's raw quota, reset timing, and +N% pool capacity recovery visible while staying display-only (gui, src/providers/codex-capacity.ts). This closes #874.

Ship it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants