GitHub check

256 KB of 310 KB loaded Download the full log (310 KB)
54 KB of earlier output not loaded
-secret-1 libblkid-dev libgcrypt20-dev libgirepository-2.0-0
  libglib2.0-dev libglib2.0-dev-bin libgpg-error-dev libmount-dev
  libsecret-1-0 libsecret-1-dev libsecret-common libselinux1-dev libsepol-dev
  uuid-dev
The following packages will be upgraded:
  bsdextrautils bsdutils eject fdisk gir1.2-glib-2.0 libblkid1 libfdisk1
  libgcrypt20 libglib2.0-0t64 libglib2.0-bin libglib2.0-data libmount1
  libsmartcols1 libuuid1 mount util-linux uuid-runtime
17 upgraded, 14 newly installed, 0 to remove and 241 not upgraded.
Need to get 8378 kB of archives.
After this operation, 23.0 MB of additional disk space will be used.
Get:1 file:/etc/apt/blacksmith-ubuntu-mirrors.txt Mirrorlist [151 B]
Get:2 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 bsdutils amd64 1:2.39.3-9ubuntu6.6 [96.4 kB]
Get:3 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 util-linux amd64 2.39.3-9ubuntu6.6 [1128 kB]
Get:4 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 mount amd64 2.39.3-9ubuntu6.6 [118 kB]
Get:5 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsmartcols1 amd64 2.39.3-9ubuntu6.6 [66.3 kB]
Get:6 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libuuid1 amd64 2.39.3-9ubuntu6.6 [36.6 kB]
Get:7 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 uuid-runtime amd64 2.39.3-9ubuntu6.6 [33.1 kB]
Get:8 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libblkid1 amd64 2.39.3-9ubuntu6.6 [124 kB]
Get:9 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcrypt20 amd64 1.10.3-2ubuntu0.2 [536 kB]
Get:10 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmount1 amd64 2.39.3-9ubuntu6.6 [134 kB]
Get:11 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 eject amd64 2.39.3-9ubuntu6.6 [26.3 kB]
Get:12 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-data all 2.80.0-6ubuntu3.10 [50.2 kB]
Get:13 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-bin amd64 2.80.0-6ubuntu3.10 [97.9 kB]
Get:14 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-glib-2.0 amd64 2.80.0-6ubuntu3.10 [183 kB]
Get:15 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-0t64 amd64 2.80.0-6ubuntu3.10 [1548 kB]
Get:16 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libfdisk1 amd64 2.39.3-9ubuntu6.6 [146 kB]
Get:17 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 bsdextrautils amd64 2.39.3-9ubuntu6.6 [73.7 kB]
Get:18 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 fdisk amd64 2.39.3-9ubuntu6.6 [122 kB]
Get:19 https://archive.ubuntu.com/ubuntu noble/main amd64 libsecret-common all 0.21.4-1build3 [4962 B]
Get:20 https://archive.ubuntu.com/ubuntu noble/main amd64 libsecret-1-0 amd64 0.21.4-1build3 [116 kB]
Get:21 https://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-secret-1 amd64 0.21.4-1build3 [9424 B]
Get:22 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgpg-error-dev amd64 1.47-3build2.1 [128 kB]
Get:23 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcrypt20-dev amd64 1.10.3-2ubuntu0.2 [596 kB]
Get:24 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgirepository-2.0-0 amd64 2.80.0-6ubuntu3.10 [73.5 kB]
Get:25 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-dev-bin amd64 2.80.0-6ubuntu3.10 [138 kB]
Get:26 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 uuid-dev amd64 2.39.3-9ubuntu6.6 [33.5 kB]
Get:27 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libblkid-dev amd64 2.39.3-9ubuntu6.6 [205 kB]
Get:28 https://archive.ubuntu.com/ubuntu noble/main amd64 libsepol-dev amd64 3.5-2build1 [384 kB]
Get:29 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libselinux1-dev amd64 3.5-2ubuntu2.1 [164 kB]
Get:30 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmount-dev amd64 2.39.3-9ubuntu6.6 [14.9 kB]
Get:31 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-dev amd64 2.80.0-6ubuntu3.10 [1861 kB]
Get:32 https://archive.ubuntu.com/ubuntu noble/universe amd64 libsecret-1-dev amd64 0.21.4-1build3 [129 kB]
Fetched 8378 kB in 5s (1774 kB/s)
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../bsdutils_1%3a2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking bsdutils (1:2.39.3-9ubuntu6.6) over (1:2.39.3-9ubuntu6.5) ...
Setting up bsdutils (1:2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../util-linux_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking util-linux (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up util-linux (2.39.3-9ubuntu6.6) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/bin/less because link group pager is broken
update-alternatives: warning: skip creation of /usr/share/man/man1/pager.1.gz because associated file /usr/share/man/man1/less.1.gz (of link group pager) doesn't exist
fstrim.service is a disabled or a static unit not running, not starting it.
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../mount_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking mount (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../libsmartcols1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libsmartcols1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libsmartcols1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../libuuid1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libuuid1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libuuid1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../uuid-runtime_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking uuid-runtime (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../libblkid1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libblkid1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libblkid1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../libgcrypt20_1.10.3-2ubuntu0.2_amd64.deb ...
Unpacking libgcrypt20:amd64 (1.10.3-2ubuntu0.2) over (1.10.3-2ubuntu0.1) ...
Setting up libgcrypt20:amd64 (1.10.3-2ubuntu0.2) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../libmount1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libmount1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libmount1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../00-eject_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking eject (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../01-libglib2.0-data_2.80.0-6ubuntu3.10_all.deb ...
Unpacking libglib2.0-data (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../02-libglib2.0-bin_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-bin (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../03-gir1.2-glib-2.0_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking gir1.2-glib-2.0:amd64 (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../04-libglib2.0-0t64_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../05-libfdisk1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libfdisk1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../06-bsdextrautils_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking bsdextrautils (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../07-fdisk_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking fdisk (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Selecting previously unselected package libsecret-common.
Preparing to unpack .../08-libsecret-common_0.21.4-1build3_all.deb ...
Unpacking libsecret-common (0.21.4-1build3) ...
Selecting previously unselected package libsecret-1-0:amd64.
Preparing to unpack .../09-libsecret-1-0_0.21.4-1build3_amd64.deb ...
Unpacking libsecret-1-0:amd64 (0.21.4-1build3) ...
Selecting previously unselected package gir1.2-secret-1:amd64.
Preparing to unpack .../10-gir1.2-secret-1_0.21.4-1build3_amd64.deb ...
Unpacking gir1.2-secret-1:amd64 (0.21.4-1build3) ...
Selecting previously unselected package libgpg-error-dev.
Preparing to unpack .../11-libgpg-error-dev_1.47-3build2.1_amd64.deb ...
Unpacking libgpg-error-dev (1.47-3build2.1) ...
Selecting previously unselected package libgcrypt20-dev.
Preparing to unpack .../12-libgcrypt20-dev_1.10.3-2ubuntu0.2_amd64.deb ...
Unpacking libgcrypt20-dev (1.10.3-2ubuntu0.2) ...
Selecting previously unselected package libgirepository-2.0-0:amd64.
Preparing to unpack .../13-libgirepository-2.0-0_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libgirepository-2.0-0:amd64 (2.80.0-6ubuntu3.10) ...
Selecting previously unselected package libglib2.0-dev-bin.
Preparing to unpack .../14-libglib2.0-dev-bin_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-dev-bin (2.80.0-6ubuntu3.10) ...
Selecting previously unselected package uuid-dev:amd64.
Preparing to unpack .../15-uuid-dev_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking uuid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Selecting previously unselected package libblkid-dev:amd64.
Preparing to unpack .../16-libblkid-dev_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libblkid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Selecting previously unselected package libsepol-dev:amd64.
Preparing to unpack .../17-libsepol-dev_3.5-2build1_amd64.deb ...
Unpacking libsepol-dev:amd64 (3.5-2build1) ...
Selecting previously unselected package libselinux1-dev:amd64.
Preparing to unpack .../18-libselinux1-dev_3.5-2ubuntu2.1_amd64.deb ...
Unpacking libselinux1-dev:amd64 (3.5-2ubuntu2.1) ...
Selecting previously unselected package libmount-dev:amd64.
Preparing to unpack .../19-libmount-dev_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libmount-dev:amd64 (2.39.3-9ubuntu6.6) ...
Selecting previously unselected package libglib2.0-dev:amd64.
Preparing to unpack .../20-libglib2.0-dev_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-dev:amd64 (2.80.0-6ubuntu3.10) ...
Selecting previously unselected package libsecret-1-dev:amd64.
Preparing to unpack .../21-libsecret-1-dev_0.21.4-1build3_amd64.deb ...
Unpacking libsecret-1-dev:amd64 (0.21.4-1build3) ...
Setting up bsdextrautils (2.39.3-9ubuntu6.6) ...
Setting up eject (2.39.3-9ubuntu6.6) ...
Setting up libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libglib2.0-data (2.80.0-6ubuntu3.10) ...
Setting up libgpg-error-dev (1.47-3build2.1) ...
Setting up uuid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Setting up libsepol-dev:amd64 (3.5-2build1) ...
Setting up gir1.2-glib-2.0:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libfdisk1:amd64 (2.39.3-9ubuntu6.6) ...
Setting up mount (2.39.3-9ubuntu6.6) ...
Setting up uuid-runtime (2.39.3-9ubuntu6.6) ...
uuidd.service is a disabled or a static unit not running, not starting it.
Setting up libsecret-common (0.21.4-1build3) ...
Setting up libglib2.0-dev-bin (2.80.0-6ubuntu3.10) ...
Setting up libblkid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Setting up libgirepository-2.0-0:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libselinux1-dev:amd64 (3.5-2ubuntu2.1) ...
Setting up libglib2.0-bin (2.80.0-6ubuntu3.10) ...
Setting up fdisk (2.39.3-9ubuntu6.6) ...
Setting up libsecret-1-0:amd64 (0.21.4-1build3) ...
Setting up gir1.2-secret-1:amd64 (0.21.4-1build3) ...
Setting up libgcrypt20-dev (1.10.3-2ubuntu0.2) ...
Setting up libmount-dev:amd64 (2.39.3-9ubuntu6.6) ...
Setting up libglib2.0-dev:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libsecret-1-dev:amd64 (0.21.4-1build3) ...
Processing triggers for libc-bin (2.39-0ubuntu8.8) ...
Processing triggers for man-db (2.12.0-4build2) ...
Not building database; man-db/auto-update is not 'true'.
Processing triggers for install-info (7.1-3build2) ...

Restarting services...
 systemctl restart esm-cache.service irqbalance.service packagekit.service php8.3-fpm.service polkit.service rsyslog.service systemd-journald.service systemd-manager.service systemd-networkd.service systemd-resolved.service systemd-udevd.service udisks2.service
Failed to restart systemd-manager.service: Unit systemd-manager.service not found.

Service restarts being deferred:
 systemctl restart ModemManager.service
 systemctl restart dbus.service
 systemctl restart getty@tty1.service
 systemctl restart networkd-dispatcher.service
 systemctl restart serial-getty@ttyS0.service
 systemctl restart setup_and_run_blacksmith.service
 systemctl restart systemd-logind.service

No containers need to be restarted.

User sessions running outdated binaries:
 runner @ user manager service: systemd[1839]

No VM guests are running outdated hypervisor (qemu) binaries on this host.
▸ Run filters=(--filter '!t3' --filter '!@t3tools/monorepo' --filter '!@t3tools/web')
filters=(--filter '!t3' --filter '!@t3tools/monorepo' --filter '!@t3tools/web')
if [[ -n "$TEST_PACKAGES" ]]; then
  filters=()
  for package in $TEST_PACKAGES; do filters+=(--filter "$package"); done
fi
vp run --parallel --concurrency-limit 4 "${filters[@]}" test
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 157
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 359
  GITHUB_REPO_NAME: pingdotgg/t3code
  TEST_PACKAGES: @t3tools/desktop @t3tools/mobile t3code-relay @t3tools/client-runtime @t3tools/contracts @t3tools/provider-acp @t3tools/provider-acp-registry @t3tools/provider-core @t3tools/provider-cursor @t3tools/provider-grok @t3tools/provider-muse @t3tools/provider-opencode @t3tools/provider-pi @t3tools/shared @t3tools/source-control-azure-devops @t3tools/source-control-bitbucket @t3tools/source-control-core @t3tools/source-control-forgejo @t3tools/source-control-gitcafe @t3tools/source-control-github @t3tools/source-control-gitlab @t3tools/ssh @t3tools/tailscale @t3tools/scripts
~/apps/desktop$ vp test run --passWithNoTests ⊘ cache disabled
~/packages/provider-grok$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
~/packages/provider-cursor$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
~/packages/provider-pi$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/apps/desktop


 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-grok


 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-cursor


 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-pi

 ✓ src/server/usage.test.ts (9 tests) 13ms
 ✓ src/server/skills.test.ts (5 tests) 144ms
 ✓ src/server/mcpExtensionSource.test.ts (24 tests) 362ms
 ✓ src/preview/BrowserImport/Sources.test.ts (25 tests) 272ms
 ✓ src/server/accountUsage.test.ts (9 tests) 706ms
 ✓ src/server/xaiAcpExtension.test.ts (52 tests) 60ms
 ✓ src/server/commands.test.ts (1 test) 2ms
 ✓ src/server/mcpInjection.test.ts (3 tests) 3ms
 ✓ src/server/usageLimits.test.ts (9 tests) 52ms
 ✓ src/server/auth.test.ts (10 tests) 27ms
 ✓ src/server/textGeneration.test.ts (8 tests) 46ms
 ✓ src/server/CursorAgentSdk.test.ts (1 test) 13ms
 ✓ src/server/status.test.ts (6 tests) 59ms
 ✓ src/server/textGeneration.test.ts (1 test) 34ms
 ✓ src/server/acpSupport.test.ts (8 tests) 9ms
 ✓ src/server/skills.test.ts (6 tests) 47ms
 ✓ src/server/transportFailure.test.ts (10 tests) 9ms
 ✓ src/app/DesktopLinuxUrlHandler.test.ts (13 tests) 80ms
 ✓ src/server/driver.test.ts (5 tests) 69ms
 ✓ src/server/accountCache.test.ts (2 tests) 10ms
 ✓ src/server/status.test.ts (8 tests) 11ms
 ✓ src/server/CursorSdk.test.ts (2 tests) 5ms
 ✓ src/server/adapter.test.ts (15 tests) 102ms
 ✓ src/server/driver.test.ts (2 tests) 62ms
 ✓ src/server/credentialStore.test.ts (5 tests) 29ms
 ✓ src/server/CursorSdkCatalog.test.ts (1 test) 6ms

 Test Files  14 passed (14)
      Tests  87 passed (87)
   Start at  12:46:21
   Duration  2.97s (transform 46%, import 38%, setup 8%, tests 7%)


~/packages/contracts$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/window/DesktopWindow.test.ts (20 tests) 63ms
 ✓ src/backend/DesktopBackendConfiguration.test.ts (17 tests) 97ms
 ✓ src/preview/Manager.test.ts (55 tests) 257ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/contracts

 ✓ src/updates/DesktopUpdates.test.ts (27 tests) 162ms
 ✓ src/backend/DesktopBackendManager.test.ts (7 tests) 65ms
 ✓ src/server/driver.test.ts (4 tests) 84ms
 ✓ src/updates/DesktopRemoteUpdates.test.ts (17 tests) 211ms

 Test Files  5 passed (5)
      Tests  79 passed (79)
   Start at  12:46:21
   Duration  3.34s (transform 64%, import 25%, setup 8%, tests 2%)


~/packages/source-control-gitlab$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/snapShot/DesktopSnapShot.test.ts (49 tests) 239ms
 ✓ src/pullRequest.test.ts (5 tests) 8ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-gitlab

 ✓ src/auth.test.ts (27 tests) 26ms
 ✓ src/snapShot/snapShot.test.ts (36 tests) 27ms
 ✓ src/composerContext.test.ts (8 tests) 120ms
 ✓ src/project.test.ts (6 tests) 59ms
 ✓ src/preview/BrowserImport/ChromiumCookies.test.ts (10 tests) 200ms
 ✓ src/telemetry/DesktopTelemetryPublisher.test.ts (3 tests) 66ms
 ✓ src/app/DesktopClerk.test.ts (15 tests) 109ms
 ✓ src/server.test.ts (7 tests) 24ms
 ✓ src/baseSchemas.test.ts (9 tests) 13ms
 ✓ src/settings.test.ts (24 tests) 76ms
 ✓ src/preview/FaviconCapture.test.ts (24 tests) 57ms
 ✓ src/backend/DesktopServerExposure.test.ts (10 tests) 214ms
 ✓ src/modelSelection.test.ts (4 tests) 18ms
 ✓ src/orchestratorMcp.test.ts (1 test) 11ms
 ✓ src/device.test.ts (3 tests) 18ms
 ✓ src/git.test.ts (3 tests) 14ms
 ✓ src/preview/BrowserImport/FirefoxCookies.test.ts (11 tests) 152ms
 ✓ src/server/adapter.test.ts (87 tests) 2325ms
   ✓ PiAdapterV2 (85)
     ✓ delivers realistic MCP screenshots through the bridge, JSONL transport, and adapter 500ms

 Test Files  7 passed (7)
      Tests  127 passed (127)
   Start at  12:46:21
   Duration  4.87s (transform 45%, import 30%, tests 18%, setup 7%)

 ✓ src/chatAttachment.test.ts (3 tests) 30ms

~/apps/mobile$ vp test run --project unit --project react ⊘ cache disabled
 ✓ src/scheduledTask.test.ts (7 tests) 16ms
 ✓ src/acpRegistry.test.ts (2 tests) 5ms
 ✓ src/wsl/DesktopWslServerTree.test.ts (8 tests) 235ms
 ✓ src/provider.test.ts (3 tests) 18ms
 ✓ src/terminal.test.ts (2 tests) 10ms
 ✓ src/snapShot/PortalCaptureShortcut.test.ts (20 tests) 36ms
 ✓ src/threadMetadataMcp.test.ts (2 tests) 17ms
 ✓ src/orchestrationV2.test.ts (12 tests) 83ms
 ✓ src/keybindings.test.ts (2 tests) 37ms
 ✓ src/preview/Passkeys.test.ts (6 tests) 28ms
 ✓ src/app/DesktopObservability.test.ts (5 tests) 247ms
 ✓ src/settings/DesktopAppSettings.test.ts (11 tests) 137ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/apps/mobile

 ✓ src/preview.test.ts (2 tests) 8ms
 ✓ src/environment.test.ts (1 test) 6ms
 ✓ src/shell/DesktopShellEnvironment.test.ts (12 tests) 115ms
 ✓ src/filesystem.test.ts (2 tests) 10ms
 ✓ src/rpc.test.ts (2 tests) 12ms
 ✓ src/browserProfile.test.ts (2 tests) 8ms
 ✓ src/threadPullRequest.test.ts (1 test) 6ms
 ✓ src/relay.test.ts (1 test) 37ms
 ✓ src/preview/BrowserSession.test.ts (7 tests) 40ms
 ✓ src/server/gitLabMergeRequestJson.test.ts (29 tests) 50ms
 ✓ src/providerSetup.test.ts (1 test) 13ms

 Test Files  27 passed (27)
      Tests  142 passed (142)
   Start at  12:46:25
   Duration  2.97s (import 44%, transform 28%, setup 22%, tests 5%, worker 1%)

    Isolate  27 workers spawned · ~147ms startup each (spawn + environment, per file)
             at least ~421ms faster with isolate: false — reuses workers across files instead of one per file

 ✓ src/server/GitLabPullRequestCli.test.ts (42 tests) 116ms
 ✓ src/server/GitLabCli.test.ts (5 tests) 35ms
 ✓ src/server/GitLabPullRequestCli.legacy.test.ts (14 tests) 52ms
 ✓ src/server/GitLabPullRequestProvider.test.ts (7 tests) 38ms

~/packages/provider-acp-registry$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/GitLabSourceControlProvider.test.ts (12 tests) 23ms
 ✓ src/snapShot/CaptureShortcutConfig.test.ts (16 tests) 137ms
 ✓ src/wsl/DesktopWslEnvironment.test.ts (17 tests) 2349ms
   ✓ WSL runtime install script (executed) (12)
     ✓ extracts once when two installs race for the same cache 1111ms
 ✓  react  src/components/ui/Dialog.android.test.tsx (1 test) 41ms
 ✓  react  src/native/NativeHeaderToolbar.test.tsx (4 tests) 64ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-acp-registry

 ✓ src/app/DesktopLifecycle.test.ts (6 tests) 23ms
 ✓ src/server/GitLabSourceControlProvider.git.test.ts (3 tests) 596ms
   ✓ ignores unavailable or non-regular GitLab default templates 372ms
 ✓ src/snapShot/LinuxSnapShot.test.ts (19 tests) 99ms
 ✓ src/shared/definition.test.ts (6 tests) 3ms
 ✓ src/server/gitLabDiscovery.test.ts (3 tests) 7ms
 ✓ src/preview/DesktopBrowserHost.test.ts (8 tests) 65ms
 ✓ src/settings/DesktopClientSettings.test.ts (7 tests) 130ms
 ✓ src/server/GitLabPullRequestProvider.rateLimit.test.ts (1 test) 16ms

 Test Files  10 passed (10)
      Tests  122 passed (122)
   Start at  12:46:25
   Duration  3.49s (transform 55%, import 35%, setup 5%, tests 5%)


~/packages/provider-muse$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/preview/BrowserImport/SafariCookies.test.ts (9 tests) 23ms
 ✓ src/app/DesktopConnectionCatalogStore.test.ts (5 tests) 83ms
 ✓ src/app/DesktopCliCommand.test.ts (6 tests) 75ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-muse

 ✓ src/window/DesktopApplicationMenu.test.ts (3 tests) 46ms
 ✓ src/snapShot/NiriSnapShot.test.ts (18 tests) 304ms
 ✓ src/preview/BrowserImport/ChromiumKeys.test.ts (9 tests) 37ms
 ✓ src/snapShot/KdeSnapShot.test.ts (9 tests) 83ms
 ✓ src/preview/CdpRelay.test.ts (6 tests) 16ms
 ✓ src/server/usageLimits.test.ts (4 tests) 3ms
 ✓ src/settings/DesktopSavedEnvironments.test.ts (3 tests) 82ms
 ✓ src/backend/DesktopLocalEnvironmentAuth.test.ts (3 tests) 31ms
 ✓ src/app/DesktopPreReadyPlatform.test.ts (4 tests) 33ms
 ✓ src/server/AcpRegistryRuntimeCoordinator.test.ts (7 tests) 35ms
 ✓ scripts/electron-launcher.test.mjs (7 tests) 545ms
 ✓ src/server/itemPresentation.test.ts (6 tests) 10ms
 ✓ src/server/sdk.test.ts (12 tests) 169ms
 ✓  react  src/features/settings/components/BranchNamingSettings.test.tsx (4 tests) 43ms
 ✓ src/server/authenticationState.test.ts (3 tests) 91ms
 ✓  react  src/state/use-selected-thread-git-actions.test.tsx (1 test) 30ms
 ✓ src/snapShot/HyprlandSnapShot.test.ts (9 tests) 91ms
 ✓ src/app/DesktopEarlyElectronStartup.test.ts (19 tests) 20ms
 ✓ src/wsl/DesktopWslBackend.test.ts (1 test) 10ms
 ✓ src/ipc/methods/window.test.ts (5 tests) 67ms
 ✓ src/window/ContextMenuImage.test.ts (15 tests) 56ms
 ✓ src/snapShot/GnomeCaptureSetup.test.ts (11 tests) 165ms
 ✓ src/server/protocol.test.ts (1 test) 2ms
 ✓ src/app/DesktopAppIdentity.test.ts (5 tests) 37ms
 ✓ src/updates/releaseNotes.test.ts (8 tests) 7ms
 ✓  unit  src/lib/threadActivity.test.ts (36 tests) 103ms
 ✓ src/electron/ElectronWindow.test.ts (2 tests) 19ms
 ✓ src/server/auth.test.ts (5 tests) 72ms
 ✓ src/electron/ElectronProtocol.test.ts (3 tests) 77ms
 ✓ src/server/AcpRegistrySupport.test.ts (31 tests) 909ms
 ✓ scripts/main-process-bundle.test.mjs (2 tests) 378ms
 ✓ src/preview/PasskeyBridge.test.ts (3 tests) 9ms
 ✓  unit  src/lib/modelOptions.test.ts (29 tests) 32ms
 ✓ src/server/modelCatalog.test.ts (1 test) 5ms
 ✓ src/ssh/DesktopSshPasswordPrompts.test.ts (2 tests) 22ms
 ✓  unit  src/features/threads/threadListV2.test.ts (58 tests) 44ms
 ✓ src/server/usage.test.ts (12 tests) 64ms
 ✓ src/server/driver.test.ts (9 tests) 16ms
 ✓ src/backend/DesktopBackendPool.test.ts (1 test) 15ms

 Test Files  5 passed (5)
      Tests  55 passed (55)
   Start at  12:46:28
   Duration  3.56s (transform 55%, import 32%, tests 9%, setup 4%)

 ✓ src/updates/remoteUpdateFlow.test.ts (6 tests) 4ms
 ✓ src/server/maintenance.test.ts (3 tests) 41ms

~/packages/provider-acp$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/state/thread-outbox.test.ts (35 tests) 56ms
 ✓ src/server/textGeneration.test.ts (8 tests) 59ms
 ✓ src/app/DesktopAppActivation.test.ts (3 tests) 83ms
 ✓ src/server/status.test.ts (3 tests) 191ms
 ✓ src/window/QuitHold.test.ts (7 tests) 21ms
 ✓ gnome-extension/captureFeedback.test.js (4 tests) 19ms
 ✓ src/server/adapter.test.ts (39 tests) 233ms

 Test Files  10 passed (10)
      Tests  89 passed (89)
   Start at  12:46:29
   Duration  2.92s (transform 53%, import 35%, setup 7%, tests 5%)


 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-acp


~/packages/source-control-gitcafe$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/snapShot/captureConfigEdit.test.ts (24 tests) 44ms
 ✓ gnome-extension/captureService.test.js (10 tests) 14ms
 ✓ src/ipc/methods/wsl.test.ts (2 tests) 11ms
 ✓  react  src/features/settings/SettingsServerControlsRouteScreen.test.tsx (1 test) 55ms
 ✓ src/preview/BrowserImport/BrowserImport.test.ts (3 tests) 55ms
 ✓  unit  src/features/agent-awareness/remoteRegistration.test.ts (15 tests) 359ms
 ✓ src/server/stderr.test.ts (2 tests) 3ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-gitcafe

 ✓ src/wsl/wslPathParsing.test.ts (12 tests) 12ms
 ✓ src/server/sessionConfig.test.ts (6 tests) 11ms
 ✓ src/legacyLocalStorageMerge.test.ts (7 tests) 10ms
 ✓ src/app/DesktopCliShim.test.ts (4 tests) 132ms
 ✓ src/app/CodexAuthCallback.test.ts (4 tests) 97ms
stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: false)
[composer-attachments] could not remove local file TypeError: file.delete is not a function
    at removePersistedComposerAttachmentFile (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/composerImages.ts:223:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at releaseUnusedComposerAttachmentFiles (/home/runner/_work/t3code/t3code/apps/mobile/src/state/use-composer-drafts.ts:924:5)

Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Paths.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Directory.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/ExpoFileSystem.js" points to missing source files
 ✓ src/updates/updateMachine.test.ts (4 tests) 8ms
 ✓ src/ipc/methods/notificationBadge.test.ts (1 test) 23ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/global.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/EventEmitter.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/NativeModule.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/SharedObject.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/SharedRef.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/setUpJsLogger.fx.js" points to missing source files
 ✓  unit  src/lib/composerFiles.test.ts (36 tests) 115ms
 ✓ src/server/mcpOverAcpBridge.test.ts (3 tests) 40ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/errors/CodedError.js" points to missing source files
 ✓ src/linuxSecretStorage.test.ts (7 tests) 15ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.js" points to missing source files
 ✓ src/ipc/methods/preview.test.ts (5 tests) 36ms
stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: false)
[composer-attachments] could not remove local file Error [RolldownError]: Parse failure: Parse failed with 1 error:
Flow is not supported
1: /**
   ^
2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
3:  *
At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
    at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-D6uA606S.mjs:166:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
    at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
    at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
    at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:21140:9)
    at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25564:64) {
  cause: undefined,
  __vitest_rollup_error__: {
    plugin: undefined,
 ✓ src/server/gitCafeHosts.test.ts (7 tests) 3ms
    id: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js',
    loc: {
      line: 1,
      column: 0,
      file: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js'
    },
    frame: '1  |  /**\n' +
      '   |  ^\n' +
      '2  |   * Copyright (c) Meta Platforms, Inc. and affiliates.\n' +
      '3  |   *'
  },
  runnerError: Error: RunnerError
      at reviveInvokeError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:553:64)
      at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:568:33)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1217:7)
      at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1234:83)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
      at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/module-evaluator.js:261:4)
      at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1277:59)
      at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1184:73)
 ✓ src/server/clientPolicy.test.ts (13 tests) 55ms
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
}
 ✓ src/permissions/MacPermissionHelper.test.ts (1 test) 5ms
[composer-attachments] could not remove local file Error [RolldownError]: Parse failure: Parse failed with 1 error:
 ✓ src/snapShot/RegionSnapShot.test.ts (4 tests) 20ms
Flow is not supported
1: /**
   ^
2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
3:  *
At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
    at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-D6uA606S.mjs:166:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
    at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
    at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
    at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:21140:9)
    at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25564:64) {
  cause: undefined,
  __vitest_rollup_error__: {
    plugin: undefined,
    id: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js',
    loc: {
      line: 1,
      column: 0,
      file: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js'
    },
    frame: '1  |  /**\n' +
      '   |  ^\n' +
      '2  |   * Copyright (c) Meta Platforms, Inc. and affiliates.\n' +
      '3  |   *'
  },
  runnerError: Error: RunnerError
      at reviveInvokeError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:553:64)
      at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:568:33)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
 ✓  unit  src/features/sharing/incoming-share-model.test.ts (19 tests) 19ms
      at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1217:7)
      at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1234:83)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
      at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/module-evaluator.js:261:4)
      at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1277:59)
      at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1184:73)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: true)
[composer-attachments] could not verify incoming share ownership {
  _tag: 'IncomingShareStorageError',
  operation: 'load',
  shareId: null,
  cause: Error [RolldownError]: Parse failure: Parse failed with 1 error:
  Flow is not supported
  1: /**
     ^
  2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
  3:  *
  At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
      at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-D6uA606S.mjs:166:24)
      at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
      at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
      at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
      at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:21140:9)
      at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25564:64) {
    cause: undefined,
    __vitest_rollup_error__: {
      plugin: undefined,
      id: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js',
      loc: [Object],
      frame: '1  |  /**\n' +
        '   |  ^\n' +
        '2  |   * Copyright (c) Meta Platforms, Inc. and affiliates.\n' +
        '3  |   *'
    },
    runnerError: Error: RunnerError
        at reviveInvokeError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:553:64)
        at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:568:33)
        at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
        at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1217:7)
        at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1234:83)
        at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
        at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/module-evaluator.js:261:4)
        at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1277:59)
        at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1184:73)
        at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
  }
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox drain delivery cleanup > removes an acknowledged outbox item even when the sign-out archive write fails
[thread-outbox] could not update sign-out snapshot after delivery {
  messageId: 'archive-write-failure',
  error: {
    _tag: 'ComposerDraftPersistenceError',
    operation: 'write',
    directory: 'composer-drafts',
    fileName: 'drafts.json',
    cause: Error: Draft storage unavailable
        at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:335:37
        at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
        at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
  }
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox drain delivery cleanup > retries only cleanup after an acknowledged send removal fails
[thread-outbox] failed to remove acknowledged queued message {
  environmentId: 'environment-1',
  threadId: 'thread-1',
  messageId: 'message-acknowledged',
  error: {
    _tag: 'ThreadOutboxManagerError',
    operation: 'remove',
    environmentId: 'environment-1',
    threadId: 'thread-1',
    messageId: 'message-acknowledged',
    cause: Error: storage unavailable
        at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:399:55
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
        at new Promise (<anonymous>)
        at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
        at new Promise (<anonymous>)
        at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3904:64
  }
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox delivered creation recovery > retries a failed removal without duplicating recovered draft content
[thread-outbox] could not remove recovered pending task Error: storage unavailable
    at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:557:30
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
    at new Promise (<anonymous>)
    at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3904:64

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox delivered creation recovery > keeps the queue entry when the recovered draft cannot persist
[thread-outbox] could not hand an edited pending task to the composer {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'write',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: disk full
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:583:37
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft read fails
[composer-drafts] failed to hydrate drafts {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'read',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: storage unavailable
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-composer-drafts.test.ts:1977:45
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2886:64
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
      at new Promise (<anonymous>)
      at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
 ✓  unit  src/state/use-thread-outbox-drain.test.ts (23 tests) 92ms
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
      at new Promise (<anonymous>)
      at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft read fails
[composer-drafts] failed to hydrate drafts {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'read',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: storage unavailable
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-composer-drafts.test.ts:1977:45
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2886:64
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:1632:35
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:26
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
      at new Promise (<anonymous>)
      at runWithCancel (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3318:20
      at new Promise (<anonymous>)
      at runWithTimeout (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3276:10)
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft decode fails
[composer-drafts] failed to hydrate drafts {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'decode',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: {
    _tag: 'SchemaError',
    message: 'Expected 1\n  at ["schemaVersion"]'
  }
}

stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > preserves saved drafts and attachment files when the draft decode fails
[composer-drafts] failed to hydrate drafts {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'decode',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: {
    _tag: 'SchemaError',
    message: 'Expected 1\n  at ["schemaVersion"]'
  }
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox recovery rollback > rolls a failed recovery merge back so the retry cannot duplicate the text
[thread-outbox] failed to persist a recovery rollback {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'write',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: disk full
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:733:37
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
}

stderr | src/state/use-thread-outbox-drain.test.ts > thread outbox recovery rollback > rolls a failed recovery merge back so the retry cannot duplicate the text
[thread-outbox] failed to restore an undeliverable message {
  _tag: 'ComposerDraftPersistenceError',
  operation: 'write',
  directory: 'composer-drafts',
  fileName: 'drafts.json',
  cause: Error: disk full
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/use-thread-outbox-drain.test.ts:733:37
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
}

 ✓ src/preview/GuestInput.test.ts (4 tests) 13ms
 ✓  unit  src/lib/attachmentUpload.test.ts (28 tests) 43ms
 ✓ src/server/runtimeModel.test.ts (47 tests) 564ms
 ✓  unit  src/state/use-composer-drafts.test.ts (74 tests) 954ms
   ✓ mobile composer drafts (74)
     ✓ restores deleted file chips and releases undo history (uploaded: false) 374ms
 ✓ src/backend/tailscaleEndpointProvider.test.ts (3 tests) 20ms
 ✓ scripts/verify-preload-bundle.test.mjs (7 tests) 36ms
 ✓ src/app/DesktopWebLinks.test.ts (2 tests) 12ms
 ✓ src/ipc/methods/snapShot.test.ts (3 tests) 36ms
 ✓  unit  src/features/home/useThreadListActions.test.ts (37 tests) 42ms
 ✓  unit  src/native/workspace-stack-projection.test.ts (22 tests) 18ms
 ✓ src/electron/ElectronShell.test.ts (5 tests) 9ms
 ✓ src/preview/BrowserImport/CookieDatabase.test.ts (2 tests) 150ms
 ✓ scripts/browser-secret-native.test.mjs (10 tests) 718ms
 ✓ ../../native/kde-snap-shot/src/activate.test.ts (2 tests) 4ms
 ✓ src/preview/PickedElementPayload.test.ts (2 tests) 6ms
 ✓ src/snapShot/NativeCaptureFeedback.test.ts (2 tests) 9ms
 ✓ src/preview/BrowserImport/SafariPermission.test.ts (2 tests) 64ms
 ✓  unit  src/lib/mobileTheme.test.ts (24 tests) 105ms
 ✓ src/snapShot/SnapShotAccessibilityProcess.test.ts (3 tests) 23ms
 ✓ src/server/nativeLogging.test.ts (3 tests) 60ms
 ✓  unit  src/state/thread-task-permissions.test.ts (7 tests) 29ms
 ✓ src/electron/WindowsForegroundFocusThread.test.ts (2 tests) 9ms
 ✓ src/preview/BrowserImport/LinuxBrowserSecret.test.ts (1 test) 41ms
 ✓ src/electron/WindowsForeground.test.ts (3 tests) 17ms
 ✓ src/app/DesktopEnvironment.test.ts (2 tests) 27ms
 ✓  unit  src/features/pull-requests/pullRequestList.test.ts (18 tests) 47ms
 ✓  unit  src/state/use-thread-outbox-drain.permissions.test.ts (12 tests) 12ms
 ✓ src/server/gitCafePullRequestJson.test.ts (15 tests) 24ms
 ✓ src/app/DesktopUserData.test.ts (2 tests) 52ms
 ✓  unit  src/lib/attachmentDownload.test.ts (19 tests) 35ms
 ✓ src/shared/definition.test.ts (4 tests) 13ms
 ✓ src/permissions/MacSettingsWindow.test.ts (2 tests) 12ms
 ✓ gnome-extension/feedbackGeometry.test.js (7 tests) 6ms
 ✓ src/server/GitCafeCredentials.test.ts (4 tests) 26ms
 ✓ src/app/DesktopAppActivationBroker.test.ts (3 tests) 7ms
 ✓ src/server/GitCafeSourceControlProvider.test.ts (8 tests) 62ms
 ✓ src/preview/WebviewPreferences.test.ts (2 tests) 3ms
 ✓  unit  src/lib/composerAttachmentUploadQueue.test.ts (11 tests) 13ms
 ✓  unit  src/lib/android-workspace-navigation.test.ts (15 tests) 19ms
 ✓  unit  src/lib/composerContext.test.ts (16 tests) 165ms
 ✓ src/snapShot/WindowsCaptureFeedback.test.ts (1 test) 5ms
 ✓ src/preview/RecordingInput.test.ts (2 tests) 2ms
 ✓ src/app/DesktopPreReadyFileSystem.test.ts (1 test) 35ms
 ✓ ../../native/kde-snap-shot/src/feedbackGeometry.test.ts (2 tests) 16ms
 ✓ src/server/GitCafePullRequestProvider.test.ts (32 tests) 201ms
 ✓ src/ipc/methods/localEnvironment.test.ts (1 test) 7ms

 Test Files  6 passed (6)
      Tests  70 passed (70)
   Start at  12:46:33
   Duration  2.80s (transform 50%, import 40%, setup 7%, tests 3%)

 ✓ src/preview/AnnotationKeyboard.test.ts (1 test) 2ms

~/packages/ssh$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/preview/AnnotationIds.test.ts (1 test) 4ms
 ✓ src/ipc/methods/sshEnvironment.test.ts (1 test) 7ms

 Test Files  103 passed (103)
      Tests  838 passed (838)
   Start at  12:46:21
   Duration  14.15s (import 46%, transform 30%, tests 12%, setup 11%, worker 1%)

     Import  520 modules were evaluated 6424 times · 37.45s total, 46% of tracked time
             ~3.75s faster with isolate: false — shared modules are evaluated once per worker instead of once per file
             learn more: https://vitest.dev/guide/improving-performance#test-isolation

 ✓  unit  src/features/threads/thread-feed-live-follow.test.ts (28 tests) 5ms

~/packages/source-control-forgejo$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/ssh

 ✓  unit  src/state/composer-attachment-uploads.test.ts (5 tests) 21ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-forgejo

 ✓  unit  src/features/voice-input/voiceInputSession.test.ts (13 tests) 24ms
 ✓  unit  src/lib/composerContextClipboard.test.ts (7 tests) 19ms
 ✓ src/auth.test.ts (2 tests) 16ms
stdout | src/command.test.ts > ssh command > preserves process output: default head
[12:46:36.608] WARN (#40): ssh.command.failed {
  alias: 'synthetic-fixture',
  hostname: 'synthetic-fixture',
  username: null,
  port: null,
  command: [
    'ssh',
    '-o',
    'BatchMode=yes',
    '-o',
    'ConnectTimeout=10',
    '--',
    'synthetic-fixture'
  ],
  exitCode: 1,
  stdout: 'HEAD\n' +
    'verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbo\n' +
    '[truncated]',
  stderr: ''
}

 ✓  unit  src/connection/environment-cache-store.test.ts (4 tests) 35ms
stdout | src/command.test.ts > ssh command > preserves process output: opt-in tail
[12:46:36.654] WARN (#53): ssh.command.failed {
  alias: 'synthetic-fixture',
  hostname: 'synthetic-fixture',
  username: null,
  port: null,
  command: [
    'ssh',
    '-o',
    'BatchMode=yes',
    '-o',
    'ConnectTimeout=10',
    '--',
    'synthetic-fixture'
  ],
  exitCode: 1,
  stdout: '[truncated]\n' +
    'bose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix verbose-prefix {"credential":"[redacted]"}\n' +
    'PANIC: emulator SDK is broken\n',
  stderr: 'stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure stderr failure '
}

 ✓  unit  src/features/updates/app-updates.test.ts (11 tests) 59ms
 ✓ src/config.test.ts (4 tests) 56ms
 ✓ src/command.test.ts (7 tests) 126ms
 ✓ src/tunnel.test.ts (7 tests) 92ms

 Test Files  4 passed (4)
      Tests  20 passed (20)
   Start at  12:46:36
   Duration  682ms (import 45%, transform 24%, tests 15%, setup 15%, worker 1%)

 ✓ src/server/forgejoPullRequestJson.test.ts (5 tests) 23ms

~/packages/source-control-azure-devops$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/state/pending-task-editor-writes.test.ts (5 tests) 12ms
 ✓  unit  src/features/home/home-thread-navigation.test.ts (6 tests) 16ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-azure-devops

 ✓  unit  src/state/use-selected-thread-git-actions.test.ts (11 tests) 13ms
 ✓  unit  src/features/diffs/nativeReviewDiffHighlighter.test.ts (11 tests) 348ms
 ✓  unit  src/features/threads/checkout-new-task-branch.test.ts (11 tests) 2341ms
   ✓ new-task branch checkout (11)
     ✓ switches to the selected remote instead of reusing a worktree tracking another remote 403ms
 ✓ src/server/clientTerminals.test.ts (10 tests) 3600ms
   ✓ AcpClientTerminals (9)
     ✓ bounds unreleased terminal handles without invalidating existing ids 2720ms

 Test Files  7 passed (7)
      Tests  84 passed (84)
   Start at  12:46:32
   Duration  4.91s (tests 42%, transform 30%, import 20%, setup 8%)

 ✓  unit  src/features/threads/threadOrderAvailability.test.ts (7 tests) 352ms
   ✓ computeThreadMoveAvailability matches the reference planner (7)
     ✓ agrees across randomized sections (keys, holes, non-writable rows, hidden keys) 349ms
 ✓  unit  src/state/thread-outbox-removal.test.ts (5 tests) 8ms

~/packages/shared$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/cloud/linkEnvironment.test.ts (3 tests) 104ms
 ✓  unit  src/lib/composerImages.test.ts (6 tests) 10ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/shared

 ✓ src/server/azureDevOpsDiff.test.ts (14 tests) 424ms
   ✓ azureDevOpsFilePatch (11)
     ✓ lists a file too far apart to diff without its hunks 385ms
 ✓ src/shared/definition.test.ts (10 tests) 11ms
 ✓ src/server/forgejoPullRequests.test.ts (1 test) 26ms
 ✓  unit  src/features/sharing/incoming-share-inbox.test.ts (10 tests) 15ms
 ✓  unit  src/features/workspace/workspace-tabs-state.test.ts (16 tests) 16ms
 ✓ src/server/ForgejoPullRequestProvider.test.ts (1 test) 12ms
 ✓  unit  src/dependency-graph.test.ts (2 tests) 13ms
 ✓ src/paletteSearch.test.ts (34 tests) 140ms
 ✓  unit  src/native/composerEditorRevision.test.ts (17 tests) 17ms
 ✓  unit  src/features/home/homeThreadList.test.ts (4 tests) 30ms
 ✓ src/server/ForgejoSourceControlProvider.test.ts (31 tests) 452ms
 ✓ src/shell.test.ts (42 tests | 2 skipped) 91ms
stdout | src/lib/storage.test.ts > mobile connection storage > loads legacy preferences when SQLite is unavailable
[12:46:38.966] WARN (#20): Database unavailable; loading fallback preferences. {
  cause: {
    _tag: 'MobileDatabaseError',
    operation: 'load-preferences',
    cause: Error: database unavailable
        at Object.<anonymous> (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/storage.test.ts:49:33)
        at Object.Mock [as getFirstAsync] (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:431:18)
        at MixedScheduler.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:785:7)
        at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:804:38)
        at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31
  }
}

stdout | src/lib/storage.test.ts > mobile connection storage > falls back to secure storage when SQLite cannot save preferences
[12:46:38.968] WARN (#21): Database unavailable; loading fallback preferences. {
  cause: {
    _tag: 'MobileDatabaseError',
    operation: 'load-preferences',
    cause: Error: database unavailable
        at Object.<anonymous> (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/storage.test.ts:49:33)
        at Object.Mock [as getFirstAsync] (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:431:18)
        at MixedScheduler.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:785:7)
        at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:804:38)
        at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31
  }
}

stdout | src/lib/storage.test.ts > mobile connection storage > falls back to secure storage when SQLite cannot save preferences
[12:46:38.968] WARN (#21): Database unavailable; saving preferences to secure storage. {
  cause: {
    _tag: 'MobileDatabaseError',
    operation: 'save-preferences',
    cause: Error: database unavailable
        at Object.<anonymous> (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/storage.test.ts:59:33)
        at Object.Mock [as runAsync] (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:441:20)
        at MixedScheduler.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:785:7)
        at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:804:38)
        at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
        at AsyncResource.runInAsyncScope (node:async_hooks:226:14)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:396:27)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:808:17
  }
}

 ✓  unit  src/features/settings/scheduledTaskDraft.test.ts (12 tests) 15ms
 ✓ src/server/ForgejoCheckout.test.ts (1 test) 759ms
   ✓ checks out fj pull refs and preserves existing branches and dirty files until forced 757ms

 Test Files  6 passed (6)
      Tests  49 passed (49)
   Start at  12:46:36
   Duration  2.70s (transform 50%, import 32%, tests 12%, setup 5%)

 ✓  unit  src/lib/storage.test.ts (8 tests) 55ms

~/packages/provider-core$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/azureDevOpsPullRequestJson.test.ts (28 tests) 30ms
 ✓ src/relayClient.test.ts (14 tests) 193ms
 ✓ src/shared/definition.test.ts (17 tests) 20ms
stdout | src/state/preferences.test.ts > mobile preferences state > falls back to empty preferences when secure storage cannot be read
[12:46:39.215] WARN (#35): Could not load mobile preferences. {
  _tag: 'MobilePreferencesLoadError',
  cause: Error: secure storage unavailable
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/preferences.test.ts:181:20
      at Generator.next (<anonymous>)
      at ~effect/Effect/successCont (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:979:28)
      at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:991:25)
      at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
      at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
      at Module.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31)
      at Array.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@effect+vitest@4.0.5_patch_hash=2731c9c3761c595f25ddc625a7d61ca376b389d5b3049ecb837c894_729be65b0f3c6bde0309e4457c6d9256/node_modules/@effect/vitest/dist/internal/internal.js:26:31)
}

 ✓  unit  src/state/preferences.test.ts (3 tests) 31ms
 ✓ src/server/AzureDevOpsSourceControlProvider.test.ts (1 test) 3ms
 ✓  unit  src/lib/layout.test.ts (15 tests) 5ms
 ✓ src/server/AzureDevOpsCli.test.ts (7 tests) 55ms
 ✓ src/server/AzureDevOpsPullRequestCli.test.ts (21 tests) 183ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-core

 ✓ src/observability.test.ts (18 tests) 217ms
 ✓  unit  src/state/session.test.ts (4 tests) 23ms
 ✓ src/nodeSqliteClient.test.ts (17 tests) 442ms
 ✓ src/server/AzureDevOpsPullRequestProvider.test.ts (12 tests) 569ms

 Test Files  7 passed (7)
      Tests  100 passed (100)
   Start at  12:46:37
   Duration  2.66s (transform 51%, import 33%, tests 10%, setup 6%)

 ✓  unit  src/lib/mediaActions.test.ts (10 tests) 15ms

~/packages/source-control-core$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/threads/thread-provider-instance.test.ts (3 tests) 21ms
 ✓ src/server/usageLimits.test.ts (7 tests) 5ms
 ✓  unit  src/features/projects/AddProjectScreen.test.ts (3 tests) 29ms
 ✓ src/otelEnvironment.test.ts (31 tests) 83ms
 ✓  unit  src/features/cloud/dpop.test.ts (5 tests) 63ms
 ✓  unit  src/features/settings/settings-scoped-server.test.ts (5 tests) 13ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-core

 ✓ src/markdownMath.test.ts (44 tests) 201ms
 ✓ src/server/ModelCatalog.test.ts (4 tests) 10ms
 ✓ src/usageMerge.test.ts (17 tests) 45ms
 ✓ src/usageLimits.test.ts (38 tests) 100ms
 ✓ src/composerContextLegacy.test.ts (36 tests) 100ms
 ✓ src/projectSettings.test.ts (20 tests) 34ms
 ✓  unit  src/features/agent-awareness/liveActivityPreferences.test.ts (3 tests) 19ms
 ✓ src/serverSettings.test.ts (38 tests) 78ms
 ✓ src/server/pullRequestChecks.test.ts (16 tests) 9ms
 ✓ src/server/mergeMessage.test.ts (11 tests) 7ms
 ✓  unit  src/features/pull-requests/pullRequestStack.test.ts (8 tests) 11ms
 ✓ src/server/diffFileRevisions.test.ts (15 tests) 17ms
 ✓  unit  src/features/threads/new-task-project-selection.test.ts (9 tests) 19ms
 ✓ src/server/SourceControlProvider.test.ts (1 test) 3ms
 ✓ src/atomicWrite.test.ts (7 tests) 118ms
 ✓  unit  src/features/threads/thread-route-state.test.ts (5 tests) 12ms
 ✓ src/orchestrationV2PendingBackgroundWork.test.ts (16 tests) 9ms
 ✓  unit  src/features/settings/environment-maintenance.test.ts (7 tests) 47ms
 ✓ src/composerContextReferences.test.ts (17 tests) 16ms
 ✓ src/dpop.test.ts (9 tests) 173ms
 ✓  unit  src/widgets/subscriptionUsageSnapshot.test.ts (5 tests) 25ms
 ✓ src/server/attachmentPrompt.test.ts (2 tests) 5ms
 ✓  unit  src/features/threads/thread-settings-sheet-state.test.ts (5 tests) 14ms
 ✓ src/server/notification.test.ts (4 tests) 7ms
 ✓ src/server/providerAuthFlow.test.ts (17 tests) 94ms
 ✓ src/git.test.ts (28 tests) 29ms
 ✓  unit  src/features/review/reviewModel.test.ts (5 tests) 21ms
 ✓ src/assistantCitations.test.ts (20 tests) 40ms
 ✓  unit  src/features/review/reviewCommentSelection.test.ts (6 tests) 17ms
 ✓ src/server/failure.test.ts (10 tests) 55ms
 ✓ src/mcpApp.test.ts (14 tests) 849ms
   ✓ mcpAppFromToolItem (4)
     ✓ reads the app from both the stored output and its compact wire form 808ms
 ✓ src/server/managedProvider.test.ts (9 tests) 104ms
 ✓ src/server/snapshotProbe.test.ts (7 tests) 19ms
 ✓  unit  src/lib/markdownHtml.test.ts (8 tests) 67ms
 ✓ src/KeyedCoalescingWorker.test.ts (4 tests) 42ms
 ✓  unit  src/lib/protectedData.test.ts (3 tests) 223ms
 ✓ src/server/processGroup.test.ts (2 tests) 4ms
 ✓ src/server/instanceEnvironment.test.ts (4 tests) 30ms
 ✓ src/server/mcpSession.test.ts (2 tests) 6ms
 ✓ src/server/maintenanceResolver.test.ts (52 tests) 449ms
 ✓ src/preview.test.ts (23 tests) 20ms
 ✓ src/composerInlineTokens.test.ts (34 tests) 39ms
 ✓ src/nodeRuntime.test.ts (10 tests) 721ms
   ✓ Node runtime selection (8)
     ✓ finds a newly installed runtime immediately after a failed lookup 455ms
 ✓ src/server/SourceControlRateLimit.test.ts (6 tests) 18ms

 Test Files  5 passed (5)
      Tests  49 passed (49)
   Start at  12:46:40
   Duration  2.19s (transform 48%, import 30%, setup 20%, tests 2%, worker 1%)

 ✓  unit  src/features/voice-input/lazyVoiceRecorder.test.ts (3 tests) 23ms
 ✓  unit  src/state/remote-environment-projections.test.ts (1 test) 8ms

~/packages/source-control-github$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/model.test.ts (10 tests) 23ms
 ✓ src/server/collectStreamText.test.ts (2 tests) 57ms
 ✓  unit  src/features/pull-requests/pullRequestDiffPages.test.ts (4 tests) 29ms
 ✓ src/server/mcpToolPresentation.test.ts (4 tests) 9ms
 ✓ src/markdownLinks.test.ts (34 tests) 13ms
 ✓ src/server/threadTitleContext.test.ts (2 tests) 3ms
 ✓ src/toolOutput.test.ts (12 tests) 25ms
stdout | plugins/withAndroidFbjniVersion.test.mjs > withAndroidFbjniVersion > applies the force through the registered app config
[react-native-pdf-jsi] Remember to install peer dependencies:
  - react-native-blob-util
  - @react-native-async-storage/async-storage
  - react-native-nitro-modules (required for the Nitro JSI path; the React Native bridge is used when it is not linked)
✅ Clerk iOS plugin loaded
✅ Clerk Android plugin loaded

 ✓  unit  plugins/withAndroidFbjniVersion.test.mjs (4 tests) 481ms
   ✓ withAndroidFbjniVersion (4)
     ✓ applies the force through the registered app config 460ms
 ✓ src/server/textGenerationUtils.test.ts (3 tests) 13ms
 ✓  unit  src/lib/reserved-regions.test.ts (7 tests) 8ms
 ✓ src/codexMarkdownDirectives.test.ts (22 tests) 83ms
 ✓ src/server/textGenerationPrompts.test.ts (1 test) 5ms

 Test Files  17 passed (17)
      Tests  132 passed (132)
   Start at  12:46:39
   Duration  3.62s (transform 47%, import 37%, setup 11%, tests 5%, worker 1%)

 ✓ src/agentAwareness.test.ts (18 tests) 4ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-github


~/packages/source-control-bitbucket$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/usage/UsageLimitsSection.test.ts (2 tests) 3ms
 ✓  unit  src/features/review/nativeReviewDiffAdapter.test.ts (2 tests) 647ms
   ✓ buildNativeReviewDiffData row bound (1)
     ✓ caps each huge file excerpt while preserving full counts and ordinary files 589ms
 ✓ src/imageDimensions.test.ts (8 tests) 5ms
 ✓ src/remote.test.ts (10 tests) 14ms
 ✓ src/DrainableWorker.test.ts (3 tests) 30ms
 ✓  unit  src/lib/pdfPreview.test.ts (12 tests) 22ms
 ✓ src/htmlRender.test.ts (11 tests) 17ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/source-control-bitbucket

 ✓  unit  src/state/edit-pending-thread-message.test.ts (4 tests) 7ms
 ✓ src/terminalOutput.test.ts (16 tests) 1302ms
   ✓ appendTerminalOutput (8)
     ✓ stays bounded across many appends of huge output, including one endless line 1262ms
 ✓  unit  src/features/agent-awareness/notificationNavigation.test.ts (6 tests) 15ms
 ✓ src/composerContextLegacySend.test.ts (8 tests) 39ms
 ✓ src/logging.test.ts (3 tests) 99ms
 ✓  unit  src/state/use-thread-pr.test.ts (7 tests) 9ms
 ✓ src/KeyedLock.test.ts (4 tests) 78ms
 ✓ src/promptLinks.test.ts (8 tests) 34ms
 ✓ src/composerContextClipboard.test.ts (6 tests) 453ms
   ✓ composerContextClipboard (6)
     ✓ round-trips selections larger than two million characters 440ms
 ✓  unit  src/features/workspace/android-workspace-navigation-colors.test.ts (9 tests) 55ms
 ✓  unit  src/state/assets.test.ts (4 tests) 18ms
 ✓  unit  src/state/thread-order.test.ts (4 tests) 21ms
 ✓  unit  src/lib/adaptive-navigation.test.ts (8 tests) 22ms
 ✓ src/server/gitHubPullRequestJson.test.ts (50 tests) 156ms
 ✓ src/schemaJson.test.ts (8 tests) 53ms
 ✓ src/devHome.test.ts (5 tests) 26ms
 ✓  unit  src/state/attachments.test.ts (2 tests) 11ms
 ✓ src/orchestrationV2BoundedSnapshot.test.ts (3 tests) 8ms
 ✓ src/codexAuthHandoff.test.ts (6 tests) 31ms
 ✓  unit  src/lib/projectFaviconRequests.test.ts (4 tests) 7ms
 ✓  unit  src/features/connection/environmentSections.test.ts (3 tests) 3ms
 ✓ src/threadLinks.test.ts (8 tests) 9ms
 ✓  unit  src/state/pending-thread-creation.test.ts (4 tests) 10ms
 ✓ src/Net.test.ts (4 tests) 16ms
 ✓ src/orchestrationTiming.test.ts (11 tests) 8ms
 ✓ src/gitPatchPath.test.ts (22 tests) 10ms
 ✓ src/threadFindText.test.ts (8 tests) 132ms
 ✓ src/semver.test.ts (7 tests) 4ms
 ✓ src/hostClassification.test.ts (10 tests) 29ms
 ✓ src/fileLinks.test.ts (18 tests) 7ms
 ✓ src/composerTrigger.test.ts (25 tests) 14ms
 ✓ src/path.test.ts (11 tests) 19ms
 ✓  unit  src/features/shortcuts/appShortcuts.test.ts (7 tests) 6ms
 ✓  unit  src/state/workspace-connection-atoms.test.ts (1 test) 20ms
 ✓ src/composerPullRequestMatches.test.ts (3 tests) 16ms
 ✓ src/codexArtifactTemplates.test.ts (9 tests) 18ms
 ✓ src/server/GitHubRest.test.ts (8 tests) 136ms
 ✓  unit  src/lib/composerChipPresentation.test.ts (3 tests) 161ms
 ✓ src/server/gitHubGraphQlClient.test.ts (9 tests) 200ms
 ✓ src/orchestrationV2Timeline.test.ts (12 tests) 5ms
 ✓ src/toolActivity.test.ts (4 tests) 9ms
 ✓ src/markdownPipeline.test.ts (3 tests) 76ms
 ✓ src/relayTracing.test.ts (2 tests) 10ms
 ✓  unit  src/lib/markdownMedia.test.ts (12 tests) 14ms
 ✓ src/server/githubStackActions.test.ts (9 tests) 195ms
 ✓ src/cliArgs.test.ts (8 tests) 5ms
 ✓  unit  src/lib/atomic-file.test.ts (4 tests) 22ms
 ✓ src/server/GitHubPullRequestProvider.test.ts (23 tests) 161ms
 ✓  unit  src/features/terminal/useTerminalGridSync.test.ts (1 test) 19ms
 ✓ src/shared/definition.test.ts (4 tests) 17ms
 ✓ src/server/bitbucketPullRequestJson.test.ts (22 tests) 71ms
 ✓  unit  src/features/pull-requests/pullRequestFileFilters.test.ts (4 tests) 28ms
 ✓ src/codexFileCitations.test.ts (5 tests) 6ms
 ✓ src/filePreview.test.ts (13 tests) 39ms
 ✓ src/relayAuth.test.ts (2 tests) 16ms
 ✓  unit  src/lib/enrichedLinkPresentation.test.ts (5 tests) 18ms
 ✓  unit  src/lib/localAttachmentPreview.test.ts (4 tests) 12ms
 ✓ src/server/BitbucketPullRequestProvider.listing.test.ts (1 test) 59ms
 ✓ src/cliRelease.test.ts (3 tests) 4ms
 ✓ src/server/BitbucketPullRequestProvider.test.ts (18 tests) 90ms
 ✓ src/server/BitbucketPullRequestApi.test.ts (23 tests) 133ms
 ✓ src/connectAuth.test.ts (3 tests) 3ms
 ✓ src/searchRanking.test.ts (3 tests) 7ms
 ✓ src/server/BitbucketApi.test.ts (22 tests) 249ms

 Test Files  6 passed (6)
      Tests  90 passed (90)
   Start at  12:46:43
   Duration  3.40s (transform 54%, import 35%, setup 7%, tests 4%)

 ✓ src/shared/definition.test.ts (9 tests) 19ms
 ✓ src/desktopBootstrapToken.test.ts (3 tests) 11ms
 ✓  unit  src/features/terminal/useTerminalLifecycle.test.ts (3 tests) 28ms
 ✓  unit  src/lib/copyTextWithHaptic.test.ts (5 tests) 14ms

~/packages/client-runtime$ vp test run ⊘ cache disabled
 ✓ src/favicon.test.ts (6 tests) 3ms
 ✓ src/usageFormat.test.ts (4 tests) 9ms
 ✓  unit  src/persistence/mobile-database.test.ts (3 tests) 47ms
 ✓ src/cloneUrl.test.ts (3 tests) 3ms
 ✓  unit  src/features/threads/new-task-context-presentation.test.ts (9 tests) 17ms
 ✓ src/desktopAppControl.test.ts (2 tests) 12ms
 ✓ src/schemaYaml.test.ts (2 tests) 10ms
 ✓ src/delimitedPreview.test.ts (8 tests) 1486ms
   ✓ delimited file previews (8)
     ✓ bounds rows, columns and cell length and reports partial content 1471ms
 ✓ src/server/GitHubCredentials.test.ts (5 tests) 14ms
 ✓ src/oauthScope.test.ts (3 tests) 19ms
 ✓  unit  src/features/pull-requests/pullRequestDiffComments.test.ts (4 tests) 9ms
 ✓ src/thirdPartyLicenses.test.ts (2 tests) 20ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/client-runtime

 ✓ src/t3McpToolPresentation.test.ts (2 tests) 16ms
 ✓ src/server/GitHubPullRequestApi.test.ts (105 tests) 1417ms
   ✓ GitHubPullRequestApi.layer (104)
     ✓ keeps the pull request being ticked through, not the one looked up first 353ms
 ✓ src/server/GitHubPullRequestProvider.credential.test.ts (1 test) 84ms
 ✓ src/relayUrl.test.ts (4 tests) 2ms
 ✓  unit  src/features/review/incrementalSnippet.test.ts (3 tests) 703ms
   ✓ incremental snippet highlighting (3)
     ✓ matches full highlighting through partial lines, multiline syntax, edits and truncation 526ms
 ✓ src/threadSearch.test.ts (2 tests) 3ms
 ✓ src/server/gitHubMediaFetch.test.ts (2 tests) 21ms
 ✓ src/providerAuthReturnUrl.test.ts (5 tests) 19ms
 ✓ src/AgentScope.test.ts (1 test) 7ms
 ✓  unit  src/persistence/mobile-storage.test.ts (3 tests) 29ms
 ✓ src/server/gitHubChangeRequestTemplate.test.ts (10 tests) 1989ms
   ✓ reads templates from the requested base tree 364ms
 ✓ src/video.test.ts (2 tests) 9ms
 ✓ src/relayJwt.test.ts (1 test) 5ms
 ✓  unit  src/features/threads/threadQueueControlPresentation.test.ts (7 tests) 10ms
 ✓  unit  src/lib/videoThumbnails.test.ts (2 tests) 28ms
 ✓ src/telemetryId.test.ts (1 test) 4ms
 ✓ src/changedFileKind.test.ts (5 tests) 6ms
 ✓ src/relaySigning.test.ts (1 test) 5ms
 ✓  unit  src/features/workspace/navigation-tab-order.test.ts (6 tests) 17ms
 ✓  unit  src/connection/storage.test.ts (3 tests) 52ms
 ✓  unit  src/connection/background-activity.test.ts (3 tests) 16ms
 ✓ src/shared/referenceAutolinks.test.ts (4 tests) 12ms
 ✓ src/server/GitHubQuota.test.ts (4 tests) 32ms
 ✓ src/server/GitHubSourceControlProvider.test.ts (30 tests) 2328ms
   ✓ keeps Enterprise operations on the selected remote: git@code.example.test:team/project.git 680ms
   ✓ keeps Enterprise operations on the selected remote: ssh://git@code.example.test/team/project.git 663ms
   ✓ keeps Enterprise operations on the selected remote: https://code.example.test/team/project.git 662ms
 ✓ src/terminalLabels.test.ts (2 tests) 12ms
 ✓ src/server/gitHubRepositoryResolution.test.ts (3 tests) 7ms
 ✓ src/t3ProjectFile.test.ts (2 tests) 18ms

 Test Files  86 passed (86)
      Tests  979 passed | 2 skipped (981)
   Start at  12:46:37
   Duration  11.09s (import 42%, transform 26%, setup 17%, tests 14%, worker 1%)

     Import  342 modules were evaluated 2415 times · 23.87s total, 42% of tracked time
             ~2.07s faster with isolate: false — shared modules are evaluated once per worker instead of once per file
             learn more: https://vitest.dev/guide/improving-performance#test-isolation


~/packages/provider-opencode$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/gitHubPullRequests.test.ts (3 tests) 4ms
 ✓ src/server/gitHubDiscovery.test.ts (4 tests) 13ms
 ✓  unit  src/state/workspaceModel.test.ts (2 tests) 3ms
 ✓  unit  src/features/threads/fileChipMenu.test.ts (9 tests) 15ms
 ✓  unit  src/features/threads/pending-thread-feed.test.ts (4 tests) 4ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/provider-opencode

 ✓  unit  src/lib/composerAttachmentFiles.test.ts (12 tests) 3ms
 ✓  unit  src/features/threads/thread-settings-options.test.ts (4 tests) 6ms
 ✓  unit  src/connection/migration.test.ts (2 tests) 15ms
 ✓  unit  src/lib/microphonePriority.test.ts (4 tests) 3ms
 ✓  unit  src/features/threads/use-composer-command-menu.test.ts (3 tests) 3ms
 ✓  unit  src/features/pull-requests/pullRequestStatus.test.ts (4 tests) 8ms
 ✓  unit  src/features/terminal/terminalMenu.test.ts (5 tests) 19ms
 ✓  unit  src/features/settings/autoSettleSettingsSync.test.ts (3 tests) 17ms
 ✓ src/server/githubStackRebase.test.ts (3 tests) 2419ms
   ✓ cascadeRebaseStack (3)
     ✓ moves each layer's own commits onto the rebased layer below it 1118ms
     ✓ refuses to overwrite a layer pushed after it was reviewed 632ms
     ✓ stops at a conflicting layer and leaves it untouched 650ms

 Test Files  18 passed (18)
      Tests  282 passed (282)
   Start at  12:46:43
   Duration  7.11s (transform 35%, import 34%, tests 24%, setup 6%)

     Import  199 modules were evaluated 1789 times · 12.76s total, 34% of tracked time
             ~733ms faster with isolate: false — shared modules are evaluated once per worker instead of once per file
             learn more: https://vitest.dev/guide/improving-performance#test-isolation


~/scripts$ vp test run --config ../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/home/workspace-connection-status.test.ts (3 tests) 3ms
 ✓  unit  src/lib/markdownLinks.test.ts (8 tests) 8ms
 ✓  unit  src/lib/projectFaviconDatabaseCache.test.ts (3 tests) 7ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/scripts

 ✓ src/authorization/layer.test.ts (23 tests) 307ms
 ✓  unit  src/lib/projectIcon.test.ts (5 tests) 4ms
 ✓  unit  src/features/pull-requests/pullRequestAgentTasks.test.ts (3 tests) 11ms
 ✓  unit  src/native/voiceTranscription.ios.test.ts (1 test) 47ms
 ✓  unit  src/features/devices/threadDevicePreviews.test.ts (2 tests) 2ms
 ✓ src/state/runtime.test.ts (23 tests) 183ms
 ✓ src/connection/supervisor.test.ts (30 tests) 405ms
 ✓  unit  src/features/terminal/terminalInput.test.ts (7 tests) 12ms
 ✓ lib/third-party-licenses.test.ts (19 tests) 220ms
 ✓ src/rpc/session.test.ts (14 tests) 739ms
 ✓ src/connection/registry.test.ts (41 tests) 613ms
 ✓  unit  src/state/queries.filesystem.test.ts (1 test) 3ms
 ✓  unit  src/features/threads/worktree-setup-state.test.ts (4 tests) 2ms
stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as linux > stops an OpenCode server group left by a server that died
[12:46:52.013] INFO (#4): Stopping an OpenCode server left by a previous T3 Code server { pid: 14746, port: 4096 }

 ✓  unit  src/features/terminal/terminalLaunchContext.test.ts (3 tests) 2ms
 ✓ src/server/usage.test.ts (5 tests) 383ms
   ✓ readOpenCodeUsage (4)
     ✓ bounds raw history allocations while counting every eligible message once 303ms
 ✓  unit  src/features/terminal/terminalPaste.test.ts (2 tests) 10ms
stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as linux > records a group whose spawned wrapper already exited
[12:46:52.166] INFO (#285): Stopping an OpenCode server left by a previous T3 Code server { pid: 14772, port: 4096 }

 ✓  unit  src/features/pull-requests/pullRequestNavigation.test.ts (3 tests) 3ms
 ✓  unit  src/lib/appLinking.test.ts (17 tests) 18ms
 ✓ notify-discord-release.test.ts (15 tests) 238ms
 ✓ dev-runner.test.ts (31 tests) 230ms
 ✓ src/state/threads-sync.test.ts (36 tests) 411ms
 ✓ merge-update-manifests.test.ts (5 tests) 82ms
 ✓  unit  src/state/thread-provider-switching.test.ts (4 tests) 2ms
 ✓ src/server/textGeneration.test.ts (9 tests) 201ms
stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as darwin > stops an OpenCode server group left by a server that died
[12:46:52.634] INFO (#331): Stopping an OpenCode server left by a previous T3 Code server { pid: 14921, port: 4096 }

 ✓ src/state/server.test.ts (19 tests) 176ms
 ✓ legend-list-initial-reveal.test.ts (10 tests) 55ms
 ✓ src/state/pullRequests.test.ts (56 tests) 1729ms
   ✓ returns a successful mutation when source invalidation stalls 1019ms
 ✓  unit  src/features/terminal/useTerminalSurfaceBuffer.test.ts (2 tests) 67ms
 ✓  unit  src/lib/device-type.test.ts (3 tests) 2ms
stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as darwin > records a group whose spawned wrapper already exited
[12:46:52.893] INFO (#353): Stopping an OpenCode server left by a previous T3 Code server { pid: 15009, port: 4096 }

 ✓ src/server/status.test.ts (35 tests) 589ms
 ✓ lib/dev-share.test.ts (5 tests) 38ms
 ✓ src/server/adapter.test.ts (31 tests) 533ms
 ✓  unit  src/state/queued-run-edit.test.ts (3 tests) 3ms
 ✓ update-release-package-versions.test.ts (3 tests) 91ms
 ✓ lib/cli-external-packages.test.ts (10 tests) 1230ms
   ✓ external package dependency closure (1)
     ✓ keeps every runtime dependency of an external package external too 1135ms
 ✓ src/state/shell-sync.test.ts (6 tests) 92ms
 ✓ src/operations/commands.test.ts (14 tests) 102ms
 ✓ build-npm-launcher.test.ts (1 test) 1310ms
   ✓ build-npm-launcher (1)
     ✓ publishes a launcher that downloads, verifies, caches, and runs the release executable 1273ms
 ✓  unit  src/lib/projectThreadStartTurn.test.ts (3 tests) 4ms
 ✓  unit  src/features/threads/thread-route-hydration.test.ts (3 tests) 15ms
 ✓ lib/public-config.test.ts (1 test) 3ms
 ✓ src/voice-input/controller.test.ts (22 tests) 61ms
 ✓  unit  src/features/pull-requests/pullRequestActions.test.ts (3 tests) 7ms
 ✓  unit  src/features/files/filePath.test.ts (7 tests) 10ms
 ✓ src/server/OpenCodeServerOwner.test.ts (4 tests) 60ms
 ✓  unit  src/features/settings/scheduled-task-editor-state.test.ts (3 tests) 12ms
 ✓ lib/resolve-catalog.test.ts (2 tests) 10ms
 ✓ mobile-native-client.test.ts (2 tests) 56ms
 ✓  unit  src/features/keyboard/commandPaletteItems.test.ts (2 tests) 17ms
 ✓ src/server/versionProbe.test.ts (9 tests) 147ms
 ✓ src/server/driver.test.ts (8 tests) 597ms
 ✓ sync-reference-repos.test.ts (2 tests) 56ms
 ✓ src/server/v2/OpenCode2Server.test.ts (7 tests) 1739ms
   ✓ OpenCode2Server spawned server (1)
     ✓ is ready once /api/info accepts the generated password 1294ms
 ✓  unit  src/features/layout/deferred-navigation.test.ts (3 tests) 2ms
 ✓ mobile-showcase.test.ts (3 tests) 14ms
 ✓ src/state/vcs.test.ts (9 tests) 115ms
 ✓ mock-update-server.test.ts (2 tests) 172ms
 ✓ src/state/environmentHttpAuth.test.ts (32 tests) 286ms
 ✓ src/server/OpenCodeServerLedger.test.ts (11 tests) 2544ms
   ✓ OpenCode server startup (1)
     ✓ stops the group when interrupted while the server is being recorded 1037ms
 ✓ src/state/orchestrationV2Projection.test.ts (15 tests) 49ms
 ✓ lib/build-target-arch.test.ts (1 test) 26ms
 ✓ lib/icon-export.test.ts (1 test) 2ms
 ✓  unit  src/features/home/thread-dismissal.test.ts (3 tests) 15ms
 ✓ resolve-previous-release-tag.test.ts (3 tests) 14ms
 ✓  unit  src/features/cloud/CloudAuthProvider.test.ts (1 test) 15ms
 ✓ src/connection/onboarding.test.ts (13 tests) 276ms
 ✓ src/server/OpenCodeRuntime.cliParsers.test.ts (9 tests) 15ms
 ✓ src/server/v2/OpenCode2Client.test.ts (1 test) 106ms
 ✓ src/state/vcsAction.test.ts (9 tests) 104ms
 ✓ mobile-native-static-check.test.ts (2 tests) 27ms
 ✓ src/state/entities.test.ts (16 tests) 38ms
 ✓ src/server/OpenCodeRuntime.inventory.test.ts (4 tests) 516ms
   ✓ OpenCodeRuntime inventory (4)
     ✓ drops oversized CLI skill output without losing the model inventory 443ms
 ✓  unit  src/features/cloud/managedRelayLayer.test.ts (1 test) 178ms
 ✓ src/server/OpenCodeRuntime.environment.test.ts (3 tests) 14ms
 ✓  unit  src/features/devices/device-stream-document.test.ts (11 tests) 16ms
 ✓  unit  src/features/pull-requests/pullRequestActivityFilter.test.ts (1 test) 13ms
 ✓ src/server/OpenCodeRuntime.permissions.test.ts (8 tests) 14ms
 ✓  unit  src/features/threads/provider-catalog-refresh.test.ts (2 tests) 9ms
 ✓  unit  src/features/sharing/incoming-share-presentation.test.ts (2 tests) 2ms
 ✓ src/server/openCode2Catalog.test.ts (3 tests) 76ms

 Test Files  15 passed (15)
      Tests  147 passed (147)
   Start at  12:46:49
   Duration  6.01s (import 38%, transform 37%, tests 21%, setup 5%)

     Import  245 modules were evaluated 1743 times · 13.69s total, 38% of tracked time
             ~675ms faster with isolate: false — shared modules are evaluated once per worker instead of once per file
             learn more: https://vitest.dev/guide/improving-performance#test-isolation

 ✓  unit  src/features/diagnostics/crash-log-model.test.ts (2 tests) 4ms

~/packages/tailscale$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/observability/tracing.test.ts (1 test) 35ms
 ✓ src/state/threadCommands.test.ts (22 tests) 99ms
 ✓  unit  scripts/generate-uniwind-themes.test.ts (1 test) 30ms
 ✓  unit  src/features/pull-requests/pullRequestEnvironmentFallback.test.ts (3 tests) 6ms
 ✓  unit  src/lib/nativeTheme.test.ts (12 tests) 40ms
 ✓  unit  src/lib/markdownTableBreaks.test.ts (5 tests) 63ms
 ✓ build-desktop-artifact.test.ts (42 tests) 3461ms
   ✓ build-desktop-artifact (40)
     ✓ rejects overlapping builds from another process until restoration finishes 1396ms
     ✓ builds web, server and desktop with the resolved version, restores changed manifests and preserves edits to matching ones 602ms
 ✓ src/relay/discovery.test.ts (7 tests) 68ms
 ✓ src/relay/managedRelay.test.ts (7 tests) 180ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/packages/tailscale

 ✓  unit  src/lib/assetImageSource.test.ts (3 tests) 4ms
 ✓ src/threadPullRequests.test.ts (23 tests) 31ms
 ✓ src/state/threads-atoms.test.ts (4 tests) 257ms
 ✓ src/connection/routes.test.ts (19 tests) 23ms
 ✓ src/rpc/client.test.ts (8 tests) 68ms
 ✓  unit  src/lib/connection.test.ts (1 test) 4ms
 ✓  unit  src/lib/markdownMediaSource.test.ts (3 tests) 13ms
 ✓  unit  src/features/pull-requests/pullRequestAutolinks.test.ts (4 tests) 28ms
 ✓  unit  src/features/sharing/incoming-share-storage.test.ts (1 test) 4ms
 ✓ src/tailscale.test.ts (7 tests) 26ms

 Test Files  1 passed (1)
      Tests  7 passed (7)
   Start at  12:46:56
   Duration  623ms (import 46%, transform 27%, setup 20%, tests 6%, worker 1%)


~/infra/relay$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/device/stream.test.ts (14 tests) 36ms
 ✓  unit  src/lib/markdownInlineFileLinks.test.ts (4 tests) 28ms
 ✓  unit  src/features/settings/SettingsRouteScreen.logic.test.ts (2 tests) 3ms
 ✓ src/platform/storageDocument.test.ts (13 tests) 33ms
 ✓ src/state/threadShell.test.ts (9 tests) 51ms
 ✓  unit  src/features/connection/pairing.test.ts (5 tests) 7ms
 ✓  unit  src/features/home/swipe-row-activation.test.ts (3 tests) 12ms
 ✓  unit  src/state/asset-url-state.test.ts (3 tests) 3ms

 RUN  v5.0.5 /home/runner/_work/t3code/t3code/infra/relay

 ✓  unit  src/lib/wideMarkdownBlocks.test.ts (2 tests) 3ms
 ✓ src/sourceControlClients.test.ts (35 tests) 13ms
 ✓  unit  src/features/pull-requests/botBadgeImages.test.ts (1 test) 18ms
 ✓ src/state/projectGrouping.test.ts (20 tests) 22ms
 ✓  unit  src/features/review/shikiReviewHighlighter.test.ts (2 tests) 416ms
   ✓ highlightSourceFile (2)
     ✓ preserves one highlighted token row per source line without trailing newlines 404ms
 ✓  unit  src/lib/openExternalUrl.test.ts (1 test) 5ms
 ✓  unit  src/lib/serialized-async-queue.test.ts (2 tests) 13ms
 ✓  unit  src/features/usage/usageEnvironmentSelection.test.ts (4 tests) 3ms
 ✓ src/state/fileMetadata.test.ts (11 tests) 283ms
 ✓  unit  src/features/pull-requests/pullRequestDescription.test.ts (1 test) 27ms
 ✓  unit  src/features/threads/composerSendPresentation.test.ts (2 tests) 2ms
 ✓ src/state/commandPermissions.test.ts (14 tests) 68ms
 ✓ src/connection/resolver.test.ts (6 tests) 62ms
 ✓  unit  src/features/sharing/incoming-share-native.test.ts (2 tests) 17ms
 ✓ src/state/threadWorkflows.test.ts (21 tests) 12ms
 ✓ src/state/threadExecution.test.ts (11 tests) 18ms
 ✓  unit  src/features/pull-requests/pullRequestDescriptionContent.test.ts (1 test) 3ms
 ✓ src/state/threadRelationships.test.ts (11 tests) 18ms
 ✓  unit  src/features/diffs/nativeReviewDiffSurface.test.ts (1 test) 184ms
 ✓ src/mcpApps/host.test.ts (9 tests) 33ms
 ✓  unit  src/features/threads/subagent-card-presentation.test.ts (1 test) 2ms
 ✓ src/state/threadHistoryMerge.test.ts (7 tests) 19ms
 ✓  unit  src/features/threads/threadContentPresentation.test.ts (2 tests) 21ms
 ✓  unit  src/features/pull-requests/pullRequestReviewDrafts.test.ts (1 test) 8ms
 ✓  unit  src/features/cloud/managedRelayTokenStore.test.ts (1 test) 26ms
 ✓  unit  src/lib/filePreviewGallery.test.ts (1 test) 6ms
 ✓ src/connection/outdatedHostUpdate.test.ts (3 tests) 81ms
 ✓  unit  src/state/thread-composer-error.test.ts (1 test) 2ms
 ✓ src/state/shellReducer.test.ts (14 tests) 31ms
 ✓  unit  src/features/threads/customSnoozeDate.test.ts (2 tests) 9ms
 ✓ src/state/threadDetail.test.ts (14 tests) 55ms
 ✓  unit  src/features/browser/previewPromptText.test.ts (3 tests) 2ms
 ✓  unit  src/state/queries.test.ts (1 test) 39ms
 ✓  unit  src/features/prompt-links/prompt-link-model.test.ts (1 test) 3ms
 ✓ src/state/threadSnoozed.test.ts (20 tests) 41ms
 ✓  unit  src/features/pull-requests/pullRequestMediaSource.test.ts (1 test) 24ms
 ✓ src/state/threadSort.test.ts (21 tests) 279ms
 ✓  unit  src/features/cloud/publicConfig.test.ts (1 test) 2ms
 ✓  unit  src/features/projects/AddProjectScreen.logic.test.ts (1 test) 2ms
 ✓ src/state/projectCommands.test.ts (4 tests) 134ms
 ✓  unit  src/lib/nativeComposerTheme.test.ts (1 test) 13ms
 ✓  unit  src/lib/mobileThemeRuntime.test.ts (1 test) 2ms
 ✓  unit  src/lib/filePreview.test.ts (4 tests) 15ms
stdout | src/state/serverUsage.test.ts > keeps the cached usage summary when the awaited refresh fails
[12:47:00.383] WARN (#49): Could not refresh slow usage sources. {
  errorType: 'error',
  errorName: 'UsageReadError',
  errorTag: 'UsageReadError',
  stack: '    at /home/runner/_work/t3code/t3code/packages/client-runtime/src/state/serverUsage.test.ts:289:21\n' +
    '    at Generator.next (<anonymous>)\n' +
    '    at ~effect/Effect/successCont (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:979:28)\n' +
    '    at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:991:25)\n' +
    '    at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)\n' +
    '    at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)\n' +
    '    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9\n' +
    '    at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19\n' +
    '    at Module.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31)\n' +
    '    at Array.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@effect+vitest@4.0.5_patch_hash=2731c9c3761c595f25ddc625a7d61ca376b389d5b3049ecb837c894_729be65b0f3c6bde0309e4457c6d9256/node_modules/@effect/vitest/dist/internal/internal.js:26:31)'
}

 ✓ src/state/serverUsage.test.ts (2 tests) 86ms
 ✓  unit  src/lib/http-response.test.ts (1 test) 6ms
 ✓  unit  src/features/threads/projectThreadCreationValidation.test.ts (2 tests) 2ms
 ✓  unit  src/lib/foreground-handoff.test.ts (1 test) 5ms
 ✓  unit  src/lib/appearancePreferences.test.ts (1 test) 2ms
 ✓ src/state/terminalSession.test.ts (9 tests) 28ms
 ✓ src/state/threadRequests.test.ts (10 tests) 15ms
 ✓ knip-schemas.test.ts (1 test) 9547ms
   ✓ allows types and schemas through the real Knip CLI without hiding runtime or file findings 9544ms

 Test Files  21 passed (21)
      Tests  161 passed (161)
   Start at  12:46:50
   Duration  10.11s (tests 56%, import 23%, transform 12%, setup 9%)

 ✓  unit  src/features/settings/lib/legal-document-url.test.ts (2 tests) 2ms

 ✓ src/platform/shellCacheEncoding.test.ts (5 tests) 284ms
 ✓ src/operations/commands.performance.test.ts (1 test) 267ms
 ✓  unit  src/features/threads/threadMessageJump.test.ts (1 test) 3ms
 ✓ src/state/subagentRuntime.test.ts (11 tests) 34ms
 ✓  unit  src/features/keyboard/hardwareKeyboardCommands.test.ts (2 tests) 3ms
 ✓ src/authorization/remote.test.ts (5 tests) 54ms
 ✓ src/environments/ManagedEndpointReaper.test.ts (17 tests) 116ms
 ✓ src/state/boundedThreadSnapshotHttp.test.ts (5 tests) 89ms
 ✓ src/state/usage.test.ts (8 tests) 58ms
 ✓ src/environments/ManagedEndpointProvider.test.ts (31 tests) 106ms
 ✓ src/work-log/commandLabel.test.ts (61 tests) 75ms
 ✓ src/projectFaviconCache.test.ts (8 tests) 197ms
 ✓ src/state/threadSearch.test.ts (9 tests) 37ms
 ✓ src/device/duoControl.test.ts (12 tests) 15ms
 ✓ src/relay/managedRelayState.test.ts (4 tests) 19ms
 ✓ src/work-log/presentation.test.ts (18 tests) 24ms
 ✓ src/device/duoViewer.test.ts (2 tests) 13ms
 ✓ src/pullRequestQuery.test.ts (17 tests) 16ms
 ✓ src/handoff.test.ts (15 tests) 9ms
 ✓ src/agentActivity/FcmDeliveries.test.ts (29 tests) 94ms
 ✓ src/state/threadSubagents.test.ts (7 tests) 19ms
 ✓ src/agentActivity/ApnsDeliveries.test.ts (36 tests) 296ms
 ✓ src/environments/EnvironmentConnector.test.ts (12 tests) 228ms
 ✓ src/pullRequestMarkdown.test.ts (17 tests) 13ms
 ✓ src/http/Api.test.ts (27 tests) 243ms
 ✓ src/pullRequestLinkInput.test.ts (15 tests) 17ms
 ✓ src/state/itemSupport.test.ts (2 tests) 3ms
 ✓ src/hooks/HookForwarder.test.ts (17 tests) 382ms
 ✓ src/connection/diagnosis.test.ts (7 tests) 11ms
 ✓ src/preview/serverBrowserStream.test.ts (5 tests) 5ms
 ✓ src/state/presentation.test.ts (3 tests) 12ms
 ✓ src/device/phoneViewer.test.ts (1 test) 44ms
 ✓ src/connection/presentation.test.ts (4 tests) 4ms
 ✓ src/hooks/HookInboxStore.test.ts (11 tests) 529ms
   ✓ HookInboxStore (11)
     ✓ refuses a request that would pass the byte cap 333ms
 ✓ src/agentActivity/AgentActivityPublisher.test.ts (10 tests) 18ms
 ✓ src/device/avcConfig.test.ts (8 tests) 16ms
 ✓ src/environments/EnvironmentLinker.test.ts (4 tests) 76ms
 ✓ src/platform/orchestrationCache.test.ts (3 tests) 23ms
 ✓ src/state/projectEntities.test.ts (2 tests) 34ms
 ✓ src/agentActivity/ApnsClient.test.ts (6 tests) 119ms
 ✓ src/state/threadFeedback.test.ts (4 tests) 10ms
 ✓ src/providerSkills.test.ts (6 tests) 3ms
 ✓ src/agentActivity/FcmClient.test.ts (4 tests) 97ms
 ✓ src/operations/projects.test.ts (6 tests) 7ms
 ✓ src/threadPullRequestCompatibility.test.ts (10 tests) 13ms
 ✓ src/device/phoneScene.test.ts (8 tests) 134ms
 ✓ src/auth/RelayTokens.test.ts (5 tests) 49ms
 ✓ src/reviewGuideTour.test.ts (7 tests) 5ms
 ✓ src/changeRequestLinks.test.ts (6 tests) 10ms
 ✓ src/device/phoneInteraction.test.ts (4 tests) 7ms
 ✓ src/agentActivity/MobileRegistrations.test.ts (2 tests) 18ms
 ✓ src/state/usageProgress.test.ts (4 tests) 7ms
 ✓ src/device/duoScene.test.ts (2 tests) 18ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.309] INFO (#5): Plan: 1 tasks
[12:47:05.309] INFO (#5): [PublishClientConfig] run [action]
[12:47:05.310] INFO (#5):

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.322] INFO (#47): [PublishClientConfig] running

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
Wrote relay client configuration to /tmp/t3-relay-client-config-nVBryP/client.env
[12:47:05.326] INFO (#47): [PublishClientConfig] ran (4ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.330] INFO (#48): [PublishClientConfig] ran (8ms)
[12:47:05.330] INFO (#5):
[12:47:05.330] INFO (#5): Done: 1 succeeded (20ms)

 ✓ src/device/model.test.ts (4 tests) 8ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.336] INFO (#5): Plan: no resources
[12:47:05.336] INFO (#5):
[12:47:05.336] INFO (#63): [PublishClientConfig] skipped
[12:47:05.337] INFO (#64): [PublishClientConfig] skipped
[12:47:05.337] INFO (#5):
[12:47:05.337] INFO (#5): Done: 0 succeeded, 1 skipped (1ms)

 ✓ src/state/attachments.test.ts (3 tests) 10ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.352] INFO (#5): Plan: 1 tasks
[12:47:05.352] INFO (#5): [PublishClientConfig] run [action]
[12:47:05.352] INFO (#5):

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.353] INFO (#79): [PublishClientConfig] running

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
Wrote relay client configuration to /tmp/t3-relay-client-config-nVBryP/client.env
[12:47:05.357] INFO (#79): [PublishClientConfig] ran (4ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.358] INFO (#80): [PublishClientConfig] ran (5ms)
[12:47:05.358] INFO (#5):
[12:47:05.358] INFO (#5): Done: 1 succeeded (6ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[12:47:05.360] INFO (#5): Plan: 1 tasks
[12:47:05.360] INFO (#5): [PublishClientConfig] drop [action]
[12:47:05.360] INFO (#5):
[12:47:05.361] INFO (#88): [PublishClientConfig] deleting
[12:47:05.361] INFO (#88): [PublishClientConfig] deleted (0ms)
[12:47:05.361] INFO (#5):
[12:47:05.361] INFO (#5): Done: 1 succeeded (1ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[12:47:05.370] INFO (#117): Plan: 1 tasks
[12:47:05.370] INFO (#117): [PublishClientConfig] run [action]
[12:47:05.370] INFO (#117):

stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[12:47:05.371] INFO (#158): [PublishClientConfig] running
[12:47:05.373] INFO (#158): [PublishClientConfig] fail — RelayUrlUnavailableError: The relay worker has no URL yet; deploy again once the worker exists. (2ms)
[12:47:05.373] INFO (#117):
[12:47:05.373] INFO (#117): Failed: 0 succeeded, 1 failed (3ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[12:47:05.377] INFO (#117): Plan: 1 tasks
[12:47:05.377] INFO (#117): [PublishClientConfig] drop [action]
[12:47:05.377] INFO (#117):
[12:47:05.377] INFO (#166): [PublishClientConfig] deleting
[12:47:05.378] INFO (#166): [PublishClientConfig] deleted (1ms)
[12:47:05.378] INFO (#117):
[12:47:05.378] INFO (#117): Done: 1 succeeded (1ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > refuses a value with a line break rather than corrupting the file
[12:47:05.387] INFO (#195): Plan: 1 tasks
[12:47:05.387] INFO (#195): [PublishClientConfig] run [action]
[12:47:05.387] INFO (#195):

stdout | src/clientConfig.test.ts > PublishClientConfig > refuses a value with a line break rather than corrupting the file
[12:47:05.388] INFO (#236): [PublishClientConfig] running
[12:47:05.389] INFO (#236): [PublishClientConfig] fail — EnvValueNotSingleLineError: T3CODE_RELAY_CLIENT_OTLP_TRACES_DATASET contains a line break and cannot be written as one .env assignment. (1ms)
[12:47:05.389] INFO (#195):
[12:47:05.389] INFO (#195): Failed: 0 succeeded, 1 failed (2ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > refuses a value with a line break rather than corrupting the file
[12:47:05.390] INFO (#195): Plan: 1 tasks
[12:47:05.390] INFO (#195): [PublishClientConfig] drop [action]
[12:47:05.390] INFO (#195):
[12:47:05.390] INFO (#244): [PublishClientConfig] deleting
[12:47:05.390] INFO (#244): [PublishClientConfig] deleted (0ms)
[12:47:05.390] INFO (#195):
[12:47:05.390] INFO (#195): Done: 1 succeeded (0ms)

 ✓ src/clientConfig.test.ts (10 tests) 222ms
 ✓ src/state/filesystem.test.ts (8 tests) 6ms
 ✓ src/t3ToolSummary.test.ts (3 tests) 3ms
 ✓ src/environments/EnvironmentCredentials.test.ts (3 tests) 45ms
 ✓ src/connection/errors.test.ts (5 tests) 24ms
 ✓ src/auth/DpopProofs.verifyAndConsume.test.ts (4 tests) 199ms
 ✓ src/state/sharedSettings.test.ts (9 tests) 16ms
 ✓ src/environments/EnvironmentPublishSignatures.test.ts (3 tests) 41ms
 ✓ src/connection/compatibility.test.ts (4 tests) 10ms
 ✓ src/mediaSource.test.ts (8 tests) 5ms
 ✓ src/agentActivity/agentActivityPolicy.test.ts (5 tests) 26ms
 ✓ src/state/turnItemPresentation.test.ts (2 tests) 3ms
 ✓ src/state/gitActions.test.ts (3 tests) 3ms
 ✓ src/work-log/toolPresentation.test.ts (4 tests) 11ms
 ✓ src/previewTunnelSweep.test.ts (4 tests) 20ms
 ✓ src/state/providerInstanceDisplay.test.ts (10 tests) 4ms
 ✓ src/previewStages.test.ts (4 tests) 9ms
 ✓ src/device/modelScene.test.ts (2 tests) 6ms
 ✓ src/device/streamFrames.test.ts (1 test) 12ms
 ✓ src/promptLinks.test.ts (3 tests) 10ms
 ✓ src/state/queryPersistence.test.ts (3 tests) 9ms
 ✓ src/state/serverConfigProjection.test.ts (2 tests) 3ms
 ✓ src/agentActivity/DeliveryAttempts.test.ts (3 tests) 18ms
 ✓ src/agentActivity/ApnsProviderTokens.test.ts (2 tests) 87ms
 ✓ src/device/deviceMotion.test.ts (2 tests) 9ms
 ✓ src/state/threadInbox.test.ts (2 tests) 3ms
 ✓ src/state/customSnooze.test.ts (11 tests) 11ms
 ✓ src/agentActivity/apnsDeliveryJobs.test.ts (1 test) 13ms
 ✓ src/state/usageAccess.test.ts (8 tests) 9ms
 ✓ src/state/auth.test.ts (2 tests) 8ms
 ✓ src/work-log/itemDetail.test.ts (2 tests) 7ms
 ✓ src/threadReference.test.ts (5 tests) 5ms
 ✓ src/agentActivity/LiveActivities.test.ts (2 tests) 9ms
 ✓ src/errors/safeLog.test.ts (2 tests) 7ms
 ✓ src/hooks/HeldHooks.test.ts (1 test) 10ms
 ✓ src/userMessage.test.ts (3 tests) 3ms
 ✓ src/filePreview.test.ts (3 tests) 58ms
 ✓ src/markdownImages.test.ts (12 tests) 12ms
 ✓ src/environments/endpointFailure.test.ts (15 tests) 22ms
 ✓ src/environments/EnvironmentLinks.test.ts (2 tests) 10ms
 ✓ src/errors/transport.test.ts (3 tests) 8ms
 ✓ src/deploymentConfig.test.ts (3 tests) 2ms
 ✓ src/state/threadHistoryController.test.ts (1 test) 6ms
 ✓ src/mediaReference.test.ts (7 tests) 14ms
 ✓ src/relay/errorPresentation.test.ts (3 tests) 7ms
 ✓ src/environments/ManagedEndpointAllocations.test.ts (1 test) 11ms
 ✓ src/device/duoSnap.test.ts (1 test) 3ms
 ✓ src/state/assets.test.ts (1 test) 5ms
 ✓ src/device/androidFoldScene.test.ts (1 test) 25ms
 ✓ src/composerThreadItems.test.ts (1 test) 6ms
 ✓ src/device/renderScheduler.test.ts (1 test) 2ms
 ✓ src/state/commandOutput.test.ts (1 test) 5ms
 ✓ src/errors/errorTrace.test.ts (2 tests) 3ms
 ✓ src/secretRequest.test.ts (2 tests) 3ms
 ✓ src/work-log/scrollAnchor.test.ts (1 test) 2ms
 ✓ src/environment/endpoint.test.ts (1 test) 2ms
 ✓ src/state/archivedThreads.test.ts (1 test) 4ms

 Test Files  126 passed (126)
      Tests  1211 passed (1211)
   Start at  12:46:47
   Duration  21.02s (import 52%, transform 29%, setup 11%, tests 8%, worker 1%)

     Import  511 modules were evaluated 9672 times · 63.95s total, 52% of tracked time
             ~7.31s faster with isolate: false — shared modules are evaluated once per worker instead of once per file
             learn more: https://vitest.dev/guide/improving-performance#test-isolation


 ✓ src/agentActivity/ApnsDeliveryQueue.test.ts (1 test) 7ms
 ✓ src/environments/CloudflareApiPause.test.ts (1 test) 5ms

 Test Files  32 passed (32)
      Tests  276 passed (276)
   Start at  12:46:57
   Duration  11.84s (import 79%, transform 12%, setup 4%, tests 4%)


 ✓  unit  src/reactCompilerCoverage.test.ts (922 tests) 47240ms
   ✓ React Compiler coverage (922)
     ✓ Metro's transformer applies the compiler 1570ms
     ✓ compiles src/Stack.tsx 349ms
     ✓ compiles src/components/ComposerContextSheet.tsx 579ms
     ✓ compiles src/components/ComposerEditor.tsx 314ms
     ✓ compiles src/features/browser/PreviewStreamWebView.tsx 343ms
     ✓ compiles src/features/connection/ConnectionEnvironmentRow.tsx 334ms
     ✓ compiles src/features/connection/ConnectionsNewRouteScreen.tsx 415ms
     ✓ compiles src/features/development/ComponentCatalogScreen.tsx 382ms
     ✓ compiles src/features/devices/DevicePreviewRouteScreen.tsx 364ms
     ✓ compiles src/features/files/AttachmentFileScreen.tsx 509ms
     ✓ compiles src/features/files/SourceFileSurface.tsx 470ms
     ✓ compiles src/features/files/ThreadFilesRouteScreen.tsx 837ms
     ✓ compiles src/features/home/HomeScreen.tsx 848ms
     ✓ compiles src/features/home/thread-swipe-actions.tsx 831ms
     ✓ compiles src/features/home/useThreadListActions.ts 584ms
     ✓ compiles src/features/keyboard/CommandPalette.tsx 640ms
     ✓ compiles src/features/layout/AdaptiveWorkspaceLayout.tsx 1229ms
     ✓ compiles src/features/layout/createWorkspaceStackNavigator.ios.tsx 361ms
     ✓ compiles src/features/projects/AddProjectScreen.tsx 647ms
     ✓ compiles src/features/pull-requests/PullRequestListFilters.tsx 342ms
     ✓ compiles src/features/pull-requests/PullRequestRouteScreen.tsx 1091ms
     ✓ compiles src/features/threads/NewTaskDraftScreen.tsx 499ms
     ✓ compiles src/features/threads/ThreadComposer.tsx 537ms
     ✓ compiles src/features/threads/ThreadDetailScreen.tsx 914ms
     ✓ compiles src/features/threads/ThreadFeed.tsx 819ms
     ✓ compiles src/features/threads/ThreadRouteScreen.tsx 343ms
     ✓ compiles src/features/threads/new-task-flow-provider.tsx 456ms
     ✓ compiles src/features/threads/thread-list-v2-items.tsx 332ms
     ✓ compiles src/features/threads/thread-work-log.tsx 397ms
     ✓ caches the thread feed derivation 840ms

 Test Files  200 passed (200)
      Tests  2239 passed (2239)
   Start at  12:46:27
   Duration  58.26s (import 38%, tests 26%, transform 24%, setup 10%, environment 2%)


---
vp run: 24/24 successful. (Run `vp run --last-details` for full details)
Post job cleanup.
Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
Post job cleanup.
##[start-action display=Cache full pnpm store;id=__5cc3e531-ae28-4f96-831f-92beed2e1482.__actions_cache]
Post job cleanup.
Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-fa50cf9b003d547cd32552f61b874eb4abe5dace3fdb4b1abd9610da2da24074, not saving cache.
##[end-action id=__5cc3e531-ae28-4f96-831f-92beed2e1482.__actions_cache;outcome=success;conclusion=success;duration_ms=103]
##[start-action display=Cache Vite+;id=__5cc3e531-ae28-4f96-831f-92beed2e1482.vp_cache]
Post job cleanup.
Cache hit occurred on the primary key vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0, not saving cache.
##[end-action id=__5cc3e531-ae28-4f96-831f-92beed2e1482.vp_cache;outcome=success;conclusion=success;duration_ms=71]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/6692df6e-a7ed-4bc8-a370-db2debc4c270' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
Removing SSH command configuration
[command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
Warning: The process '/usr/local/bin/git' failed with exit code 128
A job completed hook has been configured by the self-hosted runner administrator
▸ Run '/job_completed.sh'
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 157
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 359
  BLACKSMITH_CHECK_RUN_ID: 120875749299
  BLACKSMITH_JOB_DISPLAY_NAME: Test
  GITHUB_ACTIONS_CACHE_MODE: write
Docker container cache not activated, skipping hash computation.
No active SSH sessions detected. Proceeding with shutdown immediately.
Cleaning up orphan processes