Skip to content

Add Google and xAI models.dev pricing lookup - #2377

Closed
joeVenner wants to merge 9 commits into
steipete:mainfrom
joeVenner:codex/modelsdev-google-xai-models
Closed

joeVenner wants to merge 9 commits into
steipete:mainfrom
joeVenner:codex/modelsdev-google-xai-models

Conversation

@joeVenner

@joeVenner joeVenner commented Jul 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add an additive provider-aware models.dev lookup seam for Google/Gemini, Vertex AI, and xAI/Grok providers.
  • Map Gemini to google, Vertex AI to google-vertex with google fallback, and Grok to xai.
  • Wire those provider-scoped lookups into the Pi session runtime cost path and expose the supported providers through codexbar cost.

Proof

  • Previous-context check: PR Add GPT-5.6 Sol/Terra/Luna Codex pricing #2023 covered OpenAI GPT-5.6 pricing and Fix: Refresh pricing for unknown models #2018 covered unknown-model refresh behavior; neither mapped Google/xAI provider families through models.dev.
  • Absence check against current base returned no matches:
    git grep -n -E "gemini-3\.5-flash|gemini-3\.1-pro-preview|gemini-3\.1-flash-lite|grok-4\.5|grok-4\.3|grok-4\.20" origin/main -- Sources Tests docs
  • Source catalog check from https://models.dev/api.json showed:
    • google: gemini-3.5-flash / Gemini 3.5 Flash / input 1.5 / output 9 / cache_read 0.15 / context 1048576
    • google: gemini-3.1-pro-preview / Gemini 3.1 Pro Preview / input 2 / output 12 / cache_read 0.2 / context 1048576
    • google: gemini-3.1-flash-lite / Gemini 3.1 Flash Lite / input 0.25 / output 1.5 / cache_read 0.025 / context 1048576
    • xai: grok-4.5 / Grok 4.5 / input 2 / output 6 / cache_read 0.3 / context 500000
    • xai: grok-4.3 / Grok 4.3 / input 1.25 / output 2.5 / cache_read 0.2 / context 1000000
    • xai: grok-4.20-0309-reasoning / Grok 4.20 (Reasoning) / input 1.25 / output 2.5 / cache_read 0.2 / context 1000000
  • Runtime regression test writes cached models.dev fixture data with separate google, google-vertex, and xai rates, then verifies PiSessionCostScanner.loadDailyReport computes provider-scoped costs for Pi JSONL rows:
    • google / gemini-3.5-flash: 160 tokens, cost 0.0006015
    • google-vertex / gemini-3.1-pro-preview: 160 tokens, cost 0.0008171, proving Vertex uses the Vertex catalog before Google fallback
    • xai / grok-4.5: 160 tokens, cost 0.000503
  • Built CLI proof used an isolated temp home with a synthetic .pi/agent/sessions/2026-07-28T10-00-00-000Z_google-xai-proof.jsonl containing only assistant rows. No real account files, Keychain, or browser cookies were read. Command shape:
    HOME=[temp] CFFIXED_USER_HOME=[temp] XDG_CONFIG_HOME=[temp]/.config XDG_CACHE_HOME=[temp]/.cache .build/debug/CodexBarCLI cost --provider <provider> --format json --pretty --refresh
  • Built CLI output excerpts:
    { "provider" : "gemini", "source" : "local", "sessionTokens" : 160000, "sessionCostUSD" : 0.6015,
      "daily" : [{ "date" : "2026-07-28", "modelBreakdowns" : [{ "modelName" : "gemini-3.5-flash", "totalTokens" : 160000, "cost" : 0.6015 }] }] }
    { "provider" : "vertexai", "source" : "local", "sessionTokens" : 160000, "sessionCostUSD" : 0.802,
      "daily" : [{ "date" : "2026-07-28", "modelBreakdowns" : [{ "modelName" : "gemini-3.1-pro-preview", "totalTokens" : 160000, "cost" : 0.802 }] }] }
    { "provider" : "grok", "source" : "local", "sessionTokens" : 160000, "sessionCostUSD" : 0.503,
      "daily" : [{ "date" : "2026-07-28", "modelBreakdowns" : [{ "modelName" : "grok-4.5", "totalTokens" : 160000, "cost" : 0.503 }] }] }

Verification

  • CLANG_MODULE_CACHE_PATH=/private/tmp/codexbar-clang-cache swift test --disable-sandbox --scratch-path /Users/mosaab/Documents/Projects/CodexBar/.build --filter PiSessionCostScannerTests: 19 tests passed.
  • CLANG_MODULE_CACHE_PATH=/private/tmp/codexbar-clang-cache swift test --disable-sandbox --scratch-path /Users/mosaab/Documents/Projects/CodexBar/.build --filter 'provider lookup resolves current Google and xAI models': 1 test passed.
  • git diff --check: clean.
  • make check completed generated parser hash, package/docs/locales checks, SwiftFormat lint mode, and SwiftLint strict with 0 violations, then exited on the sandbox-only macOS plist cache write permission error after lint shutdown.

No live provider probes, browser-cookie imports, or Keychain reads were run.

@joeVenner

Copy link
Copy Markdown
Contributor Author

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

@clawsweeper clawsweeper Bot added 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. P2 Normal priority bug or improvement with limited blast radius. labels Jul 27, 2026
@clawsweeper

clawsweeper Bot commented Jul 27, 2026 •

Copy link
Copy Markdown

Codex review: found issues before merge. Reviewed August 23, 2026, 4:45 PM ET / 20:45 UTC.

ClawSweeper review

What this changes

Adds models.dev-based local Pi-session pricing and Cost CLI support for Gemini, Vertex AI, and Grok/xAI models.

Merge readiness

⛔ Blocked by patch quality or review findings - 7 items remain

Keep open: the PR’s xAI mapping routes developer-platform Pi records into the separate Grok provider, violating an established provider boundary; it is also merge-dirty against current main.

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

Review scores

Measure Result What it means
Overall readiness 🦪 silver shellfish (2/6) The submitted CLI proof is strong, but a P1 provider-boundary defect and dirty current-main integration prevent merge readiness.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (terminal): The PR body provides after-fix terminal output from an isolated synthetic Pi-session setup for all three proposed provider paths.
Patch quality 🦪 silver shellfish (2/6) 1 actionable review finding remain.

Verification

Check Result Evidence
Real behavior Verified Sufficient (terminal): The PR body provides after-fix terminal output from an isolated synthetic Pi-session setup for all three proposed provider paths.
Evidence reviewed 5 items Incorrect xAI routing: The PR maps the Pi provider strings xai and x.ai to Grok, so developer-platform records are reported as consumer Grok data.
Existing provider-separation contract: Current docs, unchanged from the PR base, explicitly separate xAI developer-platform billing from Grok consumer subscriptions and prohibit sharing credentials, balances, and identity.
Provider history: The current xAI/Grok split is maintained by recent provider work, including the live usage-and-spend publication commit.
Findings 1 actionable finding [P1] Route xAI Pi records to the xAI provider
Security None None.

Live Verification

Command: swift run CodexBarCLI cost --help

Result: FAIL (failed) — execution before step 1 run: sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.23.0.tgz

sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.23.0.tgz

Assertions:

  • FAIL expect_output: --provider

How this fits together

CodexBar parses local Pi session JSONL records, assigns them to a provider, obtains a cached models.dev rate, and presents calculated totals through the app and Cost CLI.

flowchart LR
A[Pi session records] --> B[Provider and model mapping]
B --> C[models.dev price lookup]
C --> D[Local cost calculation]
D --> E[App and Cost CLI totals]
Loading

Decision needed

Question Recommendation
Should Pi records labeled xai/x.ai become an explicitly isolated local-estimate source for the existing xAI developer-platform provider, or should this PR support only consumer Grok records? Preserve the current boundary: Map only consumer Grok records to Grok and defer xai/x.ai local estimates until an xAI-specific display contract is approved.

Why: The repository already requires strict Grok/xAI data separation, but it does not define whether local Pi estimates should coexist with xAI’s Management API billing surface.

Before merge

  • Route xAI Pi records to the xAI provider (P1) - xai and x.ai are currently folded into .grok, but the existing xAI documentation defines developer-platform xAI and consumer Grok as separate providers whose identity and balances are never shared. Those Pi records would therefore surface under the wrong provider. Split the aliases and cover the isolated behavior. Late finding: this mapping is unchanged since the previous reviewed head.
  • Resolve merge risk (P1) - Merging the current xai/x.ai mapping would place developer-platform session costs under Grok, producing a conflicting provider identity and cost source.
  • Resolve merge risk (P1) - The branch is merge-dirty against a substantially changed cost subsystem, so its old-base tests do not establish upgrade safety on current main.
  • Complete next step (P2) - A maintainer must choose the xAI local-estimate contract before a rebase can safely preserve the repository’s provider boundary.
  • Improve patch quality - Split xAI and Grok Pi-provider routing and add an isolation regression.
  • Improve patch quality - Rebase onto current main and repeat the isolated Cost CLI proof for each supported provider.

Findings

  • [P1] Route xAI Pi records to the xAI provider — Sources/CodexBarCore/PiSessionCostScanner.swift:903-904
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Patch footprint 764 added, 424 removed across 11 files The PR contains a broad ProviderArchitectureGatekeeperTests rewrite in addition to the provider-pricing feature.
Gatekeeper rewrite 275 added, 387 removed This test-only churn needs fresh reconciliation with current main rather than mechanical conflict resolution.

Merge-risk options

Maintainer options:

  1. Rebase with separate provider paths (recommended)
    Split the xAI and Grok aliases, then validate each provider’s output against current main before merge.
  2. Defer xAI local pricing
    Land only the Gemini, Vertex, and unambiguous Grok behavior if maintainers do not want local xAI estimates beside Management API billing.

Technical review

Best possible solution:

Rebase the Gemini and Vertex work onto current main, keep Grok and xAI session records isolated, and add xAI local estimates only if maintainers explicitly approve an xAI-specific presentation alongside its Management API billing data.

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

Not applicable: this PR proposes new local cost-reporting capability rather than repairing an existing reported failure.

Is this the best way to solve the issue?

No: the current mapping sends xAI developer-platform records to Grok; the safer solution preserves the documented provider boundary and requires an explicit xAI design if that source is supported.

Full review comments:

  • [P1] Route xAI Pi records to the xAI provider — Sources/CodexBarCore/PiSessionCostScanner.swift:903-904
    xai and x.ai are currently folded into .grok, but the existing xAI documentation defines developer-platform xAI and consumer Grok as separate providers whose identity and balances are never shared. Those Pi records would therefore surface under the wrong provider. Split the aliases and cover the isolated behavior. Late finding: this mapping is unchanged since the previous reviewed head.
    Confidence: 0.99
    Late finding: first raised on code an earlier review cycle already covered.

Overall correctness: patch is incorrect
Overall confidence: 0.99

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 63dc1cd520f0.

Labels

Label changes:

  • add merge-risk: 🚨 compatibility: The branch changes advertised provider cost support and must be reconciled with current provider behavior.
  • add merge-risk: 🚨 auth-provider: The current xAI alias mapping misroutes data across the repository’s distinct xAI and Grok provider identities.
  • add rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦞 diamond lobster and patch quality is 🦪 silver shellfish.
  • add status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (terminal): The PR body provides after-fix terminal output from an isolated synthetic Pi-session setup for all three proposed provider paths.
  • remove status: 👀 ready for maintainer look: Current PR status label is status: ⏳ waiting on author.
  • remove rating: 🐚 platinum hermit: Current PR rating is rating: 🦪 silver shellfish, so this older rating label is no longer current.
  • remove merge-risk: 🚨 automation: Current PR review merge-risk labels are merge-risk: 🚨 compatibility, merge-risk: 🚨 auth-provider.

Label justifications:

  • P2: This is a bounded provider-cost feature with a concrete pre-merge correctness issue.
  • merge-risk: 🚨 compatibility: The branch changes advertised provider cost support and must be reconciled with current provider behavior.
  • merge-risk: 🚨 auth-provider: The current xAI alias mapping misroutes data across the repository’s distinct xAI and Grok provider identities.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦞 diamond lobster and patch quality is 🦪 silver shellfish.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (terminal): The PR body provides after-fix terminal output from an isolated synthetic Pi-session setup for all three proposed provider paths.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body provides after-fix terminal output from an isolated synthetic Pi-session setup for all three proposed provider paths.

Evidence

What I checked:

  • Incorrect xAI routing: The PR maps the Pi provider strings xai and x.ai to Grok, so developer-platform records are reported as consumer Grok data. (Sources/CodexBarCore/PiSessionCostScanner.swift:903, 8dee931d9c8a)
  • Existing provider-separation contract: Current docs, unchanged from the PR base, explicitly separate xAI developer-platform billing from Grok consumer subscriptions and prohibit sharing credentials, balances, and identity. (docs/xai.md:13, 63dc1cd520f0)
  • Provider history: The current xAI/Grok split is maintained by recent provider work, including the live usage-and-spend publication commit. (Sources/CodexBarCore/Providers/XAI/XAIProviderDescriptor.swift:1, 3bfbffdcea58)
  • Current-main divergence: The PR head is not contained by main or a release tag, and the shared cost and provider paths changed substantially after its base; GitHub also reports the PR merge state as dirty. (8dee931d9c8a)
  • After-fix behavior proof: The PR body supplies isolated, synthetic Pi-session CLI output for Gemini, Vertex AI, and Grok without reading real account, Keychain, or browser data. (8dee931d9c8a)

Likely related people:

  • steipete: Current docs define the xAI/Grok data separation, and current-main history shows ongoing ownership of the provider surface. (role: xAI provider-boundary owner; confidence: high; commits: 8fc67d7f04ad, 63dc1cd520f0; files: docs/xai.md, Sources/CodexBarCore/Providers/XAI/XAIProviderDescriptor.swift)
  • Alec Gutman, Chip: Authored the recent merged work publishing live Grok tokens and xAI spend into the usage surface. (role: recent xAI/Grok usage contributor; confidence: medium; commits: 3bfbffdcea58; files: Sources/CodexBarCore/Providers/XAI/XAIProviderDescriptor.swift, Sources/CodexBarCore/Providers/Grok/GrokProviderDescriptor.swift)
  • iam-brain: Merged pricing-refresh work established the adjacent models.dev refresh path used by this proposal. (role: merged pricing-pipeline contributor; confidence: medium; commits: 0cb74ab2eab2; files: Sources/CodexBarCore/Vendored/CostUsage/CostUsagePricing.swift)

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 (34 earlier review cycles; latest 8 shown)
  • reviewed 2026-08-09T14:32:28.743Z sha 46c997f :: needs changes before merge. :: [P1] Update the provider capability gate expectations
  • reviewed 2026-08-09T20:12:22.152Z sha 46c997f :: needs changes before merge. :: [P1] Update provider-capability gate expectations
  • reviewed 2026-08-09T22:02:34.671Z sha 46c997f :: needs changes before merge. :: [P1] Update provider capability-gate expectations
  • reviewed 2026-08-09T22:50:38.143Z sha b836225 :: needs maintainer review before merge. :: none
  • reviewed 2026-08-09T23:13:17.775Z sha b836225 :: needs maintainer review before merge. :: none
  • reviewed 2026-08-12T09:14:33.055Z sha b836225 :: needs maintainer review before merge. :: none
  • reviewed 2026-08-15T15:26:49.465Z sha 034e534 :: needs changes before merge. :: [P1] Restore the current gatekeeper allowances
  • reviewed 2026-08-15T16:31:09.045Z sha 8dee931 :: needs maintainer review before merge. :: none

@joeVenner

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 28, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

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

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jul 28, 2026
@joeVenner

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 28, 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:

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed 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. labels Jul 28, 2026
@joeVenner
joeVenner force-pushed the codex/modelsdev-google-xai-models branch from 2d19620 to b99340f Compare July 31, 2026 17:30
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jul 31, 2026
@clawsweeper clawsweeper Bot removed the rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. label Aug 12, 2026
@joeVenner
joeVenner force-pushed the codex/modelsdev-google-xai-models branch from b836225 to 034e534 Compare August 15, 2026 15:20
@clawsweeper clawsweeper Bot added merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Aug 15, 2026
…DevCostUSD out of enum to satisfy lint limits
ClawSweeper flagged that a custom codexHomePath should continue to suppress merging default Pi-session spend. Add a test verifying ambient scans merge Pi while scoped scans do not.
After rebasing the Google/xAI models.dev pricing work, ProviderArchitectureGatekeeperTests failed because new provider-specific branches (Gemini, Grok, VertexAI) appeared in shared cost code and existing allowlist anchors shifted. Add '// Provider-specific by design:' markers at each provider-owned dispatch point, update the gatekeeper's hardcoded supportsTokenSnapshot set and shifted suppressed references, and remove obsolete CostUsageFetcher/PiSessionCostScanner allowlist entries whose anchors no longer match.

Closes provider-architecture gatekeeper failures on the Google/xAI rebase.
@joeVenner
joeVenner force-pushed the codex/modelsdev-google-xai-models branch from 034e534 to 8dee931 Compare August 15, 2026 16:27
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 15, 2026
@clawsweeper clawsweeper Bot added 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. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. labels Aug 23, 2026
@steipete

Copy link
Copy Markdown
Owner

Thanks @joeVenner. Shared exact Google/Vertex/xAI catalog pricing is available through #3676, but direct Pi backend support remains missing. This patch routes Pi xai usage into Grok; current main separates developer-platform xAI billing from Grok/SuperGrok subscriptions. It also falls back from Vertex to Google, while current resolver tests preserve the observed route. I recommend closing this implementation and carrying the remaining support into a provider-preserving Pi rewrite, with standalone Pi and combined CLI accounting tests.

@steipete steipete closed this Sep 22, 2026
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. P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants