Skip to content

fix(review): reconcile labels from completed review receipts - #1236

Merged
steipete merged 25 commits into
openclaw:mainfrom
goutamadwant:fix/exact-review-label-reconciliation
Sep 1, 2026
Merged

fix(review): reconcile labels from completed review receipts#1236
steipete merged 25 commits into
openclaw:mainfrom
goutamadwant:fix/exact-review-label-reconciliation

Conversation

@goutamadwant

@goutamadwant goutamadwant commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Closes #1226

An exact re-review can publish a current verdict but leave the old status, rating, proof, and merge-risk labels behind. The freshness check compared activity with the older item snapshot even when the completed review had already captured that discussion.

Use the existing complete source, timeline, head, and review-activity receipts to admit label reconciliation. All receipts must still match, and a complete activity read must show no substantive human activity in or after the review-completion second. Rounding a millisecond timestamp down to GitHub's whole second preserves that boundary. Legacy and close-proposal handling remain on their existing paths.

The implementation adds ten production lines and reuses the existing publication fixture. Historical standalone proof scaffolding is removed from this proposal. Original contributor credit is preserved for @goutamadwant.

Behavior proof

Ran the built production apply/publication command with identical controlled GitHub inputs before and after, intercepting all external I/O. This exercises the real freshness, receipt, publication, and label-batching code without changing a live item's labels.

Scenario Before After
Completed review captured discussion and re-review command Verdict updated; stale labels remain One batch replaces stale managed labels
Substantive human activity in the same second as review completion No label update No label update
Changed source receipt No label update No label update

The comparison uses Node 24.20.0 and the same pinned fixture inputs; only valid lease wall-clock timestamps and isolated paths differ. It proves the stale-label fix and the preserved negative controls. It does not claim that current main overwrites labels in those negative cases.

Real GitHub owner-boundary proof

Tested c3f3db1d6664d076313643d019110aef88399772 with Node 24.20.0 against disposable draft #1334 (fixture head 0c61c2fef38150b1cfceda89c5e3661b6bd0cf4b). GitHub reads, label mutations, timeline events, and readbacks were real. Only local review metadata, desired labels, and completion barriers were synthetic; no fabricated Codex verdict was published and no production apply/close lane was run.

The harness imported the actual createApplySourceFreshness, live collectItemContext, and existing status/rating sync plus batch-flush owners. Its runtime adapter appended exports to the unchanged compiled module. The first-parent freshness function evaluated the same captured GitHub context for comparison.

Scenario Actual evidence, September 1 UTC Observed result
Captured discussion Ordinary fixture comment at 09:32:12Z; local synthetic completion 09:32:38.261Z. Production write returned 09:33:14.361Z. Matching complete receipts: first-parent gate rejected; current gate admitted exactly one label batch. GitHub readback changed needs-proof/silver to ready-for-maintainer/diamond.
Same-second human labels Event30336134204 and event30336134245, actor steipete, at 09:34:22Z. The actual write returned 09:34:22.962Z; that unmodified recorded time became the local synthetic completion barrier. Complete receipts matched, but gate rejected. Owner invoked=false; zero owner writes. Human needs-proof/silver labels remained, although the owner target was ready/diamond. First timing attempt succeeded; timestamps were not rewritten.
Later human labels Local synthetic completion 09:35:53.666Z; event30336220076 and event30336220129, actor steipete, at 09:36:00Z; write returned 09:36:01.317Z. Complete receipts matched, but gate rejected. Owner invoked=false; zero owner writes; readback unchanged. This checks admission: these later labels already matched the owner's desired labels.

Positive mutation trace (one production batch; no repository label definitions changed):

gh --repo openclaw/clawsweeper issue edit 1334
  --add-label "rating: 🦞 diamond lobster,status: 👀 ready for maintainer look"
  --remove-label "rating: 🦪 silver shellfish,status: 📣 needs proof"
started:   2026-09-01T09:33:10.615Z
completed: 2026-09-01T09:33:14.361Z
exit: 0

GitHub recorded the positive replacement at 09:33:13Z as events 30336073929, 30336073947, 30336073962, and 30336074011.

All three captured contexts had matching source revision 5639c4ed6a9e4e747b034c3bd3655d8b487715181b1a5122694d201116f2f236, timeline revision 086c7cd69c5779af227fd86bfddfae28b7f1adad6d8af85eed085cae8482863b, and v2 activity cursor v2:0:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945. This demonstrates why matching receipts still need the separate human-activity time guard for managed-label events.

The forwarding recorder initially truncated a large check-runs response because it exited after an asynchronous stdout write. Only the recorder was corrected to synchronous fd writes; subsequent complete control reads succeeded. The diagnostic is retained as a harness limitation, not a ClawSweeper/GitHub defect. This proof covers the selected owners and real GitHub transport; it does not claim Codex inference, distributed lease/queue behavior, full-lane execution, or a merge test.

Cleanup is verified: original empty labels restored, fixture 1334 closed at 09:39:18Z, and its task-created remote branch deleted. The fixture was never merged.

Validation

Build, eight focused tests, targeted format/lint, and diff checks pass. Focused coverage also rejects changed timeline receipts, changed heads, later human activity, and close proposals. Managed Codex review is scoped-clean at P0. Full CI, sparse repair builds, and Windows launcher passed at https://github.com/openclaw/clawsweeper/actions/runs/33490397445; CodeQL passed at https://github.com/openclaw/clawsweeper/actions/runs/33490397519.

@clawsweeper

clawsweeper Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

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

@clawsweeper clawsweeper Bot added merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. P1 Urgent regression or broken agent/channel workflow affecting real users now. 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 24, 2026
@clawsweeper

clawsweeper Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed September 1, 2026, 5:49 AM ET / 09:49 UTC.

ClawSweeper review

What this changes

The PR lets completed exact reviews reconcile managed status, rating, proof, and merge-risk labels when their source, timeline, head, and activity receipts still match.

Merge readiness

⚠️ Ready for maintainer review - 2 items remain

This is a viable, focused fix for the still-open label-reconciliation issue, with no discrete correctness blocker found and sufficient current-head real GitHub transport proof.

Priority: P1
Reviewed head: c3f3db1d6664d076313643d019110aef88399772

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) Strong real transport evidence and focused controls support a bounded, well-integrated automation fix.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (live_output): The changed production owner is the apply lane's label-freshness gate; the current-head trace exercises it through real GitHub reads, one real managed-label batch and event readback, then demonstrates no owner write for same-second and later human activity. Local review metadata and desired labels are explicitly synthetic, which is an appropriate limit for this owner-boundary proof.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (live_output): The changed production owner is the apply lane's label-freshness gate; the current-head trace exercises it through real GitHub reads, one real managed-label batch and event readback, then demonstrates no owner write for same-second and later human activity. Local review metadata and desired labels are explicitly synthetic, which is an appropriate limit for this owner-boundary proof.
Evidence reviewed 5 items Receipt-gated reconciliation: The changed freshness path requires a completed non-close PR review, a fresh reviewed head, matching complete source/timeline/activity receipts, and no non-automation activity from the review-completion second onward before labels may sync.
Human activity guard: The existing activity predicate checks complete comments, review comments, and timeline events and treats activity strictly after the supplied boundary as blocking; the new call uses one millisecond before the rounded review second.
Focused regression coverage: The publication fixture covers the admitted captured-discussion case plus same-second activity, changed source receipt, changed timeline receipt, and changed head controls.
Findings None None.
Security None None.

How this fits together

ClawSweeper publishes completed Codex reviews to GitHub and derives managed PR labels from those reports. The freshness gate sits between the durable review record and the batched GitHub label mutation, preventing stale reviews or later human activity from changing routing labels.

flowchart LR
A[Completed review record] --> B[Receipt matching]
B --> C[PR head and activity check]
C --> D[Human activity safeguard]
D --> E[Managed label batch]
E --> F[GitHub PR routing labels]
Loading

Before merge

  • Resolve merge risk (P1) - This changes automatic GitHub label writes, so the receipt-equality and whole-review-second human-activity guard must remain intact to avoid overriding human routing labels.
  • Complete next step (P2) - No mechanical repair remains; this PR needs normal maintainer merge review with its current proof and safeguards.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Pinned-base range 128 files, +9,447/-4,456 The base-range listing is broad and truncated, but merge ancestry shows the reviewed merge commit incorporates shared main history; the label-reconciliation behavior is concentrated in the freshness gate and its fixture.

Root-cause cluster

Relationship: fixed_by_candidate
Canonical: #1226
Summary: This PR directly implements the stale managed-label behavior described by the linked open issue.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge-risk options

Maintainer options:

  1. Merge with the verified freshness guard (recommended)
    Accept the bounded automation risk because the exact-head transport trace and focused controls show one admitted label batch while same-second and later human activity produce no owner write.

Technical review

Best possible solution:

Land the receipt-based reconciliation while retaining complete receipt equality and the conservative same-second human-activity rejection.

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

Yes, at high confidence: the focused fixture establishes the receipt-matched stale-label path and the PR body records a current-head real GitHub transport run with positive and no-op controls.

Is this the best way to solve the issue?

Yes. Reusing the existing freshness and receipt machinery is the narrowest maintainable repair, and the added second-precision guard preserves the human-activity boundary.

AGENTS.md: found and applied where relevant.

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

Labels

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. The changed production owner is the apply lane's label-freshness gate; the current-head trace exercises it through real GitHub reads, one real managed-label batch and event readback, then demonstrates no owner write for same-second and later human activity. Local review metadata and desired labels are explicitly synthetic, which is an appropriate limit for this owner-boundary proof.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The changed production owner is the apply lane's label-freshness gate; the current-head trace exercises it through real GitHub reads, one real managed-label batch and event readback, then demonstrates no owner write for same-second and later human activity. Local review metadata and desired labels are explicitly synthetic, which is an appropriate limit for this owner-boundary proof.
  • 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.

Label justifications:

  • P1: Stale managed labels can hide a PR that is ready for maintainer review, affecting an active maintainer-routing workflow.
  • merge-risk: 🚨 automation: The PR changes the admission condition for batched GitHub label mutations after completed reviews.
  • 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 (live_output): The changed production owner is the apply lane's label-freshness gate; the current-head trace exercises it through real GitHub reads, one real managed-label batch and event readback, then demonstrates no owner write for same-second and later human activity. Local review metadata and desired labels are explicitly synthetic, which is an appropriate limit for this owner-boundary proof.
  • proof: sufficient: Contributor real behavior proof is sufficient. The changed production owner is the apply lane's label-freshness gate; the current-head trace exercises it through real GitHub reads, one real managed-label batch and event readback, then demonstrates no owner write for same-second and later human activity. Local review metadata and desired labels are explicitly synthetic, which is an appropriate limit for this owner-boundary proof.

Evidence

What I checked:

  • Receipt-gated reconciliation: The changed freshness path requires a completed non-close PR review, a fresh reviewed head, matching complete source/timeline/activity receipts, and no non-automation activity from the review-completion second onward before labels may sync. (src/clawsweeper-apply-source-freshness.ts:297, c3f3db1d6664)
  • Human activity guard: The existing activity predicate checks complete comments, review comments, and timeline events and treats activity strictly after the supplied boundary as blocking; the new call uses one millisecond before the rounded review second. (src/clawsweeper-promotion-facts.ts:303, c3f3db1d6664)
  • Focused regression coverage: The publication fixture covers the admitted captured-discussion case plus same-second activity, changed source receipt, changed timeline receipt, and changed head controls. (test/apply-label-sync.test.ts:2531, c3f3db1d6664)
  • Current-head transport proof: The PR body records a real GitHub read, label mutation, event readback, same-second rejection, later-activity rejection, and fixture cleanup against this exact head; the synthetic inputs are explicitly limited to local review metadata and desired labels. (c3f3db1d6664)
  • History and merge topology: The reviewed head is a merge whose first parent is the current review-automation baseline and whose second parent carries the original contributor fix; the fetched main and reviewed head share the first parent, so the large pinned-base range includes already-common history rather than a separate 128-file feature proposal. (src/clawsweeper-apply-source-freshness.ts:289, c3f3db1d6664)

Likely related people:

  • PollyBot13: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • Peter Steinberger: 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 (8 earlier review cycles)
  • reviewed 2026-08-24T18:13:36.413Z sha 22735db :: needs real behavior proof before merge. :: [P2] Include the close-proposal regression in the proof script
  • reviewed 2026-08-24T18:55:22.611Z sha 22735db :: needs real behavior proof before merge. :: [P2] Include the close-proposal guard in the proof command
  • reviewed 2026-08-25T02:10:38.378Z sha e899469 :: needs real behavior proof before merge. :: [P1] Preserve the post-snapshot human-activity guard
  • reviewed 2026-08-25T05:48:22.821Z sha a5d575f :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-31T04:28:12.327Z sha cff385b :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-31T11:06:47.075Z sha cff385b :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-01T03:46:14.720Z sha cff385b :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-01T09:09:44.825Z sha c3f3db1 :: needs real behavior proof before merge. :: none

@goutamadwant

Copy link
Copy Markdown
Contributor Author

Added the requested real-transport trace. It shows label reconciliation through the GitHub API and verifies that both same-second and later human activity prevent the automated action. The trace was captured against the current head without changing the implementation.

@goutamadwant
goutamadwant force-pushed the fix/exact-review-label-reconciliation branch from a5d575f to cff385b Compare August 31, 2026 04:24
steipete and others added 18 commits August 30, 2026 23:23
Use the native fetch deadline through response body consumption. Share native HTTP timeout fixtures and finish fast-ack cleanup before restoring mocks.

Co-authored-by: Peter Steinberger <steipete@gmail.com>
…#1302)

Use the child environment for timeout selection and preserve native process failure semantics. Keep fractional explicit budgets positive after rounding.

Co-authored-by: Peter Steinberger <steipete@gmail.com>
* fix(dashboard): make telemetry coverage explicit

* fix(dashboard): fail closed during telemetry recovery

* fix(dashboard): reject contradictory freshness metadata

* fix(dashboard): harden cached telemetry freshness

* style(dashboard): format reconciliation guard
* fix(dashboard): correlate exact-review queue failures

* test(dashboard): retain queue failure proof

* fix(dashboard): keep queue log calls statically bounded

* fix(dashboard): retain telemetry reconciliation correlation
* fix(review): bootstrap pinned local scanner

* test(review): preserve scanner refusal coverage

* fix(review): reject in-checkout scanner caches

* fix(review): bound scanner bootstrap downloads

* fix(review): validate preflight scanner cache

* fix(review): reject symlinked scanner cache entries

* fix(review): require private scanner cache authority

* fix(review): preserve bootstrap proxy settings

* fix(review): allow read-only cache ACLs
…claw#1324)

* fix(queue): use saved lease authority for direct requeues

Follow up on openclaw#1251 by reading direct-requeue authority from the saved lease decision. Preserve accepted and deduplicated receipt ownership, reject superseded completion authority, and keep newer command decisions intact. The original lost-completion fix is already upstream; retain its existing contributor credit.

* test(queue): document the saved-lease authority repro
)

Share leading-front-matter structure across report metadata, repair intake, workflow selection, and decision packets while preserving each reader's decoding and legacy promotion guards. Keep duplicate and competing metadata fail-closed without treating ordinary body examples as authority.

Add regression coverage and inspectable consumer proof. Exact-head controlled apply proof also verifies that a persisted conflicting record is rejected before GitHub transport, while valid controls reach the close boundary on synthetic state.

Co-authored-by: Dwin Gharibi <dwin.gharibi@email.kntu.ac.ir>
…aw#1323)

* fix(review): classify test support consistently

* test(review): preserve unknown surface counts after integration
* fix(review): provision pinned Codex source

* fix(review): refresh OpenClaw review caches
)

Fix hosted exact-event review ancestry acquisition for pull requests that merge the base branch. Preserve complete blobless history while retaining bounded fail-closed hydration for genuinely incomplete ancestry.

Co-authored-by: Goutam Adwant <8672451+goutamadwant@users.noreply.github.com>
Co-authored-by: roboclaw-bot <309084314+roboclaw-bot@users.noreply.github.com>
Co-authored-by: Vito Cappello <3279061+VACInc@users.noreply.github.com>
* refactor(review): let Codex judge changed PR content

Remove the compiler-backed semantic cache and its patch, tree-mode, revalidation, telemetry, and runtime-install plumbing. Keep exact-input caches, restricted checkout hydration, scanner admission, and durable publication gates. Bundle matching runtime configuration, prompts, and schemas.

* docs(review): describe exact-input cache ownership
Keep the runtime-budget preload fixed and move timestamps and paths into sibling JSON state. Pass the terminal fixture's checkout directory directly as inherited fd 9 instead of constructing a shell command. Remove the unnecessary temporary Node helper module while retaining all clock, readiness, descriptor and cleanup assertions.

This is test-only fixture hardening with no production, configuration, dependency, deadline or threshold change. The maintainer cleanup removes four lines and one temporary program lifecycle relative to the contributor proposal; the final two-file change is +61/-57 against its integrated base.

Validated published head 2e11ef4 on fresh AWS: 34/34 focused fixture cases, 4,248 full-check passes with eight explicit platform/capability skips, and 13/13 changed-coverage script tests. Exact-head CI and both CodeQL analyses passed. Precommit and committed Codex reviews had no accepted/actionable P0 findings. The unchanged macOS viewport cleanup deadline failure remains documented; it passed on AWS, and no workaround was added here.

The current ClawSweeper review found no patch defect but reported missing blobs in its partial clone. Maintainer verification independently materialized all 25 relevant historical/current blobs without lazy fetch and confirmed that current main 1bcce8b leaves the fixture, helper, terminal-cleanup and runtime-budget owners unchanged from the integrated base. That covers this PR's source-review gap without claiming the reviewer infrastructure itself is fixed.

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
steipete and others added 4 commits August 31, 2026 23:24
…w#1139)

Use the existing code-unit comparator for surviving label additions and removals so the recorded issue_labels_sync business identity does not vary with runner locale or collator ties. Preserve exact values, batching, freshness guards, and distinct mutation receipts; this does not introduce an execution-deduplication gate.

Current-head AWS producer-to-persisted-recorder proof passed in en-US and sv-SE, alongside focused regressions, the full pnpm check gate, exact-head CI/CodeQL, and managed Codex review. No Bay API or UI contract changes.

Related: openclaw#1136
Co-authored-by: Dwin Gharibi <dwin.gharibi@email.kntu.ac.ir>
…#1331)

Remove the host-side scorecard filter, per-review Node process, and generated
scratch helper. Codex reads the checked-out scorecard and taxonomy directly;
existing M4/M5, primary-owner, and broken-existing-behavior requirements remain.
Missing or ambiguous evidence means no maturity label.

Real authenticated production-runner proof completed one read-only Codex turn
for each synthetic issue: M4 selected maturity:stable with source citations;
M3 selected no maturity label. Both checkouts stayed clean with no helper file.
Focused prompt policy tests and managed P0 Codex review passed. Bay schemas and
label contracts are unchanged. No new dependency or compatibility path.
Allow completed exact reviews to refresh managed status, rating, proof,
and merge-risk labels when the source, timeline, head, and activity
receipts still match. Keep the entire review-completion second ambiguous
for newer human activity, matching GitHub timestamp precision.

Reuse the current receipt checks and extend the existing publication
fixture instead of adding another reconciliation mechanism.

Co-authored-by: goutamadwant <workwithgoutam@gmail.com>
@steipete
steipete requested a review from a team as a code owner September 1, 2026 09:05
@steipete steipete changed the title fix: exact re-reviews leave stale status labels fix(review): reconcile labels from completed review receipts Sep 1, 2026
@steipete

steipete commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

@clawsweeper re-review

The PR body now includes real GitHub transport proof against head c3f3db1d6664d076313643d019110aef88399772, with inspectable timeline events from #1334. The positive case sent one production label batch; same-second and later human activity rejected admission with matching receipts and zero owner writes. The local review metadata is explicitly synthetic, and the later-label control's limit is documented. The disposable fixture is closed, labels restored, and its branch deleted.

Full CI and CodeQL are green. No product source changed during the additional proof.

@clawsweeper

clawsweeper Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
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. labels Sep 1, 2026
@steipete
steipete merged commit b056c0a into openclaw:main Sep 1, 2026
25 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. P1 Urgent regression or broken agent/channel workflow affecting real users now. 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.

Exact re-review can publish a maintainer-ready verdict while PR status/rating labels remain stale

8 participants