Add maintainer decision packets#358
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 24, 2026, 9:33 AM ET / 13:33 UTC. Summary Reproducibility: not applicable. this is a feature PR rather than a current-main bug report. The PR body includes terminal output from a built apply-decisions run showing packet creation and cleanup. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land after maintainer acceptance of the decision-packet state contract and exact-head checks, treating packet files as generated durable state derived from reports and labels. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a feature PR rather than a current-main bug report. The PR body includes terminal output from a built apply-decisions run showing packet creation and cleanup. Is this the best way to solve the issue? Unclear until maintainers accept the durable state contract; technically, the dedicated module plus apply/replay/reconcile hooks is coherent and I found no blocking patch defect. A safer alternative is to hold the packet output until the downstream maintainer UI contract is confirmed. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against f92fbfebbe8f. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
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
|
62f755a to
6763870
Compare
6763870 to
347418d
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
Summary
test/decision-packets.test.ts, with ClawSweeper integration coverage left intest/clawsweeper.test.tsCompanion reports UI
Companion maintainers report UI branch is ready locally at
d081921d0a3f4baa3391bc0de3303955bc81c5fc(codex/decision-packets-reports-v1). Tracking issue: openclaw/maintainers#103. The PR link will be added once that branch can be published inopenclaw/maintainers.A local reports UI preview was generated from the maintainers branch. The screenshot assets are hosted on a separate preview-only branch in the author fork, not in this PR diff.
Reports UI Preview
Desktop overview:
Filtered view, showing persistent label/filter shape:
Mobile/narrow view:
GHAS / CodeQL Follow-Up
src/decision-packets.ts.Real Behavior Proof
Ran the built CLI against temp
items/,closed/,plans/, anddecision-packets/directories with a fakeghexecutable wired throughGH_BIN, so the command exercised the realdist/clawsweeper.js apply-decisionspath without mutating GitHub or repo state.Command, with temp paths redacted:
Observed output and state:
{ "firstRun": [ { "number": 321, "action": "skipped_changed_since_review", "reason": "updated_at changed" } ], "packetProduced": true, "packetSummary": { "lane": "product_contract", "repo": "openclaw/clawsweeper", "number": 321, "state": "open" }, "firstReportHasPointer": true, "secondRun": [ { "number": 321, "action": "skipped_changed_since_review", "reason": "updated_at changed" } ], "stalePacketRemoved": true, "secondReportPointerCleared": true, "ghCalls": 4 }The first run produced
[temp]\decision-packets\321.jsonand wrotedecision_packet_path/decision_packet_sha256into the report. After removing the decision trigger from the temp report and rerunning the same CLI command, the stale packet was removed and the report pointers were cleared tonone.Validation
pnpm run build:allpnpm run lintpnpm exec oxfmt --check README.md src/clawsweeper.ts src/decision-packets.ts test/clawsweeper.test.tspnpm exec oxfmt --check src/decision-packets.tspnpm exec oxfmt --check test/decision-packets.test.ts test/clawsweeper.test.tsnode --test test/decision-packets.test.tsnode --test --test-name-pattern "review comments include a compact maintainer decision packet block|apply-decisions skips advisory label sync when a close report changed since review" test/clawsweeper.test.tsnode --test --test-name-pattern "decision packet|maintainer decision packet|apply-decisions skips advisory label sync when a close report changed since review" test/clawsweeper.test.tsbefore the test splitgit diff --check(CRLF warnings only)pnpm checkFull
test/clawsweeper.test.tswas not rerun in this final pass because the broader Windows lane previously hit an existing CRLF-sensitive workflow regex failure unrelated to this patch.