Record the 93338b7 deployment and F32

F29 and F30 are both live-proven on the new build. F30's session cleanup then
exposed F32: a running but empty tmux server answers "no current target", which
hasSession did not recognise, so an already-dead pane could never be reaped.

F32 is a side effect of dea56e4. The reply only exists because the runtime now
outlives its last pane.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xsXyr5J1RACo71YeKG3Pu
This commit is contained in:
2026-08-28 01:09:30 +04:00
parent 92adf0477d
commit f860de4370
+57
View File
@@ -1368,3 +1368,60 @@ Fixed in `6523002`: `Action` carries the budget of both lines, the error names
the actual length and limit, and the prompt states the limit.
F31 blocks run 5 outright. Run 5's chain is four rotations.
## Deployment of 93338b7, and F32, 2026-08-28
Both halves deployed from one revision, built from a throwaway worktree because
the shared checkout still carries 20 uncommitted paths from another session.
```text
coordinator 93338b72cec5facdb991d5dfa56eb9d3195749d0 image sha256:8b57491da293 readyz 200
worker 93338b72cec5facdb991d5dfa56eb9d3195749d0 sha256 168bf20724ec7e03bb5bd19320d4b698d31441d15ce3706d0498d1c85ebd044f
tmux runtime MainPID 3073848, untouched across the worker install
```
The worker install is itself further F28 evidence. A real deployment left the
runtime and its cgroup alone.
### F29, live-proven
Blocking the F28 disposable task while leased returned `HTTP 200` and moved it
to `blocked v10`. The same call returned 409 eight times before this deploy.
### F30, live-proven, and the defect hiding behind it
The stuck `releases` entry cleared on the block, which is the fix working. The
session did not clear. It was marked `quarantined` instead, because `Kill`
returned an error for a pane that no longer exists.
### F32: an empty tmux server answers differently
```text
tmux has-session -t '=<gone>' → "no current target" exit 1
```
`hasSession` recognised `can't find session`, `no server running`, `no sessions`
and a socket-missing case. It did not recognise `no current target`, so a
missing session read as a real error.
This is a side effect of `dea56e4`. Before the runtime became its own unit, the
server exited with its last session and answered `no server running`, which was
already handled. `tmux -D` keeps the server alive past its last pane, so this
reply had never been produced before today.
Consequences: `Kill` fails for an already-dead pane, the quarantine never
clears, and the worker's only session slot stays pinned. `AgentStatus` shares
the helper and errored where it should report `exited`, which means F16's
missing-pane branch was refusing renewal by error rather than by detection.
Fixed in `92adf04`.
### Ledger
```
F28 closed, live-proven in both directions
F29 fixed in efd0a5e, DEPLOYED, live-proven
F30 fixed in 2dc90bd, DEPLOYED, partially live-proven, rest blocked by F32
F31 fixed in 6523002, DEPLOYED, awaiting run 5's first rotation
F32 fixed in 92adf04, needs a rebuild, BLOCKS leasing on workpc-claude
```