GitHub check

Whole log, 239 KB
Current runner version: '2.338.1'
Runner name: 'blacksmith-8vcpu-ubuntu-2404-cx24rrckd2eciq5i'
Runner group name: 'blacksmith scale sets - blacksmith-8vcpu-ubuntu-2404'
Machine name: 'ip-172-31-73-130'
▸ GITHUB_TOKEN Permissions
Contents: read
Metadata: read
Secret source: None
Cache mode: write
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v6' (SHA:d23441a48e516b6c34aea4fa41551a30e30af803)
Download action repository 'actions/cache@v6' (SHA:55cc8345863c7cc4c66a329aec7e433d2d1c52a9)
Setting BLACKSMITH_ACTIONS_RESULTS_URL to https://results-receiver.actions.githubusercontent.com/
Complete job name: Test
A job started hook has been configured by the self-hosted runner administrator
▸ Run '/setup.sh'
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  BLACKSMITH_CHECK_RUN_ID: 120896817609
  BLACKSMITH_JOB_DISPLAY_NAME: Test
  GITHUB_ACTIONS_CACHE_MODE: write
Logging daemon started (blacksmithd for logs)
Results daemon started (blacksmithd for results)
Background adoption and SSH setup started (PID: 3171)

----------------------------------------
View this job: https://app.blacksmith.sh/pingdotgg/runs/40102304653/jobs/120896817609
SSH Access (using your GitHub SSH key):
  ssh -p 64000 runner@blacksmith-8vcpu-ubuntu-2404-cx24rrckd2eciq5i.vm.blacksmith.sh

No GitHub SSH key? Add one at:
https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account

----------------------------------------

VM ID: blacksmith-8vcpu-ubuntu-2404-cx24rrckd2eciq5i
Host: production-152.236.39.61-x8664
Host Agent PID: 31282
Host Agent Git SHA: 1637818df
Host CPU Manufacturer: AuthenticAMD
Blacksmith Host Generation: gen 2
Petname: production-optimum-monarch-f71052a0
Region: us-east
Rootfs Version: ubuntu24-full-x64-081926
OS Version: Ubuntu 24.04.4 LTS

Enabling Blacksmith transparent cache
▸ Run actions/checkout@v6
with:
  sparse-checkout: /*
!/.repos/
!/apps/mobile/modules/t3-terminal/Vendor/**/*.a

  sparse-checkout-cone-mode: false
  repository: pingdotgg/t3code
  token: ***
  ssh-strict: true
  ssh-user: git
  persist-credentials: true
  clean: true
  fetch-depth: 1
  fetch-tags: false
  show-progress: true
  lfs: false
  submodules: false
  set-safe-directory: true
  allow-unsafe-pr-checkout: false
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Syncing repository: pingdotgg/t3code
▸ Getting Git version info
Working directory is '/home/runner/_work/t3code/t3code'
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/2383bde8-9c8b-4ea5-b50d-b32dfd0c552a' 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
Deleting the contents of '/home/runner/_work/t3code/t3code'
▸ Determining repository object format
▸ Initializing the repository
[command]/usr/local/bin/git init /home/runner/_work/t3code/t3code
hint: Using 'master' as the name for the initial branch. This default branch name
hint: will change to "main" in Git 3.0. To configure the initial branch name
hint: to use in all of your new repositories, which will suppress this warning,
hint: call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /home/runner/_work/t3code/t3code/.git/
[command]/usr/local/bin/git remote add origin https://github.com/pingdotgg/t3code
▸ Disabling automatic garbage collection
[command]/usr/local/bin/git config --local gc.auto 0
▸ Setting up auth
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' || :"
Removing HTTP extra header
[command]/usr/local/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/local/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/usr/local/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
[command]/usr/local/bin/git config --file /home/runner/_work/_temp/git-credentials-b4baa0e7-e19b-4549-acd2-8f2c3f52dd97.config http.https://github.com/.extraheader AUTHORIZATION: basic ***
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git.path /home/runner/_work/_temp/git-credentials-b4baa0e7-e19b-4549-acd2-8f2c3f52dd97.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git/worktrees/*.path /home/runner/_work/_temp/git-credentials-b4baa0e7-e19b-4549-acd2-8f2c3f52dd97.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-b4baa0e7-e19b-4549-acd2-8f2c3f52dd97.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-b4baa0e7-e19b-4549-acd2-8f2c3f52dd97.config
▸ Fetching the repository
[command]/usr/local/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --filter=blob:none --depth=1 origin +cd72644f92665bc473e566ba1a0b762bcb3319f5:refs/remotes/pull/23848/merge
From https://github.com/pingdotgg/t3code
 * [new ref]         cd72644f92665bc473e566ba1a0b762bcb3319f5 -> pull/23848/merge
▸ Determining the checkout info
▸ Setting up sparse checkout
[command]/usr/local/bin/git config core.sparseCheckout true
[command]/usr/local/bin/git rev-parse --git-path info/sparse-checkout
.git/info/sparse-checkout
▸ Checking out the ref
[command]/usr/local/bin/git checkout --progress --force refs/remotes/pull/23848/merge
Updating files:   0% (1/6400)
Updating files:   1% (64/6400)
Updating files:   2% (128/6400)
Updating files:   3% (192/6400)
Updating files:   4% (256/6400)
Updating files:   5% (320/6400)
Updating files:   6% (384/6400)
Updating files:   7% (448/6400)
Updating files:   8% (512/6400)
Updating files:   9% (576/6400)
Updating files:  10% (640/6400)
Updating files:  11% (704/6400)
Updating files:  12% (768/6400)
Updating files:  13% (832/6400)
Updating files:  14% (896/6400)
Updating files:  15% (960/6400)
Updating files:  16% (1024/6400)
Updating files:  17% (1088/6400)
Updating files:  18% (1152/6400)
Updating files:  19% (1216/6400)
Updating files:  20% (1280/6400)
Updating files:  21% (1344/6400)
Updating files:  22% (1408/6400)
Updating files:  23% (1472/6400)
Updating files:  24% (1536/6400)
Updating files:  25% (1600/6400)
Updating files:  26% (1664/6400)
Updating files:  27% (1728/6400)
Updating files:  28% (1792/6400)
Updating files:  29% (1856/6400)
Updating files:  30% (1920/6400)
Updating files:  31% (1984/6400)
Updating files:  32% (2048/6400)
Updating files:  33% (2112/6400)
Updating files:  34% (2176/6400)
Updating files:  35% (2240/6400)
Updating files:  36% (2304/6400)
Updating files:  37% (2368/6400)
Updating files:  38% (2432/6400)
Updating files:  39% (2496/6400)
Updating files:  40% (2560/6400)
Updating files:  41% (2624/6400)
Updating files:  42% (2688/6400)
Updating files:  43% (2752/6400)
Updating files:  44% (2816/6400)
Updating files:  45% (2880/6400)
Updating files:  46% (2944/6400)
Updating files:  47% (3008/6400)
Updating files:  48% (3072/6400)
Updating files:  49% (3136/6400)
Updating files:  50% (3200/6400)
Updating files:  51% (3264/6400)
Updating files:  52% (3328/6400)
Updating files:  53% (3392/6400)
Updating files:  54% (3456/6400)
Updating files:  55% (3520/6400)
Updating files:  56% (3584/6400)
Updating files:  57% (3648/6400)
Updating files:  58% (3712/6400)
Updating files:  59% (3776/6400)
Updating files:  60% (3840/6400)
Updating files:  61% (3904/6400)
Updating files:  62% (3968/6400)
Updating files:  63% (4032/6400)
Updating files:  64% (4096/6400)
Updating files:  65% (4160/6400)
Updating files:  66% (4224/6400)
Updating files:  67% (4288/6400)
Updating files:  68% (4352/6400)
Updating files:  69% (4416/6400)
Updating files:  70% (4480/6400)
Updating files:  71% (4544/6400)
Updating files:  72% (4608/6400)
Updating files:  73% (4672/6400)
Updating files:  74% (4736/6400)
Updating files:  75% (4800/6400)
Updating files:  76% (4864/6400)
Updating files:  77% (4928/6400)
Updating files:  78% (4992/6400)
Updating files:  79% (5056/6400)
Updating files:  80% (5120/6400)
Updating files:  81% (5184/6400)
Updating files:  82% (5248/6400)
Updating files:  83% (5312/6400)
Updating files:  84% (5376/6400)
Updating files:  85% (5440/6400)
Updating files:  86% (5504/6400)
Updating files:  87% (5568/6400)
Updating files:  88% (5632/6400)
Updating files:  89% (5696/6400)
Updating files:  90% (5760/6400)
Updating files:  91% (5824/6400)
Updating files:  92% (5888/6400)
Updating files:  93% (5952/6400)
Updating files:  94% (6016/6400)
Updating files:  95% (6080/6400)
Updating files:  96% (6144/6400)
Updating files:  97% (6208/6400)
Updating files:  98% (6272/6400)
Updating files:  99% (6336/6400)
Updating files: 100% (6400/6400)
Updating files: 100% (6400/6400), done.
Note: switching to 'refs/remotes/pull/23848/merge'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at cd72644 Merge a4c2fe0f81c3fd21b21093861c28a04110ad1840 into d53873b6a4799e87afd63c8d288ef0089f5a3748
[command]/usr/local/bin/git log -1 --format=%H
cd72644f92665bc473e566ba1a0b762bcb3319f5
▸ Run sudo apt-get update
sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential
command -v cc
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Get:1 file:/etc/apt/blacksmith-ubuntu-mirrors.txt Mirrorlist [194 B]
Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B]
Get:8 https://dl.google.com/linux/chrome-stable/deb stable InRelease [2548 B]
Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1400 kB]
Get:10 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [181 kB]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1706 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [388 kB]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [5764 B]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [12.6 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [46.4 kB]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [76.3 kB]
Get:18 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [652 kB]
Get:19 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [589 kB]
Get:20 https://dl.google.com/linux/chrome-stable/deb stable/main amd64 Packages [1410 B]
Fetched 5444 kB in 0s (15.3 MB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
  build-essential
0 upgraded, 1 newly installed, 0 to remove and 258 not upgraded.
Need to get 4928 B of archives.
After this operation, 17.4 kB of additional disk space will be used.
Get:1 file:/etc/apt/blacksmith-ubuntu-mirrors.txt Mirrorlist [194 B]
Get:2 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 build-essential amd64 12.10ubuntu1 [4928 B]
Fetched 4928 B in 0s (136 kB/s)
Selecting previously unselected package build-essential.
(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 ... 207973 files and directories currently installed.)
Preparing to unpack .../build-essential_12.10ubuntu1_amd64.deb ...
Unpacking build-essential (12.10ubuntu1) ...
Setting up build-essential (12.10ubuntu1) ...

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.
/usr/bin/cc
Prepare all required actions
▸ Run ./.github/actions/setup-apt-mirrors
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Run # Replace the existing Blacksmith mirror list as well as direct sources.;id=__self.__run]
▸ Run # Replace the existing Blacksmith mirror list as well as direct sources.
# Replace the existing Blacksmith mirror list as well as direct sources.
printf '%s\tpriority:%s\n' \
  https://archive.ubuntu.com/ubuntu 1 \
  https://mirrors.edge.kernel.org/ubuntu 2 \
  https://mirror.math.princeton.edu/pub/ubuntu 3 \
  | sudo tee /etc/apt/blacksmith-ubuntu-mirrors.txt > /dev/null

# APT's mirror transport retries each file against the next server.
sudo find /etc/apt -maxdepth 2 -type f \( -name '*.list' -o -name '*.sources' \) \
  -exec sed -i -E \
  's#https?://(([^/]+\.)?archive|security)\.ubuntu\.com/ubuntu/?#mirror+file:/etc/apt/blacksmith-ubuntu-mirrors.txt#g' {} +

# Move on to a fallback before an unreachable server exhausts the job.
printf '%s\n' 'Acquire::http::Timeout "15";' 'Acquire::https::Timeout "15";' \
  | sudo tee /etc/apt/apt.conf.d/80-mirror-timeouts > /dev/null
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self.__run;outcome=success;conclusion=success;duration_ms=26]
▸ Run sudo sed -i 's|http://|https://|g' /etc/apt/blacksmith-ubuntu-mirrors.txt /etc/apt/sources.list.d/ubuntu.sources
sudo sed -i 's|http://|https://|g' /etc/apt/blacksmith-ubuntu-mirrors.txt /etc/apt/sources.list.d/ubuntu.sources
(
  set +e
  sudo apt-get update && sudo apt-get install -y libsecret-1-dev pkg-config
  echo "$?" > "$RUNNER_TEMP/apt-status"
) > "$RUNNER_TEMP/apt.log" 2>&1 < /dev/null &
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Prepare all required actions
Getting action download info
Download action repository 'voidzero-dev/setup-vp@v1' (SHA:250f29ce396baf5e8f24498e17c0dfdebabc26eb)
▸ Run ./.github/actions/setup-ci-deps
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Resolve Vite+ version;id=__self_2.vp]
▸ Run echo "version=$(sed -nE 's/^  vite-plus: ([0-9][^ ]*)$/\1/p' pnpm-workspace.yaml)" >> "$GITHUB_OUTPUT"
echo "version=$(sed -nE 's/^  vite-plus: ([0-9][^ ]*)$/\1/p' pnpm-workspace.yaml)" >> "$GITHUB_OUTPUT"
echo "node=$(jq -r '.engines.node' package.json)" >> "$GITHUB_OUTPUT"
echo "pnpm=$(jq -r '.packageManager' package.json)" >> "$GITHUB_OUTPUT"
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self_2.vp;outcome=success;conclusion=success;duration_ms=9]
##[start-action display=Cache Vite+;id=__self_2.vp_cache]
▸ Run actions/cache@v6
with:
  path: ~/.vite-plus
  key: vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0
  enableCrossOsArchive: false
  fail-on-cache-miss: false
  lookup-only: false
  save-always: false
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0
Received 170349591 of 170349591 (100.0%), 512.5 MBs/sec
Cache Size: ~162 MB (170349591 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/c66a959f-d724-4b98-ae6f-021f878f758e/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0
##[end-action id=__self_2.vp_cache;outcome=success;conclusion=success;duration_ms=3607]
##[start-action display=Use cached Vite+;id=__self_2.__run]
▸ Run echo "$HOME/.vite-plus/bin" >> "$GITHUB_PATH"
echo "$HOME/.vite-plus/bin" >> "$GITHUB_PATH"
"$HOME/.vite-plus/bin/vp" env use "26.12.1"
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Using Node.js v26.12.1 (resolved from 26.12.1)
##[end-action id=__self_2.__run;outcome=success;conclusion=success;duration_ms=6]
##[start-action display=Setup Vite+;id=__self_2.__voidzero-dev_setup-vp]
##[end-action id=__self_2.__voidzero-dev_setup-vp;outcome=skipped;conclusion=skipped;duration_ms=0]
##[start-action display=Resolve pnpm store path;id=__self_2.pnpm_store]
▸ Run store_path="$(vp pm cache dir)"
store_path="$(vp pm cache dir)"
echo "path=$store_path" >> "$GITHUB_OUTPUT"
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self_2.pnpm_store;outcome=success;conclusion=success;duration_ms=14]
##[start-action display=Cache full pnpm store;id=__self_2.__actions_cache]
▸ Run actions/cache@v6
with:
  path: /home/runner/.local/share/pnpm/store/v11
  key: pnpm-full-v1-Linux-X64-fa50cf9b003d547cd32552f61b874eb4abe5dace3fdb4b1abd9610da2da24074
  restore-keys: pnpm-full-v1-Linux-X64-

  enableCrossOsArchive: false
  fail-on-cache-miss: false
  lookup-only: false
  save-always: false
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: pnpm-full-v1-Linux-X64-fa50cf9b003d547cd32552f61b874eb4abe5dace3fdb4b1abd9610da2da24074
Received 717225984 of 994208090 (72.1%), 684.0 MBs/sec
Received 994208090 of 994208090 (100.0%), 666.3 MBs/sec
Cache Size: ~948 MB (994208090 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/f11f361b-a72f-40c7-a66e-cfbc15f27d55/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: pnpm-full-v1-Linux-X64-fa50cf9b003d547cd32552f61b874eb4abe5dace3fdb4b1abd9610da2da24074
##[end-action id=__self_2.__actions_cache;outcome=success;conclusion=success;duration_ms=6720]
##[start-action display=Install dependencies;id=__self_2.__run_2]
▸ Run vp install
vp install
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Scope: all 34 workspace projects
? Verifying lockfile against supply-chain policies (2088 entries)...
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: /home/runner/.local/share/pnpm/store/v11
  Virtual store is at:             node_modules/.pnpm
✓ Lockfile passes supply-chain policies (2088 entries in 2.6s)
Lockfile is up to date, resolution step is skipped
Packages: +1721
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1721, reused 1718, downloaded 0, added 1721, done
. prepare$ vp config --no-agent
. prepare: Done

devDependencies:
+ @coderabbitai/config 1.1.0
+ @shadcn/lint 0.1.5
+ @types/node 24.12.4
+ knip 6.34.0
+ typescript <- @tsc-rs/typescript 0.8.0
+ vite-plus 1.3.0

Done in 3.8s using pnpm v12.14.0
##[end-action id=__self_2.__run_2;outcome=success;conclusion=success;duration_ms=3801]
▸ Run actions/cache@v6
with:
  path: ~/.cache/electron
  key: electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309
  enableCrossOsArchive: false
  fail-on-cache-miss: false
  lookup-only: false
  save-always: false
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309
Received 122906203 of 122906203 (100.0%), 825.4 MBs/sec
Cache Size: ~117 MB (122906203 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/d4ac992a-7c77-4485-90cc-d081d9234d3e/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309
▸ Run vp run --filter @t3tools/desktop ensure:electron
vp run --filter @t3tools/desktop ensure:electron
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
~/apps/desktop$ node scripts/ensure-electron-runtime.mjs ⊘ cache disabled
/home/runner/_work/t3code/t3code/node_modules/.pnpm/electron@44.9.3_supports-color@8.1.1/node_modules/electron/dist/electron

▸ Run python3 -B .github/scripts/stage-preview-bundle.test.py
python3 -B .github/scripts/stage-preview-bundle.test.py
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
......
----------------------------------------------------------------------
Ran 6 tests in 0.004s

OK
▸ Run node --test .github/scripts/check-nightly-release.test.cjs .github/scripts/vercel-deployment-output.test.cjs
node --test .github/scripts/check-nightly-release.test.cjs .github/scripts/vercel-deployment-output.test.cjs
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
✔ allows preview releases from any branch without consulting main (0.469078ms)
✔ rejects a manual stable release from a feature branch (0.335228ms)
✔ rejects a manual nightly release from a feature branch (0.4059ms)
✔ rejects a release commit that is behind from main (0.124153ms)
✔ rejects a release commit that is diverged from main (0.068047ms)
✔ releases the first nightly when no nightly is published (0.339225ms)
✔ uses publication time, not release order or the tagged commit date (0.116287ms)
✔ ignores stable releases and drafts when checking the gap (0.072446ms)
✔ fails instead of releasing when GitHub cannot supply release state (0.09628ms)
✔ skips a candidate commit that is behind relative to the last nightly (0.150272ms)
✔ skips a candidate commit that is diverged relative to the last nightly (0.059522ms)
✔ stable releases resolve the commit of the newest published nightly (0.488063ms)
✔ stable releases derive the version from legacy nightly tags (0.099616ms)
✔ hosted web: saves one deployment URL after plain URL (4.119982ms)
✔ hosted web: saves one deployment URL after lockfile warning (2.3988ms)
✔ hosted web: saves one deployment URL after trailing diagnostic (2.094841ms)
✔ hosted web: rejects missing URL without saving output (1.915746ms)
✔ hosted web: rejects invalid URL without saving output (1.936425ms)
✔ hosted web: rejects multiple URLs without saving output (1.859891ms)
✔ hosted web: rejects failed deployment without saving output (1.197863ms)
✔ marketing: saves one deployment URL after plain URL (2.90101ms)
✔ marketing: saves one deployment URL after lockfile warning (3.217001ms)
✔ marketing: saves one deployment URL after trailing diagnostic (2.793208ms)
✔ marketing: rejects missing URL without saving output (2.771919ms)
✔ marketing: rejects invalid URL without saving output (2.657935ms)
✔ marketing: rejects multiple URLs without saving output (2.798609ms)
✔ marketing: rejects failed deployment without saving output (2.075215ms)
✔ web preview: saves one deployment URL after plain URL (1.748373ms)
✔ web preview: saves one deployment URL after lockfile warning (1.659416ms)
✔ web preview: saves one deployment URL after trailing diagnostic (1.689522ms)
✔ web preview: rejects missing URL without saving output (1.512872ms)
✔ web preview: rejects invalid URL without saving output (1.594775ms)
✔ web preview: rejects multiple URLs without saving output (1.682289ms)
✔ web preview: rejects failed deployment without saving output (1.133662ms)
ℹ tests 34
ℹ suites 0
ℹ pass 34
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 81.288881
▸ Run until test -s "$RUNNER_TEMP/apt-status"; do sleep 1; done
until test -s "$RUNNER_TEMP/apt-status"; do sleep 1; done
cat "$RUNNER_TEMP/apt.log"
exit "$(cat "$RUNNER_TEMP/apt-status")"
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
blacksmith: the apt mirror lists changed since the package indexes were staged; discarding the staged indexes
Get:1 file:/etc/apt/blacksmith-ubuntu-mirrors.txt Mirrorlist [151 B]
Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
Hit:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease
Hit:8 https://dl.google.com/linux/chrome-stable/deb stable InRelease
Get:2 https://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
Get:3 https://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:4 https://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:5 https://archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:9 https://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1401 kB]
Get:10 https://archive.ubuntu.com/ubuntu noble/main Translation-en [513 kB]
Get:11 https://archive.ubuntu.com/ubuntu noble/main amd64 Components [464 kB]
Get:12 https://archive.ubuntu.com/ubuntu noble/main amd64 c-n-f Metadata [30.5 kB]
Get:13 https://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [15.0 MB]
Get:14 https://archive.ubuntu.com/ubuntu noble/universe Translation-en [5982 kB]
Get:15 https://archive.ubuntu.com/ubuntu noble/universe amd64 Components [3871 kB]
Get:16 https://archive.ubuntu.com/ubuntu noble/universe amd64 c-n-f Metadata [301 kB]
Get:17 https://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [93.9 kB]
Get:18 https://archive.ubuntu.com/ubuntu noble/restricted Translation-en [18.7 kB]
Get:19 https://archive.ubuntu.com/ubuntu noble/restricted amd64 c-n-f Metadata [416 B]
Get:20 https://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [269 kB]
Get:21 https://archive.ubuntu.com/ubuntu noble/multiverse Translation-en [118 kB]
Get:22 https://archive.ubuntu.com/ubuntu noble/multiverse amd64 Components [35.0 kB]
Get:23 https://archive.ubuntu.com/ubuntu noble/multiverse amd64 c-n-f Metadata [8328 B]
Get:24 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1400 kB]
Get:25 https://archive.ubuntu.com/ubuntu noble-updates/main Translation-en [310 kB]
Get:26 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [181 kB]
Get:27 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 c-n-f Metadata [17.7 kB]
Get:28 https://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1706 kB]
Get:29 https://archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [342 kB]
Get:30 https://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [388 kB]
Get:31 https://archive.ubuntu.com/ubuntu noble-updates/universe amd64 c-n-f Metadata [34.9 kB]
Get:32 https://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [1805 kB]
Get:33 https://archive.ubuntu.com/ubuntu noble-updates/restricted Translation-en [411 kB]
Get:34 https://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:35 https://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 c-n-f Metadata [456 B]
Get:36 https://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [50.7 kB]
Get:37 https://archive.ubuntu.com/ubuntu noble-updates/multiverse Translation-en [14.0 kB]
Get:38 https://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:39 https://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 c-n-f Metadata [656 B]
Get:40 https://archive.ubuntu.com/ubuntu noble-backports/main amd64 Packages [40.6 kB]
Get:41 https://archive.ubuntu.com/ubuntu noble-backports/main Translation-en [9172 B]
Get:42 https://archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [5764 B]
Get:43 https://archive.ubuntu.com/ubuntu noble-backports/main amd64 c-n-f Metadata [368 B]
Get:44 https://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [31.0 kB]
Get:45 https://archive.ubuntu.com/ubuntu noble-backports/universe Translation-en [18.6 kB]
Get:46 https://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [12.6 kB]
Get:47 https://archive.ubuntu.com/ubuntu noble-backports/universe amd64 c-n-f Metadata [1588 B]
Get:48 https://archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
Get:49 https://archive.ubuntu.com/ubuntu noble-backports/restricted amd64 c-n-f Metadata [116 B]
Get:50 https://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Packages [748 B]
Get:51 https://archive.ubuntu.com/ubuntu noble-backports/multiverse Translation-en [340 B]
Get:52 https://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:53 https://archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 c-n-f Metadata [116 B]
Get:54 https://archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [1146 kB]
Get:55 https://archive.ubuntu.com/ubuntu noble-security/main Translation-en [231 kB]
Get:56 https://archive.ubuntu.com/ubuntu noble-security/main amd64 Components [46.4 kB]
Get:57 https://archive.ubuntu.com/ubuntu noble-security/main amd64 c-n-f Metadata [11.9 kB]
Get:58 https://archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1222 kB]
Get:59 https://archive.ubuntu.com/ubuntu noble-security/universe Translation-en [246 kB]
Get:60 https://archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [76.3 kB]
Get:61 https://archive.ubuntu.com/ubuntu noble-security/universe amd64 c-n-f Metadata [24.2 kB]
Get:62 https://archive.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [1713 kB]
Get:63 https://archive.ubuntu.com/ubuntu noble-security/restricted Translation-en [392 kB]
Get:64 https://archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B]
Get:65 https://archive.ubuntu.com/ubuntu noble-security/restricted amd64 c-n-f Metadata [444 B]
Get:66 https://archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [45.4 kB]
Get:67 https://archive.ubuntu.com/ubuntu noble-security/multiverse Translation-en [12.1 kB]
Get:68 https://archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
Get:69 https://archive.ubuntu.com/ubuntu noble-security/multiverse amd64 c-n-f Metadata [468 B]
Fetched 40.7 MB in 3s (14.7 MB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
pkg-config is already the newest version (1.8.1-2build1).
The following additional packages will be installed:
  bsdextrautils bsdutils eject fdisk gir1.2-glib-2.0 gir1.2-secret-1
  libblkid-dev libblkid1 libfdisk1 libgcrypt20 libgcrypt20-dev
  libgirepository-2.0-0 libglib2.0-0t64 libglib2.0-bin libglib2.0-data
  libglib2.0-dev libglib2.0-dev-bin libgpg-error-dev libmount-dev libmount1
  libsecret-1-0 libsecret-common libselinux1-dev libsepol-dev libsmartcols1
  libuuid1 mount util-linux uuid-dev uuid-runtime
Suggested packages:
  rng-tools libgcrypt20-doc low-memory-monitor gir1.2-glib-2.0-dev
  libglib2.0-doc libxml2-utils nfs-common util-linux-extra util-linux-locales
The following NEW packages will be installed:
  gir1.2-secret-1 libblkid-dev libgcrypt20-dev libgirepository-2.0-0
  libglib2.0-dev libglib2.0-dev-bin libgpg-error-dev libmount-dev
  libsecret-1-0 libsecret-1-dev libsecret-common libselinux1-dev libsepol-dev
  uuid-dev
The following packages will be upgraded:
  bsdextrautils bsdutils eject fdisk gir1.2-glib-2.0 libblkid1 libfdisk1
  libgcrypt20 libglib2.0-0t64 libglib2.0-bin libglib2.0-data libmount1
  libsmartcols1 libuuid1 mount util-linux uuid-runtime
17 upgraded, 14 newly installed, 0 to remove and 241 not upgraded.
Need to get 8378 kB of archives.
After this operation, 23.0 MB of additional disk space will be used.
Get:1 file:/etc/apt/blacksmith-ubuntu-mirrors.txt Mirrorlist [151 B]
Get:2 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 bsdutils amd64 1:2.39.3-9ubuntu6.6 [96.4 kB]
Get:3 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 util-linux amd64 2.39.3-9ubuntu6.6 [1128 kB]
Get:4 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 mount amd64 2.39.3-9ubuntu6.6 [118 kB]
Get:5 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsmartcols1 amd64 2.39.3-9ubuntu6.6 [66.3 kB]
Get:6 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libuuid1 amd64 2.39.3-9ubuntu6.6 [36.6 kB]
Get:7 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 uuid-runtime amd64 2.39.3-9ubuntu6.6 [33.1 kB]
Get:8 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libblkid1 amd64 2.39.3-9ubuntu6.6 [124 kB]
Get:9 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcrypt20 amd64 1.10.3-2ubuntu0.2 [536 kB]
Get:10 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmount1 amd64 2.39.3-9ubuntu6.6 [134 kB]
Get:11 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 eject amd64 2.39.3-9ubuntu6.6 [26.3 kB]
Get:12 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-data all 2.80.0-6ubuntu3.10 [50.2 kB]
Get:13 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-bin amd64 2.80.0-6ubuntu3.10 [97.9 kB]
Get:14 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-glib-2.0 amd64 2.80.0-6ubuntu3.10 [183 kB]
Get:15 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-0t64 amd64 2.80.0-6ubuntu3.10 [1548 kB]
Get:16 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libfdisk1 amd64 2.39.3-9ubuntu6.6 [146 kB]
Get:17 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 bsdextrautils amd64 2.39.3-9ubuntu6.6 [73.7 kB]
Get:18 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 fdisk amd64 2.39.3-9ubuntu6.6 [122 kB]
Get:19 https://archive.ubuntu.com/ubuntu noble/main amd64 libsecret-common all 0.21.4-1build3 [4962 B]
Get:20 https://archive.ubuntu.com/ubuntu noble/main amd64 libsecret-1-0 amd64 0.21.4-1build3 [116 kB]
Get:21 https://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-secret-1 amd64 0.21.4-1build3 [9424 B]
Get:22 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgpg-error-dev amd64 1.47-3build2.1 [128 kB]
Get:23 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcrypt20-dev amd64 1.10.3-2ubuntu0.2 [596 kB]
Get:24 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgirepository-2.0-0 amd64 2.80.0-6ubuntu3.10 [73.5 kB]
Get:25 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-dev-bin amd64 2.80.0-6ubuntu3.10 [138 kB]
Get:26 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 uuid-dev amd64 2.39.3-9ubuntu6.6 [33.5 kB]
Get:27 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libblkid-dev amd64 2.39.3-9ubuntu6.6 [205 kB]
Get:28 https://archive.ubuntu.com/ubuntu noble/main amd64 libsepol-dev amd64 3.5-2build1 [384 kB]
Get:29 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libselinux1-dev amd64 3.5-2ubuntu2.1 [164 kB]
Get:30 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmount-dev amd64 2.39.3-9ubuntu6.6 [14.9 kB]
Get:31 https://archive.ubuntu.com/ubuntu noble-updates/main amd64 libglib2.0-dev amd64 2.80.0-6ubuntu3.10 [1861 kB]
Get:32 https://archive.ubuntu.com/ubuntu noble/universe amd64 libsecret-1-dev amd64 0.21.4-1build3 [129 kB]
Fetched 8378 kB in 3s (2445 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-timedated.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[1846]

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: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  GITHUB_REPO_NAME: pingdotgg/t3code
  TEST_PACKAGES: @t3tools/desktop @t3tools/mobile t3code-relay @t3tools/client-runtime @t3tools/provider-pi @t3tools/source-control-gitlab @t3tools/scripts
~/apps/desktop$ vp test run --passWithNoTests ⊘ cache disabled
~/packages/provider-pi$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
~/packages/client-runtime$ vp test run ⊘ cache disabled
~/packages/source-control-gitlab$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled


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

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


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


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

 ✓ src/server/mcpExtensionSource.test.ts (24 tests) 231ms
 ✓ src/preview/BrowserImport/Sources.test.ts (25 tests) 297ms
 ✓ src/server/commands.test.ts (1 test) 2ms
 ✓ src/server/gitLabMergeRequestJson.test.ts (29 tests) 37ms
 ✓ src/server/mcpInjection.test.ts (3 tests) 14ms
 ✓ src/server/GitLabPullRequestCli.test.ts (42 tests) 53ms
 ✓ src/server/GitLabCli.test.ts (5 tests) 10ms
 ✓ src/server/GitLabPullRequestProvider.test.ts (7 tests) 11ms
 ✓ src/server/GitLabPullRequestCli.legacy.test.ts (14 tests) 47ms
 ✓ src/server/GitLabSourceControlProvider.test.ts (12 tests) 22ms
 ✓ src/server/status.test.ts (6 tests) 47ms
 ✓ src/server/textGeneration.test.ts (1 test) 32ms
 ✓ src/authorization/layer.test.ts (23 tests) 224ms
 ✓ src/app/DesktopLinuxUrlHandler.test.ts (13 tests) 90ms
 ✓ src/server/GitLabSourceControlProvider.git.test.ts (3 tests) 344ms
 ✓ src/shared/definition.test.ts (6 tests) 3ms
 ✓ src/state/runtime.test.ts (23 tests) 69ms
 ✓ src/server/driver.test.ts (5 tests) 99ms
 ✓ src/server/gitLabDiscovery.test.ts (3 tests) 13ms
 ✓ src/server/GitLabPullRequestProvider.rateLimit.test.ts (1 test) 12ms

 Test Files  10 passed (10)
      Tests  122 passed (122)
   Start at  14:24:32
   Duration  2.75s (transform 51%, import 37%, setup 8%, tests 4%)

 ✓ src/connection/supervisor.test.ts (30 tests) 272ms

~/apps/mobile$ vp test run --project unit --project react ⊘ cache disabled
 ✓ src/window/DesktopWindow.test.ts (20 tests) 95ms
 ✓ src/rpc/session.test.ts (14 tests) 341ms
 ✓ src/connection/registry.test.ts (41 tests) 275ms
 ✓ src/backend/DesktopBackendConfiguration.test.ts (17 tests) 157ms

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

 ✓ src/preview/Manager.test.ts (55 tests) 431ms
 ✓ src/backend/DesktopBackendManager.test.ts (7 tests) 78ms
 ✓ src/updates/DesktopRemoteUpdates.test.ts (17 tests) 204ms
 ✓ src/updates/DesktopUpdates.test.ts (27 tests) 375ms
 ✓ src/snapShot/DesktopSnapShot.test.ts (49 tests) 403ms
 ✓ src/state/server.test.ts (19 tests) 89ms
 ✓ src/operations/commands.test.ts (14 tests) 53ms
 ✓ src/state/shell-sync.test.ts (6 tests) 118ms
 ✓ src/state/threads-sync.test.ts (36 tests) 579ms
 ✓ src/state/pullRequests.test.ts (56 tests) 1400ms
   ✓ returns a successful mutation when source invalidation stalls 1013ms
 ✓  react  src/components/ui/Dialog.android.test.tsx (1 test) 36ms
 ✓ src/snapShot/snapShot.test.ts (36 tests) 26ms
 ✓ src/preview/BrowserImport/ChromiumCookies.test.ts (10 tests) 170ms
 ✓ src/state/vcs.test.ts (9 tests) 110ms
 ✓ src/voice-input/controller.test.ts (22 tests) 51ms
 ✓ src/telemetry/DesktopTelemetryPublisher.test.ts (3 tests) 46ms
 ✓ src/state/environmentHttpAuth.test.ts (32 tests) 303ms
 ✓  react  src/native/NativeHeaderToolbar.test.tsx (4 tests) 54ms
 ✓ src/app/DesktopClerk.test.ts (15 tests) 136ms
 ✓ src/preview/FaviconCapture.test.ts (24 tests) 67ms
 ✓ src/server/adapter.test.ts (87 tests) 2255ms
   ✓ PiAdapterV2 (85)
     ✓ delivers realistic MCP screenshots through the bridge, JSONL transport, and adapter 692ms

 Test Files  7 passed (7)
      Tests  127 passed (127)
   Start at  14:24:32
   Duration  4.74s (transform 44%, import 33%, tests 17%, setup 7%)

 ✓ src/backend/DesktopServerExposure.test.ts (10 tests) 269ms

~/scripts$ vp test run --config ../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/state/orchestrationV2Projection.test.ts (15 tests) 34ms
 ✓ src/connection/onboarding.test.ts (13 tests) 62ms
 ✓ src/preview/BrowserImport/FirefoxCookies.test.ts (11 tests) 139ms
 ✓ src/wsl/DesktopWslServerTree.test.ts (8 tests) 193ms
 ✓ src/state/entities.test.ts (16 tests) 38ms
 ✓ src/state/vcsAction.test.ts (9 tests) 105ms
 ✓ src/snapShot/PortalCaptureShortcut.test.ts (20 tests) 35ms

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

 ✓ src/preview/Passkeys.test.ts (6 tests) 51ms
 ✓ src/relay/managedRelay.test.ts (7 tests) 117ms
 ✓ src/state/threads-atoms.test.ts (4 tests) 207ms
 ✓ src/app/DesktopObservability.test.ts (5 tests) 307ms
 ✓ src/state/threadCommands.test.ts (22 tests) 223ms
 ✓ src/settings/DesktopAppSettings.test.ts (11 tests) 120ms
 ✓ src/threadPullRequests.test.ts (23 tests) 26ms
 ✓ src/shell/DesktopShellEnvironment.test.ts (12 tests) 34ms
 ✓ lib/third-party-licenses.test.ts (19 tests) 139ms
 ✓ src/relay/discovery.test.ts (7 tests) 97ms
 ✓ src/snapShot/CaptureShortcutConfig.test.ts (16 tests) 105ms
 ✓ src/connection/routes.test.ts (19 tests) 33ms
 ✓ src/preview/BrowserSession.test.ts (7 tests) 24ms
 ✓ notify-discord-release.test.ts (15 tests) 281ms
 ✓ src/wsl/DesktopWslEnvironment.test.ts (17 tests) 2340ms
   ✓ WSL runtime install script (executed) (12)
     ✓ extracts once when two installs race for the same cache 1136ms
 ✓ src/rpc/client.test.ts (8 tests) 141ms
 ✓ dev-runner.test.ts (31 tests) 147ms
 ✓ merge-update-manifests.test.ts (5 tests) 38ms
 ✓ src/platform/storageDocument.test.ts (13 tests) 32ms
 ✓  react  src/features/settings/components/BranchNamingSettings.test.tsx (4 tests) 78ms
 ✓  react  src/state/use-selected-thread-git-actions.test.tsx (1 test) 39ms
 ✓ legend-list-initial-reveal.test.ts (10 tests) 52ms
 ✓ src/state/threadShell.test.ts (9 tests) 38ms
 ✓ src/snapShot/LinuxSnapShot.test.ts (19 tests) 50ms
 ✓ src/sourceControlClients.test.ts (35 tests) 19ms
 ✓ src/device/stream.test.ts (14 tests) 63ms
 ✓ lib/cli-external-packages.test.ts (10 tests) 634ms
   ✓ external package dependency closure (1)
     ✓ keeps every runtime dependency of an external package external too 579ms
 ✓ src/app/DesktopLifecycle.test.ts (6 tests) 37ms
 ✓ build-npm-launcher.test.ts (1 test) 836ms
   ✓ build-npm-launcher (1)
     ✓ publishes a launcher that downloads, verifies, caches, and runs the release executable 807ms
 ✓ lib/dev-share.test.ts (5 tests) 30ms
 ✓ update-release-package-versions.test.ts (3 tests) 35ms
 ✓  unit  src/lib/threadActivity.test.ts (36 tests) 184ms
 ✓ src/state/projectGrouping.test.ts (20 tests) 29ms
 ✓ src/app/DesktopConnectionCatalogStore.test.ts (5 tests) 117ms
 ✓ lib/public-config.test.ts (1 test) 9ms
 ✓ src/settings/DesktopClientSettings.test.ts (7 tests) 228ms
 ✓ lib/resolve-catalog.test.ts (2 tests) 6ms
 ✓ src/state/fileMetadata.test.ts (11 tests) 199ms
 ✓ mobile-native-client.test.ts (2 tests) 29ms
 ✓ src/preview/BrowserImport/SafariCookies.test.ts (9 tests) 78ms
 ✓ src/app/DesktopCliCommand.test.ts (6 tests) 141ms
 ✓ sync-reference-repos.test.ts (2 tests) 52ms
 ✓ src/state/threadExecution.test.ts (11 tests) 26ms
 ✓ src/connection/resolver.test.ts (6 tests) 60ms
 ✓ src/state/threadWorkflows.test.ts (21 tests) 5ms
 ✓ src/state/commandPermissions.test.ts (14 tests) 24ms
 ✓ src/state/threadRelationships.test.ts (11 tests) 9ms
 ✓ mobile-showcase.test.ts (3 tests) 24ms
 ✓ src/mcpApps/host.test.ts (9 tests) 25ms
 ✓ src/state/threadHistoryMerge.test.ts (7 tests) 4ms
 ✓ mock-update-server.test.ts (2 tests) 103ms
 ✓ lib/build-target-arch.test.ts (1 test) 27ms
 ✓  unit  src/features/threads/threadListV2.test.ts (58 tests) 108ms
 ✓ src/window/DesktopApplicationMenu.test.ts (3 tests) 80ms
 ✓ resolve-previous-release-tag.test.ts (3 tests) 15ms
 ✓  unit  src/state/thread-outbox.test.ts (35 tests) 95ms
 ✓  unit  src/lib/modelOptions.test.ts (29 tests) 45ms
 ✓ lib/icon-export.test.ts (1 test) 10ms
 ✓ src/preview/DesktopBrowserHost.test.ts (7 tests) 70ms
 ✓ src/snapShot/NiriSnapShot.test.ts (18 tests) 329ms
 ✓ src/connection/outdatedHostUpdate.test.ts (3 tests) 85ms
 ✓ mobile-native-static-check.test.ts (2 tests) 27ms
 ✓ src/preview/BrowserImport/ChromiumKeys.test.ts (9 tests) 56ms
 ✓ src/state/shellReducer.test.ts (14 tests) 15ms
 ✓  react  src/features/settings/SettingsServerControlsRouteScreen.test.tsx (1 test) 53ms
 ✓ src/preview/CdpRelay.test.ts (6 tests) 13ms
 ✓ src/state/threadDetail.test.ts (14 tests) 88ms
 ✓ src/settings/DesktopSavedEnvironments.test.ts (3 tests) 145ms
 ✓ src/state/threadSort.test.ts (21 tests) 188ms
 ✓ src/backend/DesktopLocalEnvironmentAuth.test.ts (3 tests) 86ms
 ✓ src/snapShot/KdeSnapShot.test.ts (9 tests) 194ms
 ✓ build-desktop-artifact.test.ts (42 tests) 3122ms
   ✓ build-desktop-artifact (40)
     ✓ rejects overlapping builds from another process until restoration finishes 1362ms
     ✓ builds web, server and desktop with the resolved version, restores changed manifests and preserves edits to matching ones 445ms
 ✓ src/state/threadSnoozed.test.ts (20 tests) 29ms
stdout | src/state/serverUsage.test.ts > keeps the cached usage summary when the awaited refresh fails
[14:24:42.778] 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) 94ms
 ✓ src/state/projectCommands.test.ts (4 tests) 106ms
 ✓ src/app/DesktopPreReadyPlatform.test.ts (4 tests) 29ms
 ✓ scripts/electron-launcher.test.mjs (7 tests) 635ms
   ✓ dev cleanup matches only the literal root argument: /tmp/t3-feature.one [two](three)+?^${four}|back\slash*/apps/desktop 349ms
stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: false)
[composer-attachments] could not remove local file TypeError: file.delete is not a function
    at removePersistedComposerAttachmentFile (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/composerImages.ts:223:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at releaseUnusedComposerAttachmentFiles (/home/runner/_work/t3code/t3code/apps/mobile/src/state/use-composer-drafts.ts:924:5)

Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Paths.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Directory.js" points to missing source files
 ✓  unit  src/features/agent-awareness/remoteRegistration.test.ts (15 tests) 593ms
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
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/global.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/EventEmitter.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/NativeModule.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/SharedObject.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/ts-declarations/SharedRef.js" points to missing source files
 ✓  unit  src/lib/composerFiles.test.ts (36 tests) 66ms
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)
 ✓ src/app/DesktopEarlyElectronStartup.test.ts (19 tests) 13ms
[composer-attachments] could not remove local file Error [RolldownError]: Parse failure: Parse failed with 1 error:
Flow is not supported
1: /**
   ^
2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
3:  *
At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
    at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-D6uA606S.mjs:166:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
    at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
    at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
    at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:21140:9)
 ✓ src/snapShot/HyprlandSnapShot.test.ts (9 tests) 97ms
    at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25564:64) {
  cause: undefined,
  __vitest_rollup_error__: {
    plugin: undefined,
    id: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js',
    loc: {
      line: 1,
      column: 0,
      file: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js'
    },
    frame: '1  |  /**\n' +
      '   |  ^\n' +
      '2  |   * Copyright (c) Meta Platforms, Inc. and affiliates.\n' +
      '3  |   *'
  },
  runnerError: Error: RunnerError
      at reviveInvokeError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:553:64)
      at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:568:33)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1217:7)
      at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1234:83)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
      at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/module-evaluator.js:261:4)
      at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1277:59)
      at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1184:73)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
}
[composer-attachments] could not remove local file Error [RolldownError]: Parse failure: Parse failed with 1 error:
Flow is not supported
1: /**
   ^
2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
3:  *
At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
    at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-D6uA606S.mjs:166:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
    at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
    at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
    at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:21140:9)
    at async loadAndTransform (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:25564:64) {
  cause: undefined,
  __vitest_rollup_error__: {
    plugin: undefined,
    id: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js',
    loc: {
      line: 1,
      column: 0,
      file: '/@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js'
    },
    frame: '1  |  /**\n' +
      '   |  ^\n' +
      '2  |   * Copyright (c) Meta Platforms, Inc. and affiliates.\n' +
      '3  |   *'
  },
  runnerError: Error: RunnerError
      at reviveInvokeError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:553:64)
      at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:568:33)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1217:7)
      at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1234:83)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
      at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/module-evaluator.js:261:4)
      at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1277:59)
      at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1184:73)
      at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
}

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

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

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

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

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

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

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

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

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

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

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

 ✓ src/operations/commands.performance.test.ts (1 test) 239ms
 ✓ src/platform/shellCacheEncoding.test.ts (5 tests) 221ms
 ✓  unit  src/lib/attachmentUpload.test.ts (28 tests) 47ms
 ✓ src/authorization/remote.test.ts (5 tests) 114ms
 ✓  unit  src/state/use-composer-drafts.test.ts (74 tests) 923ms
   ✓ mobile composer drafts (74)
     ✓ restores deleted file chips and releases undo history (uploaded: false) 313ms
 ✓ src/ipc/methods/window.test.ts (5 tests) 121ms
 ✓ src/wsl/DesktopWslBackend.test.ts (1 test) 23ms
 ✓ src/state/subagentRuntime.test.ts (11 tests) 32ms
 ✓ src/window/ContextMenuImage.test.ts (15 tests) 76ms
 ✓ src/app/DesktopAppIdentity.test.ts (5 tests) 32ms
 ✓ src/electron/ElectronProtocol.test.ts (3 tests) 86ms
 ✓ src/state/usage.test.ts (8 tests) 37ms
 ✓ src/electron/ElectronWindow.test.ts (2 tests) 44ms
 ✓  unit  src/features/home/useThreadListActions.test.ts (37 tests) 72ms
 ✓  unit  src/native/workspace-stack-projection.test.ts (22 tests) 21ms
 ✓ scripts/main-process-bundle.test.mjs (2 tests) 325ms
 ✓ src/updates/releaseNotes.test.ts (8 tests) 7ms
 ✓ src/work-log/commandLabel.test.ts (61 tests) 123ms
 ✓ src/preview/PasskeyBridge.test.ts (3 tests) 4ms
 ✓  unit  src/lib/android-workspace-navigation.test.ts (16 tests) 30ms
 ✓ src/updates/remoteUpdateFlow.test.ts (6 tests) 14ms
 ✓ src/state/boundedThreadSnapshotHttp.test.ts (5 tests) 116ms
 ✓ src/state/threadSearch.test.ts (9 tests) 48ms
 ✓ src/relay/managedRelayState.test.ts (4 tests) 23ms
 ✓ src/work-log/presentation.test.ts (18 tests) 19ms
 ✓  unit  src/features/pull-requests/pullRequestList.test.ts (18 tests) 47ms
 ✓ gnome-extension/captureFeedback.test.js (4 tests) 25ms
 ✓ src/projectFaviconCache.test.ts (8 tests) 253ms
 ✓  unit  src/lib/mobileTheme.test.ts (24 tests) 102ms
 ✓ src/app/DesktopAppActivation.test.ts (3 tests) 77ms
 ✓ src/snapShot/captureConfigEdit.test.ts (24 tests) 22ms
 ✓ src/backend/DesktopBackendPool.test.ts (1 test) 10ms
 ✓  unit  src/state/use-thread-outbox-drain.permissions.test.ts (12 tests) 22ms
 ✓ src/device/duoControl.test.ts (12 tests) 28ms
 ✓ src/state/threadSubagents.test.ts (7 tests) 16ms
 ✓ src/ssh/DesktopSshPasswordPrompts.test.ts (2 tests) 62ms
 ✓  unit  src/state/thread-task-permissions.test.ts (7 tests) 50ms
 ✓ src/device/duoViewer.test.ts (2 tests) 27ms
 ✓ src/pullRequestQuery.test.ts (17 tests) 15ms
 ✓ src/window/QuitHold.test.ts (7 tests) 27ms
 ✓  unit  src/lib/composerAttachmentUploadQueue.test.ts (11 tests) 19ms
 ✓  unit  src/lib/attachmentDownload.test.ts (19 tests) 32ms
 ✓  unit  src/lib/composerContext.test.ts (16 tests) 160ms
 ✓ gnome-extension/captureService.test.js (10 tests) 13ms
 ✓ src/ipc/methods/wsl.test.ts (2 tests) 21ms
 ✓ src/preview/BrowserImport/BrowserImport.test.ts (3 tests) 95ms
 ✓ src/handoff.test.ts (15 tests) 13ms
 ✓ src/legacyLocalStorageMerge.test.ts (7 tests) 7ms
 ✓  unit  src/features/threads/thread-feed-live-follow.test.ts (28 tests) 20ms
 ✓ knip-schemas.test.ts (1 test) 7434ms
   ✓ allows types and schemas through the real Knip CLI without hiding runtime or file findings 7433ms

 Test Files  21 passed (21)
      Tests  161 passed (161)
   Start at  14:24:38
   Duration  7.91s (tests 53%, import 25%, transform 11%, setup 11%)

 ✓ src/wsl/wslPathParsing.test.ts (12 tests) 12ms

~/infra/relay$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/pullRequestLinkInput.test.ts (17 tests) 19ms
 ✓ src/updates/updateMachine.test.ts (4 tests) 5ms
 ✓ src/connection/diagnosis.test.ts (7 tests) 28ms
 ✓ src/app/CodexAuthCallback.test.ts (4 tests) 99ms
 ✓ src/ipc/methods/notificationBadge.test.ts (1 test) 22ms
 ✓ src/pullRequestMarkdown.test.ts (17 tests) 11ms
 ✓ src/linuxSecretStorage.test.ts (7 tests) 21ms

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

 ✓ src/state/presentation.test.ts (3 tests) 11ms
 ✓ src/state/itemSupport.test.ts (2 tests) 2ms
 ✓ src/app/DesktopCliShim.test.ts (4 tests) 88ms
 ✓ src/preview/serverBrowserStream.test.ts (5 tests) 18ms
 ✓ src/snapShot/RegionSnapShot.test.ts (4 tests) 13ms
 ✓  unit  src/features/voice-input/voiceInputSession.test.ts (13 tests) 22ms
 ✓ src/ipc/methods/preview.test.ts (5 tests) 32ms
 ✓ src/device/phoneViewer.test.ts (1 test) 51ms
 ✓ src/permissions/MacPermissionHelper.test.ts (1 test) 32ms
 ✓ src/preview/GuestInput.test.ts (4 tests) 8ms
 ✓ src/connection/presentation.test.ts (4 tests) 12ms
 ✓  unit  src/connection/environment-cache-store.test.ts (4 tests) 88ms
 ✓  unit  src/state/composer-attachment-uploads.test.ts (5 tests) 47ms
 ✓  unit  src/state/pending-task-editor-writes.test.ts (5 tests) 25ms
 ✓  unit  src/lib/composerContextClipboard.test.ts (7 tests) 35ms
 ✓  unit  src/features/updates/app-updates.test.ts (11 tests) 93ms
 ✓ src/device/avcConfig.test.ts (8 tests) 17ms
 ✓ src/backend/tailscaleEndpointProvider.test.ts (3 tests) 30ms
 ✓ src/ipc/methods/snapShot.test.ts (3 tests) 45ms
 ✓ scripts/verify-preload-bundle.test.mjs (7 tests) 82ms
 ✓ src/app/DesktopWebLinks.test.ts (2 tests) 6ms
 ✓ src/electron/ElectronShell.test.ts (5 tests) 28ms
 ✓ src/preview/BrowserImport/CookieDatabase.test.ts (2 tests) 63ms
 ✓ scripts/browser-secret-native.test.mjs (10 tests) 978ms
   ✓ bundled libsecret helper (10)
     ✓ builds an executable for the requested architecture into a staged resource directory 483ms
 ✓ src/preview/PickedElementPayload.test.ts (2 tests) 5ms
 ✓  unit  src/features/home/home-thread-navigation.test.ts (6 tests) 16ms
 ✓ src/state/projectEntities.test.ts (2 tests) 41ms
 ✓ ../../native/kde-snap-shot/src/activate.test.ts (2 tests) 4ms
 ✓ src/state/threadFeedback.test.ts (4 tests) 3ms
 ✓ src/snapShot/NativeCaptureFeedback.test.ts (2 tests) 46ms
 ✓ src/providerSkills.test.ts (6 tests) 3ms
 ✓ src/preview/BrowserImport/SafariPermission.test.ts (2 tests) 34ms
 ✓  unit  src/features/threads/threadOrderAvailability.test.ts (7 tests) 552ms
   ✓ computeThreadMoveAvailability matches the reference planner (7)
     ✓ agrees across randomized sections (keys, holes, non-writable rows, hidden keys) 550ms
 ✓ src/snapShot/SnapShotAccessibilityProcess.test.ts (3 tests) 22ms
 ✓ src/platform/orchestrationCache.test.ts (3 tests) 38ms
 ✓  unit  src/features/threads/checkout-new-task-branch.test.ts (11 tests) 3740ms
   ✓ new-task branch checkout (11)
     ✓ resolves historical branch metadata to its worktree beyond a long query's first page 329ms
     ✓ resolves a non-origin remote to the right worktree when the remote name contains slashes 395ms
     ✓ switches to the selected remote instead of reusing a worktree tracking another remote 898ms
     ✓ rejects picker worktree reuse when project root is unsafe (nested: false) 345ms
 ✓ src/electron/WindowsForegroundFocusThread.test.ts (2 tests) 3ms
 ✓ src/preview/BrowserImport/LinuxBrowserSecret.test.ts (1 test) 101ms
 ✓ src/operations/projects.test.ts (6 tests) 14ms
 ✓ src/device/phoneScene.test.ts (8 tests) 130ms
 ✓  unit  src/features/diffs/nativeReviewDiffHighlighter.test.ts (11 tests) 875ms
   ✓ highlightNativeReviewDiffVisibleRows (3)
     ✓ does not carry grammar state across hunk boundaries 370ms
 ✓ src/threadPullRequestCompatibility.test.ts (10 tests) 18ms
 ✓ src/app/DesktopAppActivationBroker.test.ts (3 tests) 12ms
 ✓  unit  src/state/use-selected-thread-git-actions.test.ts (11 tests) 27ms
 ✓ src/electron/WindowsForeground.test.ts (3 tests) 16ms
 ✓ src/changeRequestLinks.test.ts (6 tests) 17ms
 ✓ src/app/DesktopEnvironment.test.ts (2 tests) 28ms
 ✓ src/app/DesktopUserData.test.ts (2 tests) 96ms
 ✓ src/reviewGuideTour.test.ts (7 tests) 19ms
 ✓  unit  src/state/thread-outbox-removal.test.ts (5 tests) 20ms
 ✓ src/permissions/MacSettingsWindow.test.ts (2 tests) 24ms
 ✓ src/device/phoneInteraction.test.ts (4 tests) 7ms
 ✓  unit  src/features/cloud/linkEnvironment.test.ts (3 tests) 163ms
 ✓ gnome-extension/feedbackGeometry.test.js (7 tests) 16ms
 ✓ src/preview/WebviewPreferences.test.ts (2 tests) 2ms
 ✓ src/state/usageProgress.test.ts (4 tests) 6ms
 ✓ ../../native/kde-snap-shot/src/feedbackGeometry.test.ts (2 tests) 22ms
 ✓ src/device/duoScene.test.ts (2 tests) 42ms
 ✓ src/snapShot/WindowsCaptureFeedback.test.ts (1 test) 13ms
 ✓ src/ipc/methods/localEnvironment.test.ts (1 test) 20ms
 ✓ src/device/model.test.ts (4 tests) 18ms
 ✓ src/app/DesktopPreReadyFileSystem.test.ts (1 test) 46ms
 ✓ src/preview/AnnotationKeyboard.test.ts (1 test) 5ms
 ✓ src/preview/RecordingInput.test.ts (2 tests) 6ms
 ✓ src/environments/ManagedEndpointProvider.test.ts (31 tests) 174ms
 ✓  unit  src/lib/composerImages.test.ts (6 tests) 16ms
 ✓ src/preview/AnnotationIds.test.ts (1 test) 13ms
 ✓ src/ipc/methods/sshEnvironment.test.ts (1 test) 5ms

 Test Files  103 passed (103)
      Tests  837 passed (837)
   Start at  14:24:32
   Duration  17.43s (import 49%, transform 26%, setup 13%, tests 12%, worker 1%)

     Import  520 modules were evaluated 6441 times · 48.50s total, 49% of tracked time
             ~4.85s 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/attachments.test.ts (3 tests) 14ms

 ✓ src/state/filesystem.test.ts (8 tests) 44ms
 ✓  unit  src/features/sharing/incoming-share-inbox.test.ts (10 tests) 30ms
 ✓  unit  src/features/workspace/workspace-tabs-state.test.ts (16 tests) 17ms
 ✓ src/connection/errors.test.ts (5 tests) 4ms
 ✓ src/t3ToolSummary.test.ts (3 tests) 3ms
 ✓ src/state/sharedSettings.test.ts (9 tests) 15ms
 ✓  unit  src/features/home/homeThreadList.test.ts (4 tests) 29ms
 ✓  unit  src/native/composerEditorRevision.test.ts (17 tests) 16ms
 ✓ src/mediaSource.test.ts (8 tests) 9ms
 ✓ src/state/turnItemPresentation.test.ts (2 tests) 6ms
 ✓ src/connection/compatibility.test.ts (4 tests) 15ms
 ✓  unit  src/features/settings/scheduledTaskDraft.test.ts (12 tests) 26ms
 ✓ src/work-log/toolPresentation.test.ts (4 tests) 4ms
stdout | src/lib/storage.test.ts > mobile connection storage > loads legacy preferences when SQLite is unavailable
[14:24:51.545] WARN (#20): Database unavailable; loading fallback preferences. {
  cause: {
    _tag: 'MobileDatabaseError',
    operation: 'load-preferences',
    cause: Error: database unavailable
        at Object.<anonymous> (/home/runner/_work/t3code/t3code/apps/mobile/src/lib/storage.test.ts:49:33)
        at Object.Mock [as getFirstAsync] (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/chunks/spy.DDMXghXv.js:353:40)
        at try (/home/runner/_work/t3code/t3code/apps/mobile/src/persistence/mobile-database.ts:431:18)
        at MixedScheduler.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:785:7)
        at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:804:38)
        at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
        at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
        at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31
  }
}

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

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

 ✓  unit  src/lib/storage.test.ts (8 tests) 33ms
 ✓ src/state/providerInstanceDisplay.test.ts (10 tests) 10ms
 ✓ src/device/streamFrames.test.ts (1 test) 34ms
 ✓  unit  src/dependency-graph.test.ts (2 tests) 22ms
 ✓ src/device/modelScene.test.ts (2 tests) 11ms
 ✓ src/state/gitActions.test.ts (3 tests) 4ms
 ✓  unit  src/lib/layout.test.ts (15 tests) 19ms
 ✓ src/environments/ManagedEndpointReaper.test.ts (17 tests) 142ms
 ✓ src/promptLinks.test.ts (3 tests) 4ms
stdout | src/state/preferences.test.ts > mobile preferences state > falls back to empty preferences when secure storage cannot be read
[14:24:52.112] WARN (#35): Could not load mobile preferences. {
  _tag: 'MobilePreferencesLoadError',
  cause: Error: secure storage unavailable
      at /home/runner/_work/t3code/t3code/apps/mobile/src/state/preferences.test.ts:181:20
      at Generator.next (<anonymous>)
      at ~effect/Effect/successCont (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:979:28)
      at ~effect/Effect/evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:991:25)
      at FiberImpl.runLoop (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:453:97)
      at FiberImpl.evaluate (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:402:23)
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2474:9
      at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2526:19
      at Module.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js:2537:31)
      at Array.<anonymous> (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@effect+vitest@4.0.5_patch_hash=2731c9c3761c595f25ddc625a7d61ca376b389d5b3049ecb837c894_729be65b0f3c6bde0309e4457c6d9256/node_modules/@effect/vitest/dist/internal/internal.js:26:31)
}

 ✓  unit  src/state/preferences.test.ts (3 tests) 61ms
 ✓ src/state/queryPersistence.test.ts (3 tests) 12ms
 ✓ src/state/serverConfigProjection.test.ts (2 tests) 7ms
 ✓ src/device/deviceMotion.test.ts (2 tests) 21ms
 ✓  unit  src/state/session.test.ts (4 tests) 13ms
 ✓  unit  src/lib/mediaActions.test.ts (10 tests) 15ms
 ✓ src/threadReference.test.ts (5 tests) 11ms
 ✓  unit  src/features/threads/thread-provider-instance.test.ts (3 tests) 19ms
 ✓ src/state/customSnooze.test.ts (11 tests) 14ms
 ✓ src/state/threadInbox.test.ts (2 tests) 6ms
 ✓ src/state/auth.test.ts (2 tests) 3ms
 ✓ src/state/usageAccess.test.ts (8 tests) 3ms
 ✓ src/agentActivity/FcmDeliveries.test.ts (29 tests) 68ms
 ✓ src/work-log/itemDetail.test.ts (2 tests) 9ms
 ✓ src/errors/safeLog.test.ts (2 tests) 7ms
 ✓ src/agentActivity/ApnsDeliveries.test.ts (36 tests) 318ms
 ✓ src/environments/EnvironmentConnector.test.ts (12 tests) 259ms
 ✓  unit  src/features/settings/settings-scoped-server.test.ts (5 tests) 13ms
 ✓  unit  src/features/agent-awareness/liveActivityPreferences.test.ts (3 tests) 8ms
 ✓  unit  src/features/projects/AddProjectScreen.test.ts (3 tests) 25ms
 ✓ src/filePreview.test.ts (3 tests) 49ms
 ✓  unit  src/features/cloud/dpop.test.ts (5 tests) 114ms
 ✓ src/http/Api.test.ts (27 tests) 241ms
 ✓ src/userMessage.test.ts (3 tests) 6ms
 ✓ src/markdownImages.test.ts (12 tests) 16ms
 ✓ src/hooks/HookForwarder.test.ts (17 tests) 419ms
 ✓ src/errors/transport.test.ts (3 tests) 5ms
 ✓ src/relay/errorPresentation.test.ts (3 tests) 6ms
 ✓ src/mediaReference.test.ts (7 tests) 17ms
 ✓ src/agentActivity/AgentActivityPublisher.test.ts (10 tests) 44ms
 ✓  unit  src/features/pull-requests/pullRequestStack.test.ts (8 tests) 21ms
 ✓ src/composerThreadItems.test.ts (1 test) 13ms
 ✓  unit  src/features/threads/new-task-project-selection.test.ts (9 tests) 8ms
 ✓ src/device/duoSnap.test.ts (1 test) 19ms
 ✓ src/state/threadHistoryController.test.ts (1 test) 22ms
 ✓ src/state/assets.test.ts (1 test) 3ms
 ✓ src/device/androidFoldScene.test.ts (1 test) 72ms
 ✓ src/device/renderScheduler.test.ts (1 test) 7ms
 ✓ src/agentActivity/ApnsClient.test.ts (6 tests) 175ms
 ✓ src/errors/errorTrace.test.ts (2 tests) 9ms
 ✓  unit  src/features/settings/environment-maintenance.test.ts (7 tests) 62ms
 ✓  unit  src/features/threads/thread-route-state.test.ts (5 tests) 13ms
 ✓ src/environment/endpoint.test.ts (1 test) 4ms
 ✓ src/state/commandOutput.test.ts (1 test) 4ms
 ✓ src/hooks/HookInboxStore.test.ts (11 tests) 600ms
   ✓ HookInboxStore (11)
     ✓ refuses a request that would pass the byte cap 326ms
 ✓ src/work-log/scrollAnchor.test.ts (1 test) 4ms
 ✓  unit  src/features/review/reviewCommentSelection.test.ts (6 tests) 7ms
 ✓ src/secretRequest.test.ts (2 tests) 4ms
 ✓  unit  src/widgets/subscriptionUsageSnapshot.test.ts (5 tests) 31ms
 ✓  unit  src/features/review/reviewModel.test.ts (5 tests) 16ms
 ✓ src/state/archivedThreads.test.ts (1 test) 9ms
 ✓  unit  src/features/threads/thread-settings-sheet-state.test.ts (5 tests) 10ms

 Test Files  126 passed (126)
      Tests  1213 passed (1213)
   Start at  14:24:32
   Duration  22.06s (import 55%, transform 26%, setup 12%, tests 7%, worker 1%)

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

 ✓ src/agentActivity/FcmClient.test.ts (4 tests) 82ms

 ✓  unit  src/lib/markdownHtml.test.ts (8 tests) 67ms
 ✓  unit  src/lib/protectedData.test.ts (3 tests) 198ms
 ✓ src/auth/RelayTokens.test.ts (5 tests) 40ms
 ✓ src/environments/EnvironmentLinker.test.ts (4 tests) 66ms
 ✓  unit  src/state/remote-environment-projections.test.ts (1 test) 10ms
 ✓  unit  src/features/voice-input/lazyVoiceRecorder.test.ts (3 tests) 12ms
 ✓  unit  src/lib/reserved-regions.test.ts (7 tests) 8ms
stdout | plugins/withAndroidFbjniVersion.test.mjs > withAndroidFbjniVersion > applies the force through the registered app config
[react-native-pdf-jsi] Remember to install peer dependencies:
  - react-native-blob-util
  - @react-native-async-storage/async-storage
  - react-native-nitro-modules (required for the Nitro JSI path; the React Native bridge is used when it is not linked)
✅ Clerk iOS plugin loaded
✅ Clerk Android plugin loaded

 ✓  unit  plugins/withAndroidFbjniVersion.test.mjs (4 tests) 396ms
   ✓ withAndroidFbjniVersion (4)
     ✓ applies the force through the registered app config 363ms
 ✓  unit  src/features/pull-requests/pullRequestDiffPages.test.ts (4 tests) 15ms
 ✓ src/environments/EnvironmentCredentials.test.ts (3 tests) 27ms
 ✓  unit  src/features/usage/UsageLimitsSection.test.ts (2 tests) 7ms
 ✓  unit  src/features/review/nativeReviewDiffAdapter.test.ts (2 tests) 526ms
   ✓ buildNativeReviewDiffData row bound (1)
     ✓ caps each huge file excerpt while preserving full counts and ordinary files 510ms
 ✓  unit  src/state/edit-pending-thread-message.test.ts (4 tests) 15ms
 ✓ src/agentActivity/MobileRegistrations.test.ts (2 tests) 10ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[14:24:56.183] INFO (#5): Plan: 1 tasks
[14:24:56.186] INFO (#5): [PublishClientConfig] run [action]
[14:24:56.186] INFO (#5):

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[14:24:56.194] 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-oyOXVZ/client.env
[14:24:56.195] INFO (#47): [PublishClientConfig] ran (1ms)

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

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

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

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[14:24:56.202] 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-oyOXVZ/client.env
[14:24:56.203] INFO (#79): [PublishClientConfig] ran (1ms)

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

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

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

stdout | src/clientConfig.test.ts > PublishClientConfig > fails when the worker has no url rather than publishing an empty relay
[14:24:56.211] INFO (#158): [PublishClientConfig] running
[14:24:56.211] INFO (#158): [PublishClientConfig] fail — RelayUrlUnavailableError: The relay worker has no URL yet; deploy again once the worker exists. (0ms)
[14:24:56.211] INFO (#117):
[14:24:56.211] 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
[14:24:56.212] INFO (#117): Plan: 1 tasks
[14:24:56.212] INFO (#117): [PublishClientConfig] drop [action]
[14:24:56.212] INFO (#117):
[14:24:56.212] INFO (#166): [PublishClientConfig] deleting
[14:24:56.212] INFO (#166): [PublishClientConfig] deleted (0ms)
[14:24:56.212] INFO (#117):
[14:24:56.212] INFO (#117): Done: 1 succeeded (0ms)

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

stdout | src/clientConfig.test.ts > PublishClientConfig > refuses a value with a line break rather than corrupting the file
[14:24:56.217] INFO (#236): [PublishClientConfig] running
[14:24:56.217] INFO (#236): [PublishClientConfig] fail — EnvValueNotSingleLineError: T3CODE_RELAY_CLIENT_OTLP_TRACES_DATASET contains a line break and cannot be written as one .env assignment. (0ms)
[14:24:56.218] INFO (#195):
[14:24:56.218] 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
[14:24:56.218] INFO (#195): Plan: 1 tasks
[14:24:56.218] INFO (#195): [PublishClientConfig] drop [action]
[14:24:56.218] INFO (#195):
[14:24:56.218] INFO (#244): [PublishClientConfig] deleting
[14:24:56.218] INFO (#244): [PublishClientConfig] deleted (0ms)
[14:24:56.219] INFO (#195):
[14:24:56.219] INFO (#195): Done: 1 succeeded (1ms)

 ✓ src/clientConfig.test.ts (10 tests) 178ms
 ✓  unit  src/lib/pdfPreview.test.ts (12 tests) 9ms
 ✓ src/environments/EnvironmentPublishSignatures.test.ts (3 tests) 27ms
 ✓  unit  src/features/agent-awareness/notificationNavigation.test.ts (6 tests) 14ms
 ✓  unit  src/state/use-thread-pr.test.ts (7 tests) 5ms
 ✓  unit  src/features/workspace/android-workspace-navigation-colors.test.ts (9 tests) 53ms
 ✓  unit  src/state/assets.test.ts (4 tests) 5ms
 ✓ src/auth/DpopProofs.verifyAndConsume.test.ts (4 tests) 163ms
 ✓  unit  src/lib/adaptive-navigation.test.ts (8 tests) 13ms
 ✓  unit  src/state/thread-order.test.ts (4 tests) 13ms
 ✓ src/previewTunnelSweep.test.ts (4 tests) 47ms
 ✓ src/agentActivity/agentActivityPolicy.test.ts (5 tests) 17ms
 ✓  unit  src/state/pending-thread-creation.test.ts (4 tests) 7ms
 ✓ src/agentActivity/DeliveryAttempts.test.ts (3 tests) 22ms
 ✓  unit  src/state/attachments.test.ts (2 tests) 3ms
 ✓  unit  src/features/connection/environmentSections.test.ts (3 tests) 3ms
 ✓ src/previewStages.test.ts (4 tests) 16ms
 ✓  unit  src/lib/projectFaviconRequests.test.ts (4 tests) 3ms
 ✓ src/agentActivity/ApnsProviderTokens.test.ts (2 tests) 88ms
 ✓  unit  src/state/workspace-connection-atoms.test.ts (1 test) 4ms
 ✓ src/agentActivity/apnsDeliveryJobs.test.ts (1 test) 4ms
 ✓ src/hooks/HeldHooks.test.ts (1 test) 5ms
 ✓ src/agentActivity/LiveActivities.test.ts (2 tests) 8ms
 ✓  unit  src/features/shortcuts/appShortcuts.test.ts (7 tests) 4ms
 ✓ src/deploymentConfig.test.ts (3 tests) 11ms
 ✓  unit  src/lib/atomic-file.test.ts (4 tests) 9ms
 ✓ src/environments/endpointFailure.test.ts (15 tests) 3ms
 ✓  unit  src/features/terminal/useTerminalGridSync.test.ts (1 test) 21ms
 ✓  unit  src/lib/composerChipPresentation.test.ts (3 tests) 105ms
 ✓  unit  src/lib/markdownMedia.test.ts (12 tests) 16ms
 ✓ src/environments/EnvironmentLinks.test.ts (2 tests) 12ms
 ✓  unit  src/features/threads/new-task-context-presentation.test.ts (9 tests) 6ms
 ✓  unit  src/features/pull-requests/pullRequestFileFilters.test.ts (4 tests) 11ms
 ✓  unit  src/lib/localAttachmentPreview.test.ts (4 tests) 11ms
 ✓  unit  src/lib/enrichedLinkPresentation.test.ts (5 tests) 11ms
 ✓  unit  src/lib/copyTextWithHaptic.test.ts (5 tests) 23ms
 ✓  unit  src/persistence/mobile-database.test.ts (3 tests) 8ms
 ✓ src/environments/ManagedEndpointAllocations.test.ts (1 test) 5ms
 ✓  unit  src/features/terminal/useTerminalLifecycle.test.ts (3 tests) 34ms
 ✓  unit  src/features/pull-requests/pullRequestDiffComments.test.ts (4 tests) 3ms
 ✓ src/agentActivity/ApnsDeliveryQueue.test.ts (1 test) 7ms
 ✓  unit  src/features/review/incrementalSnippet.test.ts (3 tests) 158ms
 ✓  unit  src/connection/storage.test.ts (3 tests) 15ms
 ✓  unit  src/persistence/mobile-storage.test.ts (3 tests) 10ms
 ✓  unit  src/features/threads/threadQueueControlPresentation.test.ts (7 tests) 4ms
 ✓ src/environments/CloudflareApiPause.test.ts (1 test) 6ms

 Test Files  32 passed (32)
      Tests  276 passed (276)
   Start at  14:24:46
   Duration  12.45s (import 77%, transform 15%, tests 4%, setup 4%)

 ✓  unit  src/features/workspace/navigation-tab-order.test.ts (6 tests) 4ms
 ✓  unit  src/connection/background-activity.test.ts (3 tests) 5ms

 ✓  unit  src/lib/videoThumbnails.test.ts (2 tests) 26ms
 ✓  unit  src/state/workspaceModel.test.ts (2 tests) 2ms
 ✓  unit  src/features/threads/fileChipMenu.test.ts (9 tests) 8ms
 ✓  unit  src/features/threads/pending-thread-feed.test.ts (4 tests) 3ms
 ✓  unit  src/features/threads/thread-settings-options.test.ts (4 tests) 3ms
 ✓  unit  src/lib/composerAttachmentFiles.test.ts (12 tests) 5ms
 ✓  unit  src/features/threads/use-composer-command-menu.test.ts (3 tests) 4ms
 ✓  unit  src/connection/migration.test.ts (2 tests) 6ms
 ✓  unit  src/lib/microphonePriority.test.ts (4 tests) 3ms
 ✓  unit  src/features/pull-requests/pullRequestStatus.test.ts (4 tests) 5ms
 ✓  unit  src/features/settings/autoSettleSettingsSync.test.ts (3 tests) 2ms
 ✓  unit  src/features/terminal/terminalMenu.test.ts (5 tests) 6ms
 ✓  unit  src/features/home/workspace-connection-status.test.ts (3 tests) 2ms
 ✓  unit  src/lib/projectFaviconDatabaseCache.test.ts (3 tests) 5ms
 ✓  unit  src/lib/markdownLinks.test.ts (8 tests) 6ms
 ✓  unit  src/features/pull-requests/pullRequestAgentTasks.test.ts (3 tests) 2ms
 ✓  unit  src/lib/projectIcon.test.ts (5 tests) 4ms
 ✓  unit  src/native/voiceTranscription.ios.test.ts (1 test) 11ms
 ✓  unit  src/features/devices/threadDevicePreviews.test.ts (2 tests) 2ms
 ✓  unit  src/features/terminal/terminalInput.test.ts (7 tests) 3ms
 ✓  unit  src/state/queries.filesystem.test.ts (1 test) 3ms
 ✓  unit  src/features/threads/worktree-setup-state.test.ts (4 tests) 2ms
 ✓  unit  src/features/terminal/terminalLaunchContext.test.ts (3 tests) 3ms
 ✓  unit  src/features/terminal/terminalPaste.test.ts (2 tests) 2ms
 ✓  unit  src/features/pull-requests/pullRequestNavigation.test.ts (3 tests) 3ms
 ✓  unit  src/lib/appLinking.test.ts (17 tests) 3ms
 ✓  unit  src/state/thread-provider-switching.test.ts (4 tests) 2ms
 ✓  unit  src/features/terminal/useTerminalSurfaceBuffer.test.ts (2 tests) 9ms
 ✓  unit  src/lib/device-type.test.ts (3 tests) 2ms
 ✓  unit  src/lib/projectThreadStartTurn.test.ts (3 tests) 3ms
 ✓  unit  src/features/threads/thread-route-hydration.test.ts (3 tests) 2ms
 ✓  unit  src/state/queued-run-edit.test.ts (3 tests) 4ms
 ✓  unit  src/features/files/filePath.test.ts (7 tests) 4ms
 ✓  unit  src/features/pull-requests/pullRequestActions.test.ts (3 tests) 2ms
 ✓  unit  src/features/settings/scheduled-task-editor-state.test.ts (3 tests) 4ms
 ✓  unit  src/features/keyboard/commandPaletteItems.test.ts (2 tests) 4ms
 ✓  unit  src/features/layout/deferred-navigation.test.ts (3 tests) 3ms
 ✓  unit  src/features/home/thread-dismissal.test.ts (3 tests) 4ms
 ✓  unit  src/features/cloud/managedRelayLayer.test.ts (1 test) 40ms
 ✓  unit  src/features/cloud/CloudAuthProvider.test.ts (1 test) 3ms
 ✓  unit  src/features/devices/device-stream-document.test.ts (11 tests) 5ms
 ✓  unit  src/features/sharing/incoming-share-presentation.test.ts (2 tests) 2ms
 ✓  unit  src/features/threads/provider-catalog-refresh.test.ts (2 tests) 3ms
 ✓  unit  src/features/pull-requests/pullRequestActivityFilter.test.ts (1 test) 2ms
 ✓  unit  src/features/diagnostics/crash-log-model.test.ts (2 tests) 2ms
 ✓  unit  src/features/observability/tracing.test.ts (1 test) 12ms
 ✓  unit  src/lib/markdownTableBreaks.test.ts (5 tests) 18ms
 ✓  unit  src/features/pull-requests/pullRequestEnvironmentFallback.test.ts (3 tests) 3ms
 ✓  unit  scripts/generate-uniwind-themes.test.ts (1 test) 16ms
 ✓  unit  src/lib/nativeTheme.test.ts (12 tests) 19ms
 ✓  unit  src/lib/assetImageSource.test.ts (3 tests) 2ms
 ✓  unit  src/features/pull-requests/pullRequestAutolinks.test.ts (4 tests) 12ms
 ✓  unit  src/lib/markdownMediaSource.test.ts (3 tests) 4ms
 ✓  unit  src/lib/connection.test.ts (1 test) 2ms
 ✓  unit  src/features/sharing/incoming-share-storage.test.ts (1 test) 3ms
 ✓  unit  src/features/connection/pairing.test.ts (5 tests) 3ms
 ✓  unit  src/lib/markdownInlineFileLinks.test.ts (4 tests) 15ms
 ✓  unit  src/features/settings/SettingsRouteScreen.logic.test.ts (2 tests) 2ms
 ✓  unit  src/features/home/swipe-row-activation.test.ts (3 tests) 2ms
 ✓  unit  src/lib/wideMarkdownBlocks.test.ts (2 tests) 2ms
 ✓  unit  src/state/asset-url-state.test.ts (3 tests) 3ms
 ✓  unit  src/features/pull-requests/botBadgeImages.test.ts (1 test) 2ms
 ✓  unit  src/features/review/shikiReviewHighlighter.test.ts (2 tests) 126ms
 ✓  unit  src/features/usage/usageEnvironmentSelection.test.ts (4 tests) 2ms
 ✓  unit  src/lib/serialized-async-queue.test.ts (2 tests) 3ms
 ✓  unit  src/features/threads/composerSendPresentation.test.ts (2 tests) 2ms
 ✓  unit  src/lib/openExternalUrl.test.ts (1 test) 4ms
 ✓  unit  src/features/pull-requests/pullRequestDescription.test.ts (1 test) 8ms
 ✓  unit  src/features/sharing/incoming-share-native.test.ts (2 tests) 2ms
 ✓  unit  src/features/diffs/nativeReviewDiffSurface.test.ts (1 test) 63ms
 ✓  unit  src/features/pull-requests/pullRequestDescriptionContent.test.ts (1 test) 3ms
 ✓  unit  src/features/threads/threadContentPresentation.test.ts (2 tests) 2ms
 ✓  unit  src/features/pull-requests/pullRequestReviewDrafts.test.ts (1 test) 2ms
 ✓  unit  src/features/threads/subagent-card-presentation.test.ts (1 test) 2ms
 ✓  unit  src/features/cloud/managedRelayTokenStore.test.ts (1 test) 6ms
 ✓  unit  src/lib/filePreviewGallery.test.ts (1 test) 10ms
 ✓  unit  src/features/threads/customSnoozeDate.test.ts (2 tests) 2ms
 ✓  unit  src/state/queries.test.ts (1 test) 6ms
 ✓  unit  src/state/thread-composer-error.test.ts (1 test) 2ms
 ✓  unit  src/features/prompt-links/prompt-link-model.test.ts (1 test) 2ms
 ✓  unit  src/features/pull-requests/pullRequestMediaSource.test.ts (1 test) 7ms
 ✓  unit  src/features/browser/previewPromptText.test.ts (3 tests) 2ms
 ✓  unit  src/features/projects/AddProjectScreen.logic.test.ts (1 test) 2ms
 ✓  unit  src/features/cloud/publicConfig.test.ts (1 test) 2ms
 ✓  unit  src/lib/nativeComposerTheme.test.ts (1 test) 2ms
 ✓  unit  src/lib/filePreview.test.ts (4 tests) 2ms
 ✓  unit  src/lib/mobileThemeRuntime.test.ts (1 test) 2ms
 ✓  unit  src/lib/http-response.test.ts (1 test) 3ms
 ✓  unit  src/features/threads/projectThreadCreationValidation.test.ts (2 tests) 2ms
 ✓  unit  src/lib/appearancePreferences.test.ts (1 test) 2ms
 ✓  unit  src/lib/foreground-handoff.test.ts (1 test) 2ms
 ✓  unit  src/features/settings/lib/legal-document-url.test.ts (2 tests) 2ms
 ✓  unit  src/features/threads/threadMessageJump.test.ts (1 test) 2ms
 ✓  unit  src/features/keyboard/hardwareKeyboardCommands.test.ts (2 tests) 2ms
 ✓  unit  src/reactCompilerCoverage.test.ts (923 tests) 29794ms
   ✓ React Compiler coverage (923)
     ✓ Metro's transformer applies the compiler 1782ms
     ✓ compiles src/components/ComposerAttachmentStrip.tsx 348ms
     ✓ compiles src/components/ComposerContextSheet.tsx 681ms
     ✓ compiles src/features/files/ThreadFilesRouteScreen.tsx 304ms
     ✓ compiles src/features/home/HomeScreen.tsx 375ms
     ✓ compiles src/features/layout/AdaptiveWorkspaceLayout.tsx 341ms
     ✓ compiles src/features/pull-requests/PullRequestRouteScreen.tsx 400ms
     ✓ compiles src/features/threads/NewTaskDraftScreen.tsx 439ms
     ✓ compiles src/features/threads/ThreadComposer.tsx 461ms
     ✓ compiles src/features/threads/ThreadDetailScreen.tsx 790ms
     ✓ compiles src/features/threads/ThreadFeed.tsx 699ms
     ✓ compiles src/features/threads/new-task-flow-provider.tsx 385ms
     ✓ compiles src/features/threads/thread-work-log.tsx 332ms
     ✓ caches the thread feed derivation 705ms

 Test Files  200 passed (200)
      Tests  2241 passed (2241)
   Start at  14:24:35
   Duration  44.12s (import 39%, transform 27%, tests 23%, setup 8%, environment 3%)


---
vp run: 7/7 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=__de18462e-8d32-4e65-b23d-bb627989830e.__actions_cache]
Post job cleanup.
Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-fa50cf9b003d547cd32552f61b874eb4abe5dace3fdb4b1abd9610da2da24074, not saving cache.
##[end-action id=__de18462e-8d32-4e65-b23d-bb627989830e.__actions_cache;outcome=success;conclusion=success;duration_ms=98]
##[start-action display=Cache Vite+;id=__de18462e-8d32-4e65-b23d-bb627989830e.vp_cache]
Post job cleanup.
Cache hit occurred on the primary key vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0, not saving cache.
##[end-action id=__de18462e-8d32-4e65-b23d-bb627989830e.vp_cache;outcome=success;conclusion=success;duration_ms=59]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/30e8e226-8636-412a-b0b7-964ca3fc7281' 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: 160
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 393
  BLACKSMITH_CHECK_RUN_ID: 120896817609
  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