Review each selected PR in its own item shard#674
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 19, 2026, 5:48 AM ET / 09:48 UTC. Summary Reproducibility: not applicable. This PR proposes review-automation architecture rather than addressing a reproducible user bug. Review metrics: 2 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Validate the exact head in an isolated and then two-item proposal-only run, demonstrating same-item cancellation, sibling isolation, generation fencing, final mutation/comment synchronization, terminal reconciliation, and telemetry before the PR leaves draft status. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR proposes review-automation architecture rather than addressing a reproducible user bug. Is this the best way to solve the issue? Unclear: per-item execution directly addresses the stated cancellation-isolation problem, but exact-head integration proof is still required to establish that this is the safest landing path. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1b9630b4911b. Label changesLabel changes:
Label 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
|
|
Canary follow-up for the durable stale-review status included in this PR:
No live apply/close command was run. This PR remains draft. |
f57a43b to
6a039cf
Compare
|
Landing update for #674 at head Validation completed:
The branch now also includes PR 693 telemetry-v2 producer integration, immutable terminal handling, retryable-publication heartbeats, mutation fencing/reconciliation, canonical repository identity, and durable publication ordering without duplicating the observer/dashboard implementation. Landing is intentionally blocked and the PR remains draft. Final autoreview found one unresolved generation-ordering flaw in GitHub native concurrency: cancellation happens before the arriving job validates its durable claim, so a delayed duplicate or older same-item The requested pre-merge production-like canary cannot safely bypass this blocker. Ordinary branch Current read-only observability remains passive at https://clawsweeper.openclaw.ai/api/review-observability?range=24h&repo=all: expected attempts 614, terminal attempts 0, coverage 0%, unexpected cancelled 0, unresolved failures 0, refreshing/slow/orphan 0. Exact event, Hot intake, and Normal backfill all currently show attributed successful source freshness, but these are prerequisite/passive observations, not PR 674 canary proof. Required next design decision: add a queue-authoritative, generation-aware cancellation handoff that cannot let stale dispatches cancel newer work; then rerun autoreview and the requested two-generation/two-item canary using #674 and #646 before removing draft status. |
|
Maintainer direction update (2026-07-21): stop the current combined rollout and do not land this head. The experiment exposed a flaw in the central same-item cancellation assumption. The exact-event job currently gives every generation of an item the same GitHub concurrency key with Neither simple concurrency-key alternative preserves the intended behavior:
A safe eager-cancellation design would require cancellation authority to move behind the durable claim: the queue would need to identify the exact older claimed run, persist and retry that cancellation instruction, carry it across multiple superseding generations, and reconcile one immutable Scope is another reason to stop rather than patch forward. The original goal is “Review each selected PR in its own item shard,” but the current branch spans 23 files, 19 commits, 3,348 additions, and 228 deletions across matrix planning, queue protocol v3, mutation permits, publication ordering, status projection, and telemetry. The combined rollout is no longer an appropriate landing unit for that requirement. Decision:
Potential follow-up directions, in preferred order:
A replacement narrow PR should prove only the original invariant: one item per job, sibling isolation, correct Useful retained evidence:
|
|
Clarification after closure: this PR carried a second, independent requirement that remains valid and should not be discarded with the sharding/cancellation experiment. The current behavior gap is in the durable ClawSweeper review comment. When a fresh review wins its exact-revision lease, current The required invariant is still:
This requirement originally lived independently in #645. That PR was closed only because #674 claimed to supersede it. Its first live implementation had a real blocker: GitHub issue-comment PATCH rejected the attempted The version later carried in this PR removed the unsupported Updated disposition:
So the closure decision separates two concerns; it does not declare the stale durable-comment problem solved or unnecessary. |
Summary
This draft supersedes #645. It stays draft until the isolated canary and the two-item live validation complete.
Why
The previous shard model reviewed several PRs sequentially in one long-running job. A new generation for one PR could not cancel only that PR's stale Codex work without also affecting unrelated items. The new execution unit is one item job, while the durable queue remains the cross-workflow admission and generation authority.
Safety and compatibility
batch_sizeis the total planner selection budget;shard_countmaps to matrixmax-parallelValidation
v24.15.0pnpm run check/data/code/openclaw/openclaw/.agents/skills/autoreview/scripts/autoreview --mode local --stream-engine-outputDraft exit criteria