# Issue 16442 evidence index — capture completion

Temporal matrix coverage: **5/5 rows recorded** (A/B lead evidence retained, C/D/E captured here). This is evidence coverage, not a claim that every test-proof prerequisite is supplied. Exact red and green stdout are now attached below. C-completed has been replaced with a full recording through visible completion and Stop removal.

Source head for C/D/E:9abdca566d7d6c1b3819ec07f6a64c4f45fb22dd. Capture fixture commit:47aec705b90dd98b2ff16b025efd47f9d1ea089a, on fix/issue-16442, unpushed. Two files only: apps/server/scripts/fixtures/antigravity-lifecycle-proof.mjs and seed-antigravity-lifecycle-proof.mjs. Syntax checked, formatted, git diff --check clean; seed script executed successfully against isolated .t3 with server stopped. No production source edits by capture agent.

All clips:1280×800 CSS viewport, Light theme; new captures measured DPR2 and streams2560×1600. Lead baseline A independently decoded and visually inspected Light at2560×1600; original lead1280×800 transcript implies DPR2. Other lead clips' exact theme/DPR are same-session reports rather than original instrumentation. No static render source changed, so auditor explicitly excludes static appearance rows and pixel diffs; no1440/390 or dark expansion required.

## A — end_turn then Stop

**Before:** premature completed/no Stop with both command PIDs alive. Baseline044f07257c used scratch end_turn fixture semantics; flag did not yet exist.

[Before A: end_turn prematurely settles the run](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/58bb0ef3e9a569a2/mcp-launch-client-3a08b87164-97f0-4f4b-9b60-8f80b438df49-fwd-3a18e98e66cdca169fd-d2484530-7f69-43d6-966c-2398cfe1dfa5-mp4.mp4)

**After:** run remains running with Stop; clicking Stop interrupts and removes both PIDs468229/468230. Head62a69a6d96.

[After A: Stop remains available after end_turn and tears down commands](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73dece7067357664/mcp-launch-client-3a08b87164-97f0-4f4b-9b60-8f80b438df49-fwd-3a18e98e66cdca169fd-47860154-4e41-4a8a-917a-b1a4cf0235af-mp4.mp4)

## B — active prompt Stop

**Before:** run interrupted, PIDs453180/453181 remain alive.

[Before B: active Stop leaves command processes alive](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/294bb85d2f37842b/mcp-launch-client-3a08b87164-97f0-4f4b-9b60-8f80b438df49-fwd-3a18e98e66cdca169fd-26b08431-360f-47af-9d1f-e7c7a3e2569f-mp4.mp4)

**After:** active prompt interrupted; PIDs471618/471619 gone.

[After B: active Stop interrupts and removes command processes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ac66cc702a61fb44/mcp-launch-client-3a08b87164-97f0-4f4b-9b60-8f80b438df49-fwd-3a18e98e66cdca169fd-73395339-4424-4861-9d1b-b49fab8aa4f7-mp4.mp4)

## C — natural terminal command updates

Both variants show reply finished while command/run remain running and Stop available; captured sleep child receives SIGTERM solely to release the mock's process-exit gate. Mock emits selected completed/failed update; deferred finalization completes run and removes Stop ~3 seconds later. This is natural protocol settlement, not app Stop; fixture chooses terminal status, so completed does not claim successful shell exit. Immutable event export proves command status preserved.

[C completed: late completed command update permits settlement](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b603d391f8fc4b2/row-Ccompleted-fresh.mp4)

[C failed: late failed command update permits settlement](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ef1733542b18348/row-Cfailed.mp4)

## D — pending command and synthetic subagent completion

Real ACP transport emits pending execute and completed start_subagent, then idle/end_turn. Client shows Idle · resumable; run completed, Stop removed. Read-only projections confirm run completed, subagent idle. Exact adapter test authoritative for semantics.

[D: pending command does not block completion and subagent becomes idle](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73e20770dbd8c502/row-D.mp4)

## E — post-Stop follow-up

Same thread: Stop interrupts first run; PIDs488232/488233 gone; running-command flags OFF on restarted runtime; harmless follow-up returns ordinary hello from mock and completes without stuck Stop. Old PIDs still absent at cleanup.

[E: Stop followed by a successful ordinary prompt in the same thread](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/56dceb60417dbbc8/row-E.mp4)

## Runtime and tests

- [Capture runtime, flags, thread IDs, timestamps, PID checks, theme/DPR and limitations](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c38537243fbef37/capture-runtime.txt)
- [Selected immutable lifecycle events](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9673b3f0c2a11ea5/event-proof.jsonl)
- [Lead baseline runtime transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95ae585763d6fbcf/reproduction.txt)
- [Lead head runtime transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c488047b6550027e/after.txt)
- [Parent-reported green:10/10 at9abdca566d, command and timing](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19ff1486a3925329/green-parent-report.txt). Superseded by the raw post-merge green log below.

Unverified: live Antigravity and macOS/Windows process behavior were not executed; this reproduces the reporter’s ACP mock setup on Linux. No extra client/mobile/browser passes beyond matrix scope. A/B inherited from lead; no new before worktree. Lead integrated pass already done. Settings/command palette/contracts have no changed entry point. Desktop wraps web; mobile consumes same lifecycle but no separate mobile capture required by auditor.

What else changed in capture: thread IDs/prompts, run timestamps/durations, generated titles, git change counts and checkpoints; sidebar collapsed for C/D/E to reduce unrelated content. D fixture is transport equivalent of adapter injection. Initial invalid D recordings discarded; source/test edits triggered watcher restart during another attempt, also discarded. Successful D/C/E clips occurred after restart stabilized. Native mock IDs initially reused across threads; immutable events retain original statuses; committed fixture adds per-process tool ID suffixes.

Cleanup: retained dev session5669 stopped via Ctrl-C; ports8635/16675 verified no listeners; captured E PIDs absent. No PR created, no push. No requests.jsonl or secret-bearing logs uploaded. Server stays stopped for parent tests.

FRICTION browser-auth | prior cookie did not authenticate fresh tab | minted dedicated agent token, reloaded once; startup/user link untouched.
FRICTION fixture-wire | initial D used unsupported tool_call then omitted ACPv2 idle state | corrected to tool_call_update plus state_update idle; discarded unsuccessful captures.
FRICTION watcher | concurrent edits to watched test file restarted server during early D attempt | discarded attempt; captured final clips after editor committed; server stopped before tests.
FRICTION fixture-identifiers | mock native IDs reused between threads overwrite projections | exported immutable events; seed transport now suffixes tool IDs.
FRICTION test-proof | baseline red/raw green logs absent here | parent must attach exact logs; do not infer red from runtime recording or represent reported green as stdout.

## Exact test proof and final revision

Command: `vp test run apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts`.

- [Red stdout](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0fef33447379a7a5/red.log): revision334dcb70d6 before the fix, 1failed/7passed; expected interrupted, received completed.
- [Green stdout](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b49d3cd05960911d/green.log): revision008bca4b48 after merging main22840ab943, all10passed at19:59:51UTC,18.90s.

Production behavior unchanged after62a69a6d96. Later commits add settlement tests, reproducible fixture scripts, normalize scenario environment, repair namespace imports and seed the required localharness_external sibling. Main merged cleanly; its unrelated websocket/streaming changes do not alter this adapter diff.

Audit independently replayed rowD with completed run, idle subagent, Stop removed. At1280×800 normalized: MAE0.782/255;1.057% pixels differ by>16 per RGBchannel due to dynamic elapsed time, git content, cursor and compression. No static appearance change is claimed.

Replacement C-completed at final head008bca4b48: run completed20:02:48.323UTC; client visibly Worked30s, Stopremoved, Submitrestored20:02:49.419UTC, visible in final decoded frame (about0.033seconds before encoded end; no two-second encoded hold claimed). [Supplemental runtime/events](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5dbdd834733b44d1/c-completed-supplemental.md). This replaces the truncated original C-completed clip.

Timing correction: original supplemental report’s two-second hold claim is withdrawn. Decoded PTS34.465700 still has Stop; PTS34.734433 shows completed/Submit; clip ends34.767733. The matrix requires the transition, not a two-second hold. UTC observations are tool/event timestamps and not independently measurable from video. [Audit](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b1c36f493ae91064/report.md).
