Add opt-in multi-account dashboard snapshots - #3832
roboclaw-bot wants to merge 5 commits into
Conversation
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
|
🦞👀 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: blocked before merge. Reviewed September 21, 2026, 11:57 AM ET / 15:57 UTC (Revision 5). ClawSweeper reviewWhat this changesAdds an opt-in --all-accounts flag to CLI and HTTP dashboard snapshots, grouping local accounts while preserving selected-account fields and showing account-specific results. Merge readiness⛔ Blocked before merge - 2 items remain This remains a useful, distinct contribution: current main lacks the requested dashboard expansion, both earlier findings are addressed, and the supplied runtime evidence supports the implementation. Repository policy also excludes automatic closure. Priority: P2 Review scores
Verification
How this fits togetherCodexBar’s dashboard collects usage from locally configured providers and presents it as JSON or browser cards. The shared collector feeds both the one-shot CLI command and the authenticated HTTP endpoint. flowchart TD
A[Local account configuration] --> B[Account scope selection]
C[Dashboard command or authenticated request] --> B
B --> D[Provider usage collection]
D --> E[Completed results and account errors]
E --> F[Selected account and grouped snapshot]
F --> G[CLI JSON or browser cards]
Decision needed
Why: The patch adds supported CLI surface, and the supplied discussion contains no maintainer acceptance of that product scope. Before merge
Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Adopt the shared, opt-in dashboard projection while preserving selected-account defaults and keeping remote-client and credential-recovery work separate. Do we have a high-confidence way to reproduce the issue? Not applicable as a new capability; current-main source confirms selected-account dashboard collection, and supplied integration captures demonstrate the proposed expansion. Is this the best way to solve the issue? Yes: reusing existing account discovery and the shared snapshot producer is a focused solution, with unchanged defaults and no separate credential implementation. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 94ca725b4c37. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (4 earlier review cycles)
|
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Summary
--all-accountssupport tocodexbar servedashboard snapshots andcodexbar dashboard, reusing existing Codex profile/managed-account discovery and configured token-account fetching.providers[].accounts[]contract. Keep provider-level fields and cache metadata attached to the selected account, even when it is not first in discovery order./usagebehavior, and the existing claude-swap integration. No remote client, Sync settings, Keychain changes, or new dependencies.Related: extracts the server-side scope discussed in #3791; that PR is unchanged.
Verification
Current source:
123bb7b27d3a998ffeafca0e4dcc89f76e963f36. Runtime captures below use0601278c0; subsequent revisions only add explanatory comments and update renderer tests, without changing production behavior.DashboardMultiAccountTeststests, including parameterized cases: passed. Collector-level coverage now drives a real shared provider deadline, retains completed account data for both coalesced waiters, isolates changed configurations, and verifies unchanged default timeout behavior.make test: passed all 8 groups covering 87 discovered selections, with no failures, retries, or timeouts../Scripts/lint.sh lint-linux: passed, including portable checks, JavaScript/TypeScript checks, and strict SwiftLint on 2,539 configured files. The new Linux test file was also linted explicitly.git diff --check, documentation links, and CLI smoke checks: passed.make check, focused account/deadline/rendering/architecture regressions, both fullmake testshards, and QuickJS/JavaScriptCore plugin-engine parity. The two full shards passed all 87 and 86 groups, covering all 1,308 discovered selections, with zero failures, retries, or timeouts. Successful independent macOS run.Both review findings are addressed: completed siblings survive a slow account's deadline, and the selected Codex credit balance stays visible on its own card (not on sibling or claude-swap cards).
Runtime and visual proof
Curated proof bundle and command details
The actual compiled CLI and authenticated HTTP server read two isolated Codex profile homes and fetched usage from a loopback-only mock provider through the existing
chatgpt_base_urlsetting. These are executable integration results using synthetic credentials, not live-provider validation. No real accounts, browser cookies, or Keychain access were used.Before
After
Upstream GitHub Actions still requires maintainer approval for the fork. Independent fork verification does not approve or replace that gate. The PR remains ready for review; it is not merged.
Worked on by
Work sessions