GitHub check

256 KB of 314 KB loaded Download the full log (314 KB)
58 KB of earlier output not loaded
-10-25T13:30:05.0319398Z 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 4s (1895 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 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[1861]

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: 187
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 545
  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/source-control-forgejo$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
~/packages/provider-core$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
~/packages/shared$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled

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


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


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


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

 ✓ src/server/usageLimits.test.ts (7 tests) 4ms
 ✓ src/server/forgejoPullRequestJson.test.ts (5 tests) 4ms
 ✓ src/paletteSearch.test.ts (34 tests) 63ms
 ✓ src/shell.test.ts (42 tests | 2 skipped) 97ms
 ✓ src/server/ModelCatalog.test.ts (4 tests) 3ms
 ✓ src/relayClient.test.ts (14 tests) 244ms
 ✓ src/observability.test.ts (18 tests) 150ms
 ✓ src/preview/BrowserImport/Sources.test.ts (25 tests) 365ms
 ✓ src/nodeSqliteClient.test.ts (17 tests) 304ms
 ✓ src/server/notification.test.ts (4 tests) 12ms
 ✓ src/server/failure.test.ts (10 tests) 17ms
 ✓ src/shared/definition.test.ts (10 tests) 23ms
 ✓ src/server/providerAuthFlow.test.ts (17 tests) 98ms
 ✓ src/server/attachmentPrompt.test.ts (2 tests) 4ms
 ✓ src/server/managedProvider.test.ts (9 tests) 40ms
 ✓ src/server/forgejoPullRequests.test.ts (1 test) 21ms
 ✓ src/otelEnvironment.test.ts (31 tests) 93ms
 ✓ src/server/snapshotProbe.test.ts (7 tests) 20ms
 ✓ src/server/ForgejoPullRequestProvider.test.ts (1 test) 15ms
 ✓ src/usageMerge.test.ts (17 tests) 45ms
 ✓ src/markdownMath.test.ts (44 tests) 211ms
 ✓ src/usageLimits.test.ts (38 tests) 62ms
 ✓ src/composerContextLegacy.test.ts (36 tests) 67ms
 ✓ src/serverSettings.test.ts (38 tests) 53ms
 ✓ src/projectSettings.test.ts (20 tests) 43ms
 ✓ src/server/maintenanceResolver.test.ts (52 tests) 156ms
 ✓ src/server/instanceEnvironment.test.ts (4 tests) 14ms
 ✓ src/server/runtimeInstructions.test.ts (2 tests) 15ms
 ✓ src/server/mcpSession.test.ts (2 tests) 4ms
 ✓ src/server/ForgejoSourceControlProvider.test.ts (31 tests) 255ms
 ✓ src/server/collectStreamText.test.ts (2 tests) 5ms
 ✓ src/server/processGroup.test.ts (2 tests) 11ms
 ✓ src/server/ForgejoCheckout.test.ts (1 test) 599ms
   ✓ checks out fj pull refs and preserves existing branches and dirty files until forced 593ms

 Test Files  6 passed (6)
      Tests  49 passed (49)
   Start at  13:30:05
   Duration  2.72s (transform 51%, import 33%, tests 8%, setup 7%)

 ✓ src/server/mcpToolPresentation.test.ts (4 tests) 3ms

~/packages/client-runtime$ vp test run ⊘ cache disabled
 ✓ src/dpop.test.ts (9 tests) 122ms
 ✓ src/atomicWrite.test.ts (7 tests) 31ms
 ✓ src/server/threadTitleContext.test.ts (2 tests) 2ms
 ✓ src/git.test.ts (28 tests) 7ms
 ✓ src/composerContextReferences.test.ts (17 tests) 17ms
 ✓ src/server/textGenerationPrompts.test.ts (1 test) 2ms
 ✓ src/orchestrationV2PendingBackgroundWork.test.ts (20 tests) 4ms
 ✓ src/assistantCitations.test.ts (20 tests) 35ms
 ✓ src/server/textGenerationUtils.test.ts (3 tests) 8ms

 Test Files  18 passed (18)
      Tests  134 passed (134)
   Start at  13:30:05
   Duration  3.12s (transform 43%, import 41%, setup 13%, tests 3%, worker 1%)


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


~/packages/contracts$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/app/DesktopLinuxUrlHandler.test.ts (14 tests) 72ms
 ✓ src/mcpApp.test.ts (14 tests) 690ms
   ✓ mcpAppFromToolItem (4)
     ✓ reads the app from both the stored output and its compact wire form 638ms
 ✓ src/window/DesktopWindow.test.ts (20 tests) 77ms
 ✓ src/KeyedCoalescingWorker.test.ts (4 tests) 68ms

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

 ✓ src/preview.test.ts (23 tests) 23ms
 ✓ src/preview/Manager.test.ts (55 tests) 376ms
 ✓ src/nodeRuntime.test.ts (10 tests) 584ms
   ✓ Node runtime selection (8)
     ✓ finds a newly installed runtime immediately after a failed lookup 315ms
 ✓ src/backend/DesktopBackendConfiguration.test.ts (17 tests) 311ms
 ✓ src/composerInlineTokens.test.ts (34 tests) 90ms
 ✓ src/model.test.ts (10 tests) 31ms
 ✓ src/updates/DesktopRemoteUpdates.test.ts (17 tests) 292ms
 ✓ src/markdownLinks.test.ts (34 tests) 18ms
 ✓ src/updates/DesktopUpdates.test.ts (27 tests) 408ms
 ✓ src/snapShot/DesktopSnapShot.test.ts (50 tests) 377ms
 ✓ src/codexMarkdownDirectives.test.ts (22 tests) 82ms
 ✓ src/agentAwareness.test.ts (22 tests) 18ms
 ✓ src/auth.test.ts (27 tests) 27ms
 ✓ src/composerContext.test.ts (8 tests) 225ms
 ✓ src/pullRequest.test.ts (5 tests) 7ms
 ✓ src/toolOutput.test.ts (12 tests) 25ms
 ✓ src/project.test.ts (6 tests) 51ms
 ✓ src/DrainableWorker.test.ts (3 tests) 42ms
 ✓ src/snapShot/snapShot.test.ts (36 tests) 55ms
 ✓ src/imageDimensions.test.ts (8 tests) 18ms
 ✓ src/baseSchemas.test.ts (9 tests) 73ms
 ✓ src/settings.test.ts (24 tests) 84ms
 ✓ src/server.test.ts (7 tests) 27ms
 ✓ src/backend/DesktopBackendManager.test.ts (7 tests) 136ms
 ✓ src/orchestrationV2DedupedBodies.test.ts (3 tests) 9ms
 ✓ src/modelSelection.test.ts (4 tests) 39ms
 ✓ src/preview/BrowserImport/ChromiumCookies.test.ts (10 tests) 276ms
 ✓ src/htmlRender.test.ts (11 tests) 10ms
 ✓ src/remote.test.ts (10 tests) 16ms
 ✓ src/telemetry/DesktopTelemetryPublisher.test.ts (3 tests) 114ms
 ✓ src/orchestratorMcp.test.ts (1 test) 31ms
 ✓ src/app/DesktopClerk.test.ts (15 tests) 128ms
 ✓ src/orchestrationV2IdTable.test.ts (3 tests) 17ms
 ✓ src/terminalOutput.test.ts (16 tests) 1667ms
   ✓ appendTerminalOutput (8)
     ✓ stays bounded across many appends of huge output, including one endless line 1621ms
 ✓ src/KeyedLock.test.ts (4 tests) 31ms
 ✓ src/chatAttachment.test.ts (3 tests) 17ms
 ✓ src/device.test.ts (3 tests) 6ms
 ✓ src/backend/DesktopServerExposure.test.ts (10 tests) 309ms
 ✓ src/composerContextLegacySend.test.ts (8 tests) 50ms
 ✓ src/git.test.ts (3 tests) 7ms
 ✓ src/logging.test.ts (3 tests) 129ms
 ✓ src/promptLinks.test.ts (8 tests) 42ms
 ✓ src/scheduledTask.test.ts (7 tests) 34ms
 ✓ src/composerContextClipboard.test.ts (6 tests) 583ms
   ✓ composerContextClipboard (6)
     ✓ round-trips selections larger than two million characters 557ms
 ✓ src/orchestrationV2.test.ts (12 tests) 69ms
 ✓ src/preview/FaviconCapture.test.ts (24 tests) 77ms
 ✓ src/provider.test.ts (3 tests) 14ms
 ✓ src/terminal.test.ts (2 tests) 13ms
 ✓ src/acpRegistry.test.ts (2 tests) 14ms
 ✓ src/schemaJson.test.ts (8 tests) 33ms
 ✓ src/threadMetadataMcp.test.ts (2 tests) 12ms
 ✓ src/preview.test.ts (2 tests) 8ms
 ✓ src/rpc.test.ts (2 tests) 3ms
 ✓ src/browserProfile.test.ts (2 tests) 12ms
 ✓ src/filesystem.test.ts (2 tests) 5ms
 ✓ src/environment.test.ts (1 test) 9ms
 ✓ src/codexAuthHandoff.test.ts (6 tests) 18ms
 ✓ src/devHome.test.ts (5 tests) 29ms
 ✓ src/Net.test.ts (4 tests) 29ms
 ✓ src/keybindings.test.ts (2 tests) 17ms
 ✓ src/threadPullRequest.test.ts (1 test) 7ms
 ✓ src/relay.test.ts (1 test) 2ms
 ✓ src/preview/Passkeys.test.ts (6 tests) 37ms
 ✓ src/guestShare.test.ts (1 test) 4ms
 ✓ src/state/server.test.ts (24 tests) 111ms
 ✓ src/preview/BrowserImport/FirefoxCookies.test.ts (11 tests) 161ms
 ✓ src/settings/DesktopAppSettings.test.ts (11 tests) 214ms
 ✓ src/wsl/DesktopWslServerTree.test.ts (8 tests) 308ms
 ✓ src/app/DesktopObservability.test.ts (5 tests) 227ms
 ✓ src/state/runtime.test.ts (23 tests) 181ms
 ✓ src/providerSetup.test.ts (1 test) 13ms

 Test Files  29 passed (29)
      Tests  146 passed (146)
   Start at  13:30:08
   Duration  3.46s (import 43%, transform 29%, setup 22%, tests 5%, worker 1%)

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

 ✓ src/orchestrationV2BoundedSnapshot.test.ts (3 tests) 13ms
 ✓ src/threadLinks.test.ts (9 tests) 6ms

~/apps/mobile$ vp test run --project unit --project react ⊘ cache disabled
 ✓ src/rpc/session.test.ts (14 tests) 305ms
 ✓ src/gitPatchPath.test.ts (22 tests) 11ms
 ✓ src/shell/DesktopShellEnvironment.test.ts (12 tests) 125ms
 ✓ src/orchestrationTiming.test.ts (11 tests) 3ms
 ✓ src/connection/supervisor.test.ts (35 tests) 466ms
 ✓ src/threadFindText.test.ts (8 tests) 112ms
 ✓ src/hostClassification.test.ts (10 tests) 9ms
 ✓ src/connection/registry.test.ts (41 tests) 449ms
 ✓ src/fileLinks.test.ts (18 tests) 5ms
 ✓ src/composerTrigger.test.ts (25 tests) 8ms
 ✓ src/snapShot/PortalCaptureShortcut.test.ts (20 tests) 52ms
 ✓ src/path.test.ts (11 tests) 7ms
 ✓ src/semver.test.ts (7 tests) 12ms
 ✓ src/orchestrationV2Timeline.test.ts (12 tests) 3ms
 ✓ src/relayTracing.test.ts (2 tests) 5ms

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

 ✓ src/composerPullRequestMatches.test.ts (3 tests) 17ms
 ✓ src/codexArtifactTemplates.test.ts (9 tests) 3ms
 ✓ src/wsl/DesktopWslEnvironment.test.ts (17 tests) 2654ms
   ✓ WSL runtime install script (executed) (12)
     ✓ extracts once when two installs race for the same cache 1128ms
 ✓ src/toolActivity.test.ts (4 tests) 11ms
 ✓ src/markdownPipeline.test.ts (3 tests) 111ms
 ✓ src/codexFileCitations.test.ts (5 tests) 12ms
 ✓ src/cliArgs.test.ts (8 tests) 15ms
 ✓ src/filePreview.test.ts (13 tests) 59ms
 ✓ src/snapShot/CaptureShortcutConfig.test.ts (16 tests) 142ms
 ✓ src/preview/BrowserSession.test.ts (7 tests) 78ms
 ✓ src/snapShot/LinuxSnapShot.test.ts (19 tests) 107ms
 ✓ src/cliRelease.test.ts (3 tests) 7ms
 ✓ src/state/pullRequests.test.ts (56 tests) 1766ms
   ✓ returns a successful mutation when source invalidation stalls 1016ms
 ✓ src/delimitedPreview.test.ts (8 tests) 926ms
   ✓ delimited file previews (8)
     ✓ bounds rows, columns and cell length and reports partial content 908ms
 ✓ src/searchRanking.test.ts (3 tests) 10ms
 ✓ src/connectAuth.test.ts (3 tests) 2ms
 ✓ src/operations/commands.test.ts (14 tests) 98ms
 ✓ src/state/threads-sync.test.ts (37 tests) 914ms
 ✓ src/relayAuth.test.ts (2 tests) 4ms
 ✓ src/state/orchestrationV2Projection.test.ts (16 tests) 69ms
 ✓  react  src/native/NativeHeaderToolbar.test.tsx (6 tests) 124ms
 ✓ src/desktopBootstrapToken.test.ts (3 tests) 7ms
 ✓ src/app/DesktopLifecycle.test.ts (6 tests) 47ms
 ✓ src/authorization/layer.test.ts (23 tests) 459ms
 ✓ src/cloneUrl.test.ts (3 tests) 8ms
 ✓ src/desktopAppControl.test.ts (2 tests) 3ms
 ✓ src/favicon.test.ts (6 tests) 3ms
 ✓ src/settings/DesktopClientSettings.test.ts (7 tests) 195ms
 ✓ src/usageFormat.test.ts (4 tests) 22ms
 ✓ src/schemaYaml.test.ts (2 tests) 36ms
 ✓ src/state/vcs.test.ts (9 tests) 179ms
 ✓ src/oauthScope.test.ts (3 tests) 3ms
 ✓ src/thirdPartyLicenses.test.ts (2 tests) 7ms
 ✓ src/t3McpToolPresentation.test.ts (2 tests) 31ms
 ✓ src/voice-input/controller.test.ts (22 tests) 52ms
 ✓  react  src/components/ui/Dialog.android.test.tsx (1 test) 72ms
 ✓ src/state/shell-sync.test.ts (9 tests) 213ms
 ✓ src/terminalLabels.test.ts (2 tests) 5ms
 ✓ src/AgentScope.test.ts (1 test) 18ms
 ✓ src/video.test.ts (2 tests) 3ms
 ✓ src/relayUrl.test.ts (4 tests) 5ms
 ✓ src/providerAuthReturnUrl.test.ts (5 tests) 3ms
 ✓ src/threadSearch.test.ts (2 tests) 6ms
 ✓ src/app/DesktopConnectionCatalogStore.test.ts (5 tests) 126ms
 ✓ src/preview/DesktopBrowserHost.test.ts (7 tests) 83ms
 ✓ src/telemetryId.test.ts (1 test) 2ms
 ✓ src/relaySigning.test.ts (1 test) 2ms
 ✓ src/app/DesktopCliCommand.test.ts (6 tests) 149ms
 ✓ src/changedFileKind.test.ts (5 tests) 4ms
 ✓ src/relayJwt.test.ts (1 test) 3ms
 ✓ src/window/DesktopApplicationMenu.test.ts (3 tests) 40ms
 ✓  react  src/features/diffs/nativeReviewDiffSurface.test.tsx (8 tests) 241ms
stderr | src/native/useRetryingImageSource.test.tsx > asks the next resolver for an image the previous one could not resolve
The current testing environment is not configured to support act(...)

 ✓ src/state/entities.test.ts (16 tests) 12ms
stderr | src/native/useRetryingImageSource.test.tsx > asks the next resolver for an image the previous one could not resolve
 ✓  react  src/native/useRetryingImageSource.test.tsx (1 test) 17ms
The current testing environment is not configured to support act(...)

stderr | src/native/useRetryingImageSource.test.tsx > asks the next resolver for an image the previous one could not resolve
 ✓ src/preview/BrowserImport/ChromiumKeys.test.ts (9 tests) 48ms
The current testing environment is not configured to support act(...)

 ✓ src/t3ProjectFile.test.ts (2 tests) 3ms

 Test Files  87 passed (87)
      Tests  991 passed | 2 skipped (993)
   Start at  13:30:05
   Duration  10.40s (import 42%, transform 24%, setup 19%, tests 14%, worker 1%)

     Import  347 modules were evaluated 2582 times · 22.66s total, 42% of tracked time
             ~2.01s 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/state/olderSettledThreads.test.ts (13 tests) 124ms
 ✓ src/snapShot/NiriSnapShot.test.ts (18 tests) 246ms

~/packages/source-control-bitbucket$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/connection/onboarding.test.ts (13 tests) 210ms
 ✓ src/preview/BrowserImport/SafariCookies.test.ts (9 tests) 54ms
 ✓ src/app/DesktopPreReadyPlatform.test.ts (5 tests) 20ms
 ✓ src/state/environmentHttpAuth.test.ts (32 tests) 318ms
 ✓ src/state/vcsAction.test.ts (9 tests) 67ms

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

 ✓ src/state/threadCommands.test.ts (22 tests) 189ms
 ✓ src/preview/CdpRelay.test.ts (6 tests) 5ms
 ✓ scripts/electron-launcher.test.mjs (7 tests) 651ms
   ✓ dev cleanup matches only the literal root argument: /tmp/t3-feature.one [two](three)+?^${four}|back\slash*/apps/desktop 354ms
 ✓ src/snapShot/KdeSnapShot.test.ts (9 tests) 104ms
 ✓ src/state/threads-atoms.test.ts (4 tests) 177ms
 ✓ src/settings/DesktopSavedEnvironments.test.ts (3 tests) 58ms
 ✓  react  src/state/use-selected-thread-git-actions.test.tsx (1 test) 31ms
 ✓  react  src/features/settings/components/BranchNamingSettings.test.tsx (4 tests) 65ms
 ✓ src/threadPullRequests.test.ts (23 tests) 22ms
 ✓ src/relay/discovery.test.ts (7 tests) 75ms
 ✓ src/snapShot/HyprlandSnapShot.test.ts (9 tests) 62ms
 ✓ src/relay/managedRelay.test.ts (7 tests) 173ms
 ✓ src/backend/DesktopLocalEnvironmentAuth.test.ts (3 tests) 69ms
 ✓ src/app/DesktopEarlyElectronStartup.test.ts (19 tests) 14ms
 ✓ src/connection/routes.test.ts (19 tests) 41ms
 ✓ src/ipc/methods/window.test.ts (5 tests) 142ms
 ✓ src/rpc/client.test.ts (8 tests) 62ms
 ✓ src/window/ContextMenuImage.test.ts (15 tests) 104ms
 ✓ src/wsl/DesktopWslBackend.test.ts (1 test) 22ms
 ✓ src/snapShot/GnomeCaptureSetup.test.ts (11 tests) 225ms
 ✓ src/app/DesktopAppIdentity.test.ts (5 tests) 45ms
 ✓ src/electron/ElectronWindow.test.ts (2 tests) 22ms
 ✓ src/electron/ElectronProtocol.test.ts (3 tests) 45ms
 ✓ src/state/threadShell.test.ts (9 tests) 95ms
 ✓ src/device/stream.test.ts (14 tests) 62ms
 ✓ src/updates/releaseNotes.test.ts (8 tests) 10ms
 ✓ scripts/main-process-bundle.test.mjs (2 tests) 273ms
 ✓ src/preview/PasskeyBridge.test.ts (3 tests) 6ms
 ✓ src/platform/storageDocument.test.ts (13 tests) 73ms
 ✓ src/sourceControlClients.test.ts (35 tests) 24ms
 ✓ gnome-extension/captureFeedback.test.js (4 tests) 12ms
 ✓ src/shared/definition.test.ts (4 tests) 7ms
 ✓ src/state/projectGrouping.test.ts (20 tests) 36ms
 ✓ src/server/bitbucketPullRequestJson.test.ts (22 tests) 41ms
 ✓ src/updates/remoteUpdateFlow.test.ts (6 tests) 13ms
 ✓ src/server/BitbucketPullRequestProvider.listing.test.ts (1 test) 21ms
 ✓ src/server/BitbucketPullRequestProvider.test.ts (18 tests) 57ms
 ✓ src/server/BitbucketPullRequestApi.test.ts (23 tests) 95ms
 ✓ src/window/QuitHold.test.ts (7 tests) 13ms
 ✓ src/app/DesktopAppActivation.test.ts (3 tests) 65ms
 ✓ src/server/BitbucketApi.test.ts (22 tests) 241ms
 ✓ src/ssh/DesktopSshPasswordPrompts.test.ts (2 tests) 37ms
 ✓ src/state/commandPermissions.test.ts (14 tests) 68ms

 Test Files  6 passed (6)
      Tests  90 passed (90)
   Start at  13:30:16
   Duration  2.52s (transform 49%, import 41%, setup 6%, tests 4%)

 ✓ src/state/fileMetadata.test.ts (11 tests) 225ms
 ✓ src/state/threadRelationships.test.ts (11 tests) 5ms
 ✓ src/backend/DesktopBackendPool.test.ts (1 test) 18ms

~/packages/provider-grok$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/snapShot/captureConfigEdit.test.ts (24 tests) 16ms
 ✓ src/connection/resolver.test.ts (6 tests) 49ms
 ✓ src/state/threadWorkflows.test.ts (21 tests) 10ms
 ✓ gnome-extension/captureService.test.js (10 tests) 10ms
 ✓  react  src/features/settings/SettingsServerControlsRouteScreen.test.tsx (1 test) 54ms
 ✓ src/state/threadExecution.test.ts (11 tests) 26ms
 ✓  react  src/features/pull-requests/usePullRequestDiff.test.tsx (6 tests) 102ms
 ✓ src/ipc/methods/wsl.test.ts (2 tests) 18ms
 ✓ src/mcpApps/host.test.ts (9 tests) 14ms
 ✓ src/authorization/remote.test.ts (8 tests) 47ms

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

 ✓ src/legacyLocalStorageMerge.test.ts (7 tests) 2ms
 ✓ src/state/threadHistoryMerge.test.ts (7 tests) 9ms
 ✓ src/wsl/wslPathParsing.test.ts (12 tests) 13ms
 ✓ src/app/CodexAuthCallback.test.ts (4 tests) 122ms
 ✓ src/preview/BrowserImport/BrowserImport.test.ts (3 tests) 104ms
 ✓ src/updates/updateMachine.test.ts (4 tests) 7ms
 ✓  unit  src/lib/threadActivity.test.ts (40 tests) 135ms
 ✓ src/state/threadDetail.test.ts (14 tests) 65ms
 ✓ src/snapShot/RegionSnapShot.test.ts (4 tests) 12ms
 ✓ src/connection/outdatedHostUpdate.test.ts (3 tests) 73ms
 ✓ src/ipc/methods/notificationBadge.test.ts (1 test) 20ms
 ✓ src/permissions/MacPermissionHelper.test.ts (1 test) 17ms
 ✓ src/app/DesktopCliShim.test.ts (4 tests) 127ms
 ✓ src/ipc/methods/preview.test.ts (5 tests) 30ms
 ✓ src/state/shellReducer.test.ts (14 tests) 26ms
 ✓ src/linuxSecretStorage.test.ts (7 tests) 17ms
 ✓ src/server/usage.test.ts (9 tests) 24ms
 ✓  unit  src/features/threads/threadListV2.test.ts (62 tests) 97ms
 ✓  unit  src/state/thread-outbox.test.ts (36 tests) 135ms
 ✓ src/state/threadSnoozed.test.ts (20 tests) 12ms
 ✓ src/app/DesktopWebLinks.test.ts (2 tests) 9ms
 ✓ src/ipc/methods/snapShot.test.ts (3 tests) 48ms
 ✓  unit  src/features/agent-awareness/remoteRegistration.test.ts (15 tests) 553ms
 ✓ src/state/threadSort.test.ts (21 tests) 328ms
 ✓ src/backend/tailscaleEndpointProvider.test.ts (3 tests) 27ms
 ✓ src/electron/ElectronShell.test.ts (5 tests) 28ms
 ✓ src/preview/GuestInput.test.ts (4 tests) 14ms
 ✓  unit  src/lib/modelOptions.test.ts (29 tests) 13ms
 ✓ src/preview/BrowserImport/CookieDatabase.test.ts (2 tests) 60ms
 ✓ src/state/projectCommands.test.ts (4 tests) 87ms
 ✓ scripts/verify-preload-bundle.test.mjs (7 tests) 43ms
stdout | src/state/serverUsage.test.ts > keeps the cached usage summary when the awaited refresh fails
[13:30:20.978] 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) 103ms
 ✓ ../../native/kde-snap-shot/src/activate.test.ts (2 tests) 3ms
 ✓ src/state/threadFamilies.test.ts (4 tests) 63ms
 ✓ scripts/browser-secret-native.test.mjs (10 tests) 838ms
 ✓ src/preview/PickedElementPayload.test.ts (2 tests) 2ms
 ✓ src/state/threadInbox.test.ts (22 tests) 32ms
 ✓ src/server/xaiAcpExtension.test.ts (52 tests) 102ms
 ✓ src/snapShot/NativeCaptureFeedback.test.ts (2 tests) 39ms
 ✓ src/preview/BrowserImport/SafariPermission.test.ts (2 tests) 55ms
 ✓  unit  src/features/diffs/nativeReviewDiffHighlighter.test.ts (15 tests) 373ms
 ✓ src/operations/commands.performance.test.ts (1 test) 322ms
   ✓ routine command transport budget (1)
     ✓ dispatches an implicit-auto message without a full projection round trip 321ms
 ✓ src/snapShot/SnapShotAccessibilityProcess.test.ts (3 tests) 20ms
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:209: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:903:5)

 ✓ src/state/terminalSession.test.ts (9 tests) 14ms
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
 ✓ src/electron/WindowsForegroundFocusThread.test.ts (2 tests) 3ms
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/preview/BrowserImport/LinuxBrowserSecret.test.ts (1 test) 78ms
 ✓  unit  src/lib/composerFiles.test.ts (36 tests) 100ms
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
 ✓ src/electron/WindowsForeground.test.ts (3 tests) 12ms
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
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
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
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
 ✓ src/platform/shellCacheEncoding.test.ts (5 tests) 286ms
    at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-DyTyzzWG.mjs:164:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:20955:9)
    at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25344:64) {
  cause: undefined,
  __vitest_rollup_error__: {
 ✓ gnome-extension/feedbackGeometry.test.js (7 tests) 3ms
    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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:547:64)
      at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:562: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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1202:7)
      at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1219: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._844b5ecc141c2e2bcf9965912e411c65/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1262:59)
      at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1169: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
}
[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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-DyTyzzWG.mjs:164:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:20955:9)
    at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25344: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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:547:64)
      at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:562: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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1202:7)
      at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1219: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._844b5ecc141c2e2bcf9965912e411c65/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1262:59)
      at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1169: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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-DyTyzzWG.mjs:164:24)
      at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:20955:9)
      at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25344: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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:547:64)
        at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:562: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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1202:7)
        at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1219: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._844b5ecc141c2e2bcf9965912e411c65/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.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1262:59)
        at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.4.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_3d720056de102039ed5ab677ff8164f8/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1169: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
  }
}

 ✓ src/app/DesktopEnvironment.test.ts (2 tests) 60ms
 ✓ src/state/threadSearch.test.ts (10 tests) 51ms
 ✓ src/app/DesktopUserData.test.ts (2 tests) 56ms
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
 ✓  unit  src/lib/attachmentUpload.test.ts (28 tests) 52ms
[thread-outbox] could not update sign-out snapshot after delivery {
 ✓ src/permissions/MacSettingsWindow.test.ts (2 tests) 12ms
  messageId: 'archive-write-failure',
  error: {
 ✓ src/state/subagentRuntime.test.ts (11 tests) 12ms
    _tag: 'ComposerDraftPersistenceError',
 ✓ src/app/DesktopAppActivationBroker.test.ts (3 tests) 15ms
    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._844b5ecc141c2e2bcf9965912e411c65/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
 ✓  unit  src/state/use-thread-outbox-drain.test.ts (23 tests) 78ms
[thread-outbox] failed to remove acknowledged queued message {
  environmentId: 'environment-1',
  threadId: 'thread-1',
 ✓ src/server/skills.test.ts (10 tests) 118ms
  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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3338:20
 ✓ ../../native/kde-snap-shot/src/feedbackGeometry.test.ts (2 tests) 11ms
        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._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:3333:10)
 ✓ src/state/threadRequests.test.ts (10 tests) 29ms
        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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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 {
 ✓ src/server/acpSupport.test.ts (8 tests) 27ms
 ✓ src/snapShot/WindowsCaptureFeedback.test.ts (1 test) 5ms
  _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._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/run.BPv-BBRv.js:2801:20
 ✓  unit  src/features/sharing/incoming-share-model.test.ts (19 tests) 28ms
}

 ✓ src/ipc/methods/localEnvironment.test.ts (1 test) 16ms
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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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:1978: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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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:1978: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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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._844b5ecc141c2e2bcf9965912e411c65/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"]'
  }
}

 ✓ src/preview/WebviewPreferences.test.ts (2 tests) 5ms
 ✓ src/preview/RecordingInput.test.ts (2 tests) 4ms
 ✓ src/preview/AnnotationKeyboard.test.ts (1 test) 3ms
 ✓ src/app/DesktopPreReadyFileSystem.test.ts (1 test) 21ms
 ✓ src/preview/AnnotationIds.test.ts (1 test) 9ms
 ✓  unit  src/state/use-composer-drafts.test.ts (74 tests) 1239ms
   ✓ mobile composer drafts (74)
     ✓ restores deleted file chips and releases undo history (uploaded: false) 458ms
 ✓ src/ipc/methods/sshEnvironment.test.ts (1 test) 5ms

 Test Files  103 passed (103)
      Tests  840 passed (840)
   Start at  13:30:05
   Duration  17.46s (import 47%, transform 29%, tests 12%, setup 11%, worker 1%)

     Import  524 modules were evaluated 6600 times · 47.71s total, 47% of tracked time
             ~4.80s 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/source-control-azure-devops$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/work-log/commandLabel.test.ts (61 tests) 98ms
 ✓ src/state/usage.test.ts (8 tests) 15ms
 ✓  unit  src/features/home/useThreadListActions.test.ts (37 tests) 36ms
 ✓ src/state/boundedThreadSnapshotHttp.test.ts (6 tests) 102ms
 ✓ src/server/driver.test.ts (4 tests) 98ms
 ✓  unit  src/features/pull-requests/pullRequestDiffHighlightFiles.test.ts (45 tests) 353ms
 ✓ src/changeRequestLinks.test.ts (11 tests) 4ms

 Test Files  5 passed (5)
      Tests  83 passed (83)
   Start at  13:30:19
 ✓ src/projectFaviconCache.test.ts (8 tests) 105ms
   Duration  3.82s (transform 55%, import 35%, setup 6%, tests 3%)

 ✓ src/relay/managedRelayState.test.ts (4 tests) 11ms

~/packages/provider-opencode$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/work-log/presentation.test.ts (18 tests) 7ms

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

 ✓  unit  src/native/workspace-stack-projection.test.ts (24 tests) 34ms
 ✓ src/device/duoControl.test.ts (12 tests) 14ms
 ✓ src/pullRequestEditing.test.ts (13 tests) 7ms
 ✓ src/pullRequestQuery.test.ts (17 tests) 5ms

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

 ✓ src/device/duoViewer.test.ts (2 tests) 25ms
 ✓ src/handoff.test.ts (15 tests) 10ms
 ✓  unit  src/state/use-thread-outbox-drain.permissions.test.ts (12 tests) 18ms
 ✓ src/pullRequestLinkInput.test.ts (17 tests) 14ms
 ✓  unit  src/state/thread-task-permissions.test.ts (7 tests) 41ms
 ✓ src/state/threadSubagents.test.ts (7 tests) 33ms
 ✓  unit  src/features/pull-requests/pullRequestList.test.ts (18 tests) 26ms
 ✓ src/server/azureDevOpsDiff.test.ts (14 tests) 659ms
   ✓ azureDevOpsFilePatch (11)
     ✓ lists a file too far apart to diff without its hunks 642ms
 ✓  unit  src/lib/mobileTheme.test.ts (24 tests) 117ms
 ✓  unit  src/lib/composerAttachmentUploadQueue.test.ts (11 tests) 35ms
 ✓  unit  src/lib/composerContext.test.ts (16 tests) 256ms
 ✓ src/connection/diagnosis.test.ts (7 tests) 26ms
 ✓  unit  src/lib/attachmentDownload.test.ts (19 tests) 35ms
 ✓ src/pullRequestMarkdown.test.ts (17 tests) 17ms
 ✓ src/state/itemSupport.test.ts (2 tests) 3ms
 ✓ src/state/presentation.test.ts (3 tests) 22ms
 ✓ src/preview/serverBrowserStream.test.ts (5 tests) 8ms
 ✓  unit  src/features/threads/thread-feed-live-follow.test.ts (28 tests) 22ms
 ✓ src/connection/presentation.test.ts (4 tests) 8ms
 ✓ src/device/phoneViewer.test.ts (1 test) 47ms
 ✓  unit  src/features/review/nativeReviewDiffAdapter.test.ts (19 tests) 1442ms
   ✓ buildNativeReviewDiffData row bound (1)
     ✓ caps each huge file excerpt while preserving full counts and ordinary files 1037ms
 ✓ src/promptLinks.test.ts (4 tests) 3ms
 ✓ src/server/azureDevOpsPullRequestJson.test.ts (28 tests) 49ms
 ✓ src/shared/definition.test.ts (17 tests) 35ms
 ✓ src/device/avcConfig.test.ts (8 tests) 17ms
 ✓  unit  src/state/composer-attachment-uploads.test.ts (5 tests) 33ms
 ✓ src/server/AzureDevOpsCli.test.ts (7 tests) 87ms
 ✓ src/server/AzureDevOpsSourceControlProvider.test.ts (1 test) 2ms
 ✓  unit  src/features/updates/app-updates.test.ts (11 tests) 76ms
 ✓  unit  src/features/voice-input/voiceInputSession.test.ts (13 tests) 26ms
 ✓ src/providerSkills.test.ts (6 tests) 3ms
 ✓ src/server/AzureDevOpsPullRequestCli.test.ts (21 tests) 287ms
 ✓ src/platform/orchestrationCache.test.ts (3 tests) 33ms
 ✓  unit  src/lib/composerContextClipboard.test.ts (7 tests) 17ms
 ✓ src/state/projectEntities.test.ts (2 tests) 18ms
 ✓  unit  src/features/threads/checkout-new-task-branch.test.ts (11 tests) 3209ms
   ✓ new-task branch checkout (11)
     ✓ reuses an occupied picker worktree when the project root is a symlink 319ms
     ✓ resolves historical branch metadata to its worktree beyond a long query's first page 378ms
     ✓ resolves a non-origin remote to the right worktree when the remote name contains slashes 445ms
     ✓ switches to the selected remote instead of reusing a worktree tracking another remote 539ms
 ✓  unit  src/connection/environment-cache-store.test.ts (4 tests) 45ms
 ✓  unit  src/features/review/reviewModel.test.ts (13 tests) 36ms
 ✓ src/operations/projects.test.ts (6 tests) 12ms
 ✓ src/server/AzureDevOpsPullRequestProvider.test.ts (12 tests) 610ms

 Test Files  7 passed (7)
      Tests  100 passed (100)
   Start at  13:30:23
   Duration  3.11s (transform 49%, import 35%, tests 11%, setup 5%)

stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as linux > stops an OpenCode server group left by a server that died
[13:30:26.495] INFO (#4): Stopping an OpenCode server left by a previous T3 Code server { pid: 11449, port: 4096 }

 ✓ src/state/threadFeedback.test.ts (4 tests) 7ms
 ✓ src/threadPullRequestCompatibility.test.ts (10 tests) 13ms

~/packages/provider-pi$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/usage.test.ts (5 tests) 339ms
stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as linux > records a group whose spawned wrapper already exited
[13:30:26.609] INFO (#254): Stopping an OpenCode server left by a previous T3 Code server { pid: 11494, port: 4096 }

 ✓  unit  src/lib/android-workspace-navigation.test.ts (8 tests) 23ms
 ✓ src/device/phoneScene.test.ts (8 tests) 138ms
 ✓ src/reviewGuideTour.test.ts (7 tests) 17ms
 ✓ src/server/textGeneration.test.ts (9 tests) 88ms
 ✓ src/state/usageProgress.test.ts (4 tests) 13ms
stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as darwin > stops an OpenCode server group left by a server that died
[13:30:26.936] INFO (#300): Stopping an OpenCode server left by a previous T3 Code server { pid: 11577, port: 4096 }

 ✓ src/device/phoneInteraction.test.ts (4 tests) 5ms
 ✓  unit  src/state/pending-task-editor-writes.test.ts (5 tests) 21ms
 ✓ src/device/model.test.ts (4 tests) 6ms
 ✓ src/device/duoScene.test.ts (2 tests) 35ms
 ✓ src/server/status.test.ts (35 tests) 429ms
stdout | src/server/OpenCodeServerLedger.test.ts > OpenCodeServerLedger observing as darwin > records a group whose spawned wrapper already exited
[13:30:27.177] INFO (#322): Stopping an OpenCode server left by a previous T3 Code server { pid: 11616, port: 4096 }


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

 ✓ src/server/adapter.test.ts (31 tests) 364ms
 ✓  unit  src/state/use-selected-thread-git-actions.test.ts (11 tests) 27ms
 ✓  unit  src/features/threads/threadOrderAvailability.test.ts (7 tests) 717ms
   ✓ computeThreadMoveAvailability matches the reference planner (7)
     ✓ agrees across randomized sections (keys, holes, non-writable rows, hidden keys) 699ms
 ✓ src/state/attachments.test.ts (3 tests) 16ms
 ✓ src/state/filesystem.test.ts (8 tests) 12ms
 ✓ src/connection/errors.test.ts (5 tests) 4ms
 ✓  unit  src/state/thread-outbox-removal.test.ts (5 tests) 16ms
 ✓ src/server/OpenCodeServerOwner.test.ts (4 tests) 39ms
 ✓ src/t3ToolSummary.test.ts (3 tests) 11ms
 ✓ src/server/versionProbe.test.ts (9 tests) 25ms
 ✓ src/server/driver.test.ts (8 tests) 620ms
 ✓  unit  src/features/cloud/linkEnvironment.test.ts (3 tests) 134ms
 ✓  unit  src/features/diffs/nativeReviewDiffSource.test.ts (33 tests) 26ms
 ✓ src/state/sharedSettings.test.ts (9 tests) 11ms
 ✓  unit  src/lib/composerImages.test.ts (6 tests) 12ms
 ✓ src/server/v2/OpenCode2Server.test.ts (7 tests) 1409ms
   ✓ OpenCode2Server spawned server (1)
     ✓ is ready once /api/info accepts the generated password 1216ms
 ✓ src/connection/compatibility.test.ts (4 tests) 14ms
 ✓ src/work-log/toolPresentation.test.ts (4 tests) 19ms
 ✓ src/state/turnItemPresentation.test.ts (2 tests) 14ms
 ✓  unit  src/features/sharing/incoming-share-inbox.test.ts (10 tests) 33ms
 ✓ src/server/mcpExtensionSource.test.ts (24 tests) 417ms
 ✓  unit  src/features/workspace/workspace-tabs-state.test.ts (16 tests) 21ms
 ✓ src/mediaSource.test.ts (8 tests) 19ms
 ✓ src/server/OpenCodeRuntime.cliParsers.test.ts (9 tests) 11ms
 ✓ src/pullRequestChecks.test.ts (3 tests) 2ms
 ✓ src/server/OpenCodeRuntime.inventory.test.ts (4 tests) 444ms
   ✓ OpenCodeRuntime inventory (4)
     ✓ drops oversized CLI skill output without losing the model inventory 372ms
 ✓ src/server/OpenCodeServerLedger.test.ts (11 tests) 2442ms
   ✓ OpenCode server startup (1)
     ✓ stops the group when interrupted while the server is being recorded 1033ms
 ✓ src/device/modelScene.test.ts (2 tests) 17ms
 ✓  unit  src/features/home/homeThreadList.test.ts (4 tests) 41ms
 ✓ src/state/providerInstanceDisplay.test.ts (10 tests) 14ms
 ✓ src/server/v2/OpenCode2Client.test.ts (1 test) 73ms
 ✓ src/device/streamFrames.test.ts (1 test) 20ms
 ✓ src/state/gitActions.test.ts (3 tests) 7ms
stdout | src/lib/storage.test.ts > mobile connection storage > loads legacy preferences when SQLite is unavailable
[13:30:29.063] 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._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:430: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
[13:30:29.078] 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._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:430: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
[13:30:29.080] 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._844b5ecc141c2e2bcf9965912e411c65/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:440: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/lib/storage.test.ts (8 tests) 63ms
 ✓ src/server/openCode2Catalog.test.ts (3 tests) 132ms
 ✓  unit  src/native/composerEditorRevision.test.ts (17 tests) 20ms
 ✓ src/server/OpenCodeRuntime.environment.test.ts (3 tests) 11ms
 ✓ src/pullRequestReactions.test.ts (3 tests) 8ms
 ✓  unit  src/features/pull-requests/pullRequestDiffPages.test.ts (6 tests) 25ms
 ✓ src/server/OpenCodeRuntime.permissions.test.ts (8 tests) 3ms

 Test Files  15 passed (15)
      Tests  147 passed (147)
   Start at  13:30:23
   Duration  5.66s (import 39%, transform 36%, tests 19%, setup 6%)

     Import  248 modules were evaluated 1799 times · 13.36s total, 39% of tracked time
             ~660ms 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-muse$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/state/serverConfigProjection.test.ts (2 tests) 3ms
 ✓ src/device/deviceMotion.test.ts (2 tests) 4ms
 ✓  unit  src/features/workspace/workspace-tab-navigation.test.ts (10 tests) 20ms
 ✓ src/state/queryPersistence.test.ts (3 tests) 28ms
 ✓  unit  src/features/settings/scheduledTaskDraft.test.ts (12 tests) 27ms
 ✓ src/userMessage.test.ts (4 tests) 8ms
 ✓ src/server/commands.test.ts (1 test) 4ms

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

 ✓  unit  src/dependency-graph.test.ts (2 tests) 15ms
 ✓ src/server/mcpInjection.test.ts (3 tests) 17ms
 ✓ src/state/customSnooze.test.ts (11 tests) 20ms
 ✓ src/state/usageAccess.test.ts (8 tests) 5ms
stdout | src/state/preferences.test.ts > mobile preferences state > falls back to empty preferences when secure storage cannot be read
[13:30:30.029] 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:180: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) 56ms
 ✓  unit  src/lib/layout.test.ts (15 tests) 19ms
 ✓ src/errors/safeLog.test.ts (2 tests) 13ms
 ✓ src/threadReference.test.ts (5 tests) 7ms
 ✓ src/server/textGeneration.test.ts (1 test) 61ms
 ✓ src/filePreview.test.ts (3 tests) 63ms
 ✓ src/server/status.test.ts (6 tests) 139ms
 ✓ src/work-log/itemDetail.test.ts (2 tests) 6ms
 ✓ src/server/itemPresentation.test.ts (6 tests) 12ms
 ✓ src/state/auth.test.ts (2 tests) 24ms
 ✓  unit  src/lib/mediaActions.test.ts (10 tests) 22ms
 ✓ src/server/driver.test.ts (5 tests) 194ms
 ✓ src/markdownImages.test.ts (12 tests) 9ms
 ✓ src/state/threadHistoryController.test.ts (1 test) 5ms
 ✓  unit  src/state/session.test.ts (4 tests) 18ms
 ✓ src/errors/transport.test.ts (3 tests) 7ms
 ✓  unit  src/features/threads/thread-provider-instance.test.ts (3 tests) 19ms
 ✓ src/server/sdk.test.ts (12 tests) 168ms
 ✓  unit  src/features/settings/settings-scoped-server.test.ts (5 tests) 3ms
 ✓ src/state/assets.test.ts (1 test) 3ms
 ✓ src/server/usageLimits.test.ts (4 tests) 11ms
 ✓ src/mediaReference.test.ts (7 tests) 7ms
 ✓  unit  src/features/projects/AddProjectScreen.test.ts (3 tests) 21ms
 ✓ src/device/duoSnap.test.ts (1 test) 4ms
 ✓  unit  src/features/cloud/dpop.test.ts (5 tests) 94ms
 ✓ src/device/androidFoldScene.test.ts (1 test) 54ms
 ✓ src/relay/errorPresentation.test.ts (3 tests) 3ms
 ✓  unit  src/features/workspace/workspace-detail-selection.test.ts (9 tests) 11ms
 ✓ src/composerThreadItems.test.ts (1 test) 6ms
 ✓ src/device/renderScheduler.test.ts (1 test) 2ms
 ✓ src/secretRequest.test.ts (3 tests) 7ms
 ✓ src/state/commandOutput.test.ts (1 test) 5ms
 ✓ src/errors/errorTrace.test.ts (2 tests) 4ms
 ✓  unit  src/features/agent-awareness/liveActivityPreferences.test.ts (3 tests) 35ms
 ✓ src/work-log/scrollAnchor.test.ts (1 test) 2ms
 ✓ src/server/protocol.test.ts (1 test) 12ms
 ✓ src/environment/endpoint.test.ts (1 test) 2ms
 ✓  unit  src/features/pull-requests/pullRequestStack.test.ts (8 tests) 7ms
 ✓ src/state/archivedThreads.test.ts (1 test) 10ms

 Test Files  131 passed (131)
      Tests  1297 passed (1297)
   Start at  13:30:08
   Duration  23.24s (import 53%, transform 28%, setup 10%, tests 8%, worker 1%)

     Import  525 modules were evaluated 10300 times · 73.22s total, 53% of tracked time
             ~8.42s 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/tailscale$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/threads/new-task-project-selection.test.ts (9 tests) 4ms
 ✓  unit  src/widgets/subscriptionUsageSnapshot.test.ts (5 tests) 27ms
 ✓  unit  src/features/settings/environment-maintenance.test.ts (7 tests) 41ms

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

 ✓  unit  src/features/threads/thread-settings-sheet-state.test.ts (5 tests) 6ms
 ✓ src/server/modelCatalog.test.ts (1 test) 7ms
 ✓  unit  src/features/review/reviewCommentSelection.test.ts (6 tests) 5ms
 ✓  unit  src/features/threads/thread-route-state.test.ts (5 tests) 9ms
 ✓ src/server/usage.test.ts (12 tests) 38ms
 ✓  unit  src/lib/markdownHtml.test.ts (8 tests) 35ms
 ✓  unit  src/lib/protectedData.test.ts (3 tests) 91ms
 ✓ src/server/maintenance.test.ts (3 tests) 32ms
 ✓  unit  src/features/voice-input/lazyVoiceRecorder.test.ts (3 tests) 8ms
 ✓ src/tailscale.test.ts (7 tests) 31ms

 Test Files  1 passed (1)
      Tests  7 passed (7)
   Start at  13:30:32
   Duration  310ms (import 40%, transform 26%, setup 20%, tests 13%, worker 1%)

 ✓ src/server/textGeneration.test.ts (8 tests) 60ms

~/packages/ssh$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/status.test.ts (3 tests) 137ms
 ✓  unit  src/state/remote-environment-projections.test.ts (1 test) 4ms
 ✓ src/server/adapter.test.ts (39 tests) 182ms

 Test Files  10 passed (10)
      Tests  89 passed (89)
   Start at  13:30:29
   Duration  2.87s (transform 50%, import 38%, setup 8%, tests 4%)

 ✓ src/server/adapter.test.ts (87 tests) 2339ms
   ✓ PiAdapterV2 (85)
     ✓ delivers realistic MCP screenshots through the bridge, JSONL transport, and adapter 647ms
 ✓  unit  src/lib/reserved-regions.test.ts (7 tests) 7ms

 Test Files  7 passed (7)
      Tests  127 passed (127)
   Start at  13:30:27
   Duration  5.40s (transform 49%, import 30%, tests 16%, setup 5%)


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

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

 ✓  unit  src/features/threads/pending-thread-feed.test.ts (6 tests) 3ms

~/packages/provider-cursor$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/state/edit-pending-thread-message.test.ts (4 tests) 7ms
 ✓  unit  src/state/use-thread-pr.test.ts (7 tests) 4ms

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

 ✓  unit  src/features/usage/UsageLimitsSection.test.ts (2 tests) 7ms
 ✓  unit  src/lib/pdfPreview.test.ts (12 tests) 21ms

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

 ✓ src/config.test.ts (4 tests) 64ms
stdout | src/command.test.ts > ssh command > preserves process output: default head
[13:30:33.204] 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: ''
}

 ✓ src/auth.test.ts (2 tests) 25ms
stdout | src/command.test.ts > ssh command > preserves process output: opt-in tail
[13:30:33.252] 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/agent-awareness/notificationNavigation.test.ts (6 tests) 20ms
 ✓ src/server/mergeMessage.test.ts (11 tests) 4ms
 ✓ src/server/diffFileRevisions.test.ts (15 tests) 5ms
 ✓ src/command.test.ts (7 tests) 218ms
 ✓ src/server/pullRequestChecks.test.ts (16 tests) 22ms
 ✓  unit  src/features/workspace/android-workspace-navigation-colors.test.ts (9 tests) 62ms
 ✓ src/server/SourceControlProvider.test.ts (1 test) 4ms
 ✓ src/tunnel.test.ts (7 tests) 171ms

 Test Files  4 passed (4)
      Tests  20 passed (20)
   Start at  13:30:32
   Duration  898ms (import 39%, tests 24%, transform 21%, setup 15%)


~/packages/source-control-gitcafe$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/state/attachments.test.ts (2 tests) 5ms
 ✓  unit  src/state/assets.test.ts (4 tests) 5ms
 ✓  unit  src/state/thread-order.test.ts (4 tests) 5ms
 ✓ src/server/skills.test.ts (5 tests) 130ms
 ✓  unit  src/state/pending-thread-creation.test.ts (4 tests) 3ms
 ✓  unit  src/features/pull-requests/pullRequestDiffComments.test.ts (5 tests) 2ms
 ✓  unit  src/features/connection/environmentSections.test.ts (3 tests) 3ms

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

 ✓  unit  src/features/threads/threadQueueControlPresentation.test.ts (8 tests) 5ms
 ✓  unit  src/lib/projectFaviconRequests.test.ts (4 tests) 11ms
 ✓  unit  src/features/diffs/nativeReviewDiffTrace.test.ts (3 tests) 39ms
 ✓ src/server/accountUsage.test.ts (9 tests) 714ms
 ✓ src/server/gitCafeHosts.test.ts (7 tests) 3ms
 ✓  unit  src/state/workspace-connection-atoms.test.ts (1 test) 8ms
 ✓  unit  src/features/shortcuts/appShortcuts.test.ts (7 tests) 4ms
 ✓ src/server/SourceControlRateLimit.test.ts (6 tests) 28ms

 Test Files  5 passed (5)
      Tests  49 passed (49)
   Start at  13:30:32
   Duration  1.99s (transform 49%, import 30%, setup 18%, tests 2%, worker 1%)

 ✓  unit  src/lib/markdownMedia.test.ts (12 tests) 16ms

~/scripts$ vp test run --config ../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/usageLimits.test.ts (9 tests) 53ms
 ✓  unit  src/lib/atomic-file.test.ts (4 tests) 10ms
 ✓  unit  src/lib/composerChipPresentation.test.ts (3 tests) 102ms
 ✓ src/server/auth.test.ts (10 tests) 40ms
 ✓  unit  src/features/pull-requests/pullRequestFileFilters.test.ts (4 tests) 12ms
 ✓ src/server/textGeneration.test.ts (8 tests) 86ms

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

 ✓  unit  src/features/terminal/useTerminalGridSync.test.ts (1 test) 31ms
 ✓  unit  src/lib/enrichedLinkPresentation.test.ts (5 tests) 21ms
 ✓  unit  src/lib/localAttachmentPreview.test.ts (4 tests) 13ms
 ✓ src/server/transportFailure.test.ts (10 tests) 12ms
 ✓ src/server/CursorAgentSdk.test.ts (1 test) 33ms
 ✓  unit  src/features/threads/new-task-context-presentation.test.ts (9 tests) 3ms
 ✓ src/server/accountCache.test.ts (2 tests) 12ms
 ✓ src/server/adapter.test.ts (18 tests) 225ms
 ✓ src/server/status.test.ts (8 tests) 94ms
 ✓  unit  src/features/pull-requests/pullRequestDiffDebug.test.ts (3 tests) 26ms
 ✓  unit  src/lib/copyTextWithHaptic.test.ts (5 tests) 29ms
 ✓ src/server/driver.test.ts (2 tests) 115ms
 ✓ src/server/credentialStore.test.ts (5 tests) 84ms
 ✓  unit  src/features/pull-requests/pullRequestNavigation.test.ts (4 tests) 15ms
 ✓  unit  src/features/terminal/useTerminalLifecycle.test.ts (3 tests) 45ms
 ✓ src/server/CursorSdk.test.ts (2 tests) 16ms
 ✓ lib/third-party-licenses.test.ts (19 tests) 138ms
 ✓ src/server/gitCafePullRequestJson.test.ts (25 tests) 25ms
 ✓  unit  src/persistence/mobile-database.test.ts (3 tests) 37ms
 ✓ src/shared/definition.test.ts (7 tests) 17ms
 ✓ notify-discord-release.test.ts (15 tests) 133ms
 ✓ src/server/CursorSdkCatalog.test.ts (1 test) 6ms

 Test Files  14 passed (14)
      Tests  90 passed (90)
   Start at  13:30:33
   Duration  3.23s (transform 42%, import 40%, tests 9%, setup 9%)


~/packages/source-control-gitlab$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/GitCafeCredentials.test.ts (4 tests) 31ms
 ✓ src/server/GitCafeSourceControlProvider.test.ts (8 tests) 58ms
 ✓  unit  src/connection/storage.test.ts (3 tests) 45ms
 ✓  unit  src/persistence/mobile-storage.test.ts (3 tests) 40ms
 ✓  unit  src/lib/videoThumbnails.test.ts (2 tests) 25ms
 ✓ legend-list-initial-reveal.test.ts (10 tests) 30ms
 ✓  unit  src/features/workspace/navigation-tab-order.test.ts (6 tests) 7ms
 ✓ dev-runner.test.ts (32 tests) 157ms
 ✓ lib/cli-external-packages.test.ts (11 tests) 233ms
 ✓ src/server/GitCafePullRequestProvider.test.ts (64 tests) 314ms

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


 Test Files  6 passed (6)
      Tests  115 passed (115)
   Start at  13:30:34
   Duration  2.62s (transform 51%, import 39%, setup 6%, tests 4%)

 ✓ build-npm-launcher.test.ts (1 test) 650ms
   ✓ build-npm-launcher (1)
     ✓ publishes a launcher that downloads, verifies, caches, and runs the release executable 636ms

~/packages/source-control-github$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ merge-update-manifests.test.ts (5 tests) 45ms
 ✓ lib/dev-share.test.ts (5 tests) 21ms
 ✓  unit  src/connection/background-activity.test.ts (3 tests) 18ms
 ✓ update-release-package-versions.test.ts (3 tests) 58ms
 ✓ lib/public-config.test.ts (1 test) 17ms

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

 ✓ mobile-native-client.test.ts (2 tests) 68ms
 ✓  unit  src/features/threads/fileChipMenu.test.ts (9 tests) 32ms
 ✓  unit  src/state/workspaceModel.test.ts (2 tests) 6ms
 ✓ lib/resolve-catalog.test.ts (2 tests) 6ms
 ✓ sync-reference-repos.test.ts (2 tests) 62ms
 ✓ mock-update-server.test.ts (2 tests) 251ms
 ✓  unit  src/connection/migration.test.ts (2 tests) 12ms
 ✓  unit  src/lib/composerAttachmentFiles.test.ts (12 tests) 18ms
 ✓  unit  src/features/threads/thread-settings-options.test.ts (4 tests) 19ms
 ✓ mobile-showcase.test.ts (3 tests) 27ms
 ✓  unit  src/features/settings/autoSettleSettingsSync.test.ts (3 tests) 5ms
 ✓  unit  src/features/pull-requests/pullRequestStatus.test.ts (4 tests) 3ms
 ✓  unit  src/lib/microphonePriority.test.ts (4 tests) 5ms
 ✓  unit  src/features/threads/use-composer-command-menu.test.ts (3 tests) 10ms
 ✓ lib/build-target-arch.test.ts (1 test) 15ms
 ✓ lib/icon-export.test.ts (1 test) 5ms
 ✓ resolve-previous-release-tag.test.ts (3 tests) 17ms
 ✓ mobile-native-static-check.test.ts (2 tests) 13ms
 ✓  unit  src/features/home/workspace-connection-status.test.ts (3 tests) 2ms
 ✓  unit  src/features/terminal/terminalMenu.test.ts (5 tests) 9ms
 ✓ src/server/gitHubPullRequestJson.test.ts (50 tests) 130ms
 ✓  unit  src/lib/markdownLinks.test.ts (8 tests) 10ms
 ✓  unit  src/lib/projectFaviconDatabaseCache.test.ts (3 tests) 7ms
 ✓ src/server/gitLabMergeRequestJson.test.ts (29 tests) 34ms
 ✓ build-desktop-artifact.test.ts (42 tests) 2470ms
   ✓ build-desktop-artifact (40)
     ✓ rejects overlapping builds from another process until restoration finishes 865ms
     ✓ builds web, server and desktop with the resolved version, restores changed manifests and preserves edits to matching ones 473ms
 ✓  unit  src/features/pull-requests/pullRequestAgentTasks.test.ts (3 tests) 2ms
 ✓ src/server/GitLabCli.test.ts (5 tests) 33ms
 ✓ src/server/GitLabPullRequestCli.test.ts (42 tests) 135ms
 ✓ src/server/GitLabPullRequestCli.legacy.test.ts (14 tests) 58ms
 ✓ src/server/GitLabPullRequestProvider.test.ts (7 tests) 41ms
 ✓ src/server/GitLabSourceControlProvider.test.ts (12 tests) 24ms
 ✓  unit  src/native/voiceTranscription.ios.test.ts (1 test) 38ms
 ✓  unit  src/features/devices/threadDevicePreviews.test.ts (2 tests) 2ms
 ✓  unit  src/lib/projectIcon.test.ts (5 tests) 15ms
 ✓  unit  src/features/terminal/terminalInput.test.ts (7 tests) 3ms
 ✓ src/server/GitLabSourceControlProvider.git.test.ts (3 tests) 429ms
   ✓ ignores unavailable or non-regular GitLab default templates 309ms
 ✓  unit  src/features/terminal/terminalPaste.test.ts (2 tests) 7ms
 ✓ src/shared/definition.test.ts (6 tests) 4ms
 ✓  unit  src/features/threads/worktree-setup-state.test.ts (4 tests) 2ms
 ✓  unit  src/features/terminal/terminalLaunchContext.test.ts (3 tests) 6ms
 ✓ src/server/GitLabPullRequestProvider.rateLimit.test.ts (1 test) 8ms
 ✓  unit  src/state/queries.filesystem.test.ts (1 test) 3ms
 ✓ src/server/gitLabDiscovery.test.ts (3 tests) 7ms

 Test Files  10 passed (10)
      Tests  122 passed (122)
   Start at  13:30:36
   Duration  3.19s (transform 49%, import 40%, setup 6%, tests 4%)

 ✓  unit  src/lib/appLinking.test.ts (17 tests) 4ms

~/packages/provider-acp-registry$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/state/thread-provider-switching.test.ts (4 tests) 4ms
 ✓ src/server/GitHubRest.test.ts (8 tests) 42ms
 ✓ src/server/gitHubGraphQlClient.test.ts (9 tests) 96ms
 ✓  unit  src/features/terminal/useTerminalSurfaceBuffer.test.ts (2 tests) 18ms
 ✓ src/server/githubStackActions.test.ts (9 tests) 149ms

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

 ✓ src/server/GitHubPullRequestProvider.test.ts (23 tests) 65ms
 ✓  unit  src/lib/device-type.test.ts (3 tests) 12ms
 ✓  unit  src/lib/projectThreadStartTurn.test.ts (3 tests) 9ms
 ✓  unit  src/lib/highlights.test.ts (3 tests) 16ms
 ✓  unit  src/state/queued-run-edit.test.ts (3 tests) 3ms
 ✓  unit  src/features/settings/scheduled-task-editor-state.test.ts (3 tests) 10ms
 ✓  unit  src/features/threads/thread-route-hydration.test.ts (3 tests) 2ms
 ✓  unit  src/features/pull-requests/pullRequestActions.test.ts (3 tests) 2ms
 ✓  unit  src/features/files/filePath.test.ts (7 tests) 3ms
 ✓  unit  src/features/keyboard/commandPaletteItems.test.ts (2 tests) 13ms
 ✓ src/shared/definition.test.ts (9 tests) 18ms
 ✓  unit  src/features/settings/settings-search.test.ts (11 tests) 27ms
 ✓  unit  src/features/layout/deferred-navigation.test.ts (3 tests) 5ms
 ✓ src/server/GitHubCredentials.test.ts (5 tests) 26ms
 ✓  unit  src/features/home/thread-dismissal.test.ts (3 tests) 5ms
 ✓ src/server/GitHubPullRequestApi.test.ts (105 tests) 1152ms
   ✓ GitHubPullRequestApi.layer (104)
     ✓ keeps the pull request being ticked through, not the one looked up first 355ms
 ✓ src/server/GitHubPullRequestProvider.credential.test.ts (1 test) 77ms
 ✓ src/server/gitHubChangeRequestTemplate.test.ts (10 tests) 1518ms
 ✓  unit  src/features/threads/provider-catalog-refresh.test.ts (2 tests) 16ms
 ✓  unit  src/features/cloud/CloudAuthProvider.test.ts (1 test) 3ms
 ✓  unit  src/features/cloud/managedRelayLayer.test.ts (1 test) 102ms
 ✓ src/server/gitHubMediaFetch.test.ts (2 tests) 8ms
 ✓  unit  src/features/sharing/incoming-share-presentation.test.ts (2 tests) 2ms
 ✓  unit  src/features/pull-requests/pullRequestActivityFilter.test.ts (1 test) 2ms
 ✓ src/server/GitHubQuota.test.ts (4 tests) 15ms
 ✓  unit  src/features/devices/device-stream-document.test.ts (11 tests) 12ms
 ✓ src/shared/referenceAutolinks.test.ts (4 tests) 3ms
 ✓  unit  src/features/diagnostics/crash-log-model.test.ts (2 tests) 5ms
 ✓ knip-schemas.test.ts (1 test) 6182ms
   ✓ allows types and schemas through the real Knip CLI without hiding runtime or file findings 6181ms

 Test Files  21 passed (21)
      Tests  163 passed (163)
   Start at  13:30:35
   Duration  6.62s (tests 52%, import 23%, setup 12%, transform 11%, worker 1%)

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


~/packages/provider-acp$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  scripts/generate-uniwind-themes.test.ts (1 test) 29ms
 ✓  unit  src/features/observability/tracing.test.ts (1 test) 38ms
 ✓  unit  src/features/pull-requests/pullRequestEnvironmentFallback.test.ts (3 tests) 2ms
 ✓ src/server/gitHubPullRequests.test.ts (3 tests) 4ms
 ✓  unit  src/lib/markdownTableBreaks.test.ts (5 tests) 50ms
 ✓  unit  src/lib/nativeTheme.test.ts (12 tests) 40ms
 ✓ src/server/gitHubRepositoryResolution.test.ts (3 tests) 6ms
 ✓ src/server/gitHubDiscovery.test.ts (4 tests) 17ms

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

 ✓  unit  src/lib/assetImageSource.test.ts (3 tests) 3ms
 ✓ src/server/AcpRegistryRuntimeCoordinator.test.ts (7 tests) 45ms
 ✓ src/server/GitHubSourceControlProvider.test.ts (30 tests) 2220ms
   ✓ keeps Enterprise operations on the selected remote: git@code.example.test:team/project.git 631ms
   ✓ keeps Enterprise operations on the selected remote: ssh://git@code.example.test/team/project.git 637ms
   ✓ keeps Enterprise operations on the selected remote: https://code.example.test/team/project.git 632ms
 ✓ src/server/authenticationState.test.ts (3 tests) 132ms
 ✓ src/server/stderr.test.ts (2 tests) 7ms
 ✓ src/server/sessionConfig.test.ts (6 tests) 3ms
 ✓  unit  src/lib/markdownMediaSource.test.ts (3 tests) 5ms
 ✓ src/server/mcpOverAcpBridge.test.ts (3 tests) 32ms
 ✓  unit  src/lib/connection.test.ts (1 test) 2ms
 ✓  unit  src/features/pull-requests/pullRequestAutolinks.test.ts (4 tests) 34ms
 ✓ src/server/clientPolicy.test.ts (13 tests) 30ms
 ✓  unit  src/features/sharing/incoming-share-storage.test.ts (1 test) 6ms
 ✓ src/server/githubStackRebase.test.ts (3 tests) 1870ms
   ✓ cascadeRebaseStack (3)
     ✓ moves each layer's own commits onto the rebased layer below it 762ms
     ✓ refuses to overwrite a layer pushed after it was reviewed 559ms
     ✓ stops at a conflicting layer and leaves it untouched 536ms

 Test Files  18 passed (18)
      Tests  282 passed (282)
   Start at  13:30:37
   Duration  5.68s (transform 36%, import 34%, tests 24%, setup 6%)

     Import  202 modules were evaluated 1848 times · 10.54s total, 34% of tracked time
             ~608ms 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


~/infra/relay$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/connection/pairing.test.ts (5 tests) 15ms
 ✓  unit  src/lib/markdownInlineFileLinks.test.ts (4 tests) 33ms
 ✓ src/server/auth.test.ts (5 tests) 69ms
 ✓  unit  src/features/home/swipe-row-activation.test.ts (3 tests) 2ms
 ✓  unit  src/lib/wideMarkdownBlocks.test.ts (2 tests) 8ms
 ✓  unit  src/features/settings/SettingsRouteScreen.logic.test.ts (2 tests) 2ms
 ✓  unit  src/state/asset-url-state.test.ts (3 tests) 2ms
 ✓ src/server/AcpRegistrySupport.test.ts (31 tests) 767ms
 ✓  unit  src/features/pull-requests/botBadgeImages.test.ts (1 test) 2ms
stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > kills long-running commands and rejects released terminal handles
[13:30:43.439] WARN (#53): ACP client terminal operation failed {
  operation: 'terminal/output',
  detail: "ACP terminal/output received an unknown terminal ID 't3-term-1'."
}


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

 ✓ src/server/runtimeModel.test.ts (47 tests) 340ms
 ✓  unit  scripts/generate-highlights.test.ts (1 test) 16ms
 ✓  unit  src/lib/openExternalUrl.test.ts (1 test) 15ms
 ✓  unit  src/lib/serialized-async-queue.test.ts (2 tests) 7ms
stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > reserves terminal capacity across concurrent creates
[13:30:43.710] WARN (#122): ACP client terminal operation failed {
  operation: 'terminal/create',
  detail: 'ACP terminal/create exceeded the limit of 16 concurrent terminals.'
}

 ✓ src/server/driver.test.ts (9 tests) 9ms
 ✓  unit  src/features/usage/usageEnvironmentSelection.test.ts (4 tests) 10ms

 Test Files  5 passed (5)
      Tests  55 passed (55)
   Start at  13:30:40
   Duration  3.52s (transform 54%, import 33%, tests 8%, setup 4%)

 ✓  unit  src/features/pull-requests/pullRequestDescription.test.ts (1 test) 26ms

 ✓  unit  src/features/threads/composerSendPresentation.test.ts (2 tests) 2ms
 ✓  unit  src/features/sharing/incoming-share-native.test.ts (2 tests) 9ms
 ✓  unit  src/features/pull-requests/pullRequestDescriptionContent.test.ts (1 test) 3ms
 ✓  unit  src/features/threads/subagent-card-presentation.test.ts (1 test) 2ms
 ✓  unit  src/features/threads/threadContentPresentation.test.ts (2 tests) 2ms
 ✓ src/server/nativeLogging.test.ts (3 tests) 29ms
 ✓  unit  src/features/cloud/managedRelayTokenStore.test.ts (1 test) 16ms
 ✓  unit  src/features/pull-requests/pullRequestReviewDrafts.test.ts (1 test) 2ms
 ✓  unit  src/lib/filePreviewGallery.test.ts (1 test) 16ms
 ✓  unit  src/state/thread-composer-error.test.ts (1 test) 7ms
 ✓  unit  src/state/queries.test.ts (1 test) 8ms
 ✓  unit  src/features/threads/customSnoozeDate.test.ts (2 tests) 2ms
 ✓  unit  src/features/browser/previewPromptText.test.ts (3 tests) 2ms
 ✓  unit  src/features/pull-requests/pullRequestMediaSource.test.ts (1 test) 23ms
 ✓  unit  src/features/prompt-links/prompt-link-model.test.ts (1 test) 12ms
 ✓  unit  src/features/cloud/publicConfig.test.ts (1 test) 2ms
 ✓  unit  src/lib/http-response.test.ts (1 test) 8ms
 ✓  unit  src/features/projects/AddProjectScreen.logic.test.ts (1 test) 2ms
 ✓  unit  src/lib/mobileThemeRuntime.test.ts (1 test) 2ms
 ✓  unit  src/lib/nativeComposerTheme.test.ts (1 test) 3ms
 ✓  unit  src/lib/filePreview.test.ts (4 tests) 2ms
 ✓  unit  src/features/threads/projectThreadCreationValidation.test.ts (2 tests) 2ms
 ✓  unit  src/lib/foreground-handoff.test.ts (1 test) 2ms
 ✓  unit  src/lib/appearancePreferences.test.ts (1 test) 2ms
 ✓  unit  src/features/threads/threadMessageJump.test.ts (1 test) 2ms
 ✓  unit  src/features/settings/lib/legal-document-url.test.ts (2 tests) 2ms
 ✓ src/environments/ManagedEndpointProvider.test.ts (31 tests) 98ms
 ✓  unit  src/features/keyboard/hardwareKeyboardCommands.test.ts (2 tests) 6ms
 ✓ src/environments/ManagedEndpointReaper.test.ts (17 tests) 75ms
stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > bounds unreleased terminal handles without invalidating existing ids
[13:30:46.569] WARN (#192): ACP client terminal operation failed {
  operation: 'terminal/create',
  detail: 'ACP terminal/create exceeded the limit of 64 unreleased terminals.'
}

stdout | src/server/clientTerminals.test.ts > AcpClientTerminals > rejects terminal handles from a different ACP session
[13:30:46.757] WARN (#482): ACP client terminal operation failed {
  operation: 'terminal/output',
  detail: "ACP terminal/output received an unknown terminal ID 't3-term-1'."
}
[13:30:46.757] WARN (#483): ACP client terminal operation failed {
  operation: 'terminal/wait_for_exit',
  detail: "ACP terminal/wait_for_exit received an unknown terminal ID 't3-term-1'."
}
[13:30:46.757] WARN (#484): ACP client terminal operation failed {
  operation: 'terminal/kill',
  detail: "ACP terminal/kill received an unknown terminal ID 't3-term-1'."
}
[13:30:46.757] WARN (#485): ACP client terminal operation failed {
  operation: 'terminal/release',
  detail: "ACP terminal/release received an unknown terminal ID 't3-term-1'."
}

 ✓ src/environments/EnvironmentConnector.test.ts (12 tests) 154ms
 ✓ src/server/clientTerminals.test.ts (13 tests) 3586ms
   ✓ AcpClientTerminals (12)
     ✓ bounds unreleased terminal handles without invalidating existing ids 2828ms

 Test Files  7 passed (7)
      Tests  87 passed (87)
   Start at  13:30:42
   Duration  4.44s (tests 48%, transform 28%, import 17%, setup 6%)


 ✓ src/agentActivity/FcmDeliveries.test.ts (29 tests) 46ms
 ✓ src/http/Api.test.ts (27 tests) 96ms
 ✓ src/agentActivity/ApnsDeliveries.test.ts (36 tests) 113ms
 ✓ src/hooks/HookForwarder.test.ts (17 tests) 179ms
 ✓ src/hooks/HookInboxStore.test.ts (11 tests) 233ms
 ✓ src/agentActivity/ApnsClient.test.ts (6 tests) 74ms
 ✓ src/agentActivity/AgentActivityPublisher.test.ts (10 tests) 12ms
 ✓ src/environments/EnvironmentLinker.test.ts (4 tests) 25ms
 ✓ src/agentActivity/FcmClient.test.ts (4 tests) 38ms
 ✓ src/auth/RelayTokens.test.ts (5 tests) 38ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[13:30:48.306] INFO (#5): Plan: 1 tasks
[13:30:48.306] INFO (#5): [PublishClientConfig] run [action]
[13:30:48.307] INFO (#5):

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[13:30:48.314] 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-BynEWp/client.env
[13:30:48.315] INFO (#47): [PublishClientConfig] ran (1ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[13:30:48.316] INFO (#48): [PublishClientConfig] ran (2ms)
[13:30:48.316] INFO (#5):
[13:30:48.316] INFO (#5): Done: 1 succeeded (9ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[13:30:48.318] INFO (#5): Plan: no resources
[13:30:48.318] INFO (#5):
[13:30:48.318] INFO (#63): [PublishClientConfig] skipped
[13:30:48.320] INFO (#64): [PublishClientConfig] skipped
[13:30:48.320] INFO (#5):
[13:30:48.320] INFO (#5): Done: 0 succeeded, 1 skipped (2ms)

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[13:30:48.322] INFO (#5): Plan: 1 tasks
[13:30:48.322] INFO (#5): [PublishClientConfig] run [action]
[13:30:48.322] INFO (#5):

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[13:30:48.323] 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-BynEWp/client.env
[13:30:48.323] INFO (#79): [PublishClientConfig] ran (0ms)

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

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

 ✓ src/agentActivity/MobileRegistrations.test.ts (2 tests) 13ms
stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[13:30:48.332] INFO (#117): Plan: 1 tasks
[13:30:48.332] INFO (#117): [PublishClientConfig] run [action]
[13:30:48.332] INFO (#117):

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

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

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

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

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

 ✓ src/clientConfig.test.ts (10 tests) 123ms
 ✓ src/environments/EnvironmentCredentials.test.ts (3 tests) 18ms
 ✓ src/auth/DpopProofs.verifyAndConsume.test.ts (4 tests) 79ms
 ✓ src/agentActivity/agentActivityPolicy.test.ts (5 tests) 8ms
 ✓ src/previewTunnelSweep.test.ts (4 tests) 20ms
 ✓ src/environments/EnvironmentPublishSignatures.test.ts (3 tests) 19ms
 ✓ src/previewStages.test.ts (4 tests) 4ms
 ✓ src/agentActivity/DeliveryAttempts.test.ts (3 tests) 18ms
 ✓ src/agentActivity/ApnsProviderTokens.test.ts (2 tests) 45ms
 ✓ src/agentActivity/LiveActivities.test.ts (2 tests) 8ms
 ✓ src/agentActivity/apnsDeliveryJobs.test.ts (1 test) 4ms
 ✓ src/environments/endpointFailure.test.ts (15 tests) 3ms
 ✓ src/deploymentConfig.test.ts (3 tests) 5ms
 ✓ src/hooks/HeldHooks.test.ts (1 test) 5ms
 ✓ src/environments/EnvironmentLinks.test.ts (2 tests) 8ms
 ✓ src/environments/ManagedEndpointAllocations.test.ts (1 test) 5ms
 ✓ src/agentActivity/ApnsDeliveryQueue.test.ts (1 test) 5ms
 ✓ src/environments/CloudflareApiPause.test.ts (1 test) 5ms

 Test Files  32 passed (32)
      Tests  276 passed (276)
   Start at  13:30:43
   Duration  7.02s (import 78%, transform 14%, setup 5%, tests 4%)


 ✓  unit  src/reactCompilerCoverage.test.ts (945 tests) 36665ms
   ✓ React Compiler coverage (945)
     ✓ Metro's transformer applies the compiler 1675ms
     ✓ compiles src/Stack.tsx 395ms
     ✓ compiles src/components/MediaVideoPlayer.tsx 354ms
     ✓ compiles src/features/archive/ArchivedThreadsScreen.tsx 313ms
     ✓ compiles src/features/browser/PreviewStreamWebView.tsx 326ms
     ✓ compiles src/features/connection/ConnectionEnvironmentRow.tsx 316ms
     ✓ compiles src/features/connection/ConnectionsNewRouteScreen.tsx 475ms
     ✓ compiles src/features/files/ThreadFilesRouteScreen.tsx 684ms
     ✓ compiles src/features/home/HomeScreen.tsx 867ms
     ✓ compiles src/features/home/thread-swipe-actions.tsx 330ms
     ✓ compiles src/features/layout/AdaptiveWorkspaceLayout.tsx 661ms
     ✓ compiles src/features/projects/AddProjectScreen.tsx 509ms
     ✓ compiles src/features/pull-requests/PullRequestRouteScreen.tsx 431ms
     ✓ compiles src/features/threads/NewTaskDraftScreen.tsx 361ms
     ✓ compiles src/features/threads/ThreadComposer.tsx 477ms
     ✓ compiles src/features/threads/ThreadDetailScreen.tsx 814ms
     ✓ compiles src/features/threads/ThreadFeed.tsx 791ms
     ✓ compiles src/features/threads/new-task-flow-provider.tsx 408ms
     ✓ compiles src/features/threads/thread-work-log.tsx 400ms
     ✓ caches the thread feed derivation 730ms

 Test Files  206 passed (206)
      Tests  2413 passed (2413)
   Start at  13:30:12
   Duration  52.75s (import 39%, transform 25%, tests 23%, setup 8%, environment 4%)


---
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=__e8e92221-8c00-41c2-aa3b-954a96b5fc9f.__actions_cache]
Post job cleanup.
Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-1af206af93d733fa7c4e35fa5de35961f61c0d15b9f10a3bf0b6b76380c4d2df, not saving cache.
##[end-action id=__e8e92221-8c00-41c2-aa3b-954a96b5fc9f.__actions_cache;outcome=success;conclusion=success;duration_ms=91]
##[start-action display=Cache Vite+;id=__e8e92221-8c00-41c2-aa3b-954a96b5fc9f.vp_cache]
Post job cleanup.
Cache hit occurred on the primary key vite-plus-home-v2-Linux-X64-1.4.0-node26.12.1-pnpm@12.14.0, not saving cache.
##[end-action id=__e8e92221-8c00-41c2-aa3b-954a96b5fc9f.vp_cache;outcome=success;conclusion=success;duration_ms=61]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/f50d2711-31be-4b9a-bec8-3d2ba79e72cb' 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: 187
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 545
  BLACKSMITH_CHECK_RUN_ID: 121182441800
  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