Skip to content

Show a 0% Grok usage bar for a period with no usage yet - #3294

Closed
olddonkey wants to merge 3 commits into
steipete:mainfrom
olddonkey:fix/grok-zero-usage-bar
Closed

Show a 0% Grok usage bar for a period with no usage yet#3294
olddonkey wants to merge 3 commits into
steipete:mainfrom
olddonkey:fix/grok-zero-usage-bar

Conversation

@olddonkey

@olddonkey olddonkey commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Problem

A Grok billing period that has not recorded usage yet renders no usage bar at all. The card falls back to the explicit failure message instead:

Grok card before the fix

The cause is on the wire. grok.com's credits frame carries the usage percentage as a proto3 scalar, so a period whose usage is exactly zero omits the field entirely — "zero" and "not reported" are byte-identical. GrokWebBillingFetcher already handles that: when the frame carries a live period and no percentage anywhere, it reads the value as 0 and marks it usedPercentIsWirePublished = false.

The enrichment gate added in #3181 then refused that reading, because promoting an inferred percent is what rebuilt the fabricated 0% that #3157 removed. So the resolver fell back to the credits proxy's unknown percent, toUsageSnapshot() built no primary rate window, and the card showed usageUnavailableMessage. Every account sees this from the moment its period resets until its first request lands.

What this changes

One guard in GrokOAuthFetchStrategy.resolvingUnknownUsage:

guard let percent = grpcSnapshot.usedPercent,
      grpcSnapshot.usedPercentIsWirePublished || percent == 0
else { return proxyAnswer }

Three properties keep #3157's fabricated zero from returning through it:

  1. The credits proxy cannot reach this branch. It never constructs an inferred value — when it has no percentage it returns nil (GrokCreditsProxyFetcher), so the surface that caused Grok: period-only CLI-proxy response reports 0% after Grok Build says free usage limit reached #3157 is untouched.
  2. The adopted zero stays marked. completing(with:) preserves usedPercentIsWirePublished = false, so no downstream consumer mistakes it for a published reading.
  3. Only zero is accepted. Any other inferred value is still refused, with a regression pinning that so a future parser change cannot widen this quietly.

Real-account proof

Produced on this head against a real SuperGrok account whose weekly period had just reset, using the shipped fetchers and the shipped resolver. Redacted transcript:

CODEXBAR_LIVE_GROK_ZERO_PROOF=1 \
CODEXBAR_LIVE_GROK_ZERO_PROOF_DIR=.github/pr-proof \
swift test --filter GrokZeroUsageLiveProofTests

branch=grok_web_no_usage_yet_zero
proxy_used_percent=nil
proxy_has_period=true
grok_web_used_percent=0.0000
grok_web_percent_is_wire_published=false
resolved_used_percent=0.0000
resolved_percent_is_wire_published=false
resolved_source=grok-web
resolved_resets_at=2026-09-06Z
renders_usage_bar=true

The card rendered from that live result, with personal information hidden:

Grok card from the live account after the fix

GrokZeroUsageLiveProofTests reads the bearer from ~/.grok/auth.json — the same file the provider reads — and touches neither the Keychain nor browser cookies. It makes one request per surface, prints aggregate fields only, and asserts the resolver's contract on whichever of the four branches the account exercises, so it stays meaningful (and green) once the period records usage.

The fixture-rendered before/after pair is still in the PR, produced by GrokZeroUsageScreenshotRenderTests from the real snapshot and card types:

Grok card after the fix, rendered from fixtures

ClawSweeper 2026-08-30 review — each item answered

  • Add real behavior proof. The transcript and card above are from a real newly reset account, not fixtures. This is maintainer option 1 from that review, "validate the no-usage account shape".
  • Merge risk P1 — the before/after cards were fixture-rendered. Resolved by the live card, which is rendered from the resolver's real output.
  • Merge risk P1 — the exact-zero exception relies on the parser heuristic; an unobserved frame that withholds a nonzero percentage with the same period shape would display 0%. Partly measured, not fully closable — see below.
  • Next step P2 — contributor evidence plus a maintainer decision. Evidence is above; the decision is stated below.

The 2026-08-31 re-review raised one more, now fixed:

  • P2 — update the Grok fallback contract, and the matching P2 merge risk. docs/grok.md still described the pre-change rule: only a wire-published percentage adopted, with the parser's no-usage-yet zero explicitly rejected. It now describes what the resolver does, why the frame cannot publish an exact zero, what stays refused, and that the reading is an inference from frame shape rather than a value the surface stated. The parser section, which already documented the omitted scalar as zero usage, now says the retry adopts that reading, and the SuperGrok Heavy note is scoped to the credits payload it was describing.

Residual limitation, stated plainly

Because a proto3 scalar omits an exact zero, no client can distinguish "the period is at 0%" from "this surface declined to publish a percentage" by inspecting the frame alone. The parser's requirements narrow it — the frame must carry a live period, usage-period evidence, and no percentage anywhere — and the live run above shows a real account hitting exactly that shape on a fresh period.

What supports reading it as a genuine zero:

  • The same account and surface published 20.0 on 2026-08-22 while its period had usage, so this surface does publish nonzero percentages rather than withholding them. That measurement predates this branch and I have not re-run it on this head; the current period is at zero, so it cannot be reproduced until the account records usage again.
  • The frame enumerates its products, and product percentages are omitted under the same proto3 rule, so "no percentage anywhere" is the shape of every product reporting zero.

What is not closable in code: if some plan or outage state ever returns a live period while withholding a nonzero percentage, this change shows 0% where main shows the failure message. The failure mode is bounded to the grok.com surface and to accounts whose credits proxy publishes no percentage.

Maintainer decision. If you would rather not carry that inference at all, the conservative alternative is to keep usage unknown and replace the red failure text with a neutral "no usage reported for this period yet" line plus the reset time. That keeps main's semantics and removes only the alarm; say the word and I will swap this PR to that shape.

Testing

Verified on exact head 8e61b2e3fcd5dd39ac37dc15cc42e9c28c0f61b5:

  • make check: passed — SwiftFormat clean, SwiftLint 0 violations in 2065 files, provider/package/documentation and repository-size gates green.
  • make test: passed on 31ced6bcb — 976/976 selections, 82/82 groups successful on the first pass, 0 failed groups, 0 retries, 0 timeouts (678.5 s). The only change since that run is the docs/grok.md reconciliation, covered by make check's documentation gates and DocumentationLinkTests 8/8.
  • Focused: GrokCreditsProxyFetcherTests, GrokWebBillingFetcherTests, GrokAccountContextTests — 85 tests, all passing.
  • Regression proof: with the guard reverted, an inferred grok dot com zero restores the bar without claiming a published percent fails on all three assertions (usedPercent → nil, the wire-published marker, and sourceLabel → "grok-cli-proxy").
  • Rebased on upstream main 83977905e, 0 behind, git diff --check clean.

Both proof tests are opt-in and skipped by default, so CI behavior is unchanged.

@clawsweeper

clawsweeper Bot commented Aug 30, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 30, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-30T20:39:27.680928Z 1b8df5e PR opened
🔒 Security Review Completed 2026-08-30T20:40:24.667808Z 1b8df5e PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@clawsweeper clawsweeper Bot added merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P2 Normal priority bug or improvement with limited blast radius. 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 Aug 30, 2026
@clawsweeper

clawsweeper Bot commented Aug 30, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed August 30, 2026, 10:21 PM ET / August 31, 2026, 02:21 UTC.

ClawSweeper review

What this changes

The PR lets Grok’s fallback display a 0% usage bar for the parser’s no-usage-yet billing frame, with regression tests, opt-in live proof, documentation, and release notes.

Merge readiness

⚠️ Ready for maintainer review - 3 items remain

Keep this PR open for a maintainer policy choice. The previous documentation blocker is fixed and the real-account proof is sufficient, but the new exception deliberately treats an indistinguishable absent field as 0%, reversing the fail-closed behavior established for missing usage data.

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

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) Strong real-path evidence, focused regression coverage, and reconciled docs support a good patch, with acceptance pending only on the disclosed provider-data policy.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (terminal): The changed production owner is the Grok unknown-usage resolver; the supplied redacted terminal trace runs the real CLI proxy and Grok billing fetcher against a newly reset account, passes their snapshots through that resolver, and reports inferred 0%, the retained non-wire marker, a Grok-web source, and a rendered usage bar. The prepared live-card image independently shows the resulting Weekly 0% card without personal data.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (terminal): The changed production owner is the Grok unknown-usage resolver; the supplied redacted terminal trace runs the real CLI proxy and Grok billing fetcher against a newly reset account, passes their snapshots through that resolver, and reports inferred 0%, the retained non-wire marker, a Grok-web source, and a rendered usage bar. The prepared live-card image independently shows the resulting Weekly 0% card without personal data.
Evidence reviewed 6 items Introduced behavior is absent from the pinned main parent: The verified test merge has pinned main as its first parent and this head as its second; its Grok resolver hunk changes the former wire-published-only guard to accept an inferred zero.
Parser has a deliberately inferred-zero path: The Grok billing parser produces a non-wire-published zero only when it finds a future reset and usage-period evidence with no fixed32 percentage field; the protocol still cannot distinguish exact zero from withheld data.
Focused regression coverage preserves the narrow exception: The added resolver tests accept inferred zero, preserve its non-wire-published marker, and continue rejecting inferred nonzero values.
Findings None None.
Security None None.

How this fits together

CodexBar combines a Grok CLI credits response with a best-effort Grok billing fallback, then turns the resolved snapshot into a menu-bar usage card. This change determines whether an absent percentage in a constrained billing frame becomes a visible 0% bar.

flowchart LR
  A[CLI credits proxy] --> C[Usage resolver]
  B[Grok billing fallback] --> C
  C --> D{Published percent or inferred zero?}
  D --> E[Resolved usage snapshot]
  E --> F[Menu-bar usage card]
Loading

Decision needed

Question Recommendation
Should CodexBar present this ambiguous Grok billing frame as a visible 0% usage bar, or keep usage unknown and show neutral reset-period text? Keep usage unknown with neutral reset text: Preserve the existing fail-closed meaning for absent provider percentages while removing the misleading failure tone for a known live period.

Why: The parser can narrowly identify the observed fresh-period frame, but proto3 omission makes an actual zero and a withheld percentage indistinguishable at the protocol boundary; code and tests cannot resolve the desired user-facing truthfulness policy.

Before merge

  • Resolve merge risk (P1) - For accounts whose CLI credits response has no percentage, a Grok billing frame that withholds a nonzero percentage is indistinguishable from exact zero and would now display 0% rather than the current unavailable-usage diagnostic.
  • Complete next step (P2) - No mechanical repair is appropriate until a maintainer selects the provider-data display policy.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Production versus test delta production +15/-7, tests +315/-3, docs/release +19/-7 The production policy change is small, while regression coverage and proof support make up most of the textual diff.

Merge-risk options

Maintainer options:

  1. Retain fail-closed usage semantics (recommended)
    Revise the PR to leave the percentage unknown for this ambiguous frame and render a neutral reset-period explanation instead.
  2. Accept the inferred-zero policy
    Merge the documented exception knowing that an unreported nonzero provider value can be represented as 0% for the affected fallback path.

Technical review

Best possible solution:

Preserve one explicit fail-closed policy for ambiguous provider data; the safer current direction is to retain unknown usage and replace the alarming unavailable message with neutral reset-period text unless a maintainer accepts the visible-zero inference.

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

Yes—source-reproducible with high confidence: a period-only CLI-proxy snapshot plus the parser’s inferred-zero billing frame reaches the changed resolver guard and produces a primary usage bar. The supplied live-account transcript and inspected card corroborate that exact branch without requiring reviewer-side credential access.

Is this the best way to solve the issue?

No: the implementation is narrow and well-proven for the observed frame, but it is not unambiguously the best product solution because the provider protocol cannot distinguish zero from withholding a value; neutral unknown-usage text is safer unless maintainers choose otherwise.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 5a18e8ee9dc7.

Labels

Label justifications:

  • P2: This is a provider-specific usage-display policy with a bounded but user-visible accuracy tradeoff.
  • merge-risk: 🚨 other: Merging can display an inferred 0% where the provider’s omitted scalar may instead mean that usage was withheld.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The changed production owner is the Grok unknown-usage resolver; the supplied redacted terminal trace runs the real CLI proxy and Grok billing fetcher against a newly reset account, passes their snapshots through that resolver, and reports inferred 0%, the retained non-wire marker, a Grok-web source, and a rendered usage bar. The prepared live-card image independently shows the resulting Weekly 0% card without personal data.
  • proof: sufficient: Contributor real behavior proof is sufficient. The changed production owner is the Grok unknown-usage resolver; the supplied redacted terminal trace runs the real CLI proxy and Grok billing fetcher against a newly reset account, passes their snapshots through that resolver, and reports inferred 0%, the retained non-wire marker, a Grok-web source, and a rendered usage bar. The prepared live-card image independently shows the resulting Weekly 0% card without personal data.

Evidence

What I checked:

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • olddonkey: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rank-up moves

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

  • Obtain a maintainer decision on whether ambiguous omitted percentages may be displayed as 0%.

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 (2 earlier review cycles)
  • reviewed 2026-08-30T20:40:18.534Z sha 1b8df5e :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-31T02:13:18.921Z sha 31ced6b :: found issues before merge. :: [P2] Update the Grok fallback contract

grok.com's credits frame carries the usage percentage as a proto3 scalar, so a
period whose usage is exactly zero omits it from the wire. The parser already
reads that shape as 0 when the frame still carries a live period and no
percentage anywhere, and marks it as not wire-published.

The enrichment gate added in steipete#3181 refused that reading, so every freshly reset
period fell back to the credits proxy's unknown percent, produced no primary
rate window, and rendered the explicit "usage unavailable" diagnostic instead of
a bar.

Adopt a grok.com percent when it is wire-published or exactly zero. The credits
proxy never produces an inferred value, so the fabricated 0% steipete#3157 removed
cannot return through this path; the adopted zero keeps its not-wire-published
marker as it travels; and any other inferred value is still refused, with a
regression pinning that.

Proof is rendered from the real fetch types by a gated developer test, so the
committed before/after cards cannot drift from the shipped behavior.
ClawSweeper's review of the fixture-only evidence asked for a real-account
result from a newly reset period. Add an opt-in proof that drives the shipped
path against the live surfaces and renders the resulting card with personal
information hidden.

The test reads the bearer from ~/.grok/auth.json, the same file the provider
reads, and touches neither the Keychain nor browser cookies. It prints aggregate
fields only, and asserts the resolver's contract on whichever branch the live
account exercises, so it stays meaningful once the period records usage.
@olddonkey
olddonkey force-pushed the fix/grok-zero-usage-bar branch from 1b8df5e to 31ced6b Compare August 31, 2026 02:07
@olddonkey

Copy link
Copy Markdown
Contributor Author

Added the real-account proof the review asked for, and rebased onto 83977905e. Exact head 31ced6bcb924ebe5862bef9ec02e772f2fdd68e0.

Real behavior, from a live account on a freshly reset period

branch=grok_web_no_usage_yet_zero
proxy_used_percent=nil
proxy_has_period=true
grok_web_used_percent=0.0000
grok_web_percent_is_wire_published=false
resolved_used_percent=0.0000
resolved_percent_is_wire_published=false
resolved_source=grok-web
resolved_resets_at=2026-09-06Z
renders_usage_bar=true

This is the shipped GrokCreditsProxyFetcher and GrokWebBillingFetcher against the live surfaces, then the shipped resolvingUnknownUsage on the two real snapshots. The card in the PR body is rendered from that resolved snapshot with personal information hidden. GrokZeroUsageLiveProofTests reads the bearer from ~/.grok/auth.json, the same file the provider reads; it touches neither the Keychain nor browser cookies, makes one request per surface, prints aggregate fields only, and asserts the resolver's contract on whichever of the four branches the account exercises — so it stays green after the period records usage.

On the remaining P1

The exact-zero exception cannot be made unambiguous in code: a proto3 scalar omits an exact zero, so "0%" and "not published" are the same bytes. What the live run adds is that a real account on a fresh period does produce exactly the shape the parser requires, and that the resolver turns it into a bar rather than the failure message.

Two supporting facts are in the PR body: this same account and surface published 20.0 on 2026-08-22 while its period had usage — so this surface publishes nonzero percentages rather than withholding them — and the frame enumerates its products, whose percentages are omitted under the same proto3 rule. The 2026-08-22 number is an earlier measurement, labeled as such; it cannot be re-run on this head until the account records usage again. Once this period does record usage I am happy to post the same transcript from the published-percent branch, which would show the transition inside one period on one account.

If you would rather not carry the inference at all, the conservative alternative is in the PR body: keep usage unknown, and replace the red failure text with a neutral "no usage reported for this period yet" line plus the reset time. That keeps main's semantics and removes only the alarm.

Gate on this head

make check clean (SwiftLint 0 violations in 2065 files). make test 976/976 selections, 82/82 groups green on the first pass, 0 retries, 0 timeouts (678.5 s). Both proof tests are opt-in and skipped by default, so CI behavior is unchanged.

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Aug 31, 2026
docs/grok.md still described the pre-change rule: only a wire-published
percentage adopted, and the parser's no-usage-yet zero explicitly rejected.
Describe what the resolver now does, why the frame cannot publish an exact zero,
what stays refused, and that the reading is an inference from frame shape rather
than a value the surface stated.
@olddonkey

Copy link
Copy Markdown
Contributor Author

Fixed the actionable finding from the 2026-08-31 re-review. Exact head 8e61b2e3fcd5dd39ac37dc15cc42e9c28c0f61b5.

P2 — the Grok fallback contract

You were right that the documentation promised the opposite behavior, and I had missed it. docs/grok.md said only a wire-published percentage is adopted and named the parser's no-usage-yet zero as explicitly rejected. It now describes the shipped rule: both a wire-published percentage and the no-usage-yet frame are adopted, the percentage is a proto3 scalar so a period at exactly zero cannot publish one, the adopted zero keeps its not-wire-published marker, and any other inferred value is still refused. It also states plainly that the protocol omits an exact zero and a withheld percentage identically, so this is an inference from frame shape rather than a value the surface stated.

Two adjacent passages are reconciled with it: the parser section, which already documented the omitted proto3 scalar as zero usage, now says the retry adopts that reading; and the "SuperGrok Heavy with no creditUsagePercent" note is scoped to the credits payload it was describing, since the grok.com retry can now supply that percent.

That covers both the P2 finding and the P2 merge risk about conflicting guidance.

Still yours to decide

The P1 is unchanged and not closable in code: the wire cannot distinguish an exact zero from a withheld percentage. Your recommendation was to retain unknown usage and replace the alarming copy with neutral reset-period text. I am happy to swap this PR to that shape — it is a smaller change than what is here, and the live proof in the body applies to it just as well, since it records what each surface actually returned. Say which you prefer and I will push it.

make check is clean on this head (SwiftLint 0 violations in 2065 files) and DocumentationLinkTests passes 8/8; the full suite was green on 31ced6bcb, and documentation is the only change since.

@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 31, 2026
@steipete

steipete commented Sep 1, 2026

Copy link
Copy Markdown
Owner

The zero-usage fix landed in #3325 as e7d0011, with parser provenance and active-period validation preserving unknown results for malformed or inactive payloads. This PR's production change is covered there, so I am closing it as superseded. @olddonkey's contribution is preserved in the squash commit co-author trailer and changelog thanks, alongside @sf-jin-ku.

The integrated fix passed 91 focused Grok tests and all nine CI checks, including both full macOS shards: https://github.com/steipete/CodexBar/actions/runs/33475470989. Thank you for the implementation and reproduction proof.

@steipete steipete closed this Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P2 Normal priority bug or improvement with limited blast radius. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants