PR 33058 verification | 2026-11-10 | Linux ext4 | Node 24.22.1 main: bcee0f5d2872ba193c66ed9ba979bbe424f89ff9 PR head: 75ff8b71408894f287030d94ed6b9cebe50e92cc Setup: git worktree add ../main github/main timeout 600 vp i # each checkout setsid nohup timeout 7000 vp run dev > /tmp/main-dev.log 2>&1 & main ports from dev-runner: server=16733 web=8693 PR: setsid nohup timeout 6000 vp run dev --home-dir /home/user/t3code/.t3 > /tmp/dev.log 2>&1 & PR ports from dev-runner: server=13773 web=5733 Main and PR verification stacks ran sequentially, stopping prior captured PIDs. Playwright from apps/web dependencies, /usr/bin/google-chrome, 1440x1000. Created backup-verification project in the web app against a real git repo. Created its thread and real Codex gpt-6.1-sol turns in the web app. Copied this task-created database forward for the PR run. Service update path: vp run dev intentionally disables launcher management. For each update phase, stopped vp run dev and started the unmodified source launcher managing the real source server over IPC, plus the Vite web client. Isolated runtime entry uses exec node /apps/server/src/bin.ts serve. Called authenticated server.updateServerWithProgress over the real /ws endpoint. Target: published 0.1.9-nightly.20261110.4465; published databaseMigration=80. Real release download, preflight, handoff and trial. No mocked services or provider. Native cp --reflink=always failed: Operation not supported. strace recorded real process and file operations; times below are ordering proof, not a large-database performance benchmark. main trace: 10:20:49.598363 kill(24611, SIGTERM) = 0 10:20:49.842303 openat(.../.staging/database, O_WRONLY|O_CREAT|O_EXCL, 0600) = 4 10:20:49.872830 rename(...staging, ...backup) = 0 10:20:49.894488 execve(...0.1.9-nightly.20261110.4465/t3, [..., serve], ...) = 0 service-state: committed Reproduced: main database copy occurs after server termination begins. PR trace: 10:26:26.538635 execve(/usr/bin/cp, [cp, .../statev2.sqlite, ...staging/database], ...) = 0 10:26:26.565380 kill(34073, SIGTERM) = 0 10:26:26.875249 execve(/usr/bin/cp, [cp, .../statev2.sqlite-wal, ...staging/database-wal], ...) = 0 10:26:26.890325 rename(...staging, ...backup) = 0 10:26:26.901442 execve(...0.1.9-nightly.20261110.4465/t3, [..., serve], ...) = 0 published backup captured by filesystem watcher: [database, database-wal] PRAGMA integrity_check: ok service-state: committed Existing conversation readable after reconnect. Real Codex continuation read README.md and returned: backup verification after update ready. Rollback neighbor: Restarted source launcher at 0.1.7 with the same task database for a second update. 10:29:23.205 backup captured: [database, database-wal] 10:29:23.213 killed real candidate PID 38784 immediately after its captured exec; verified its parent was this task launcher PID 37874 before fault injection. service-state: activeVersion=0.1.7, status=rolled-back, reason=candidate-exited:SIGKILL Restored database PRAGMA integrity_check: ok Saved backup PRAGMA integrity_check: ok Nine pre-update conversation message rows byte-for-byte equal in backup and restore. Both message-set SHA256: 0be0ce29d6b9b9b89889e2754917acf83b8b919ec6bef24316e222bfa15090b5 Real Codex continuation read README.md and returned: backup verification after rollback ready. Checks through blacksmith-check: vp test run apps/server/src/serviceLauncher.test.ts: 18/18 passed vp run check:changed ade473018d32003658b7d38693e083ee2e314bd8: passed format, lint, both knip phases, GraphQL, affected typechecks, 20 tests passed. Explicit actual merge base used after fetching history into the shallow worker. No source changes made. Not verified: Windows, macOS, native mobile and Electron clients; clone-capable filesystems; symlinked database rollback; multi-minute or 128 MiB WAL-gate stress; launcher packaged as a single executable (source launcher used; candidate was published binary).