Current-head server-only evidence for PR23605 SHA bc8cb1093642491726ebfd6d1e9044fa5c07a7a5 VISUAL MATRIX: EMPTY (server only; runtime transcripts, no screenshots). Both rows use an explicitly FAKE tailscale CLI and actual application CLI. No actual tailnet mapping was touched. Isolated --base-dir values below. No live ~/.t3 database used. F1: one hung, unacknowledged attempt; zero serve-off; existing fixture mapping byte-identical before/after; exit130 in 0.527s. '/' returned 503: this proves an HTTP listener, not a working web UI. F1 harness initially asserted immediate group absence and failed during transient teardown; subsequent final exact-group check confirms absent. The original rc==0 assertion was not reached; observed rc130 is preserved. F1 driver is reconstructed from its initial executed text by reversing later harness changes. F2: one refusal, one successful retry, descriptor HTTP200, one cleanup command, empty final mapping; exit130 in 0.432s. F2 driver is the exact executed latest driver. Execution: python3 /tmp/16238-evidence-driver.py > /tmp/16238-fresh-private/transcript.txt 2>&1 (initial F1); python3 /tmp/16238-evidence-driver.py > /tmp/16238-fresh-v4-transcript.txt 2>&1 (F2). Drivers changed between runs as described. Sanitization: server raw logs retained privately under mode700 /tmp directories; only fixed ready/configured/disabled/retry milestones emitted. All pairing credentials, pairing URLs and QR blocks omitted entirely. No raw server logs uploaded. Full fake CLI call logs below contain fixture data only. FRICTION: v2 and v3 captures timed out after90s before any server output or CLI entry. Both captured groups were cleaned in finally; final audit confirms absent. VM load high; cause of startup stalls not established. Runtime shim reported v24.22.1 in Python environment and v26.12.1 in test shell. F2 pins real v24 executable. No heavy build started. Unverified: real Tailscale daemon/operator/login changes; R1-R5 historical rows not freshly rerun; desktop/Electron/macOS/Windows; daemon mutation before missing acknowledgement. Red commit f0607aae4c expected0/received1 is supplied prior evidence, not rerun here; current HEAD 5/5 green is self-identifying below. No code edits, push or public forge edits. === ORIGINAL F1 CAPTURE (including harness assertion) === 2026-10-24T02:57:46Z SHA=bc8cb1093642491726ebfd6d1e9044fa5c07a7a5 2026-10-24T02:57:47Z ENV Linux-6.1.102-x86_64-with-glibc2.39 v24.22.1 2026-10-24T02:57:47Z Raw logs private; transcript contains only selected fixed application milestones, no pairing output or QR blocks. All mapping state is fake, no real tailscale executable invoked. 2026-10-24T02:57:47Z F1 FAKE CLI; mapping-before={"httpsPort": 28443, "target": "http://127.0.0.1:19999", "owner": "pre-existing-fixture"} 2026-10-24T02:57:47Z COMMAND cwd=/home/ubuntu/wt/issue-16238 PATH=/tmp/16238-fresh-private/F1/bin: node apps/server/src/bin.ts serve --tailscale-serve --tailscale-serve-port 28443 --port 28738 --host 127.0.0.1 --base-dir /tmp/16238-fresh-private/F1/base --no-browser 2026-10-24T02:57:47Z spawned captured PID/PGID=645360 2026-10-24T02:57:59Z F1 CLI {"time": 1792810679.967484, "pid": 646385, "args": ["serve", "--bg", "--https=28443", "http://127.0.0.1:28738"], "event": "entered"} 2026-10-24T02:57:59Z F1 CLI {"time": 1792810679.9677804, "pid": 646385, "args": ["serve", "--bg", "--https=28443", "http://127.0.0.1:28738"], "event": "hung-before-mutation"} 2026-10-24T02:58:00Z F1 application ready milestone 2026-10-24T02:58:00Z F1 actual local HTTP HTTP/1.1 503 Service Unavailable 2026-10-24T02:58:00Z F1 mapping-at-shutdown={"httpsPort": 28443, "target": "http://127.0.0.1:19999", "owner": "pre-existing-fixture"} 2026-10-24T02:58:00Z F1 SIGTERM captured server PID=645360; calls=2 2026-10-24T02:58:00Z F1 server exit=130; shutdown_seconds=0.527 2026-10-24T02:58:00Z F1 mapping-after={"httpsPort": 28443, "target": "http://127.0.0.1:19999", "owner": "pre-existing-fixture"} 2026-10-24T02:58:00Z F1 attempts=1 serve-off-calls=0 calls-after-SIGTERM=0 2026-10-24T02:58:00Z F1 fixture PID=646385 exists_after_exit=False 2026-10-24T02:58:00Z F1 captured process group exists_after_exit=True Traceback (most recent call last): File "/tmp/16238-evidence-driver.py", line 92, in asyncio.run(main()) File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/tmp/16238-evidence-driver.py", line 91, in main await row('F1',28738,28443);await row('F2',28739,28444) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/16238-evidence-driver.py", line 77, in row note(f'{name} captured process group exists_after_exit={group_alive}');assert not group_alive ^^^^^^^^^^^^^^^ AssertionError === F2 CAPTURE === 2026-10-24T03:08:04Z SERVER_RUNTIME exact executable /home/ubuntu/.local/share/vite-plus/js_runtime/node/24.22.1/bin/node version=v24.22.1 2026-10-24T03:08:04Z SHA=bc8cb1093642491726ebfd6d1e9044fa5c07a7a5 2026-10-24T03:08:04Z ENV python=3.12.3 node_path=/home/ubuntu/.local/share/vite-plus/bin/node Linux-6.1.102-x86_64-with-glibc2.39 v24.22.1 2026-10-24T03:08:04Z Raw logs private; transcript contains only selected fixed application milestones, no pairing output or QR blocks. All mapping state is fake, no real tailscale executable invoked. 2026-10-24T03:08:04Z F2 FAKE CLI; mapping-before={} 2026-10-24T03:08:04Z COMMAND cwd=/home/ubuntu/wt/issue-16238 PATH=/tmp/16238-fresh-private-v4/F2/bin: /home/ubuntu/.local/share/vite-plus/js_runtime/node/24.22.1/bin/node apps/server/src/bin.ts serve --tailscale-serve --tailscale-serve-port 28444 --port 28739 --host 127.0.0.1 --base-dir /tmp/16238-fresh-private-v4/F2/base --no-browser 2026-10-24T03:08:04Z spawned captured PID/PGID=658171 2026-10-24T03:08:26Z F2 application ready milestone 2026-10-24T03:08:26Z F2 CLI {"time": 1792811306.0237436, "pid": 659624, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "entered"} 2026-10-24T03:08:26Z F2 CLI {"time": 1792811306.025141, "pid": 659624, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "refused"} 2026-10-24T03:08:26Z F2 deterministic grant file created after refusal 2026-10-24T03:08:26Z F2 application retry warning milestone (raw body omitted) 2026-10-24T03:08:27Z F2 CLI {"time": 1792811307.0790384, "pid": 659885, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "entered"} 2026-10-24T03:08:27Z F2 CLI {"time": 1792811307.0795417, "pid": 659885, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "configured"} 2026-10-24T03:08:27Z F2 application configured milestone 2026-10-24T03:08:27Z F2 actual local HTTP GET /.well-known/t3/environment HTTP/1.1 200 OK 2026-10-24T03:08:27Z F2 mapping-at-shutdown={"httpsPort": 28444, "target": "http://127.0.0.1:28739"} 2026-10-24T03:08:27Z F2 SIGTERM captured server PID=658171; calls=4 2026-10-24T03:08:27Z F2 application disabled milestone 2026-10-24T03:08:27Z F2 server exit=130; shutdown_seconds=0.432 2026-10-24T03:08:27Z F2 mapping-after={} 2026-10-24T03:08:27Z F2 attempts=2 serve-off-calls=1 calls-after-SIGTERM=2 2026-10-24T03:08:27Z F2 fixture PID=659624 exists_after_exit=False 2026-10-24T03:08:27Z F2 fixture PID=659885 exists_after_exit=False 2026-10-24T03:08:27Z F2 fixture PID=659887 exists_after_exit=False 2026-10-24T03:08:27Z F2 final group members=[] 2026-10-24T03:08:27Z F2 captured process group exists_after_exit=False 2026-10-24T03:08:27Z F2 PASS === CURRENT SHA FOCUSED TESTS === Sat Oct 24 03:00:12 UTC 2026 bc8cb1093642491726ebfd6d1e9044fa5c07a7a5 v26.12.1 COMMAND: vp test run apps/server/src/tailscaleServe.test.ts note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.5 /home/ubuntu/wt/issue-16238 Test Files 1 passed (1) Tests 5 passed (5) Start at 03:01:37 Duration 17.76s (transform 65%, import 19%, setup 15%, tests 1%) TEST_EXIT_CODE=0 === F1 FULL FAKE CLI CALL LOG === {"time": 1792810679.967484, "pid": 646385, "args": ["serve", "--bg", "--https=28443", "http://127.0.0.1:28738"], "event": "entered"} {"time": 1792810679.9677804, "pid": 646385, "args": ["serve", "--bg", "--https=28443", "http://127.0.0.1:28738"], "event": "hung-before-mutation"} === F2 FULL FAKE CLI CALL LOG === {"time": 1792811306.0237436, "pid": 659624, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "entered"} {"time": 1792811306.025141, "pid": 659624, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "refused"} {"time": 1792811307.0790384, "pid": 659885, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "entered"} {"time": 1792811307.0795417, "pid": 659885, "args": ["serve", "--bg", "--https=28444", "http://127.0.0.1:28739"], "event": "configured"} {"time": 1792811307.1486936, "pid": 659887, "args": ["serve", "--https=28444", "off"], "event": "entered"} {"time": 1792811307.1493917, "pid": 659887, "args": ["serve", "--https=28444", "off"], "event": "disabled"} === FINAL CAPTURED GROUP CLEANUP AUDIT === 2026-10-24 03:09:12.826938+00:00 captured PID/PGID 645360: no remaining members captured PID/PGID 651824: no remaining members captured PID/PGID 656598: no remaining members captured PID/PGID 658171: no remaining members === DRIVER HASHES === fe5eeb8f0bf3741105e1d064d2e265e0a116e3fd4a17d28b5df2613acc38b35a /tmp/16238-f1-driver.py 18a1002af98fed4920e679fcce3be11ac242f5bffbcbcdb478e52179737d68c8 /tmp/16238-f2-driver.py