Skip to content

feat(cli): add Codex session cost grouping - #2854

Merged
steipete merged 6 commits into
steipete:mainfrom
Yuxin-Qiao:codex/feat-cli-session-grouping
Aug 16, 2026
Merged

feat(cli): add Codex session cost grouping#2854
steipete merged 6 commits into
steipete:mainfrom
Yuxin-Qiao:codex/feat-cli-session-grouping

Conversation

@Yuxin-Qiao

@Yuxin-Qiao Yuxin-Qiao commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Add codexbar cost --group-by session for human-readable Codex session cost output.

Why

Expose the existing local session breakdowns without changing scanning, pricing, persistence, JSON output, or macOS UI behavior. Session-grouped Codex text requests keep native session rows by excluding Pi/OMP aggregate merging only for that path.

User impact

Users can inspect recent Codex cost estimates per conversation while preserving the existing default and project-grouped output.

Validation

  • swift test --filter CLICostTests (26/26 passed, including partial and incomplete catch-up rendering)
  • swift test --filter CostUsageFetcherTests (16/16 passed, including mixed native Codex + Pi coverage)
  • swift test --filter ProviderArchitectureGatekeeperTests (38/38 passed)
  • make check (passed; SwiftLint 0 violations across 1842 files)
  • git diff --check (passed)
  • CodexBarCLI cost --help (passed on the current head)
  • No live account, Keychain, or private local-session data was accessed.

Real behavior proof

Captured from an existing local Codex session cache using current head 24d9458bc. The cost cache and model-pricing cache were copied into a temporary home; CODEX_HOME pointed at the existing session root, and the original cache files were not used for writes.

Command:

$ CodexBarCLI cost --provider codex --group-by session --days 30 --no-color
Warning: Session grouping shows native Codex conversations only; Pi/OMP usage is omitted from this view. Use the default cost view for merged totals.
Codex API-equivalent estimate (not billed)
Conversations (Last 30 days):
Session <redacted>: <cost redacted> · <tokens redacted>
<model redacted> · <timestamp redacted>
Session <redacted>: <cost redacted> · <tokens redacted>
<model redacted> · <timestamp redacted>
Session <redacted>: <cost redacted> · <tokens redacted>
<model redacted> · <timestamp redacted>
Not a subscription bill or plan value · local usage x public API prices
[redacted: 438 additional session rows]

Result: exit 0, 441 session rows, 886 output lines, and 1 warning line on stderr. The original cost-usage.sqlite, -shm, and -wal hashes, sizes, and mtimes were unchanged during the run. The current head also passes mixed native Codex + Pi coverage and the bounded catch-up renderer regressions for empty and partial session lists.

Scope

CLI presentation, help text, focused tests, and CLI documentation only. No scanner, pricing, auth, persistence, JSON schema, or macOS UI changes.

Review follow-up (2026-08-16)

  • Current head: 24d9458bc38388ac25ef82b4854eec07d0d0481f.
  • Session-grouped Codex text mode keeps native Codex conversation rows and emits an explicit Pi/OMP omission warning; default totals and JSON output remain unchanged.
  • Incomplete history is labeled before the empty-session guard, covering both empty catch-up and partial nonempty rows.
  • Focused validation: swift test --filter CLICostTests (26/26), swift test --filter CostUsageFetcherTests (16/16), and make check (SwiftFormat clean; SwiftLint 0 violations across 1842 files).

@clawsweeper

clawsweeper Bot commented Aug 11, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

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

@Yuxin-Qiao
Yuxin-Qiao force-pushed the codex/feat-cli-session-grouping branch from bcbcdff to 7a851ad Compare August 11, 2026 04:00
@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 Aug 11, 2026
@clawsweeper

clawsweeper Bot commented Aug 11, 2026

Copy link
Copy Markdown

Codex review: found issues before merge. Reviewed August 15, 2026, 3:01 PM ET / 19:01 UTC.

ClawSweeper review

What this changes

Adds codexbar cost --group-by session, a Codex-only text report that lists local conversation cost estimates by session while retaining existing default, project, and JSON output paths.

Merge readiness

⚠️ Needs maintainer review before merge - 4 items remain

Keep this PR open: the prior P2 JSON-warning defect remains on the current head, while the proposed CLI capability is absent from current main and v0.50.0.

Priority: P3
Reviewed head: 24d9458bc38388ac25ef82b4854eec07d0d0481f
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) Strong real CLI proof and focused coverage are present, but the unresolved P2 makes the patch not ready to merge.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (terminal): The PR body provides a redacted after-fix terminal run against a real local Codex session cache, including observed rows, exit status, stderr warning, and unchanged-cache checks.
Patch quality 🦐 gold shrimp (3/6) 1 actionable review finding remain.

Verification

Check Result Evidence
Real behavior Verified Sufficient (terminal): The PR body provides a redacted after-fix terminal run against a real local Codex session cache, including observed rows, exit status, stderr warning, and unchanged-cache checks.
Evidence reviewed 6 items Current main and release lack the feature: Current main still defines only none and project cost groupings; the v0.50.0 copy of the CLI help likewise advertises only --group-by project.
JSON provider retention contradicts the warning: The PR keeps every requested provider for JSON output, but calls the skipped-provider warning using only jsonOnly; --format json is not --json-only, so a Claude+Codex session request can falsely say Claude was skipped.
Output-mode distinction is established: CLIOutputPreferences treats format == .json separately from the jsonOnly flag, confirming the false-warning path for --format json.
Findings 1 actionable finding [P2] Suppress skipped-provider warnings for JSON output
Security None None.

How this fits together

The cross-platform codexbar cost command selects local provider data through the cost fetcher, then renders either human-readable text or a stable JSON payload. The new grouping mode changes only the text presentation path for Codex local session rows.

flowchart LR
    A[Local Codex and mirror session caches] --> B[Cost usage fetcher]
    C[Provider and grouping flags] --> D[Cost command]
    D --> B
    B --> E[Grouping and warning decision]
    E --> F[Text cost report]
    E --> G[JSON cost payload]
Loading

Decision needed

Question Recommendation
Should CodexBar adopt a Codex-only --group-by session CLI mode whose text report intentionally omits merged Pi/OMP mirror aggregates? Sponsor the mode after the P2 repair: Accept the focused Codex text-report capability once the JSON warning is corrected and covered.

Why: VISION.md requires sign-off for new features, and the source cannot determine whether this additional reporting mode is desired product surface.

Before merge

  • Suppress skipped-provider warnings for JSON output (P2) - costProviders retains every requested provider when format == .json, but this call only suppresses the warning for --json-only. Therefore cost --format json --provider claude,codex --group-by session emits a false claim that Claude was skipped. Pass the format into this decision, emit it only for text output, and add that regression case.
  • Resolve merge risk (P1) - Until the P2 is fixed, JSON callers can receive every requested provider while stderr incorrectly claims that a provider was skipped.
  • Resolve merge risk (P1) - The new CLI flag is an opt-in feature surface that VISION.md says requires sign-off before acceptance.

Findings

  • [P2] Suppress skipped-provider warnings for JSON output — Sources/CodexBarCLI/CLICostCommand.swift:50
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Production versus test delta production +146 net, tests +440 net, docs +1 The implementation is substantially test-backed, but it still introduces a new user-facing CLI mode requiring sign-off.

Merge-risk options

Maintainer options:

  1. Decide the mitigation before merge
    After product sign-off, gate skipped-grouping warnings to text output and add a focused JSON regression test so the new Codex-only text mode leaves JSON semantics untouched.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Technical review

Best possible solution:

After product sign-off, gate skipped-grouping warnings to text output and add a focused JSON regression test so the new Codex-only text mode leaves JSON semantics untouched.

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

Yes for the review finding: --format json --provider claude,codex --group-by session follows source paths that retain both payloads but emit a false skipped-provider warning; no live account is needed to establish the path.

Is this the best way to solve the issue?

No: the intended text-only boundary is maintainable, but the warning helper must also receive and respect the output format before the mode is safe to merge.

Full review comments:

  • [P2] Suppress skipped-provider warnings for JSON output — Sources/CodexBarCLI/CLICostCommand.swift:50
    costProviders retains every requested provider when format == .json, but this call only suppresses the warning for --json-only. Therefore cost --format json --provider claude,codex --group-by session emits a false claim that Claude was skipped. Pass the format into this decision, emit it only for text output, and add that regression case.
    Confidence: 0.99

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 f15f142a7787.

Labels

Label justifications:

  • P3: This is an opt-in reporting enhancement; the remaining defect is a limited JSON stderr-message inconsistency rather than a data or availability failure.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (terminal): The PR body provides a redacted after-fix terminal run against a real local Codex session cache, including observed rows, exit status, stderr warning, and unchanged-cache checks.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body provides a redacted after-fix terminal run against a real local Codex session cache, including observed rows, exit status, stderr warning, and unchanged-cache checks.

Evidence

What I checked:

Likely related people:

  • Peter Steinberger: Current-main blame attributes the surrounding cost command to this history, and the current main/release provenance is authored in the same area. (role: CLI cost-path owner; confidence: medium; commits: b20dc2374085, 0e453c4a5b2a; files: Sources/CodexBarCLI/CLICostCommand.swift, Sources/CodexBarCLI/CLIOutputPreferences.swift)

Rank-up moves

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

  • Gate skipped-grouping warnings on text output and add a --format json regression test.
  • Obtain maintainer sign-off for the new CLI mode after the repair.

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 (9 earlier review cycles; latest 8 shown)
  • reviewed 2026-08-11T09:26:13.640Z sha 7a851ad :: needs changes before merge. :: [P1] Disable Pi merging for session-grouped runs
  • reviewed 2026-08-11T09:30:30.776Z sha 7a851ad :: found issues before merge. :: [P1] Disable Pi merging for session-grouped runs
  • reviewed 2026-08-11T09:40:53.444Z sha ea1e4ec :: needs changes before merge. :: [P2] Warn when session grouping drops default Pi/OMP usage
  • reviewed 2026-08-11T09:52:57.553Z sha 839464d :: needs changes before merge. :: [P2] Distinguish scan catch-up from an empty session history
  • reviewed 2026-08-11T10:03:39.628Z sha ea4cf5a :: needs changes before merge. :: [P2] Label partial session lists as incomplete
  • reviewed 2026-08-11T10:18:16.700Z sha cbf8868 :: needs maintainer review before merge. :: none
  • reviewed 2026-08-11T10:44:29.874Z sha 24d9458 :: needs maintainer review before merge. :: none
  • reviewed 2026-08-15T18:49:18.822Z sha 24d9458 :: found issues before merge. :: [P2] Suppress skipped-provider warnings for JSON output

@Yuxin-Qiao
Yuxin-Qiao marked this pull request as ready for review August 11, 2026 09:20
@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 11, 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: 7a851ad7f8

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

let historyLabel = snapshot.historyLabel
?? (snapshot.historyDays == 1 ? "Today" : "Last \(snapshot.historyDays) days")
var lines = [header, "Conversations (\(historyLabel)):"]
guard !snapshot.sessions.isEmpty else {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Disable Pi merging for session-grouped runs

When the default Pi/OMP inclusion finds any Codex activity in the selected window, CostUsageFetcher.loadLocalTokenScanResult deliberately clears snapshot.sessions after merging that activity (CostUsageFetcher.swift:585-587). This new guard therefore renders even when native Codex conversations and nonzero aggregate totals exist, so codexbar cost --provider codex --group-by session is empty for affected users unless they discover --provider-native-only. The session-grouped path should either request native-only data or retain/build breakdowns for every merged session source.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot added merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. 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. P2 Normal priority bug or improvement with limited blast radius. 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. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. labels Aug 11, 2026
@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 11, 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: ea1e4ecf2d

ℹ️ 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 +298 to +299
guard provider == .codex, groupBy == .session, format == .text else { return includePiSessions }
return false

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 Warn when session grouping excludes Pi/OMP usage

When Codex has Pi/OMP session mirrors and the user runs text --group-by session without --provider-native-only, this unconditionally changes the requested default from merged usage to native-only, so those costs disappear without any notice. This conflicts with CLIHelp.swift:122-124, which says Pi/OMP sessions are included unless the explicit native-only flag is used, and can make the conversation report look complete while underreporting usage. The fresh helper avoids the previously reported empty native-session output, but it should also warn that Pi/OMP usage was omitted (or retain a grouped fallback for it).

Useful? React with 👍 / 👎.

@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 11, 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: 839464de74

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

let historyLabel = snapshot.historyLabel
?? (snapshot.historyDays == 1 ? "Today" : "Last \(snapshot.historyDays) days")
var lines = [header, "Conversations (\(historyLabel)):"]
guard !snapshot.sessions.isEmpty else {

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 Distinguish scan catch-up from an empty session history

When --refresh starts a bounded rescan of a Codex archive larger than the 512 MB per-refresh budget, CostUsageFetcher.loadLocalTokenScanResult returns the previous aggregate report while leaving sessions empty (CostUsageFetcher.swift:548-560) and marks historyCoverageIsEstablished false. This guard consequently prints and exits successfully even though the snapshot can contain substantial nonzero usage and conversations will appear after catch-up. Fresh evidence distinct from the earlier Pi-merging case is the fetcher's previous-report branch during bounded scan catch-up; render that state as incomplete/scanning rather than as no conversations.

Useful? React with 👍 / 👎.

@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 11, 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: ea4cf5a14e

ℹ️ 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 +227 to +228
guard !snapshot.sessions.isEmpty else {
if snapshot.historyCoverageIsEstablished == false {

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 Label nonempty partial session lists as incomplete

On an initial Codex scan whose archive exceeds the 512 MB refresh budget, the fetcher can build a nonempty session list from the partially populated cache while setting historyCoverageIsEstablished to false (CostUsageFetcher.swift:555-563, 589-595). Because coverage is checked only inside this empty-list guard, the CLI prints those partial conversations as a complete report with no catch-up notice. Fresh evidence beyond the already-handled empty-history case is this first-scan path, where partial session rows exist; show the incomplete-history message whenever coverage is false, including before nonempty rows.

Useful? React with 👍 / 👎.

@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 11, 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 P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. 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 P2 Normal priority bug or improvement with limited blast radius. 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. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. labels Aug 11, 2026
@Yuxin-Qiao

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 11, 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: 🦐 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: 👀 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. labels Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 15, 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.

@steipete
steipete merged commit 804838d into steipete:main Aug 16, 2026
9 checks passed
steipete added a commit that referenced this pull request Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants