Clarify CodexBar spend overview and share card - #3892
Chipagosfinest wants to merge 18 commits into
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 real behavior proof before merge. Reviewed September 24, 2026, 12:49 AM ET / 04:49 UTC (Revision 12). ClawSweeper reviewWhat this changesRedesigns the Overview spend summary and locally generated share image, adds a widget link to the share preview, and updates packaging, tests, and design documentation. Merge readiness⛔ Blocked before merge - 5 items remain The PR adds a distinct share-card design and widget entry point that current main does not provide. Keep it open: a source-level overflow remains, the available visuals do not prove the latest packaged export or widget click, and the loss of provider context needs an owner decision. Priority: P2 Review scores
Verification
How this fits togetherCodexBar turns local usage and spend history into the Overview menu and a shareable image. The PR also lets a widget open that image’s preview in the app. flowchart LR
A[Local usage history] --> B[Spend summary]
B --> C[Overview menu]
B --> D[Share payload]
D --> E[Share preview]
E --> F[Copied or saved image]
G[Widget share control] --> E
Decision needed
Why: The branch intentionally replaces the existing provider and subscription rows with a model-family composition; source inspection cannot settle the intended information tradeoff. Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Ship a compact share card that keeps its amounts, coverage, and model mix interpretable, with safe arithmetic and a verified packaged-app export and widget handoff. Do we have a high-confidence way to reproduce the issue? Yes for the overflow path: five distinct positive model families at Int.max reach an out-of-range Double-to-Int conversion in the folded segment. The actual packaged export and widget click have not been observed. Is this the best way to solve the issue? Unclear. The compact presentation is coherent, but safe tail arithmetic, real export proof, and an owner decision on provider context are needed before it can be judged the best replacement. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 5f70bfc33607. LabelsLabel changes: No label changes. Label 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 (11 earlier review cycles; latest 8 shown)
|
…dget-redesign # Conflicts: # docs/llms.txt
showsSupplementalContent was always true at its only call site after notes and provider details were restored, so only the inline dashboard flag remains. ShareStatsRoute.parse already required an exact URL match, which made the component checks after it unreachable. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Replace the circular provenance test with one that drives the builder, and cover exact-URL route parsing, pending-route delivery before the status controller exists, model-family merging and tail folding, overflow and empty mixes, and per-currency Overview spend amounts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dget-redesign # Conflicts: # docs/llms.txt
|
Thanks @Chipagosfinest for the research and implementation. Closing this proposal: the current head includes a share-card and Overview redesign, widget controls, and a new URL route, beyond the bounded wording change under review. The new “LOCAL USAGE LOGS” footer is not valid for provider-reported or mixed inputs, and list-price provenance does not establish that activity was “not billed.” The complete-provider/partial-model behavior from #3817 is already retained on main. We are keeping the current presentation and not adopting this patch. |
Status
Reviewable source and synthetic visual proof. A debug app package built and passed signature/integrity checks at
d12fc80e5, but image export and warm/cold widget-link behavior remain unverified. This PR is not merge-ready yet.Current changes
12/all.Visual proof
Both images below are native SwiftUI renders with synthetic data from before the
d12fc80e5footer copy change. They demonstrate the composition and bounded currency rows, but are not after-fix exports or packaged-app proof.The design note records the hierarchy, reference boundary, and critique. The consumption research covers the menu, Spend & Usage, widget, and share preview.
Earlier Overview flow mock and native summary render predate the latest note, detail, and pricing-coverage fixes and should not be treated as after-fix proof.
Verification and gates
swift build --jobs 4, targeted SwiftFormat and strict SwiftLint, andgit diff --checkpassed on the latest local source. The exact SwiftUI card view was rendered at 1200 × 630 with one and four synthetic currencies and inspected at social preview size../Scripts/package_app.sh debugcompleted atd12fc80e5; the separatecom.steipete.codexbar.debugbundle and embedded widget passed the packaging integrity/signature checks. The packaged binary SHA-256 is121d7dc603225562fd80cfcdcee4dd4b46a50ff7fbe49d3bee59252f7091b75a. The installed app was left running.open -a CodexBar.app codexbar://share/overviewstarted its process (PID 71742); issuing the same URL while it ran kept that PID. This confirms OS-level cold launch and warm delivery requests only. Native UI capture timed out (also for Preview), so the preview, saved PNG, and actual widget click remain unverified. No private usage image is posted.d12fc80e5is pending. The preceding head had one macOS shard fail in an unchanged provider-plugin timeout test; the remaining build/lint/shard checks passed. No local test suite or live account probe was run in this pass.