Skip to content

Keep proof-nudge comments inert#243

Merged
Takhoffman merged 1 commit into
mainfrom
codex/keep-proof-nudge-comments-inert
Jun 2, 2026
Merged

Keep proof-nudge comments inert#243
Takhoffman merged 1 commit into
mainfrom
codex/keep-proof-nudge-comments-inert

Conversation

@Takhoffman
Copy link
Copy Markdown
Contributor

@Takhoffman Takhoffman commented Jun 2, 2026

Summary

  • ignore proof-nudge marker comments in the webhook classifier and repair comment router so ClawSweeper does not react to its own nudge comments
  • keep targeted proof-nudge dry runs resilient when live GitHub state for a sampled PR cannot be fetched
  • document the target dispatcher proof-nudge ignore before command matching

Real Behavior Proof

Representative runtime proof from the compiled webhook/router code on this branch. The marker-bearing proof-nudge comment includes an otherwise routable @clawsweeper re-review line, but the proof-nudge marker makes it inert; a normal command still routes.

proof-nudge webhook classification: {"accepted":false,"reason":"proof nudge comment"}
proof-nudge router parse: null
normal command webhook classification: {"accepted":true,"type":"issue_comment","targetRepo":"openclaw/openclaw","targetBranch":"main","itemNumber":86422,"commentId":457,"installationId":123,"sourceAction":"created"}
normal command router parse: {"trigger":"mention","command":"re-review","intent":"re_review"}

Validation

  • pnpm run format:check
  • pnpm run build:all
  • node --test test/repair/comment-webhook.test.ts test/repair/comment-router-core.test.ts
  • pnpm run lint:repair
  • pnpm run lint:scripts
  • node --test --test-name-pattern "proof nudge|proof-nudge|proof nudges" test/clawsweeper.test.ts
  • representative runtime proof command above

@clawsweeper
Copy link
Copy Markdown
Contributor

clawsweeper Bot commented Jun 2, 2026

Codex review: needs maintainer review before merge. Reviewed June 2, 2026, 10:21 AM ET / 14:21 UTC.

Summary
This PR adds proof-nudge marker detection to the comment router and webhook, skips proof-nudge candidates when live GitHub fetches fail, updates target-dispatcher docs, and adds focused tests.

Reproducibility: yes. from source inspection for the covered path: a marker-bearing comment that also contains a ClawSweeper command can be parsed by current routing code because main has no marker ignore guard. The currently generated proof-nudge copy does not appear to include an explicit command, so this is a defensive automation-routing bug path rather than the default generated copy.

Review metrics: 2 noteworthy metrics.

  • Changed files: 7 files, +193/-19. The patch is localized but touches live automation routing, proof-nudge planning, docs, and tests.
  • Routing surfaces: 2 code entry points plus target-dispatcher docs. The hosted webhook, comment router, and documented Actions dispatcher need to agree on proof-nudge marker handling.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Risk before merge

  • [P1] The guard intentionally makes any comment containing the proof-nudge marker non-routable, even if it also contains a valid ClawSweeper command; maintainers should accept that automation boundary before merge.

Maintainer options:

  1. Accept marker-bearing comments as inert (recommended)
    Land this after maintainer review confirms proof-nudge markers should always suppress command routing, including copied or edited marker-bearing comments.
  2. Narrow the guard if commands must win
    If maintainers want marker-bearing comments to remain commandable in some cases, adjust the guard before merge and add tests for that exception.

Next step before merge

  • [P2] Maintainer review should decide whether the intentional marker-suppresses-command behavior is acceptable; there is no narrow repair to queue.

Security
Cleared: No concrete security or supply-chain regression was found; the diff changes local TypeScript routing logic, tests, and documentation without new dependencies or permission broadening.

Review details

Best possible solution:

Merge the marker-based inert guard after maintainers accept marker-bearing comments as non-command comments and normal checks stay green.

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

Yes from source inspection for the covered path: a marker-bearing comment that also contains a ClawSweeper command can be parsed by current routing code because main has no marker ignore guard. The currently generated proof-nudge copy does not appear to include an explicit command, so this is a defensive automation-routing bug path rather than the default generated copy.

Is this the best way to solve the issue?

Yes. Centralizing marker detection in comment-router-core and reusing it from the webhook is the narrowest maintainable fix, with the target-dispatcher docs updated for the fallback Actions path.

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 4386eaad42a3.

Label changes

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes copied runtime output showing the marker-bearing proof-nudge command is ignored and a normal command still routes.
  • 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 (live_output): The PR body includes copied runtime output showing the marker-bearing proof-nudge command is ignored and a normal command still routes.
  • remove rating: 🧂 unranked krab: Current PR rating is rating: 🐚 platinum hermit, so this older rating label is no longer current.
  • remove status: 📣 needs proof: Current PR status label is status: 👀 ready for maintainer look.

Label justifications:

  • P2: This is a normal-priority automation routing hardening fix with limited blast radius but real workflow impact.
  • merge-risk: 🚨 automation: The diff changes command routing and proof-nudge automation behavior that CI cannot fully validate in live GitHub event delivery.
  • 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 (live_output): The PR body includes copied runtime output showing the marker-bearing proof-nudge command is ignored and a normal command still routes.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes copied runtime output showing the marker-bearing proof-nudge command is ignored and a normal command still routes.
Evidence reviewed

What I checked:

Likely related people:

  • brokemac79: Introduced the proof-nudge lane in 9b08258 and recently changed command parsing/fast-ack behavior in a07fc1f and 556268d. (role: feature introducer and recent routing contributor; confidence: high; commits: 9b08258b9c64, a07fc1f94275, 556268dff3d9; files: src/clawsweeper.ts, test/clawsweeper.test.ts, src/repair/comment-router-core.ts)
  • Tak Hoffman: Blame and log history tie the comment router, trusted automation parsing, and webhook classifier to 1734b16 and c014698. (role: router area contributor; confidence: high; commits: 1734b1683911, c01469876a85; files: src/repair/comment-router-core.ts, src/repair/comment-webhook.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

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.

How this review workflow works
  • 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.

@Takhoffman
Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper
Copy link
Copy Markdown
Contributor

clawsweeper Bot commented Jun 2, 2026

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. labels Jun 2, 2026
@Takhoffman
Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper
Copy link
Copy Markdown
Contributor

clawsweeper Bot commented Jun 2, 2026

🦞👀
ClawSweeper picked this up.

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

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 2, 2026
@Takhoffman Takhoffman merged commit 54422d9 into main Jun 2, 2026
5 of 12 checks passed
@Takhoffman Takhoffman deleted the codex/keep-proof-nudge-comments-inert branch June 2, 2026 14:24
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. 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.

1 participant