Repository navigation
fix: dispatch comment commands when the target token fails - #5
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
@SebTardif is attempting to deploy a commit to the OpenClaw Foundation Team on Vercel. A member of the Team first needs to authorize it. |
|
Codex review: needs real behavior proof before merge. What this changesThis PR makes acknowledgement-token creation best-effort so its failure does not prevent comment-command dispatch. Example: A maintainer posts
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Blocked before merge - 1 item remains Keep this PR open: it fixes a concrete command-dispatch failure still present on main, with no actionable introduced defect found. Priority: P2 Before merge
FindingsNone. Tests
Agent review detailsHow this fits togetherThe repository's GitHub Actions dispatcher receives item and comment events, obtains scoped GitHub App tokens, and forwards eligible events to the central ClawSweeper repository. flowchart LR
A[GitHub comment] --> B[Command prefilter]
B --> C[Central dispatch token]
C --> D[Best effort acknowledgement token]
D --> E[Comment dispatch script]
E --> F[Central ClawSweeper router]
Technical reviewBest possible solution: Keep the focused workflow fix so optional acknowledgement credentials cannot suppress independently authenticated command dispatch. Do we have a high-confidence way to reproduce the issue? Current-main source establishes the failure path: target-token creation can fail after dispatch-token creation, and the later dispatch step has the default success condition; no live failure was reproduced during this read-only review. Is this the best way to solve the issue? Adding continue-on-error at the optional token step repairs the workflow owner directly and matches both existing empty-token handling and the upstream dispatcher contract. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against 13419ce4ddee. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 15, 2026, 9:05 PM ET / October 16, 2026, 01:05 UTC. |
Co-authored-by: Sebastien Tardif <sebtardif@ncf.ca>
59b73e9 to
4f2cb48
Compare
steipete
left a comment
There was a problem hiding this comment.
Verified at 4f2cb48: 32 tests pass locally and on Linux Crabbox, actionlint and independent review pass, and exact-head CI is green. Hosted run 38954795195 demonstrates actual token-action failure, continuation, and accepted inert dispatch; the live-proof hold is resolved.
What changes
Keep comment commands dispatching when creation of the optional target acknowledgement token fails. The central dispatch credential is independent; reactions and queued acknowledgements already tolerate an empty target token. Make that token action best-effort so GitHub Actions reaches the existing fallback path.
Preserves the existing command set and credential scopes. Includes regression coverage, documentation, and an Unreleased entry thanking @SebTardif.
Validation
The regression fails on the previous main branch because the failed action prevents the dispatch step. With this change, all 32 tests and actionlint pass locally. Independent Codex review of the complete candidate found no actionable P0–P2 defects.
Hosted failure proof: https://github.com/openclaw/clawsweeper.bot/actions/runs/38954795195
The pinned create-github-app-token action runs on a GitHub-hosted runner with intentionally invalid, synthetic key material. It fails with
Invalid keyData; the next step verifiesoutcome=failure,conclusion=success, and an empty target token, then executes the production comment-dispatch shell block. GitHub accepts the dispatch. The only routing changes in this temporary proof send a distinct inert event to this repository instead of sending a command to the central ClawSweeper service. No production credentials, comments, or deployments are involved. The temporary proof workflow is not part of the proposed final diff.The unit regression models Actions scheduling and exercises the real dispatch shell with a stub endpoint; the linked hosted run separately demonstrates actual runner continuation and accepted API delivery. It does not claim an intentionally induced production app outage.