carlos / platform Public

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

Plain git — no account needed to clone.

Download

Download this file

1Reviewed rev 4.1 at `1cfa15bf`, against claim rev 6.3 and the supplied moves rev 7.6 draft.
2
3| Finding | Disposition |
4|---|---|
5| A4-1 — release ordering | **Partly resolved.** Application processes stop before flushing, but the new first step also requires the still-open replicator’s file descriptors to be gone. See A5-1. |
6| A4-2 — multipart preparation | **Resolved.** The object-creation qualifier exempts multipart preparation while enforcing conditional completion, matching [AWS’s documented policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-writes-enforce.html). |
7| A4-3 — dependency revision | **Resolved.** The header correctly identifies rev 7.6 as uncommitted and requires the plan to pin its commit. |
8| A3-2 — target durability barrier | **Partly resolved.** Final positions and minimum pinning requirements remain explicit, but A5-1 blocks the release sequence. |
9| A2-7 residual — failed-probe recovery | **Partly resolved.** Recovery preserves the required positions once release completes; A5-1 prevents normal completion. |
10
11**A5-1 — P1 — §5.8: the first release step waits for handles that close only in step 4.** [Location](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha/docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.md:494)
12
13**Problem:** Step 1 requires no remaining holder of the database, WAL or SHM files, citing claim §6.1. That claim’s check scans `/proc/*/fd`; it includes the platform’s embedded replicator. Litestream v0.5.14 explicitly opens a [long-running database descriptor](/home/paulca/go/pkg/mod/github.com/benbjohnson/litestream@v0.5.14/db.go:1000), which remains open until [DB.Close](/home/paulca/go/pkg/mod/github.com/benbjohnson/litestream@v0.5.14/db.go:799). This sequence keeps the replicator open for step 2’s `SyncAndWait` and closes it only in step 4.
14
15**Failing sequence:** A healthy, replicating source begins a drain. Admission closes, timer deliveries drain, and the application cgroup empties. The descriptor scan still finds Litestream’s database handle in the platform process. Step 1 cannot finish, so the final flush and replicator close are never reached. A failed-probe target encounters the same obstruction and becomes `stuck`.
16
17**Suggested fix:** In step 1, establish that application processes and other application writers have stopped, allowing only explicitly identified platform replication/flush handles to remain. Flush and journal the final positions, close those handles, then perform the unrestricted no-holder check as part of step 4’s final stop evidence. Carry this distinction into K2 and test release with an initialized embedded replicator.
18
19All code `file:line` citations were checked against `1cfa15bf`. No files were changed or tests run.
20
21**Verdict: not ready.**