carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

Reviewed d42a3100.

| Round 7 finding | Disposition | Assessment against rev 8 | |---|---|---| | P2 — interrupted release repeats flushes after producers close | Resolved | The resumed drain reuses recorded positions and skips flushing. The new test checks the retry’s call order; Stage B requires idempotent producer acknowledgements. |

New findings:

  1. P2 — Task 1, Step 3: exhausted-target fencing revokes a live source without its stop evidence.

FenceExhaustedTarget unconditionally sets op.exec = none and enters pinning. If three successive targets terminate during starting or releasing, the executor is still the live source. The verified fence belongs only to the target.

This violates claim §4’s evidence requirement for revoking execution. It also prevents the source from completing its ordinary stop request: root requires the requesting box to remain executor.

Fix: make exhaustion phase-sensitive. While the source remains executor, consume the target’s fence and record stuck, preserving the source’s execution identity, phase and release evidence. Reserve the transition to stuck pinning for cases where revocation is supported by the executor’s evidence. Test exhaustion in both starting and releasing.

  1. P2 — Task 7, Step 4: a same-controller retry loses the stop’s recorded directory revision.

Release restores recorded.ExpectedDirectoryRevision only when the boot or controller changes. If the roster advances between attempts under the same controller, the retry instead sends the new revision.

Root compares that revision with the stop inventory, and fence identity also includes it. Thus an interrupted release can remain blocked despite having durable flushed positions.

Fix: preserve the recorded directory revision whenever matching positions exist, independently of whether recovery mode is needed. Extend the retry test with an unchanged boot/controller and an advanced roster revision; require completion without another flush.

I accept rulings 1–22 and 24. Ruling 23 needs the phase restriction in finding 1. Stage B retains the earlier review obligations.

All 12 embedded patches pass git apply --check; all 39 complete Go blocks parse with gofmt. Compilation and tests were not reproduced in this read-only sandbox. No files changed.

Verdict: not ready — Stage A needs these two fixes.