Skip to content

Add CLIProxyAPI cost attribution - #2457

Open
EClinick wants to merge 75 commits into
steipete:mainfrom
EClinick:task/ec/codex-proxy-attribution
Open

Add CLIProxyAPI cost attribution#2457
EClinick wants to merge 75 commits into
steipete:mainfrom
EClinick:task/ec/codex-proxy-attribution

Conversation

@EClinick

@EClinick EClinick commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • attribute Claude Code sessions routed through CLIProxyAPI using endpoint, installation, inventory, and request-log evidence
  • price confirmed proxied GPT usage in Codex totals while preserving route, backend, and auth provenance
  • surface proxy attribution in the spend dashboard and collect bounded CLIProxyAPI telemetry
  • serialize destructive telemetry collection and preserve full dashboard and synthetic-project attribution identities
  • keep proxy telemetry present for scoped callers while loading it exactly once beside account-scoped dashboard sources
  • persist each destructive queue batch before the next pop and surface cache-write failures
  • enforce the 366-day telemetry retention cutoff even when the proxy queue is empty
  • preserve request-log attribution beyond the newest 500 files
  • load the siloed proxy source for Claude-only dashboard configurations
  • retain Claude-only proxy spend through forced-refresh reconciliation
  • skip telemetry cache rewrites when an empty queue poll leaves the cache unchanged
  • filter expired telemetry during cache reads even when collection is unavailable
  • make request-log attribution loading cancellation-aware in full and cached scan paths
  • price aliased proxy usage from the telemetry-resolved upstream model
  • quarantine unresolved known foreign models from Claude totals while preserving confirmed non-Codex proxy attribution
  • refresh and retry proxy-only scans when a telemetry-confirmed upstream model is still unpriced
  • request refreshed pricing for the telemetry-resolved upstream model when its Claude-facing alias differs
  • resolve OpenAI-compatible proxy models across vendor catalogs after refresh instead of treating transport as vendor
  • keep global CLIProxyAPI supplemental usage out of account-scoped Codex scans
  • index retained proxy telemetry by canonical model and binary-search its bounded timestamp window
  • cache parsed CLIProxyAPI request logs by path, modification date, and size while pruning deleted paths
  • preserve explicit full-rescan semantics by bypassing the request-log cache when forced
  • resolve the default CLIProxyAPI home when hydrating cached spend through the production cache-root initializer
  • prefer timestamped request-log observations over undated fallbacks during telemetry correlation
  • migrate cost caches and add cross-provider regression coverage

Verification

  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer make check
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer make test (725 selections, 61 groups, all passed on the first attempt)
  • swift test --filter SpendDashboardProxyAttributionTests
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --filter CLIProxyAPIAttributionResolverTests (24 tests)
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --filter CostUsageFetcherCacheSnapshotTests (13 tests)
  • swift test --filter CostUsageFetcherTests (18 tests)
  • focused resolver and fetcher suites together (40 tests)
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --filter CostUsageFetcherUnknownModelPricingTests (7 tests)
  • swift test --filter SpendDashboardCodexProxySourceTests (2 tests)
  • swift test --filter SpendDashboardForceStateMachineTests (14 tests)
  • focused resolver, proxy-source, and dashboard-controller suites (47 tests)
  • focused SpendDashboardTokenProvenanceTests, SpendDashboardControllerTests, CostUsageCacheTests, and CostUsageScannerClaudeFableTests

Remaining proof

  • A redacted live CLIProxyAPI-routed Claude Code run has not been collected in this PR. Automated tests use isolated fixtures and stubbed queue clients; they do not claim production-account or Keychain validation.

Copilot AI review requested due to automatic review settings July 25, 2026 23:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@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: c82dab5a6d

ℹ️ 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 Sources/CodexBarCore/CLIProxyAPIAttributionResolver.swift
Comment thread Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift Outdated
Comment thread Sources/CodexBar/SpendDashboardModel.swift Outdated
Comment thread Sources/CodexBarCore/CostUsageFetcher.swift
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. labels Jul 26, 2026
@clawsweeper

clawsweeper Bot commented Jul 26, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed July 30, 2026, 7:28 PM ET / 23:28 UTC.

ClawSweeper review

What this changes

Adds optional CLIProxyAPI connection settings, collects and correlates proxy telemetry with Claude Code history, and displays confirmed upstream spend attribution in CodexBar's Spend Dashboard.

Merge readiness

Blocked until real behavior proof from a real setup is added - 6 items remain

Keep this PR open for human review. The patch has addressed the prior concrete review findings, but its own description confirms that no redacted after-fix run has exercised the real CLIProxyAPI queue, credential, request-log, cache, and Spend Dashboard path; the new optional integration and retention behavior also need maintainer product acceptance. Likely related people: steipete is the low-confidence routing candidate for the existing cost-tracking product surface and whether this integration belongs in it.

Priority: P2
Reviewed head: ae3aaf1f1ef90cb22b0ce57d159872d05f0a5264
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🧂 unranked krab (1/6) The implementation has substantial regression coverage and appears to have resolved prior code findings, but missing real behavior proof remains a merge gate for this external telemetry integration.
Proof confidence 🧂 unranked krab (1/6) Needs real behavior proof before merge: Focused tests and CI are useful supplemental evidence, but the PR explicitly lacks a redacted after-fix CLIProxyAPI-routed Claude Code run showing the real proxy, queue, cache, and Spend Dashboard result; redact keys, endpoints, IP addresses, and other private details in any proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Patch quality 🦐 gold shrimp (3/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Needs proof Needs real behavior proof before merge: Focused tests and CI are useful supplemental evidence, but the PR explicitly lacks a redacted after-fix CLIProxyAPI-routed Claude Code run showing the real proxy, queue, cache, and Spend Dashboard result; redact keys, endpoints, IP addresses, and other private details in any proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed 4 items PR scope: The PR changes 39 files with 7,735 additions and 238 deletions, adding proxy connection settings, destructive-queue telemetry collection, durable cache handling, attribution resolution, and dashboard presentation.
Prior review findings addressed: The review discussion records fixes and focused regressions for route isolation, destructive queue persistence, retention, disconnect races, cache coordination, and unkeyed-row reconciliation; the latest head commit is the stated reconciliation repair.
Real behavior proof remains absent: The PR body expressly says a redacted live CLIProxyAPI-routed Claude Code run has not been collected and that the listed verification uses fixtures and stubbed queue clients.
Findings None None.
Security None None.

How this fits together

CodexBar scans local provider histories and cached usage data to build per-provider spending reports. This PR adds CLIProxyAPI telemetry and request-log correlation so Claude Code usage routed through a proxy can be displayed under a confirmed upstream provider without mixing provider identities.

flowchart LR
    A[Claude Code history] --> D[Attribution resolver]
    B[CLIProxyAPI request logs] --> D
    C[CLIProxyAPI usage queue] --> E[Durable telemetry cache]
    E --> D
    D --> F[Cost and provider reports]
    F --> G[Spend Dashboard]
    H[Connection settings] --> C
Loading

Decision needed

Question Recommendation
Should CodexBar ship optional CLIProxyAPI connection settings and retained proxy telemetry as part of its core Spend Dashboard attribution model? Sponsor the integration: Accept the CLIProxyAPI attribution model after redacted live proof confirms the real queue-to-dashboard path and the retention behavior is acceptable.

Why: The patch adds a new external integration, credential/configuration surface, and persistent telemetry behavior; tests can validate mechanics but cannot determine whether this product boundary and retention model are desired.

Before merge

  • Add real behavior proof - Needs real behavior proof before merge: Focused tests and CI are useful supplemental evidence, but the PR explicitly lacks a redacted after-fix CLIProxyAPI-routed Claude Code run showing the real proxy, queue, cache, and Spend Dashboard result; redact keys, endpoints, IP addresses, and other private details in any proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
  • Resolve merge risk (P1) - Merging changes how Claude Code rows can be assigned to Codex or other upstream providers; an attribution false positive can move existing spend between provider totals and subscription views.
  • Resolve merge risk (P1) - The integration persists proxy telemetry and coordinates destructive queue pops across cache, disconnect, and clear-cache flows, so a real run is needed to validate credentials, queue semantics, and retained-data behavior beyond fixtures.
  • Resolve merge risk (P1) - The new optional connection settings and telemetry-retention contract are product-surface choices, not only an implementation detail.
  • Complete next step (P2) - The remaining blocker is contributor-provided live proof plus maintainer product acceptance, neither of which is a safe automated repair task.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Patch surface 39 files; 7,735 added, 238 removed The change spans UI, provider accounting, persistent caches, CLI behavior, and many regression suites, so merge review needs evidence beyond unit coverage.
Review iterations 75 commits; 35 completed ClawSweeper cycles Prior functional concerns were repeatedly repaired, but the remaining live-proof gap is still material because the patch handles an external destructive queue.

Merge-risk options

Maintainer options:

  1. Prove and document the upgrade path (recommended)
    Before merge, add a redacted live run and review how existing Claude, Codex, cache-clear, and disconnect workflows behave when proxy attribution is enabled.
  2. Accept the attribution contract
    Maintainers may merge after explicitly accepting that confirmed proxy usage is represented as a distinct Codex-side source rather than an ambient account subscription.
  3. Pause the integration
    Pause or close this PR if CodexBar should not own external CLIProxyAPI credentials, telemetry retention, and provider reassignment in the core app.

Technical review

Best possible solution:

Require a redacted live CLIProxyAPI-routed Claude Code run that shows the proxy collection and resulting dashboard attribution, then have the product owner explicitly accept the optional settings, telemetry retention, and provider-accounting model before merge.

Do we have a high-confidence way to reproduce the issue?

Not applicable: this PR proposes a new optional integration rather than reporting an established broken behavior. The relevant merge proof is an after-fix CLIProxyAPI-routed Claude Code run, which the PR explicitly says is still absent.

Is this the best way to solve the issue?

Unclear: the design is extensively tested and prior patch defects were addressed, but a maintainer must first accept the new core integration and live evidence must confirm the real queue, credentials, cache, and dashboard path.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 8ef86077e70a.

Labels

Label justifications:

  • P2: This is a substantial optional provider-attribution improvement with bounded user impact, not an established release-blocking regression.
  • merge-risk: 🚨 compatibility: The patch changes provider grouping, cached cost data, dashboard sources, and clear-cache/disconnect behavior for existing installations.
  • merge-risk: 🚨 auth-provider: Attribution depends on CLIProxyAPI endpoint and management-key configuration plus upstream authentication provenance.
  • merge-risk: 🚨 other: The new destructive telemetry queue and 366-day durable retention lifecycle need real-world validation beyond isolated fixtures.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🦐 gold shrimp.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: Focused tests and CI are useful supplemental evidence, but the PR explicitly lacks a redacted after-fix CLIProxyAPI-routed Claude Code run showing the real proxy, queue, cache, and Spend Dashboard result; redact keys, endpoints, IP addresses, and other private details in any proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Evidence

What I checked:

  • PR scope: The PR changes 39 files with 7,735 additions and 238 deletions, adding proxy connection settings, destructive-queue telemetry collection, durable cache handling, attribution resolution, and dashboard presentation. (Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift:1, ae3aaf1f1ef9)
  • Prior review findings addressed: The review discussion records fixes and focused regressions for route isolation, destructive queue persistence, retention, disconnect races, cache coordination, and unkeyed-row reconciliation; the latest head commit is the stated reconciliation repair. (Tests/CodexBarTests/CostUsageFetcherCLIProxyAttributionReconciliationTests.swift:1, ae3aaf1f1ef9)
  • Real behavior proof remains absent: The PR body expressly says a redacted live CLIProxyAPI-routed Claude Code run has not been collected and that the listed verification uses fixtures and stubbed queue clients. (ae3aaf1f1ef9)
  • Repository policy applied: The repository policy requires provider data to remain siloed, cautions that CLI status output is not a trustworthy usage source, and requires focused test seams rather than real Keychain/provider reads unless explicitly requested; those constraints materially apply to this attribution and telemetry change. (AGENTS.md:42, 8ef86077e70a)

Likely related people:

  • steipete: The decision is primarily whether CodexBar's existing local cost-tracking and provider-attribution surface should own this optional CLIProxyAPI integration; no stronger current-main file-history owner could be established from the available read-only review evidence. (role: likely product owner; confidence: low; files: Sources/CodexBarCore/CostUsageFetcher.swift, Sources/CodexBar/SpendDashboardController.swift)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Post a redacted terminal, log, or recording-based live run from a CLIProxyAPI-routed Claude Code session through the resulting Spend Dashboard attribution.
  • Have a maintainer confirm that the optional settings, telemetry retention, and provider-source presentation are accepted product behavior.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (35 earlier review cycles; latest 8 shown)
  • reviewed 2026-07-30T02:42:06.442Z sha ff3287d :: needs real behavior proof before merge. :: [P1] Avoid unrecoverable destructive queue pops
  • reviewed 2026-07-30T03:10:41.767Z sha 8fd2dd4 :: needs real behavior proof before merge. :: [P1] Avoid unrecoverable destructive queue pops
  • reviewed 2026-07-30T11:21:54.948Z sha 71592d4 :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-30T11:37:58.978Z sha 20ada6b :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-30T13:35:11.653Z sha ff8417f :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-30T13:54:20.970Z sha 53ff713 :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-30T14:42:33.241Z sha 202ffee :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-30T23:02:27.178Z sha 92b6cdd :: needs real behavior proof before merge. :: none

Copy link
Copy Markdown
Contributor Author

@codex review

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 27, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Command router queued. I will update this comment with the next step.

@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: c3bedb05f8

ℹ️ 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 Sources/CodexBarCore/CostUsageFetcher.swift Outdated
Comment thread Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift Outdated
Comment thread Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift Outdated

Copy link
Copy Markdown
Contributor Author

Follow-up fixes are pushed in 0f4bda0 and the three current review threads have been addressed.

@codex review
@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 27, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@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: 0f4bda0d9a

ℹ️ 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 Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift Outdated

Copy link
Copy Markdown
Contributor Author

The current-head retention finding is fixed in e9b111e and its review thread is addressed.

@codex review
@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 27, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@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: e9b111ef6c

ℹ️ 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 Sources/CodexBarCore/CLIProxyAPIAttributionResolver.swift Outdated
Comment thread Sources/CodexBar/SpendDashboardController.swift Outdated
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jul 27, 2026
@EClinick

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@clawsweeper

clawsweeper Bot commented Jul 27, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: 71592d4ff1

ℹ️ 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 Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift
@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

Reviewed commit: 20ada6b229

ℹ️ 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".

@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: fdf7763251

ℹ️ 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 Sources/CodexBarCore/Vendored/CostUsage/CostUsageScanner+Claude.swift Outdated
Comment thread Sources/CodexBarCore/CLIProxyAPIAttributionResolver.swift Outdated
Comment thread Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift Outdated
@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: ff8417f2c4

ℹ️ 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 Sources/CodexBar/UsageStore+CLIProxyAPI.swift
@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: 53ff713ae1

ℹ️ 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".

@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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


P2 Badge Exclude proxy rows from the share-card subscription list

When CLIProxyAPI spend exists, this helper corrects the dashboard count, but ShareStatsBuilder.make still maps every group.providers row into payload.providers (ShareStatsPayload.swift:320-331). The synthetic codex:cliproxyapi row is therefore rendered by ShareStatsCardView as one of the user’s “subscriptions” and “CONNECTED” sources (ShareStatsCardView.swift:116-124), even though it represents attribution data rather than a subscription. Apply the same ID exclusion when constructing the share-card provider list while retaining its spend in totals/models.

ℹ️ 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".

@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: 202ffeee5b

ℹ️ 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 Sources/CodexBar/UsageStore+CLIProxyAPI.swift
Comment thread Sources/CodexBarCore/CLIProxyAPIUsageTelemetry.swift Outdated
@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: 851586b06a

ℹ️ 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 Sources/CodexBarCore/Vendored/CostUsage/CostUsageScanner+Claude.swift Outdated
@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: 92b6cddd42

ℹ️ 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 Sources/CodexBarCore/Vendored/CostUsage/CostUsageScanner+Claude.swift Outdated
@EClinick

Copy link
Copy Markdown
Contributor Author

@codex review

@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: ae3aaf1f1e

ℹ️ 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 Sources/CodexBarCore/CostUsageFetcher.swift
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 auth-provider 🚨 Merging this PR could break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P2 Normal priority bug or improvement with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants