Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs real behavior proof before merge. Reviewed September 2, 2026, 12:28 PM ET / 16:28 UTC. ClawSweeper reviewWhat this changesThe PR makes serve-mode account collection include every configured token account and groups those results into nested dashboard account rows. Merge readiness⛔ Blocked until real behavior proof is added - 6 items remain Keep this draft open: the multi-account dashboard work is useful, but the branch also changes the established generic Priority: P2 Review scores
Verification
How this fits togetherCodexBar’s local flowchart LR
A[Provider account configuration] --> B[Serve route]
B --> C[Account selection]
C --> D[Provider usage fetch]
D --> E[/usage response]
D --> F[Dashboard snapshot]
F --> G[Nested account rows]
Decision needed
Why: The branch’s central behavior changes a documented, existing API selection contract and can add credential refreshes for existing polling clients; that compatibility tradeoff requires owner intent. Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep generic Do we have a high-confidence way to reproduce the issue? Yes, source-reproducible: configure two generic provider token accounts and request Is this the best way to solve the issue? No: the dashboard aggregation goal can be implemented without silently changing generic Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 620f3b8e4eef. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles)
|
|
Thanks @VACInc. Dashboard account grouping, opaque IDs, and row-local errors are useful, but separate from cross-device cost aggregation. This patch also changes ordinary generic |
|
Thanks @VACInc. At |
Summary
High Level TLDR
codexbar serveexposed multiple Codex and claude-swap accounts, but ordinary token-account providers only returned theactive account. This change makes
/usagefetch every configured account and makes dashboard snapshots project thoseresults into one provider row with
accounts[], using the same configured account order and active selection as the app.Root Cause
The app menu reads all
ProviderTokenAccountData.accounts, but the headless resolver returned only the clamped activeaccount unless an interactive CLI caller explicitly passed
--all-accounts. The dashboard also disabled its existingall-account mode and only attached nested accounts through the claude-swap adapter.
Before behavior was established by source and observed route output: Codex
/usagereturned multiple rows, while ageneric provider with multiple configured accounts returned only one active row and no dashboard
accountsfield.What changed
providers[].accounts, with the active account retaining provider-level fields.accountsErrorhandling.Real behavior proof
Linux static proof completed:
git diff --check a0d77c37f9cc85d8703eb0a501c6764112f5a6e8..HEADpassed.ee0ae94e312007e63ee42b8226a7ff2e3f0e3ef8.macOS compilation, focused tests, and live fixture route output are not available from this Linux environment. The
exact macOS commands and route matrix are documented in
REPORT-IMPL.md; their copied output must be added before merge.Verification
Added
DashboardMultiAccountSnapshotTestsfor generic projection, active selection, redaction, opaque IDs, row-localfailure, collection failure, single-account compatibility, and headless all-account resolution. Updated serve cache-mode
coverage and retained the existing claude-swap snapshot suite.
Pending on macOS:
swiftformat Sources Testsswiftlint --strictswift buildmake testmake checkWhat was not tested