verification run: 2026-11-01, Linux Boat VM main: github/main 955e2bfbb5 (separate /home/user/main worktree) PR: bdcdedf8790ce3a163676c4069f9c56588f7664c (exact contributor head) primary runtime: Node v24.22.1 browser: repo Playwright 1.60.0, /usr/bin/google-chrome Each checkout installed with vp i. Only one dev server ran at a time. main server/web: 16733/8693; PR server/web: 13773/5733. Servers stopped by captured process-group PID. Real-app setup: added /home/user/sqlite-verification-repo through the web Add project > Local folder flow. Submitted matching prompts through the actual composer with Codex gpt-6.1-sol on main and PR: Reply exactly: sqlite baseline verified. Do not run tools or change files. Both rendered the real provider reply: sqlite baseline verified. PR server restart preserved the conversation. A fresh Chrome context loaded it, submitted a follow-up, and rendered: sqlite follow-up verified. Recording contains actual submission and response. A live CLI rename propagated to the web client during the recording, then was restored. Contention method: separate Node process opens the app-created statev2.sqlite, runs PRAGMA locking_mode=EXCLUSIVE; BEGIN EXCLUSIVE; SELECT count(*) FROM sqlite_schema, and emits HELD. Launch the real t3 project rename CLI through strace -f -e trace=fcntl. Only after strace reports an actual EAGAIN/EACCES lock conflict, schedule release one second later. This avoids releasing the lock before the CLI reaches SQLite. All CLI calls have an outer timeout. No database rows or app fixtures were injected. MAIN, expected regression: 2026-11-01T04:54:24.595Z +17ms holder: HELD 2026-11-01T04:54:24.595Z +17ms run /home/user/main: node apps/server/src/bin.ts project rename /home/user/sqlite-verification-repo sqlite-verification-repo --base-dir /home/user/main/.t3 2026-11-01T04:54:27.027Z +2449ms strace confirmed real fcntl lock contention 2026-11-01T04:54:27.072Z +2494ms CLI exited 1; lockReleased=false; contentionObserved=true [04:54:27.024] ERROR (#2): Error: database is locked at file:///home/user/main/packages/shared/src/nodeSqliteClient.ts:632:33 at makeWithDatabase (file:///home/user/main/packages/shared/src/nodeSqliteClient.ts:1280:34) at makeWithDatabase (definition) (file:///home/user/main/packages/shared/src/nodeSqliteClient.ts:853:21) at runProjectMutation (file:///home/user/main/apps/server/src/cli/project.ts:551:5) at runProjectMutation (definition) (file:///home/user/main/apps/server/src/cli/project.ts:383:35) 2026-11-01T04:54:28.028Z +3450ms release requested 2026-11-01T04:54:28.029Z +3451ms holder: RELEASED PR, same open path: 2026-11-01T04:55:19.210Z +27ms holder: HELD 2026-11-01T04:55:19.211Z +28ms run /home/user/t3code: node apps/server/src/bin.ts project rename /home/user/sqlite-verification-repo sqlite-verification-repo --base-dir /home/user/t3code/.t3 2026-11-01T04:55:22.880Z +3697ms strace confirmed real fcntl lock contention 2026-11-01T04:55:23.880Z +4697ms release requested 2026-11-01T04:55:23.881Z +4698ms holder: RELEASED 2026-11-01T04:55:24.088Z +4905ms CLI exited 0; lockReleased=true; contentionObserved=true Project 7b099e24-2a74-468f-a02a-b725c946405b is already named sqlite-verification-repo. PR, actual offline rename mutation (the harness printed the original title in its command label; argv passed sqlite-lock-verified, as the CLI result confirms): 2026-11-01T04:56:54.759Z +18ms holder: HELD 2026-11-01T04:56:54.760Z +18ms run /home/user/t3code: node apps/server/src/bin.ts project rename /home/user/sqlite-verification-repo sqlite-verification-repo --base-dir /home/user/t3code/.t3 2026-11-01T04:56:58.086Z +3344ms strace confirmed real fcntl lock contention 2026-11-01T04:56:59.087Z +4345ms release requested 2026-11-01T04:56:59.088Z +4346ms holder: RELEASED 2026-11-01T04:56:59.401Z +4659ms CLI exited 0; lockReleased=true; contentionObserved=true Renamed project 7b099e24-2a74-468f-a02a-b725c946405b to sqlite-lock-verified. PR, lock held past busy timeout (6500 ms after observed contention): 2026-11-01T04:55:33.326Z +16ms holder: HELD 2026-11-01T04:55:33.326Z +16ms run /home/user/t3code: node apps/server/src/bin.ts project rename /home/user/sqlite-verification-repo sqlite-verification-repo --base-dir /home/user/t3code/.t3 2026-11-01T04:55:36.162Z +2852ms strace confirmed real fcntl lock contention 2026-11-01T04:55:41.231Z +7921ms CLI exited 1; lockReleased=false; contentionObserved=true [04:55:41.192] ERROR (#2): Error: database is locked at file:///home/user/t3code/packages/shared/src/nodeSqliteClient.ts:634:33 at makeWithDatabase (file:///home/user/t3code/packages/shared/src/nodeSqliteClient.ts:1282:34) at makeWithDatabase (definition) (file:///home/user/t3code/packages/shared/src/nodeSqliteClient.ts:855:21) at runProjectMutation (file:///home/user/t3code/apps/server/src/cli/project.ts:551:5) at runProjectMutation (definition) (file:///home/user/t3code/apps/server/src/cli/project.ts:383:35) 2026-11-01T04:55:42.663Z +9353ms release requested 2026-11-01T04:55:42.664Z +9354ms holder: RELEASED PR, same real CLI path on Node v22.23.2: 2026-11-01T04:56:39.709Z +26ms holder: HELD 2026-11-01T04:56:39.712Z +27ms run /home/user/t3code: node apps/server/src/bin.ts project rename /home/user/sqlite-verification-repo sqlite-verification-repo --base-dir /home/user/t3code/.t3 (node:25637) ExperimentalWarning: SQLite is an experimental feature and might change at any time (Use `node --trace-warnings ...` to show where the warning was created) 2026-11-01T04:56:42.999Z +3314ms strace confirmed real fcntl lock contention 2026-11-01T04:56:43.999Z +4314ms release requested 2026-11-01T04:56:44.000Z +4315ms holder: RELEASED 2026-11-01T04:56:44.135Z +4450ms CLI exited 0; lockReleased=true; contentionObserved=true (node:25648) ExperimentalWarning: SQLite is an experimental feature and might change at any time (Use `node --trace-warnings ...` to show where the warning was created) [04:56:42.988] WARN (#22): SQLite checkpoint worker unavailable; checkpoints run on the main connection { reason: 'Node SQLite lacks transaction-state or statement-authorizer support' } (node:25648) ExperimentalWarning: SQLite is an experimental feature and might change at any time (Use `node --trace-warnings ...` to show where the warning was created) Project 7b099e24-2a74-468f-a02a-b725c946405b is already named sqlite-verification-repo. Blacksmith: vp i && vp test run packages/shared/src/nodeSqliteClient.test.ts Result: 1 file passed, 19 tests passed, including waits for another process lock while database opens. Existing PR checks: 30 successful, 0 failing, 0 pending. No source changes, commits, or pushes. Not exercised: native Electron/iOS/Android, macOS/Windows, Node 23, remote relay/tunnel.