# Packaged Linux update evidence, round 2

For [#23005](https://github.com/pingdotgg/t3code/pull/23005) / [#23007](https://git.cafe/pingdotgg/t3code/pull/23007): [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) → [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004). No PR source edits, commits, pushes, or PR comments. Only the five assigned rows were exercised; prior sufficient rows were not recaptured.

**Coverage: 5/5 assigned rows have before/after runtime recordings. F10, F11-event, injected F11-sync and F13-install have their marker/backend criteria observed. F14 has a passing normal control and a contradictory traced run, so its unconditional no-fallback acceptance is NOT established. Actual SSH transport is unverified.**

Builds: baseline-old 90.23005.0 from detached base worktree; head-old 90.23005.0 and head-target 90.23005.1 from an exact git archive of the head in disposable scratch. The same target was used on both sides. Full web/server/native builds, no stubs. Head archive builds label commit unknown; source/archive/image hashes are in [provenance.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/511b15d188e50cd0/provenance.txt). Mock manifest checksum and served bytes were validated. [Build, feed, runtime, syscall and transcript archives](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36c9427d81fd39eb/final-logs.tar.gz).

Data: each side starts its own fresh empty database and synthetic HOME/T3CODE_HOME under this capture directory. No production data was read or copied. No provider login or turn was needed. Source CLI probes can discover installed providers; that is startup work, not an agent turn.

## F10 — atomic publication before backend stop

Steps, with UTC timestamps (2026-10-27): fresh HOME → old packaged backend ready → check/download valid90.23005.1 → Install → observe native replacement and automatic relaunch → final hold and cleanup (restore0555 fixture parent to0755).

success-before: initial-ready 2026-10-27T06:04:04.010Z, install-action 2026-10-27T06:04:08.201Z, replacement-ready 2026-10-27T06:04:43.614Z, sequence-complete 2026-10-27T06:05:07.439Z.

success-after: initial-ready 2026-10-27T06:05:36.768Z, install-action 2026-10-27T06:05:43.475Z, replacement-ready 2026-10-27T06:06:18.815Z, sequence-complete 2026-10-27T06:06:39.779Z.



| Before | After |
|---|---|
| [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/57b3f988c221b7ba/success-before-20261027T060350-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3661d6c14e29b8ea/timeline.txt) | [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9267783fe12f0a8/success-after-20261027T060514-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fea4536b488c2610/timeline.txt) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) |


Environment: Machine fs-37 / freestyle; Linux x86_64; Node 26.12.1 via global vp; Electron 44.9.3; headless-desktop Xvfb 1920x1080x24 with D-Bus and unlocked GNOME keyring; Initial launch arguments: --no-sandbox --disable-gpu. Native quitAndInstall relaunch drops command-line switches, including those and the debugger ports; ELECTRON_DISABLE_SANDBOX=1 and LIBGL_ALWAYS_SOFTWARE=1 remain inherited through relaunch. AppImage runtime is exercised at its real installed path; The mount-only preflight printed a mount path but the real headless launch failed with fusermount Operation not permitted. Runtime fixtures therefore use --appimage-extract-and-run at the real installed image path, with APPIMAGE_EXTRACT_AND_RUN=1 and LIBGL_ALWAYS_SOFTWARE=1 inherited through relaunch. Every fixture uses a fresh synthetic HOME and identical T3CODE_HOME=$HOME/.t3 under /tmp/lead-23005-r2/capture. No production database or provider credentials accessed. Build caches only use the existing home; no app/server is run with it.
Final accepted stills: ImageMagick import -screen -window <visible T3 Code window id>, 1100x780 at (410,150); paired imports 500 ms apart with AE=0. A libX11 screen-saver query reports timeout/interval 600 seconds; reset is logged before the final imports. Rejected root-only imports are kept as diagnostics, and the separate real x11grab recordings are retained. The final sync-before X11 panel stayed black; its ImageMagick window still and terminal transcript remain valid, and earlier visible takes are retained. Initial main-window geometry: 1100×780 at (410,150) on both sides; final stills crop that visible window with ImageMagick import -screen. Each accepted still has AE=0 against a second capture 500 ms later. The terminal panel is a timestamp-faithful replay rendered from actual JSONL/syscalls at 5 fps, stacked below the real 15 fps X11 recording; no simulated app UI. Actual timestamps in the text are authoritative.

Drivers/build: [run.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834259c0b7f2ed45/run.py), [desktop-session.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7d103d75ace6b07/desktop-session.sh), [cdp.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea62f417dcb0e3a/cdp.mjs), [reproduce-build.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ff953220df94557/reproduce-build.sh). Complete scripts and exact generated node/archive launchers: [final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99971456606dd164/final-all-scripts.tar.gz).


After: the syscall excerpt below shows JSON written to desktop-update-in-progress.tmp, successful rename to the final path, then SIGTERM to the exact initially recorded backend process group. expiresAt − startedAt = 60000 ms. Before: real installation shuts down its backend without publishing that marker. The same successful native replacement sequence also provides F13-install proof.

```text
strace.74476: 1793081136.376896 write(1</tmp/lead-23005-r2/capture/success-after-20261027T060514/desktop-stdio.log>, "[06:05:36.376] INFO (#191): backend ready\n", 42) = 42
strace.74499: 1793081143.590710 write(131</tmp/lead-23005-r2/capture/success-after-20261027T060514/home/.t3/runtime/desktop-update-in-progress.tmp>, "{\"startedAt\":1793081143589,\"expiresAt\":1793081203589}", 53) = 53
strace.74500: 1793081143.592619 rename("/tmp/lead-23005-r2/capture/success-after-20261027T060514/home/.t3/runtime/desktop-update-in-progress.tmp", "/tmp/lead-23005-r2/capture/success-after-20261027T060514/home/.t3/runtime/desktop-update-in-progress") = 0
strace.74476: 1793081143.605004 kill(-74790, SIGTERM) = 0
strace.74476: 1793081147.281209 kill(-74790, SIGTERM) = -1 ESRCH (No such process)
strace.75178: 1793081155.201795 unlink("/tmp/lead-23005-r2/capture/success-after-20261027T060514/home/.t3/runtime/desktop-update-install.json") = 0
strace.75179: 1793081159.277777 unlink("/tmp/lead-23005-r2/capture/success-after-20261027T060514/home/.t3/runtime/desktop-update-in-progress") = 0
strace.75159: 1793081159.582267 write(1</dev/null<char 1:3>>, "[06:05:59.582] INFO (#193): backend ready\n", 42) = 42
```

What else changed: the added temporary/final marker writes and readiness unlink are visible only after. Process IDs, owner UUIDs, source/extraction paths, timestamps and image hashes differ per fresh run; old image hashes differ by design, target hash is identical. Startup/download/HTTP probe timings vary and are not a performance comparison. The final UI has no intended visual change; the settled diff below records any pixel variation.


| Before settled still | After settled still | Diff0 | DiffT |
|---|---|---|---|
| ![Before success](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9fef9f63b9cdeb99/success-before.png) | ![After success](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba00c54c8618fea1/success-after.png) | ![Zero-threshold absolute RGB difference amplified 8x](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e3f8eb9a9965522a/success-diff0-x8.png) | ![Maximum RGB channel difference greater than 16 of 255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a106f701f1a5fca2/success-diff16.png) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) | zero threshold, gain 8 | threshold >16/255, white changed |


## F11-event — native installer error event

Steps, with UTC timestamps (2026-10-27): fresh HOME → old packaged backend ready → check/download valid90.23005.1 → chmod0555 on installed-image parent (download cache stays writable) → Install → observe install error and backend recovery → final hold and cleanup (restore0555 fixture parent to0755).

event-before: initial-ready 2026-10-27T06:06:57.196Z, install-action 2026-10-27T06:07:02.146Z, recovery-ready 2026-10-27T06:07:08.692Z, sequence-complete 2026-10-27T06:07:29.616Z.

event-after: initial-ready 2026-10-27T06:08:57.091Z, install-action 2026-10-27T06:09:01.973Z, recovery-ready 2026-10-27T06:09:09.536Z, sequence-complete 2026-10-27T06:09:30.438Z.



| Before | After |
|---|---|
| [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c88229b21c6a580/event-before-20261027T060640-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/066696969a559891/timeline.txt) | [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff0b8ed46e0dfc9b/event-after-20261027T060730-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2b6eabaf2c8037db/timeline.txt) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) |


Environment: Machine fs-37 / freestyle; Linux x86_64; Node 26.12.1 via global vp; Electron 44.9.3; headless-desktop Xvfb 1920x1080x24 with D-Bus and unlocked GNOME keyring; Initial launch arguments: --no-sandbox --disable-gpu. Native quitAndInstall relaunch drops command-line switches, including those and the debugger ports; ELECTRON_DISABLE_SANDBOX=1 and LIBGL_ALWAYS_SOFTWARE=1 remain inherited through relaunch. AppImage runtime is exercised at its real installed path; The mount-only preflight printed a mount path but the real headless launch failed with fusermount Operation not permitted. Runtime fixtures therefore use --appimage-extract-and-run at the real installed image path, with APPIMAGE_EXTRACT_AND_RUN=1 and LIBGL_ALWAYS_SOFTWARE=1 inherited through relaunch. Every fixture uses a fresh synthetic HOME and identical T3CODE_HOME=$HOME/.t3 under /tmp/lead-23005-r2/capture. No production database or provider credentials accessed. Build caches only use the existing home; no app/server is run with it.
Final accepted stills: ImageMagick import -screen -window <visible T3 Code window id>, 1100x780 at (410,150); paired imports 500 ms apart with AE=0. A libX11 screen-saver query reports timeout/interval 600 seconds; reset is logged before the final imports. Rejected root-only imports are kept as diagnostics, and the separate real x11grab recordings are retained. The final sync-before X11 panel stayed black; its ImageMagick window still and terminal transcript remain valid, and earlier visible takes are retained. Initial main-window geometry: 1100×780 at (410,150) on both sides; final stills crop that visible window with ImageMagick import -screen. Each accepted still has AE=0 against a second capture 500 ms later. The terminal panel is a timestamp-faithful replay rendered from actual JSONL/syscalls at 5 fps, stacked below the real 15 fps X11 recording; no simulated app UI. Actual timestamps in the text are authoritative.

Drivers/build: [run.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834259c0b7f2ed45/run.py), [desktop-session.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7d103d75ace6b07/desktop-session.sh), [cdp.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea62f417dcb0e3a/cdp.mjs), [reproduce-build.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ff953220df94557/reproduce-build.sh). Complete scripts and exact generated node/archive launchers: [final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99971456606dd164/final-all-scripts.tar.gz).


Both sides downloaded a valid checksummed AppImage, then chmod 0555 was applied only to its installed-image parent. Native unlink(APPIMAGE) returned EACCES, BaseUpdater emitted its install error, the same desktop main process stayed alive, and a new backend of the old 90.23005.0 image became HTTP-ready. Directory permissions were restored during cleanup. After: restart sentinel, in-progress marker, and install JSON were removed before recovery readiness. The subscribed update-state history contains errorContext=install with canRetry=true; startup checks subsequently clear message/errorContext, so a permanent status:error is not the expected assertion.

```text
strace.76795: 1793081336.600963 write(1</tmp/lead-23005-r2/capture/event-after-20261027T060730/desktop-stdio.log>, "[06:08:56.600] INFO (#193): backend ready\n", 42) = 42
strace.76816: 1793081342.094336 write(126</tmp/lead-23005-r2/capture/event-after-20261027T060730/home/.t3/runtime/desktop-update-in-progress.tmp>, "{\"startedAt\":1793081342090,\"expiresAt\":1793081402090}", 53) = 53
strace.76815: 1793081342.096504 rename("/tmp/lead-23005-r2/capture/event-after-20261027T060730/home/.t3/runtime/desktop-update-in-progress.tmp", "/tmp/lead-23005-r2/capture/event-after-20261027T060730/home/.t3/runtime/desktop-update-in-progress") = 0
strace.76795: 1793081342.108083 kill(-77106, SIGTERM) = 0
strace.76795: 1793081345.093687 kill(-77106, SIGTERM) = -1 ESRCH (No such process)
strace.76795: 1793081345.095608 unlink("/tmp/lead-23005-r2/capture/event-after-20261027T060730/installed/T3-Code.AppImage") = -1 EACCES (Permission denied)
strace.76814: 1793081345.100519 unlink("/tmp/lead-23005-r2/capture/event-after-20261027T060730/home/.t3/runtime/desktop-update-restart") = 0
strace.76816: 1793081345.103812 unlink("/tmp/lead-23005-r2/capture/event-after-20261027T060730/home/.t3/runtime/desktop-update-in-progress") = 0
strace.76817: 1793081345.106933 unlink("/tmp/lead-23005-r2/capture/event-after-20261027T060730/home/.t3/runtime/desktop-update-install.json") = 0
strace.76795: 1793081349.207049 write(1</tmp/lead-23005-r2/capture/event-after-20261027T060730/desktop-stdio.log>, "[06:09:09.206] INFO (#751): backend ready\n", 42) = 42
```

What else changed: after adds the in-progress marker publication and recovery removal; before has no such marker. Both show the same native EACCES failure, retained desktop, replacement old-version backend, transient install error and retry availability. Fresh IDs/paths/timestamps differ, and the UI may spend different intervals reconnecting. No timing claim is made.


| Before settled still | After settled still | Diff0 | DiffT |
|---|---|---|---|
| ![Before event](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/48dea377d0b537be/event-before.png) | ![After event](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4662fa95358b611d/event-after.png) | ![Zero-threshold absolute RGB difference amplified 8x](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/59acc3899f1a7f41/event-diff0-x8.png) | ![Maximum RGB channel difference greater than 16 of 255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/530dbd032131c7ec/event-diff16.png) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) | zero threshold, gain 8 | threshold >16/255, white changed |


## F11-sync — explicitly injected escaping throw

Steps, with UTC timestamps (2026-10-27): fresh HOME → old packaged backend ready → check/download valid90.23005.1 → arm the matrix one-shot main-inspector console.info throw → Install → observe install error and backend recovery → final hold and cleanup (restore0555 fixture parent to0755).

sync-before: initial-ready 2026-10-27T06:10:55.498Z, install-action 2026-10-27T06:11:00.381Z, recovery-ready 2026-10-27T06:11:35.737Z, sequence-complete 2026-10-27T06:11:56.657Z.

sync-after: initial-ready 2026-10-27T06:10:01.981Z, install-action 2026-10-27T06:10:07.515Z, recovery-ready 2026-10-27T06:10:14.122Z, sequence-complete 2026-10-27T06:10:35.057Z.



| Before | After |
|---|---|
| [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b5c7477c69f19bb2/sync-before-20261027T061043-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c15c92841c1d2811/timeline.txt) | [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1851d139f2454b61/sync-after-20261027T060947-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ab33958c92d602ff/timeline.txt) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) |


Environment: Machine fs-37 / freestyle; Linux x86_64; Node 26.12.1 via global vp; Electron 44.9.3; headless-desktop Xvfb 1920x1080x24 with D-Bus and unlocked GNOME keyring; Initial launch arguments: --no-sandbox --disable-gpu. Native quitAndInstall relaunch drops command-line switches, including those and the debugger ports; ELECTRON_DISABLE_SANDBOX=1 and LIBGL_ALWAYS_SOFTWARE=1 remain inherited through relaunch. AppImage runtime is exercised at its real installed path; The mount-only preflight printed a mount path but the real headless launch failed with fusermount Operation not permitted. Runtime fixtures therefore use --appimage-extract-and-run at the real installed image path, with APPIMAGE_EXTRACT_AND_RUN=1 and LIBGL_ALWAYS_SOFTWARE=1 inherited through relaunch. Every fixture uses a fresh synthetic HOME and identical T3CODE_HOME=$HOME/.t3 under /tmp/lead-23005-r2/capture. No production database or provider credentials accessed. Build caches only use the existing home; no app/server is run with it.
Final accepted stills: ImageMagick import -screen -window <visible T3 Code window id>, 1100x780 at (410,150); paired imports 500 ms apart with AE=0. A libX11 screen-saver query reports timeout/interval 600 seconds; reset is logged before the final imports. Rejected root-only imports are kept as diagnostics, and the separate real x11grab recordings are retained. The final sync-before X11 panel stayed black; its ImageMagick window still and terminal transcript remain valid, and earlier visible takes are retained. Initial main-window geometry: 1100×780 at (410,150) on both sides; final stills crop that visible window with ImageMagick import -screen. Each accepted still has AE=0 against a second capture 500 ms later. The terminal panel is a timestamp-faithful replay rendered from actual JSONL/syscalls at 5 fps, stacked below the real 15 fps X11 recording; no simulated app UI. Actual timestamps in the text are authoritative.

Drivers/build: [run.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834259c0b7f2ed45/run.py), [desktop-session.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7d103d75ace6b07/desktop-session.sh), [cdp.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea62f417dcb0e3a/cdp.mjs), [reproduce-build.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ff953220df94557/reproduce-build.sh). Complete scripts and exact generated node/archive launchers: [final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99971456606dd164/final-all-scripts.tar.gz).


The matrix main-inspector recipe worked without editing PR source or the packaged artifact. A one-shot console.info wrapper throws audit-F11-sync-native-refusal at the upstream quitAndInstall entry log, outside its native install catch, and restores console.info before throwing. This is injected branch coverage in a real packaged process, not a naturally occurring AppImage filesystem failure. Both sides retain their desktop main and restore an old-version backend. After removes the published marker, restart sentinel and install record before recovery readiness. The observed error state is retained in the event history.

```text
strace.78525: 1793081401.465936 write(1</tmp/lead-23005-r2/capture/sync-after-20261027T060947/desktop-stdio.log>, "[06:10:01.465] INFO (#191): backend ready\n", 42) = 42
strace.78547: 1793081407.648129 write(134</tmp/lead-23005-r2/capture/sync-after-20261027T060947/home/.t3/runtime/desktop-update-in-progress.tmp>, "{\"startedAt\":1793081407646,\"expiresAt\":1793081467646}", 53) = 53
strace.78545: 1793081407.650351 rename("/tmp/lead-23005-r2/capture/sync-after-20261027T060947/home/.t3/runtime/desktop-update-in-progress.tmp", "/tmp/lead-23005-r2/capture/sync-after-20261027T060947/home/.t3/runtime/desktop-update-in-progress") = 0
strace.78525: 1793081407.662623 kill(-78836, SIGTERM) = 0
strace.78525: 1793081409.794681 kill(-78836, SIGTERM) = -1 ESRCH (No such process)
strace.78547: 1793081409.799087 unlink("/tmp/lead-23005-r2/capture/sync-after-20261027T060947/home/.t3/runtime/desktop-update-restart") = 0
strace.78544: 1793081409.801741 unlink("/tmp/lead-23005-r2/capture/sync-after-20261027T060947/home/.t3/runtime/desktop-update-in-progress") = 0
strace.78545: 1793081409.804340 unlink("/tmp/lead-23005-r2/capture/sync-after-20261027T060947/home/.t3/runtime/desktop-update-install.json") = 0
strace.78525: 1793081413.732230 write(1</tmp/lead-23005-r2/capture/sync-after-20261027T060947/desktop-stdio.log>, "[06:10:13.732] INFO (#604): backend ready\n", 42) = 42
```

What else changed: after adds marker publication and cleanup; both use exactly the same one-shot injection and recover to version90.23005.0 without changing the installed image. IDs/paths/timestamps differ; transient reconnect durations vary. No natural unmodified synchronous-throw fixture is claimed.


| Before settled still | After settled still | Diff0 | DiffT |
|---|---|---|---|
| ![Before sync](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/91b1070ddafacde3/sync-before.png) | ![After sync](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1bb75a0dfd2a5640/sync-after.png) | ![Zero-threshold absolute RGB difference amplified 8x](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bbac06759fc6bbf/sync-diff0-x8.png) | ![Maximum RGB channel difference greater than 16 of 255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/33729d61b1555367/sync-diff16.png) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) | zero threshold, gain 8 | threshold >16/255, white changed |


## F13-install — real replacement and automatic relaunch

Steps, with UTC timestamps (2026-10-27): fresh HOME → old packaged backend ready → check/download valid90.23005.1 → Install → observe native replacement and automatic relaunch → final hold and cleanup (restore0555 fixture parent to0755).

success-before: initial-ready 2026-10-27T06:04:04.010Z, install-action 2026-10-27T06:04:08.201Z, replacement-ready 2026-10-27T06:04:43.614Z, sequence-complete 2026-10-27T06:05:07.439Z.

success-after: initial-ready 2026-10-27T06:05:36.768Z, install-action 2026-10-27T06:05:43.475Z, replacement-ready 2026-10-27T06:06:18.815Z, sequence-complete 2026-10-27T06:06:39.779Z.



| Before | After |
|---|---|
| [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/57b3f988c221b7ba/success-before-20261027T060350-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3661d6c14e29b8ea/timeline.txt) | [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9267783fe12f0a8/success-after-20261027T060514-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fea4536b488c2610/timeline.txt) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) |


Environment: Machine fs-37 / freestyle; Linux x86_64; Node 26.12.1 via global vp; Electron 44.9.3; headless-desktop Xvfb 1920x1080x24 with D-Bus and unlocked GNOME keyring; Initial launch arguments: --no-sandbox --disable-gpu. Native quitAndInstall relaunch drops command-line switches, including those and the debugger ports; ELECTRON_DISABLE_SANDBOX=1 and LIBGL_ALWAYS_SOFTWARE=1 remain inherited through relaunch. AppImage runtime is exercised at its real installed path; The mount-only preflight printed a mount path but the real headless launch failed with fusermount Operation not permitted. Runtime fixtures therefore use --appimage-extract-and-run at the real installed image path, with APPIMAGE_EXTRACT_AND_RUN=1 and LIBGL_ALWAYS_SOFTWARE=1 inherited through relaunch. Every fixture uses a fresh synthetic HOME and identical T3CODE_HOME=$HOME/.t3 under /tmp/lead-23005-r2/capture. No production database or provider credentials accessed. Build caches only use the existing home; no app/server is run with it.
Final accepted stills: ImageMagick import -screen -window <visible T3 Code window id>, 1100x780 at (410,150); paired imports 500 ms apart with AE=0. A libX11 screen-saver query reports timeout/interval 600 seconds; reset is logged before the final imports. Rejected root-only imports are kept as diagnostics, and the separate real x11grab recordings are retained. The final sync-before X11 panel stayed black; its ImageMagick window still and terminal transcript remain valid, and earlier visible takes are retained. Initial main-window geometry: 1100×780 at (410,150) on both sides; final stills crop that visible window with ImageMagick import -screen. Each accepted still has AE=0 against a second capture 500 ms later. The terminal panel is a timestamp-faithful replay rendered from actual JSONL/syscalls at 5 fps, stacked below the real 15 fps X11 recording; no simulated app UI. Actual timestamps in the text are authoritative.

Drivers/build: [run.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834259c0b7f2ed45/run.py), [desktop-session.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7d103d75ace6b07/desktop-session.sh), [cdp.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea62f417dcb0e3a/cdp.mjs), [reproduce-build.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ff953220df94557/reproduce-build.sh). Complete scripts and exact generated node/archive launchers: [final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99971456606dd164/final-all-scripts.tar.gz).


Both installed image hashes become e951292baba7a0ba23755ba46b5355c262f4310ba0ab78bec709366bd6a53ade, the head-target hash. Both old backend PIDs exit; native AppImageUpdater replaces the actual installed AppImage path and spawns it automatically. New desktop-parent/backend process identities and extraction executable paths are retained in the transcript. New runtime reports serverVersion90.23005.1 and GET / returns 2xx with redirects disabled. No manual relaunch or renderer reload is used. After the new desktop readiness callback removes in-progress before expiresAt; the unlink immediately precedes its backend-ready log. This is readiness cleanup, not launcher expiry or failed-install recovery; there is no launcher in this sequence.

What else changed: the target is identical on both sides, so both end at the same product version. Only after carries the new in-progress marker across the installation gap and removes it at readiness. Old image/source identities and fresh IDs differ. The existing empty desktop-update-restart sentinel remains in successful fixture observations on both sides. Early exploratory recordings include transient bootstrap errors; they remain retained and are not substituted for the final longer settled pair.

## F14 — real update gap plus exact node launcher

Steps, with UTC timestamps (2026-10-27): fresh HOME → old packaged backend ready → check/download valid90.23005.1 → arm old-PID-exit controller with the exact generated launcher and shared HOME/.t3 → Install → start launcher after old backend exit while replacement is not ready → observe adoption or competing fallback → final hold and cleanup (restore0555 fixture parent to0755).

launcher-before: initial-ready 2026-10-27T05:43:16.009Z, install-action 2026-10-27T05:43:21.118Z, launcher-trigger 2026-10-27T05:43:24.204Z, launcher-complete 2026-10-27T05:43:56.148Z, sequence-complete 2026-10-27T05:44:05.441Z.

launcher-after: initial-ready 2026-10-27T05:38:26.724Z, install-action 2026-10-27T05:38:32.476Z, launcher-trigger 2026-10-27T05:38:33.991Z, replacement-ready 2026-10-27T05:39:07.868Z, launcher-complete 2026-10-27T05:39:53.997Z, sequence-complete 2026-10-27T05:39:56.999Z.



| Before | After |
|---|---|
| [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50eca2ce74f4ec46/launcher-before-20261027T054302-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bb05218f9e91aa72/timeline.txt) | [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/adeb0ac4676f8211/launcher-after-20261027T053811-desktop-and-timeline.mp4)<br>[timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/efad8f8c8ba1046a/timeline.txt) |
| [8d3b061121](https://git.cafe/pingdotgg/t3code/commit/8d3b061121fe65669d5d43d011b48cd3027a4108) | [87ac5b3a34](https://git.cafe/pingdotgg/t3code/commit/87ac5b3a34fe2c12561bf16f6f823e0376fda004) |


Environment: Machine fs-37 / freestyle; Linux x86_64; Node 26.12.1 via global vp; Electron 44.9.3; headless-desktop Xvfb 1920x1080x24 with D-Bus and unlocked GNOME keyring; Initial launch arguments: --no-sandbox --disable-gpu. Native quitAndInstall relaunch drops command-line switches, including those and the debugger ports; ELECTRON_DISABLE_SANDBOX=1 and LIBGL_ALWAYS_SOFTWARE=1 remain inherited through relaunch. AppImage runtime is exercised at its real installed path; The mount-only preflight printed a mount path but the real headless launch failed with fusermount Operation not permitted. Runtime fixtures therefore use --appimage-extract-and-run at the real installed image path, with APPIMAGE_EXTRACT_AND_RUN=1 and LIBGL_ALWAYS_SOFTWARE=1 inherited through relaunch. Every fixture uses a fresh synthetic HOME and identical T3CODE_HOME=$HOME/.t3 under /tmp/lead-23005-r2/capture. No production database or provider credentials accessed. Build caches only use the existing home; no app/server is run with it.
Final accepted stills: ImageMagick import -screen -window <visible T3 Code window id>, 1100x780 at (410,150); paired imports 500 ms apart with AE=0. A libX11 screen-saver query reports timeout/interval 600 seconds; reset is logged before the final imports. Rejected root-only imports are kept as diagnostics, and the separate real x11grab recordings are retained. The final sync-before X11 panel stayed black; its ImageMagick window still and terminal transcript remain valid, and earlier visible takes are retained. Initial main-window geometry: 1100×780 at (410,150) on both sides; final stills crop that visible window with ImageMagick import -screen. Each accepted still has AE=0 against a second capture 500 ms later. The terminal panel is a timestamp-faithful replay rendered from actual JSONL/syscalls at 5 fps, stacked below the real 15 fps X11 recording; no simulated app UI. Actual timestamps in the text are authoritative.

Drivers/build: [run.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834259c0b7f2ed45/run.py), [desktop-session.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7d103d75ace6b07/desktop-session.sh), [cdp.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea62f417dcb0e3a/cdp.mjs), [reproduce-build.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ff953220df94557/reproduce-build.sh). Complete scripts and exact generated node/archive launchers: [final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99971456606dd164/final-all-scripts.tar.gz).


The generated node launcher is unchanged source output, invoked with the same isolated HOME and HOME/.t3 as its desktop. A controller armed before Install starts it only after the recorded old backend exits, while replacement_ready=false and runtime is absent. After additionally has the actual installer-written fresh marker. No hand-written marker, readiness stub, clock manipulation, production sleep or manually restarted desktop is used.

**Before:** launcher returns exit0, remotePort3774/serverKind managed; PID56849 from the real source CLI wins the shared T3 home. The updated desktop shows T3 home unavailable. **Traced after:** new packaged backend PID53434 (parent53045, version90.23005.1) wins ownership, but the launcher writes managed fallback state for PID53723/port3775 and executes a competing source CLI; that CLI fails ServerAlreadyRunningError and the launcher exits1. This violates the no-managed-fallback condition even though only one server survives.

The after trace records in-progress unlink at epoch1793079533.097256 and runtime rename entry at1793079533.100219. The 20 ms observer subsequently samples both absent at1793079533.116958, then managed fallback files appear. These are syscall-entry timestamps, not measured syscall completion times. The evidence suggests a readiness-to-runtime-publication adoption gap, but tracing changes scheduling and causality should be verified separately. Both launcher runs are traced; after used strace -ff, before strace -D -ff to let the observer detach from a surviving managed child. This observer-lifetime difference is disclosed.

**Normal after control (no launcher strace):** [desktop + timestamped transcript recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e1370ed7be92b70/launcher-after-20261027T053348-desktop-and-timeline.mp4); [timestamped transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/260b8d08e0e95a24/timeline.txt). Steps, with UTC timestamps (2026-10-27): fresh HOME → old packaged backend ready → check/download valid90.23005.1 → arm old-PID-exit controller with the exact generated launcher and shared HOME/.t3 → Install → start launcher after old backend exit while replacement is not ready → observe adoption or competing fallback → final hold and cleanup (restore0555 fixture parent to0755).

launcher-after-normal: initial-ready 2026-10-27T05:34:01.231Z, install-action 2026-10-27T05:34:06.198Z, launcher-trigger 2026-10-27T05:34:08.371Z, replacement-ready 2026-10-27T05:34:41.528Z, launcher-complete 2026-10-27T05:34:41.529Z, sequence-complete 2026-10-27T05:34:44.529Z.


This control starts after old PID48340 exits, observes fresh marker and replacement_ready=false, then returns exactly {"remotePort":3774,"serverKind":"external"}. New packaged backend49211/desktop48854 is version90.23005.1, target hash matches, managed file is external, and there is no managed PID or managed server.log. It proves a successful normal adoption, but does not erase the contradictory traced run.

What else changed: before launches a competing managed owner and its updated desktop cannot own the home; normal after waits/adopts the updated packaged backend; traced after waits but then attempts a managed fallback that loses ownership. The traced after exits1 instead of before exit0, and fallback port is3775 rather than3774. Runtime IDs, paths and timings differ. Tracing differs as disclosed; no performance comparison is claimed.

## Unverified and retained limitations

- F14 unconditional adoption/no competing launch remains unverified because the traced after run contradicts it.
- Real loopback SSH transport is unverified: ssh -o BatchMode=yes -o ConnectTimeout=5 localhost true failed Host key verification failed. No SSH host trust, sshd or credentials were changed. Exact direct-shell launcher proof is retained per matrix fallback.
- Node-mode adoption does not prove published archive download/extraction or no-host-Node behavior. No new archive bootstrap claim is made.
- AppImage FUSE mounting failed Operation not permitted; every accepted run uses extract-and-run at the real installed image path. Native replacement and force relaunch still occur against that path.
- Other operating systems, WSL integration and real clock jumps are outside these Linux captures.
- No row was replaced by a unit test. Tests, CI and reviews were not assessed.

## Retained artifacts and capture review

Capture qualification: the final sync-before raw X11 panel remains black despite a visible window ID and a correct connected ImageMagick window still at the end. That panel does not establish continuous visual recovery; its timestamped transcript and paired settled window still are retained. Earlier takes with visible X11 recovery remain in the diagnostics archive. Selected recording tracks were opened through desktop/terminal contact sheets; representative full frames were also inspected. Final stills and both diffs were opened and inspected. [diff-statistics.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b18f76e258b973b6/diff-statistics.json). Zero-threshold diffs are RGB absolute differences amplified8×; DiffT is white where the maximum RGB channel difference is >16/255. Source stills are lossless PNG. No video is embedded as an image.

[Original X11 recordings, earlier takes, still attempts and review contact sheets](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9a2105c8c947b89f/all-recordings-and-diagnostics.tar.gz). [Sanitized log/trace/transcript archives](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36c9427d81fd39eb/final-logs.tar.gz). Originals remain locally. Public logs exclude synthetic pairing/bootstrap tokens, bearer/cookie payloads and QR blocks; no database, credentials, caches or HOME contents are uploaded.

[Every build, driver, feed, renderer, uploader and generated launcher script](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99971456606dd164/final-all-scripts.tar.gz). [provenance.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/511b15d188e50cd0/provenance.txt). [rendering-environment.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/318207cd4d3491d2/rendering-environment.txt).

HTTP root proof (actual server spans, including Python-urllib GET / status200, not inferred from the UI): [http-root-proof.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/538615b545311471/http-root-proof.json). Installed-image hashes/modes after each run: [postrun-validation.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dfe9b0a12f824bbb/postrun-validation.json).

## Cleanup and friction

[cleanup-final.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/250e34e191160d89/cleanup-final.json). [friction.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff2e7c5a5fb0511b/friction.md).

Generated by gpt-6.1-sol through the Codex harness.

## ghdrop output (verbatim)

upload-01.md

```markdown
[run.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa43012d3f6ccf41/run.py)
[reproduce-build.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ff953220df94557/reproduce-build.sh)
[cdp.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea62f417dcb0e3a/cdp.mjs)
[desktop-session.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7d103d75ace6b07/desktop-session.sh)
[all-build-and-capture-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/59de62a135d334d5/all-build-and-capture-scripts.tar.gz)
[provenance.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/511b15d188e50cd0/provenance.txt)
[rendering-environment.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19330f2c9a61fb02/rendering-environment.txt)
```

upload-02.md

```markdown
[initial-runtime-logs.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/115f32fc781e961b/initial-runtime-logs.tar.gz)
```

upload-04.md

```markdown
[launcher-before-20261027T054302-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50eca2ce74f4ec46/launcher-before-20261027T054302-desktop-and-timeline.mp4)
```

upload-05.md

```markdown
[launcher-after-20261027T053811-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/adeb0ac4676f8211/launcher-after-20261027T053811-desktop-and-timeline.mp4)
[launcher-after-20261027T053348-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e1370ed7be92b70/launcher-after-20261027T053348-desktop-and-timeline.mp4)
```

upload-06.md

```markdown
![success-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9fef9f63b9cdeb99/success-before.png)
![success-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba00c54c8618fea1/success-after.png)
![success-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e3f8eb9a9965522a/success-diff0-x8.png)
![success-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a106f701f1a5fca2/success-diff16.png)
![event-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/48dea377d0b537be/event-before.png)
![event-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4662fa95358b611d/event-after.png)
![event-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/59acc3899f1a7f41/event-diff0-x8.png)
![event-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/530dbd032131c7ec/event-diff16.png)
![sync-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/91b1070ddafacde3/sync-before.png)
![sync-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1bb75a0dfd2a5640/sync-after.png)
![sync-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0bbac06759fc6bbf/sync-diff0-x8.png)
![sync-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/33729d61b1555367/sync-diff16.png)
[diff-statistics.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b18f76e258b973b6/diff-statistics.json)
```

upload-07.md

```markdown
[run.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/834259c0b7f2ed45/run.py)
[final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c35a00e60bd4d624/final-all-scripts.tar.gz)
[rendering-environment.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4643aa6c1b897bff/rendering-environment.txt)
[friction.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff2e7c5a5fb0511b/friction.md)
```

upload-08.md

```markdown
[final-logs.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36c9427d81fd39eb/final-logs.tar.gz)
```

upload-09.md

```markdown
[success-after-20261027T060514-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9267783fe12f0a8/success-after-20261027T060514-desktop-and-timeline.mp4)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fea4536b488c2610/timeline.txt)
[success-before-20261027T060350-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/57b3f988c221b7ba/success-before-20261027T060350-desktop-and-timeline.mp4)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3661d6c14e29b8ea/timeline.txt)
[event-after-20261027T060730-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff0b8ed46e0dfc9b/event-after-20261027T060730-desktop-and-timeline.mp4)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2b6eabaf2c8037db/timeline.txt)
[event-before-20261027T060640-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c88229b21c6a580/event-before-20261027T060640-desktop-and-timeline.mp4)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/066696969a559891/timeline.txt)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/efad8f8c8ba1046a/timeline.txt)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bb05218f9e91aa72/timeline.txt)
[sync-after-20261027T060947-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1851d139f2454b61/sync-after-20261027T060947-desktop-and-timeline.mp4)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ab33958c92d602ff/timeline.txt)
[sync-before-20261027T061043-desktop-and-timeline.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b5c7477c69f19bb2/sync-before-20261027T061043-desktop-and-timeline.mp4)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c15c92841c1d2811/timeline.txt)
[timeline.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/260b8d08e0e95a24/timeline.txt)
```

upload-10.md

```markdown
[all-recordings-and-diagnostics.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9a2105c8c947b89f/all-recordings-and-diagnostics.tar.gz)
```

upload-11.md

```markdown
[final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5263af6adb9b883b/final-all-scripts.tar.gz)
[cleanup-final.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/250e34e191160d89/cleanup-final.json)
[http-root-proof.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/538615b545311471/http-root-proof.json)
[postrun-validation.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dfe9b0a12f824bbb/postrun-validation.json)
```

upload-12.md

```markdown
[rendering-environment.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c86775abd65216a/rendering-environment.txt)
[final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/89ee22aa8f7134d7/final-all-scripts.tar.gz)
```

upload-13.md

```markdown
[evidence.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/09b0e692322d78b6/evidence.md)
```

upload-14.md

```markdown
[rendering-environment.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/318207cd4d3491d2/rendering-environment.txt)
```

upload-15.md

```markdown
[evidence.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa599156e563b826/evidence.md)
```

upload-16.md

```markdown
[final-all-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99971456606dd164/final-all-scripts.tar.gz)
```

