Skip to content

Improve Usage and Spend layout - #3353

Open
Yuxin-Qiao wants to merge 10 commits into
steipete:mainfrom
Yuxin-Qiao:codex/usage-spend-ux
Open

Improve Usage and Spend layout#3353
Yuxin-Qiao wants to merge 10 commits into
steipete:mainfrom
Yuxin-Qiao:codex/usage-spend-ux

Conversation

@Yuxin-Qiao

@Yuxin-Qiao Yuxin-Qiao commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • replace the flat Subscriptions / Models presentation with a provider-first hierarchy: provider → account (when meaningful) → model
  • keep provider totals, account identity, and model usage visually related without falsely attributing provider-wide model data to a specific account
  • consolidate the detail switcher to Providers, Projects, and Sessions; consolidate daily and hourly charts into one trend switcher
  • make partial data explicit with provider-scoped warnings, approximate totals, and distinct unavailable / empty / partial model states
  • flatten the top summary into an adaptive KPI and token-mix hierarchy, move refresh failures beside Refresh, and collapse source/privacy/export controls
  • add focused availability, aggregation, localization, architecture, synthetic render, packaged-proof isolation, and selector coverage

The hierarchy is informed by the compact, whitespace-led presentation at https://tokens.ci/u/missuo while preserving CodexBar's native SwiftUI components and accessibility semantics.

Provider hierarchy behavior

  • Provider is the stable root. Each provider row owns its aggregate cost/token metric and provider icon.
  • Accounts are conditional children. The ACCOUNTS group appears only when multiple accounts exist or account provenance differs from the provider label.
  • Models remain provider-scoped. The MODELS group is rendered under the provider rather than repeated beneath accounts when the source cannot prove an account/model relationship.
  • Long tails stay readable. The first six models are shown and the remainder is collapsed into Other models.
  • Partial data stays honest. Incomplete providers show a provider-local warning and aggregate metrics use ~; unavailable, empty, and partial model history are not conflated.
  • Single-section states stay quiet. The detail picker is hidden when only Providers is available.

Review follow-up

  • fixed the packaged-proof trust boundary by resolving the OS-owned per-user temporary directory with _CS_DARWIN_USER_TEMP_DIR, independently of caller-controlled TMPDIR
  • added a regression test that sets TMPDIR=/ and verifies a real-profile-like path remains rejected
  • replaced the stale Subscriptions / Models screenshots with current provider-hierarchy screenshots from the packaged production settings window
  • exercised Providers → Projects → Providers, Hour → Day → Hour, selected-day clearing, and data-controls expansion through the packaged app's accessibility surface
  • retained fail-closed synthetic isolation: provider transports, real credentials, browser data, local logs, Keychain access, and background work remain disabled

Current packaged-app proof

The screenshots below use the packaged production CodexBar.app settings window and production SwiftUI views. The data is intentionally synthetic and isolated; it is not real account data.

Provider → model hierarchy

Current provider hierarchy

Projects detail and hourly trend

Current Projects detail

Expanded cost, source, privacy, and export controls

Current expanded data controls

Validation

  • CODEXBAR_SUPPRESS_TEST_KEYCHAIN_ACCESS=1 make test — 993/993 selections, 83/83 groups passed on head 727985417; 0 failures, 0 retries, and 0 timeouts
  • make check — passed on head 727985417; formatting and strict lint reported 0 violations across 2,088 Swift files
  • CODEXBAR_SUPPRESS_TEST_KEYCHAIN_ACCESS=1 swift test --filter UsageSpendBundleProofTests — 7/7 passed, including hostile TMPDIR=/
  • ./Scripts/package_app.sh — final-head Release package passed deep signature, resource, and detached-checkout launch checks; Info.plist records CodexGitCommit = 727985417
  • packaged-window interaction proof — Providers / Projects switching, Hour / Day switching, selected-day clearing, and data-controls expansion verified with the isolated synthetic profile
  • git diff --check — passed

Proof boundary

The proof profile root must resolve as a strict child of the OS-owned per-user temporary directory. CFFIXED_USER_HOME, HOME, and CODEX_HOME must remain strict children of that root, and all Keychain/file/session/testing isolation flags are mandatory. Validation happens before settings mutation. The screenshots therefore prove the current production view and interaction path without reading or changing the installed app's real profile.

Remaining product decision

The implementation keeps source/privacy/export controls collapsed by default to preserve the compact information hierarchy. Whether those management controls should instead remain expanded by default is a maintainer product decision; it is intentionally not presented as a technical correctness claim.

@clawsweeper

clawsweeper Bot commented Sep 1, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

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

@clawsweeper clawsweeper Bot added P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. 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 Sep 1, 2026
@clawsweeper

clawsweeper Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed September 2, 2026, 1:52 AM ET / 05:52 UTC.

ClawSweeper review

What this changes

The PR reorganizes the Usage & Spend settings pane into provider-first detail panels, selectable trend views, a compact summary, nearby refresh feedback, and collapsed data controls.

Merge readiness

⚠️ Ready for maintainer review - 3 items remain

Keep this PR open for a maintainer UX decision: the prior proof-isolation and current-head visual-proof blockers are addressed, but the default collapsed management controls are an intentional product choice requiring approval.

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

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) The current head has direct, current visual evidence and focused coverage, with the remaining question limited to intended default UX.
Proof confidence 🐚 platinum hermit (4/6) ✨ media proof bonus Sufficient (screenshot): Current-head, prepared screenshots visibly show the production Usage & Spend pane’s provider hierarchy, Projects/hour selection, and expanded management controls; the source ties that packaged proof mode to the production settings window while the synthetic profile disables real credentials, Keychain access, transports, and background work.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (screenshot): Current-head, prepared screenshots visibly show the production Usage & Spend pane’s provider hierarchy, Projects/hour selection, and expanded management controls; the source ties that packaged proof mode to the production settings window while the synthetic profile disables real credentials, Keychain access, transports, and background work.
Evidence reviewed 6 items Current implementation: The current PR head introduces the provider/project/session selector and renders its provider-first detail view from the aggregated currency group.
Prior security blocker addressed: The proof mode now obtains the per-user temporary root through Darwin confstr rather than TMPDIR, validates every profile path before settings mutation, and the focused regression test covers TMPDIR=/.
Proof regression coverage: The focused test rejects a hostile TMPDIR override paired with a real-profile-like proof root.
Findings None None.
Security None None.

How this fits together

CodexBar collects provider usage and local spend history into a settings dashboard. The dashboard aggregates those inputs into summaries, breakdowns, trends, refresh feedback, and export/privacy controls for the user.

flowchart LR
  A[Provider usage and local history] --> B[Usage and spend aggregation]
  B --> C[Currency summary]
  C --> D[Provider, project, and session details]
  C --> E[Daily and hourly trends]
  F[Refresh and data settings] --> D
Loading

Decision needed

Question Recommendation
Should Usage & Spend management controls remain collapsed by default in the redesigned dashboard? Approve collapsed controls: Keep the compact default and expose tracking, sources, privacy, export, and sharing through the visible disclosure.

Why: The implementation and current-head packaged visual evidence support both possible presentations, but the default information hierarchy is a product and discoverability choice rather than a correctness question.

Before merge

  • Resolve merge risk (P1) - The default collapsed state moves cost tracking, source selection, privacy, export, and sharing controls behind a disclosure; no maintainer approval for that discoverability tradeoff is present.
  • Complete next step (P2) - A maintainer should approve or change the default visibility of the management disclosure; no mechanical repair is currently indicated.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Implementation scope production +1,170/-336; tests +721/-29; 7 screenshots added The UI redesign includes a substantial isolated-proof harness and broad focused test coverage, so the default UX decision deserves explicit review.

Merge-risk options

Maintainer options:

  1. Decide the mitigation before merge
    Retain the provider-first hierarchy if approved, with an explicit maintainer decision on whether management controls should remain collapsed by default.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Technical review

Best possible solution:

Retain the provider-first hierarchy if approved, with an explicit maintainer decision on whether management controls should remain collapsed by default.

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

Not applicable as a layout and interaction redesign; the current-head screenshots and source review demonstrate the proposed states rather than an existing bug reproduction.

Is this the best way to solve the issue?

Unclear until the collapsed-controls default is approved; the hierarchy itself preserves the existing detail categories and has focused isolation and interaction coverage.

AGENTS.md: found and applied where relevant.

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

Labels

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. Current-head, prepared screenshots visibly show the production Usage & Spend pane’s provider hierarchy, Projects/hour selection, and expanded management controls; the source ties that packaged proof mode to the production settings window while the synthetic profile disables real credentials, Keychain access, transports, and background work.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): Current-head, prepared screenshots visibly show the production Usage & Spend pane’s provider hierarchy, Projects/hour selection, and expanded management controls; the source ties that packaged proof mode to the production settings window while the synthetic profile disables real credentials, Keychain access, transports, and background work.
  • remove status: 📣 needs proof: Current PR status label is status: 👀 ready for maintainer look.
  • remove rating: 🦪 silver shellfish: Current PR rating is rating: 🐚 platinum hermit, so this older rating label is no longer current.
  • remove merge-risk: 🚨 security-boundary: Current PR review selected no merge-risk labels.

Label justifications:

  • P2: This is a user-facing dashboard redesign with limited blast radius that needs normal maintainer product review.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): Current-head, prepared screenshots visibly show the production Usage & Spend pane’s provider hierarchy, Projects/hour selection, and expanded management controls; the source ties that packaged proof mode to the production settings window while the synthetic profile disables real credentials, Keychain access, transports, and background work.
  • proof: sufficient: Contributor real behavior proof is sufficient. Current-head, prepared screenshots visibly show the production Usage & Spend pane’s provider hierarchy, Projects/hour selection, and expanded management controls; the source ties that packaged proof mode to the production settings window while the synthetic profile disables real credentials, Keychain access, transports, and background work.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. Current-head, prepared screenshots visibly show the production Usage & Spend pane’s provider hierarchy, Projects/hour selection, and expanded management controls; the source ties that packaged proof mode to the production settings window while the synthetic profile disables real credentials, Keychain access, transports, and background work.

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)
  • Yuxin Qiao: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

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 (7 earlier review cycles)
  • reviewed 2026-09-01T08:12:11.717Z sha 774abe4 :: needs real behavior proof before merge. :: [P3] Render the hourly state explicitly
  • reviewed 2026-09-01T14:51:15.631Z sha d17dcb9 :: needs real behavior proof before merge. :: [P3] Demonstrate the pane in a freshly built app bundle
  • reviewed 2026-09-01T15:17:59.501Z sha c3d5faa :: needs real behavior proof before merge. :: [P3] Demonstrate the pane from a freshly built app bundle
  • reviewed 2026-09-02T01:42:55.646Z sha f4e9b5c :: needs changes before merge. :: [P1] Validate proof profile paths before mutating settings
  • reviewed 2026-09-02T02:11:11.509Z sha 220b736 :: needs maintainer review before merge. :: none
  • reviewed 2026-09-02T02:15:11.979Z sha 220b736 :: needs maintainer review before merge. :: none
  • reviewed 2026-09-02T04:37:09.236Z sha a232ff5 :: needs real behavior proof before merge. :: [P2] Anchor proof isolation outside caller-controlled TMPDIR

@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Hourly fixture is explicit now, and the PR body includes isolated native production-window interaction proof for selector changes, selected-day clearing, and expanded data controls at head d17dcb9.

@clawsweeper

clawsweeper Bot commented Sep 1, 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 exact_review_queue).
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: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Sep 1, 2026
@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

The packaged-app proof blocker is addressed at head f4e9b5c2a:

  • CODEXBAR_SIGNING=adhoc ./Scripts/package_app.sh produced the real CodexBar.app and passed deep signature, resource, and detached-checkout launch checks.
  • The packaged executable opened the production Usage & Spend settings window with fail-closed synthetic isolation.
  • An external macOS accessibility driver exercised Day → Hour, Subscriptions → Models, selected-day clearing, and data-controls expansion in that packaged app; three redacted screenshots are pinned in the PR body.
  • A fresh final-head package run reported gitCommit=f4e9b5c2a, dataSource=synthetic-isolated, keychain=disabled, and backgroundWork=disabled.
  • Final validation: make check passed; full Keychain-suppressed suite passed 993/993 selections and 83/83 groups with 0 failures, retries, or timeouts.

Please re-review the current head and updated proof boundary.

@clawsweeper

clawsweeper Bot commented Sep 2, 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 exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

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

ℹ️ 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/UsageSpendBundleProof.swift
@clawsweeper clawsweeper Bot added merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. proof: sufficient Contributor real behavior proof is sufficient. 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. labels Sep 2, 2026
@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

The P1 proof-profile isolation finding is fixed at head 220b736f9.

Before any settings mutation, proof mode now:

  • requires the proof root to resolve as a strict child of the system temporary directory;
  • requires CFFIXED_USER_HOME, HOME, and CODEX_HOME to resolve as strict children of that proof root;
  • requires CFFIXED_USER_HOME and HOME to resolve to the same directory;
  • keeps the existing Keychain, Codex-file, session-file, and Swift-testing isolation flags mandatory.

Regression tests now reject real/outside profile paths, mismatched homes, non-temporary proof roots, missing boundaries, and invalid isolation flags. Validation after the fix:

  • UsageSpendBundleProofTests: 6/6 passed
  • make check: passed with 0 format/lint violations
  • full Keychain-suppressed suite: 993/993 selections, 83/83 groups, 0 failures/retries/timeouts
  • final packaged CodexBar.app: signing/resource/detached-checkout launch checks passed; isolated receipt reports gitCommit=220b736f9, synthetic data, Keychain disabled, and background work disabled

The PR body and final-head receipt have been updated. Please re-review the current head.

@clawsweeper

clawsweeper Bot commented Sep 2, 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 exact_review_queue).
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: 🐚 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 Sep 2, 2026

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

ℹ️ 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 on lines +59 to +62
let temporaryRoot = FileManager.default.temporaryDirectory
.standardizedFileURL
.resolvingSymlinksInPath()
.path

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Anchor proof isolation outside the caller-controlled TMPDIR

When bundle proof is launched with a custom TMPDIR, FileManager.default.temporaryDirectory follows that environment value, so the caller can redefine what this check considers the “system temporary directory”; for example, TMPDIR=/, a proof root of /Users, and profile paths under /Users/<user> satisfy the descendant checks and let prepareProcessIsolation() mutate the real user defaults. Fresh evidence in this revision is that the new strict-descendant hardening is anchored to this environment-influenced API, so derive the trusted temporary root independently of the proof environment or create and verify a dedicated owned directory.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. 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. and removed merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. proof: sufficient Contributor real behavior proof is sufficient. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. labels Sep 2, 2026
@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Current head 7279854 addresses the two concrete blockers from the previous review:

  • proof isolation now resolves the OS-owned per-user temporary directory through _CS_DARWIN_USER_TEMP_DIR and does not trust caller-controlled TMPDIR;
  • the regression suite sets TMPDIR=/ and confirms that a real-profile-like path is rejected before any settings mutation;
  • the PR body now embeds current provider-first hierarchy, Projects/hourly, and expanded-control screenshots from the packaged production settings window with isolated synthetic data;
  • the final-head package records CodexGitCommit=727985417 and passed signing, resource, and detached-checkout launch checks;
  • make check passed, UsageSpendBundleProofTests passed 7/7, and the full Keychain-suppressed suite passed 993/993 selections in 83/83 groups with 0 failures, retries, or timeouts.

The collapsed-controls default remains explicitly documented as a maintainer product decision, separate from the repaired technical and proof blockers. Please re-review the current head.

@clawsweeper

clawsweeper Bot commented Sep 2, 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 exact_review_queue).
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 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. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. labels Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. 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.

1 participant