Conversation
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Reviews (8): Last reviewed commit: "fix(pi): bound queued-close readiness wa..." | Re-trigger Greptile |
|
Speaking as Kun's firstmate: HEAD Contract-class: new-default. Unconfigured Pi watcher now coalesces delayed follow-ups, snapshots Greptile is not a required check on this repo (do not ping it). Its P1 is still a real defect to inspect: Overlaps #3441 on Waiting on the author, not the captain: address the stranded-pending-close retry, or show it cannot happen. After that it still needs a captain default-behavior decision. VISION.md per-rule
|
afab8c9 to
79a6ea1
Compare
|
Speaking as Kun's firstmate: HEAD Contract-class: new-default. Re-verified on this HEAD; a "fix" title still does not make restore. Unconfigured Pi watcher coalesces delayed follow-ups; Stranded-pending-close on this HEAD is fixed, not waiting on the author:
Current required no-mistakes check is the later edited-event run 33543542780 SUCCESS. Synchronize run 33543539328 FAILURE is the stale body-attestation race on the same SHA and is not the current required conclusion (GitHub merge state is CLEAN). CI 33543539426 SUCCESS (Lint/tests including Herdr and timing aggregate). Greptile SUCCESS 5/5 on 12f1f4a ("no blocking failure remains"); stale inline P1 threads from earlier SHAs are leftover mappings, not a live defect. Security: no workflows, no fake pins, no disguised gates; author M00NLIG7 is not blocked. Overlaps #3441 on This is a captain-decision hold, not waiting on the author. Default-behavior supervision widen still needs an explicit captain grant. VISION.md per-rule
|
…after a successful replacement arm, preventing actionable notifications behind a failure close from being stranded. Added an executable regression covering failure -> queued actionable close -> healthy retry delivery. Verified with `bash -n tests/fm-pi-watch-extension.test.sh`, `git diff --check`, and the focused Pi watcher test suite
…led retry clears its timer, pending closes now resume whether `startArm` succeeds or fails. Added an executable lock-loss regression proving a queued actionable wake is delivered with the continuity failure and no successor is launched. Verified: `bash tests/fm-pi-watch-extension.test.sh`, `bash -n tests/fm-pi-watch-extension.test.sh`, and `git diff --check` all pass
…ons/fm-primary-pi-watch.ts`: queued failures now remain queued while a successor establishes, resume once it establishes or closes, and cannot cause a retry-loop spin. Verified `git diff --check`, `node --check`, `bash -n`, and the focused Pi watcher suite (exit 0)
12f1f4a to
fd249cf
Compare
…secondmate-reconcile.test.sh. The failing assertion used a fixed 200 ms delay before checking a lock-contended notifier, so a loaded CI runner could fail before the child was scheduled. It now polls for prompt completion for up to 2 seconds, preserving failure for a genuinely blocked reconcile path. `bash -n tests/fm-secondmate-reconcile.test.sh` and `git diff --check` pass. The separate no-mistakes attestation failure is external to source: the PR body attests 12f1f4a… while the current head is fd249cf…, and must be refreshed by the outer pipeline push
|
Speaking as Kun's firstmate: HEAD What changed since waiting-captain Contract-class: new-default. Re-verified on this HEAD; a "fix" title still does not make restore. Unconfigured Pi watcher coalesces delayed follow-ups; Stranded-pending-close remains fixed on this HEAD (same design as prior stamp):
CI 33577027851 SUCCESS (Lint, Herdr, all portable shards, timing aggregate). Required no-mistakes is the later edited-event run 33577030673 SUCCESS; synchronize run 33577027872 FAILURE is the stale body-attestation race on the same SHA and is not the current required conclusion. Greptile FAILURE 4/5 on 940beaf with a new P1 at This remains a captain-decision hold, not waiting on the author. Default-behavior supervision widen still needs an explicit captain grant. Do not merge. Do not rebase while the captain decision is pending. VISION.md per-rule
|
|
Speaking as Kun's firstmate: captain word on this hold — hold for now. Not waiting on the author. HEAD still Reason: Pi supervision is in active flux; the captain will revisit when it settles. Firstmate will not re-flag this unless the product surface changes or the captain asks. |
Intent
Continue the existing PR #3440 from its proven exact remote head 940beaf. The continuation branch was rooted directly at that fetched, object-verified head; do not use, reset to, replace from, cherry-pick from, or otherwise treat prior local commit 8d7d0264ac5b2fbf98973642d39cf3d3216270dc as an implementation source. Fix only the Pi supervision continuity defect where a live successor exists but is not ready and can indefinitely strand the queued failure and every later closure. Preserve exactly-once delivery, closure ordering, bounded retry behavior, recovered-continuity behavior, per-actor ownership, and all existing safety boundaries. Add the smallest executable regression proving delayed successor readiness eventually releases the queued failure and subsequent closures without loss, duplication, or indefinite delay, including relevant negative and ordering cases. Review every supported primary harness and runtime-backend integration surface required by the Firstmate coding guidelines, marking an axis not applicable only from inspected evidence. Keep the diff narrowly compatible with the current PR and add no unrelated cleanup, broad refactor, product coupling, or private fleet facts. Keep author and committer identity M00NLIG7 57321738+M00NLIG7@users.noreply.github.com. Run focused checks plus required lint, tests, documentation checks, and maintainer verification, then one fresh complete no-mistakes validation against the final exact head. Publish only by a normal fast-forward of the existing proven source branch fm/firstmate-pi-wake-coalescing-public-pr-v1-k9 from expected remote head 940beaf, updating only existing PR 3440. Never force-push, create or reopen another PR, alter the base, comment, approve, merge, or drop the verified archive ref; stop if the remote source branch advances. Merge remains unauthorized.
What Changed
Risk Assessment
🚨 High: The Pi queue-bound fix is bounded and regression-covered, but the branch also changes unrelated supervision and no-mistakes state behavior despite the explicit Pi-only scope constraint.
Testing
Reviewed the final Pi-only change, ran the focused process-level watcher suite, and captured its behavioral transcript: a live unready successor boundedly released the queued failure and later close in order and exactly once, without overlap or duplication after delayed readiness; Pi lifecycle/recovery cases and the inspected OpenCode integration cases also passed. No UI surface exists for this headless extension path, so the CLI behavioral transcript is the reviewer-visible evidence.
Evidence: Focused Pi watcher behavioral transcript
Source: Focused Pi watcher behavioral transcript
ok - Pi bounds an unready successor without losing or reordering queued closes ok - Pi surfaces a queued failure without disturbing its healthy successor ok - OpenCode pre-ready actionable close preserves its successorPipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
.pi/extensions/fm-primary-pi-watch.ts- merge conflict rebasing onto origin/maindocs/architecture.md- merge conflict rebasing onto origin/maindocs/scripts.md- merge conflict rebasing onto origin/maindocs/watcher-continuity.md- merge conflict rebasing onto origin/mainbin/fm-watch.sh:833- Intent conformance: “Fix only the Pi supervision continuity defect” and “add no unrelated cleanup” conflict with this generic watcher change. A non-Pi worker with a stale pane and advancing no-mistakes step log now resets its wedge timer rather than emitting the prior wedge wake. Retain only with explicit scope authorization; otherwise remove it.bin/fm-crew-state.sh:568- Intent conformance: the Pi-only/narrow-diff requirement conflicts with changed global no-mistakes state semantics. A nonterminal run with stale outcome data plus fix-review/approval evidence is now classified as parked instead of by its outcome. This needs explicit authorization or removal.✅ **Test** - passed
✅ No issues found.
Reviewed the target commit’s executable delayed-readiness regression and Pi-only implementation diffbash tests/fm-pi-watch-extension.test.shgit diff --check f42a6291d4335cc7e169660bd7114239c3830a08 354d61070f6b541895dd7380b6b13c3cc70fd2f6✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.