Linux x86_64 | real T3 Code server + real OpenCode 1.19.5 | fresh isolated state
Fixture controls: 200ms parent spawn delay; no systemd agent scopes; pause T3 at ledger until crash
Commit f313d0a6cb843551fb60e57a454a71e71a3a8c04
Started owning T3 Code server PID 57571
Project created through T3 CLI: Added project 958d87c3-3f8f-4a90-83fc-27a30308045f (OpenCode cleanup proof) at <synthetic-project>.
Ledger written before releasing FIFO: {"version": 1, "pgid": 58104, "pid": 58105, "startTime": "182354", "port": 34421, "owner": {"pid": 57571, "startTime": "181201"}}
Recorded member before exec: {"pid": 58105, "pgid": 58104, "startTime": "182354", "zombie": false, "command": "<fixture>/opencode-wrapper serve --hostname=127.0.0.1 --port=34421"}
Pause owning T3 server after ledger write to hold wrapper-exit handling while OpenCode boots
FIFO released. Real OpenCode now listening on port 34421
Same member after exec: {"pid": 58105, "pgid": 58104, "startTime": "182354", "zombie": false, "command": "<real-opencode> serve --hostname=127.0.0.1 --port=34421"}
Command changed across exec: True
SIGKILL owning T3 Code server PID 57571 only (bypass graceful cleanup)
After crash: OpenCode port listening = True
Restarted same T3 Code state. Old ledger entry removed = True
Old OpenCode member still running = True
Old OpenCode port still listening = True
RESULT: BUG REPRODUCED: orphan survives restart
