GitHub check

Whole log, 255 KB
Current runner version: '2.337.0'
Runner name: 'blacksmith-8vcpu-ubuntu-2404-rghgdtejjswwyraj'
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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  BLACKSMITH_CHECK_RUN_ID: 120545168212
  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: 3142)

----------------------------------------
View this job: https://app.blacksmith.sh/pingdotgg/runs/39991788139/jobs/120545168212
SSH Access (using your GitHub SSH key):
  ssh -p 64004 runner@blacksmith-8vcpu-ubuntu-2404-rghgdtejjswwyraj.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-rghgdtejjswwyraj
Host: production-152.236.40.155-x8664
Host Agent PID: 2905310
Host Agent Git SHA: af74fd76b
Host CPU Manufacturer: AuthenticAMD
Blacksmith Host Generation: gen 2
Petname: production-amused-sponge-d8cc16bf
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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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/1001b3b3-7495-428f-bb75-26dcbed5c576' 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-42676813-7264-4ec0-8025-38fa73ab7372.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-42676813-7264-4ec0-8025-38fa73ab7372.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git/worktrees/*.path /home/runner/_work/_temp/git-credentials-42676813-7264-4ec0-8025-38fa73ab7372.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-42676813-7264-4ec0-8025-38fa73ab7372.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-42676813-7264-4ec0-8025-38fa73ab7372.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 +6b6b5873aa83c04fcd1cb5d454558eeeaca1ec93:refs/remotes/pull/22029/merge
From https://github.com/pingdotgg/t3code
 * [new ref]         6b6b5873aa83c04fcd1cb5d454558eeeaca1ec93 -> pull/22029/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/22029/merge
Updating files:   0% (1/6307)
Updating files:   1% (64/6307)
Updating files:   2% (127/6307)
Updating files:   3% (190/6307)
Updating files:   4% (253/6307)
Updating files:   5% (316/6307)
Updating files:   6% (379/6307)
Updating files:   7% (442/6307)
Updating files:   8% (505/6307)
Updating files:   9% (568/6307)
Updating files:   9% (625/6307)
Updating files:  10% (631/6307)
Updating files:  11% (694/6307)
Updating files:  12% (757/6307)
Updating files:  13% (820/6307)
Updating files:  14% (883/6307)
Updating files:  15% (947/6307)
Updating files:  16% (1010/6307)
Updating files:  17% (1073/6307)
Updating files:  18% (1136/6307)
Updating files:  19% (1199/6307)
Updating files:  20% (1262/6307)
Updating files:  21% (1325/6307)
Updating files:  22% (1388/6307)
Updating files:  23% (1451/6307)
Updating files:  24% (1514/6307)
Updating files:  25% (1577/6307)
Updating files:  26% (1640/6307)
Updating files:  27% (1703/6307)
Updating files:  28% (1766/6307)
Updating files:  29% (1830/6307)
Updating files:  30% (1893/6307)
Updating files:  31% (1956/6307)
Updating files:  32% (2019/6307)
Updating files:  33% (2082/6307)
Updating files:  34% (2145/6307)
Updating files:  35% (2208/6307)
Updating files:  36% (2271/6307)
Updating files:  37% (2334/6307)
Updating files:  38% (2397/6307)
Updating files:  39% (2460/6307)
Updating files:  40% (2523/6307)
Updating files:  41% (2586/6307)
Updating files:  42% (2649/6307)
Updating files:  43% (2713/6307)
Updating files:  44% (2776/6307)
Updating files:  45% (2839/6307)
Updating files:  46% (2902/6307)
Updating files:  47% (2965/6307)
Updating files:  48% (3028/6307)
Updating files:  49% (3091/6307)
Updating files:  50% (3154/6307)
Updating files:  51% (3217/6307)
Updating files:  52% (3280/6307)
Updating files:  53% (3343/6307)
Updating files:  54% (3406/6307)
Updating files:  55% (3469/6307)
Updating files:  56% (3532/6307)
Updating files:  57% (3595/6307)
Updating files:  58% (3659/6307)
Updating files:  59% (3722/6307)
Updating files:  60% (3785/6307)
Updating files:  61% (3848/6307)
Updating files:  62% (3911/6307)
Updating files:  63% (3974/6307)
Updating files:  64% (4037/6307)
Updating files:  65% (4100/6307)
Updating files:  66% (4163/6307)
Updating files:  67% (4226/6307)
Updating files:  68% (4289/6307)
Updating files:  69% (4352/6307)
Updating files:  70% (4415/6307)
Updating files:  71% (4478/6307)
Updating files:  72% (4542/6307)
Updating files:  73% (4605/6307)
Updating files:  74% (4668/6307)
Updating files:  75% (4731/6307)
Updating files:  76% (4794/6307)
Updating files:  77% (4857/6307)
Updating files:  78% (4920/6307)
Updating files:  79% (4983/6307)
Updating files:  80% (5046/6307)
Updating files:  81% (5109/6307)
Updating files:  82% (5172/6307)
Updating files:  83% (5235/6307)
Updating files:  84% (5298/6307)
Updating files:  85% (5361/6307)
Updating files:  86% (5425/6307)
Updating files:  87% (5488/6307)
Updating files:  88% (5551/6307)
Updating files:  89% (5614/6307)
Updating files:  90% (5677/6307)
Updating files:  91% (5740/6307)
Updating files:  92% (5803/6307)
Updating files:  93% (5866/6307)
Updating files:  94% (5929/6307)
Updating files:  95% (5992/6307)
Updating files:  96% (6055/6307)
Updating files:  97% (6118/6307)
Updating files:  98% (6181/6307)
Updating files:  99% (6244/6307)
Updating files: 100% (6307/6307)
Updating files: 100% (6307/6307), done.
Note: switching to 'refs/remotes/pull/22029/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 6b6b587 Merge e1e024cb0126a66f3a29c963fd9fa421960dd501 into 66ee628e0875b2b735b199f42e6151e347833637
[command]/usr/local/bin/git log -1 --format=%H
6b6b5873aa83c04fcd1cb5d454558eeeaca1ec93
▸ 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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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
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: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]
Get:8 https://dl.google.com/linux/chrome-stable/deb stable InRelease [2548 B]
Get:9 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [640 kB]
Get:10 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [576 kB]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1401 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [181 kB]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1706 kB]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [388 kB]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [5760 B]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [12.6 kB]
Get:18 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [1146 kB]
Get:19 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [46.4 kB]
Get:20 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1222 kB]
Get:22 https://dl.google.com/linux/chrome-stable/deb stable/main amd64 Packages [1412 B]
Get:21 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [76.3 kB]
Fetched 7787 kB in 1s (12.1 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 (147 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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self.__run;outcome=success;conclusion=success;duration_ms=54]
▸ 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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self_2.vp;outcome=success;conclusion=success;duration_ms=30]
##[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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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%), 406.1 MBs/sec
Cache Size: ~162 MB (170349591 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/041d59d7-9f97-4366-861a-6e48080e1b95/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=1730]
##[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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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=11]
##[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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self_2.pnpm_store;outcome=success;conclusion=success;duration_ms=28]
##[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-2baa264059789b1dde4bbc8fdc5b8342f31f2fc8e6176e5c5e486efdd242b36c
  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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: pnpm-full-v1-Linux-X64-2baa264059789b1dde4bbc8fdc5b8342f31f2fc8e6176e5c5e486efdd242b36c
Received 381681664 of 994615207 (38.4%), 361.1 MBs/sec
Received 738197504 of 994615207 (74.2%), 349.4 MBs/sec
Received 994615207 of 994615207 (100.0%), 332.5 MBs/sec
Cache Size: ~949 MB (994615207 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/d172b46f-cb6a-4e66-a361-316dbf5efbfe/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-2baa264059789b1dde4bbc8fdc5b8342f31f2fc8e6176e5c5e486efdd242b36c
##[end-action id=__self_2.__actions_cache;outcome=success;conclusion=success;duration_ms=11309]
##[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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  GITHUB_REPO_NAME: pingdotgg/t3code
Scope: all 33 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
Progress: resolved 1708, reused 1708, downloaded 0, added 1705
✓ Lockfile passes supply-chain policies (2088 entries in 7.5s)
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 9.6s using pnpm v12.14.0
##[end-action id=__self_2.__run_2;outcome=success;conclusion=success;duration_ms=9654]
▸ 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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309
Received 122906203 of 122906203 (100.0%), 378.1 MBs/sec
Cache Size: ~117 MB (122906203 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/81af93be-014e-439b-947c-0e137bd4a614/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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  GITHUB_REPO_NAME: pingdotgg/t3code
✔ allows preview releases from any branch without consulting main (0.658617ms)
✔ rejects a manual stable release from a feature branch (0.320111ms)
✔ rejects a manual nightly release from a feature branch (3.890294ms)
✔ rejects a release commit that is behind from main (0.203893ms)
✔ rejects a release commit that is diverged from main (0.08542ms)
✔ releases the first nightly when no nightly is published (0.632678ms)
✔ uses publication time, not release order or the tagged commit date (0.188264ms)
✔ ignores stable releases and drafts when checking the gap (0.098324ms)
✔ fails instead of releasing when GitHub cannot supply release state (0.19737ms)
✔ skips a candidate commit that is behind relative to the last nightly (0.17068ms)
✔ skips a candidate commit that is diverged relative to the last nightly (0.102983ms)
✔ stable releases resolve the commit of the newest published nightly (0.736703ms)
✔ stable releases derive the version from legacy nightly tags (0.15964ms)
✔ hosted web: saves one deployment URL after plain URL (8.980852ms)
✔ hosted web: saves one deployment URL after lockfile warning (4.38912ms)
✔ hosted web: saves one deployment URL after trailing diagnostic (4.635242ms)
✔ hosted web: rejects missing URL without saving output (5.356387ms)
✔ hosted web: rejects invalid URL without saving output (4.621417ms)
✔ hosted web: rejects multiple URLs without saving output (4.651443ms)
✔ hosted web: rejects failed deployment without saving output (2.777203ms)
✔ marketing: saves one deployment URL after plain URL (6.064707ms)
✔ marketing: saves one deployment URL after lockfile warning (6.105322ms)
✔ marketing: saves one deployment URL after trailing diagnostic (9.29976ms)
✔ marketing: rejects missing URL without saving output (6.492981ms)
✔ marketing: rejects invalid URL without saving output (5.95508ms)
✔ marketing: rejects multiple URLs without saving output (5.487544ms)
✔ marketing: rejects failed deployment without saving output (5.069427ms)
✔ web preview: saves one deployment URL after plain URL (5.119411ms)
✔ web preview: saves one deployment URL after lockfile warning (4.215424ms)
✔ web preview: saves one deployment URL after trailing diagnostic (3.565966ms)
✔ web preview: rejects missing URL without saving output (3.098116ms)
✔ web preview: rejects invalid URL without saving output (3.476477ms)
✔ web preview: rejects multiple URLs without saving output (3.410283ms)
✔ web preview: rejects failed deployment without saving output (2.108048ms)
ℹ tests 34
ℹ suites 0
ℹ pass 34
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 160.640639
▸ 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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  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://dl.google.com/linux/chrome-stable/deb stable InRelease
Get:2 https://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
Hit:7 https://packages.microsoft.com/repos/azure-cli noble InRelease
Hit:8 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease
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 [1401 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 [5760 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 4s (11.0 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 1s (10.4 MB/s)
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../bsdutils_1%3a2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking bsdutils (1:2.39.3-9ubuntu6.6) over (1:2.39.3-9ubuntu6.5) ...
Setting up bsdutils (1:2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../util-linux_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking util-linux (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up util-linux (2.39.3-9ubuntu6.6) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/bin/less because link group pager is broken
update-alternatives: warning: skip creation of /usr/share/man/man1/pager.1.gz because associated file /usr/share/man/man1/less.1.gz (of link group pager) doesn't exist
fstrim.service is a disabled or a static unit not running, not starting it.
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../mount_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking mount (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../libsmartcols1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libsmartcols1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libsmartcols1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../libuuid1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libuuid1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libuuid1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../uuid-runtime_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking uuid-runtime (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../libblkid1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libblkid1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libblkid1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../libgcrypt20_1.10.3-2ubuntu0.2_amd64.deb ...
Unpacking libgcrypt20:amd64 (1.10.3-2ubuntu0.2) over (1.10.3-2ubuntu0.1) ...
Setting up libgcrypt20:amd64 (1.10.3-2ubuntu0.2) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../libmount1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libmount1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Setting up libmount1:amd64 (2.39.3-9ubuntu6.6) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 207982 files and directories currently installed.)
Preparing to unpack .../00-eject_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking eject (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../01-libglib2.0-data_2.80.0-6ubuntu3.10_all.deb ...
Unpacking libglib2.0-data (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../02-libglib2.0-bin_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-bin (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../03-gir1.2-glib-2.0_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking gir1.2-glib-2.0:amd64 (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../04-libglib2.0-0t64_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.10) over (2.80.0-6ubuntu3.8) ...
Preparing to unpack .../05-libfdisk1_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libfdisk1:amd64 (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../06-bsdextrautils_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking bsdextrautils (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Preparing to unpack .../07-fdisk_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking fdisk (2.39.3-9ubuntu6.6) over (2.39.3-9ubuntu6.5) ...
Selecting previously unselected package libsecret-common.
Preparing to unpack .../08-libsecret-common_0.21.4-1build3_all.deb ...
Unpacking libsecret-common (0.21.4-1build3) ...
Selecting previously unselected package libsecret-1-0:amd64.
Preparing to unpack .../09-libsecret-1-0_0.21.4-1build3_amd64.deb ...
Unpacking libsecret-1-0:amd64 (0.21.4-1build3) ...
Selecting previously unselected package gir1.2-secret-1:amd64.
Preparing to unpack .../10-gir1.2-secret-1_0.21.4-1build3_amd64.deb ...
Unpacking gir1.2-secret-1:amd64 (0.21.4-1build3) ...
Selecting previously unselected package libgpg-error-dev.
Preparing to unpack .../11-libgpg-error-dev_1.47-3build2.1_amd64.deb ...
Unpacking libgpg-error-dev (1.47-3build2.1) ...
Selecting previously unselected package libgcrypt20-dev.
Preparing to unpack .../12-libgcrypt20-dev_1.10.3-2ubuntu0.2_amd64.deb ...
Unpacking libgcrypt20-dev (1.10.3-2ubuntu0.2) ...
Selecting previously unselected package libgirepository-2.0-0:amd64.
Preparing to unpack .../13-libgirepository-2.0-0_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libgirepository-2.0-0:amd64 (2.80.0-6ubuntu3.10) ...
Selecting previously unselected package libglib2.0-dev-bin.
Preparing to unpack .../14-libglib2.0-dev-bin_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-dev-bin (2.80.0-6ubuntu3.10) ...
Selecting previously unselected package uuid-dev:amd64.
Preparing to unpack .../15-uuid-dev_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking uuid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Selecting previously unselected package libblkid-dev:amd64.
Preparing to unpack .../16-libblkid-dev_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libblkid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Selecting previously unselected package libsepol-dev:amd64.
Preparing to unpack .../17-libsepol-dev_3.5-2build1_amd64.deb ...
Unpacking libsepol-dev:amd64 (3.5-2build1) ...
Selecting previously unselected package libselinux1-dev:amd64.
Preparing to unpack .../18-libselinux1-dev_3.5-2ubuntu2.1_amd64.deb ...
Unpacking libselinux1-dev:amd64 (3.5-2ubuntu2.1) ...
Selecting previously unselected package libmount-dev:amd64.
Preparing to unpack .../19-libmount-dev_2.39.3-9ubuntu6.6_amd64.deb ...
Unpacking libmount-dev:amd64 (2.39.3-9ubuntu6.6) ...
Selecting previously unselected package libglib2.0-dev:amd64.
Preparing to unpack .../20-libglib2.0-dev_2.80.0-6ubuntu3.10_amd64.deb ...
Unpacking libglib2.0-dev:amd64 (2.80.0-6ubuntu3.10) ...
Selecting previously unselected package libsecret-1-dev:amd64.
Preparing to unpack .../21-libsecret-1-dev_0.21.4-1build3_amd64.deb ...
Unpacking libsecret-1-dev:amd64 (0.21.4-1build3) ...
Setting up bsdextrautils (2.39.3-9ubuntu6.6) ...
Setting up eject (2.39.3-9ubuntu6.6) ...
Setting up libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libglib2.0-data (2.80.0-6ubuntu3.10) ...
Setting up libgpg-error-dev (1.47-3build2.1) ...
Setting up uuid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Setting up libsepol-dev:amd64 (3.5-2build1) ...
Setting up gir1.2-glib-2.0:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libfdisk1:amd64 (2.39.3-9ubuntu6.6) ...
Setting up mount (2.39.3-9ubuntu6.6) ...
Setting up uuid-runtime (2.39.3-9ubuntu6.6) ...
uuidd.service is a disabled or a static unit not running, not starting it.
Setting up libsecret-common (0.21.4-1build3) ...
Setting up libglib2.0-dev-bin (2.80.0-6ubuntu3.10) ...
Setting up libblkid-dev:amd64 (2.39.3-9ubuntu6.6) ...
Setting up libgirepository-2.0-0:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libselinux1-dev:amd64 (3.5-2ubuntu2.1) ...
Setting up libglib2.0-bin (2.80.0-6ubuntu3.10) ...
Setting up fdisk (2.39.3-9ubuntu6.6) ...
Setting up libsecret-1-0:amd64 (0.21.4-1build3) ...
Setting up gir1.2-secret-1:amd64 (0.21.4-1build3) ...
Setting up libgcrypt20-dev (1.10.3-2ubuntu0.2) ...
Setting up libmount-dev:amd64 (2.39.3-9ubuntu6.6) ...
Setting up libglib2.0-dev:amd64 (2.80.0-6ubuntu3.10) ...
Setting up libsecret-1-dev:amd64 (0.21.4-1build3) ...
Processing triggers for libc-bin (2.39-0ubuntu8.8) ...
Processing triggers for man-db (2.12.0-4build2) ...
Not building database; man-db/auto-update is not 'true'.
Processing triggers for install-info (7.1-3build2) ...

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

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

No containers need to be restarted.

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

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

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



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

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


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

 ✓ src/server/mergeMessage.test.ts (11 tests) 21ms
 ✓ src/server/pullRequestChecks.test.ts (16 tests) 8ms
 ✓ src/server/diffFileRevisions.test.ts (15 tests) 7ms
 ✓ src/server/SourceControlProvider.test.ts (1 test) 3ms
 ✓ src/preview/BrowserImport/Sources.test.ts (25 tests) 257ms
 ✓ src/server/SourceControlRateLimit.test.ts (6 tests) 22ms

 Test Files  5 passed (5)
      Tests  49 passed (49)
   Start at  17:03:31
   Duration  1.72s (transform 49%, import 25%, setup 22%, tests 2%, worker 1%)


~/packages/source-control-gitlab$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/server/bitbucketPullRequestJson.test.ts (22 tests) 14ms

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

 ✓ src/server/BitbucketPullRequestProvider.test.ts (19 tests) 31ms
 ✓ src/server/BitbucketPullRequestApi.test.ts (22 tests) 62ms

 Test Files  3 passed (3)
      Tests  63 passed (63)
   Start at  17:03:31
   Duration  2.05s (transform 60%, import 30%, setup 7%, tests 2%, worker 1%)


~/apps/mobile$ vp test run --project unit --project react ⊘ cache disabled
 ✓ src/server/ForgejoSourceControlProvider.test.ts (27 tests) 226ms

 Test Files  1 passed (1)
      Tests  27 passed (27)
   Start at  17:03:31
   Duration  2.22s (transform 59%, import 24%, tests 11%, setup 6%)


~/packages/provider-pi$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled

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

 ✓ src/app/DesktopLinuxUrlHandler.test.ts (13 tests) 65ms

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

 ✓ src/window/DesktopWindow.test.ts (20 tests) 309ms
 ✓  react  src/components/ui/Dialog.android.test.tsx (1 test) 62ms
 ✓ src/backend/DesktopBackendConfiguration.test.ts (17 tests) 559ms
 ✓  react  src/native/NativeHeaderToolbar.test.tsx (4 tests) 81ms
 ✓ src/preview/Manager.test.ts (55 tests) 1121ms
 ✓ src/server/mcpExtensionSource.test.ts (24 tests) 380ms
 ✓ src/updates/DesktopUpdates.test.ts (27 tests) 547ms
 ✓ src/updates/DesktopRemoteUpdates.test.ts (17 tests) 578ms
 ✓ src/snapShot/DesktopSnapShot.test.ts (49 tests) 685ms
 ✓ src/server/gitLabMergeRequestJson.test.ts (29 tests) 54ms
 ✓ src/backend/DesktopBackendManager.test.ts (7 tests) 185ms
 ✓ src/server/GitLabPullRequestCli.test.ts (41 tests) 195ms
 ✓ src/server/GitLabPullRequestProvider.test.ts (7 tests) 35ms
 ✓ src/server/GitLabCli.test.ts (5 tests) 21ms
 ✓  react  src/native/useRestingTopOffset.test.tsx (4 tests) 37ms
 ✓ src/server/GitLabSourceControlProvider.test.ts (12 tests) 30ms
 ✓ src/server/GitLabPullRequestCli.legacy.test.ts (14 tests) 70ms

 Test Files  6 passed (6)
      Tests  108 passed (108)
   Start at  17:03:33
   Duration  3.11s (transform 60%, import 35%, tests 2%, setup 2%)


~/infra/relay$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/preview/BrowserImport/ChromiumCookies.test.ts (10 tests) 192ms
 ✓ src/server/commands.test.ts (1 test) 2ms
 ✓ src/server/mcpInjection.test.ts (3 tests) 13ms
 ✓ src/app/DesktopClerk.test.ts (15 tests) 171ms
 ✓ src/telemetry/DesktopTelemetryPublisher.test.ts (3 tests) 93ms
 ✓ src/snapShot/snapShot.test.ts (36 tests) 94ms

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

 ✓ src/backend/DesktopServerExposure.test.ts (10 tests) 373ms
 ✓ src/preview/FaviconCapture.test.ts (24 tests) 75ms
 ✓ src/server/textGeneration.test.ts (1 test) 42ms
 ✓ src/server/status.test.ts (6 tests) 108ms
 ✓ src/preview/BrowserImport/FirefoxCookies.test.ts (11 tests) 242ms
 ✓ src/server/driver.test.ts (5 tests) 177ms
 ✓ src/preview/Passkeys.test.ts (6 tests) 24ms
 ✓ src/wsl/DesktopWslServerTree.test.ts (8 tests) 205ms
 ✓ src/snapShot/PortalCaptureShortcut.test.ts (20 tests) 53ms
 ✓ src/shell/DesktopShellEnvironment.test.ts (12 tests) 108ms
 ✓ src/settings/DesktopAppSettings.test.ts (11 tests) 174ms
 ✓  react  src/features/settings/components/BranchNamingSettings.test.tsx (4 tests) 71ms
 ✓  react  src/state/use-selected-thread-git-actions.test.tsx (1 test) 34ms
 ✓ src/app/DesktopObservability.test.ts (4 tests) 247ms
 ✓ src/preview/BrowserSession.test.ts (7 tests) 43ms
 ✓ src/snapShot/CaptureShortcutConfig.test.ts (16 tests) 140ms
 ✓ src/wsl/DesktopWslEnvironment.test.ts (17 tests) 2752ms
   ✓ WSL runtime install script (executed) (12)
     ✓ extracts once when two installs race for the same cache 1139ms
 ✓ src/settings/DesktopClientSettings.test.ts (7 tests) 266ms
 ✓ src/app/DesktopLifecycle.test.ts (6 tests) 46ms
 ✓  unit  src/lib/threadActivity.test.ts (35 tests) 164ms
 ✓ src/snapShot/LinuxSnapShot.test.ts (19 tests) 143ms
 ✓ src/environments/ManagedEndpointReaper.test.ts (17 tests) 159ms
 ✓ src/preview/BrowserImport/SafariCookies.test.ts (9 tests) 70ms
 ✓  unit  src/lib/modelOptions.test.ts (29 tests) 64ms
 ✓ src/environments/ManagedEndpointProvider.test.ts (31 tests) 116ms
 ✓  unit  src/features/threads/threadListV2.test.ts (56 tests) 85ms
 ✓ src/app/DesktopCliCommand.test.ts (6 tests) 223ms
 ✓ src/server/adapter.test.ts (87 tests) 4198ms
   ✓ PiAdapterV2 (85)
     ✓ delivers realistic MCP screenshots through the bridge, JSONL transport, and adapter 1165ms
   ✓ PiRpc framing (1)
     ✓ reassembles records across chunk boundaries and strips CR 435ms

 Test Files  7 passed (7)
      Tests  127 passed (127)
   Start at  17:03:33
   Duration  8.09s (transform 48%, import 28%, tests 19%, setup 4%)

 ✓ src/app/DesktopConnectionCatalogStore.test.ts (5 tests) 105ms
 ✓  unit  src/state/thread-outbox.test.ts (35 tests) 208ms
 ✓ src/preview/DesktopBrowserHost.test.ts (7 tests) 47ms

~/packages/source-control-gitcafe$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/window/DesktopApplicationMenu.test.ts (3 tests) 43ms
 ✓  react  src/features/settings/SettingsServerControlsRouteScreen.test.tsx (1 test) 84ms
 ✓ src/snapShot/NiriSnapShot.test.ts (18 tests) 432ms
 ✓ src/preview/BrowserImport/ChromiumKeys.test.ts (9 tests) 110ms
 ✓ src/preview/CdpRelay.test.ts (6 tests) 17ms

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

 ✓ src/snapShot/KdeSnapShot.test.ts (9 tests) 82ms
 ✓  unit  src/features/agent-awareness/remoteRegistration.test.ts (15 tests) 938ms
   ✓ makeRelayDeviceRegistrationRequest (15)
     ✓ registers a Live Activity push token that rotates after registration 339ms
 ✓ src/backend/DesktopLocalEnvironmentAuth.test.ts (3 tests) 138ms
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)

 ✓ src/settings/DesktopSavedEnvironments.test.ts (3 tests) 177ms
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/index.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Paths.js" points to missing source files
Sourcemap for "/home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-file-system@58.0.9_expo@58.0.14_react-native@0.88.0_@babel+core@7.29.7_supports-co_dba9ef97a37b898651a8aa6fe892beee/node_modules/expo-file-system/build/Directory.js" points to missing source files
 ✓ src/app/DesktopPreReadyPlatform.test.ts (4 tests) 86ms
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
 ✓ scripts/electron-launcher.test.mjs (7 tests) 1171ms
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
   ✓ dev cleanup matches only the literal root argument: /tmp/t3-feature.one/apps/desktop 536ms
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
   ✓ dev cleanup matches only the literal root argument: /tmp/t3-feature.one [two](three)+?^${four}|back\slash*/apps/desktop 623ms
 ✓ src/server/gitCafeHosts.test.ts (7 tests) 4ms
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) 156ms
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
 ✓ src/http/Api.test.ts (27 tests) 279ms
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
 ✓ src/environments/EnvironmentConnector.test.ts (12 tests) 292ms
stderr | src/state/use-composer-drafts.test.ts > mobile composer drafts > restores deleted file chips and releases undo history (uploaded: false)
[composer-attachments] could not remove local file Error [RolldownError]: Parse failure: Parse failed with 1 error:
Flow is not supported
1: /**
   ^
2:  * Copyright (c) Meta Platforms, Inc. and affiliates.
3:  *
At file: /@fs/home/runner/_work/t3code/t3code/node_modules/.pnpm/react-native@0.88.0_@babel+core@7.29.7_supports-color@8.1.1__@react-native+metro-config_4bbd3f1473e0b719a3b6bb196a69f292/node_modules/react-native/index.js:1:0
    at error (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/logs-D6uA606S.mjs:166:24)
    at normalizeParseError (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:25:9)
    at wrap (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:5:39)
    at parseAstAsync (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/parse-ast-index.mjs:54:9)
    at async ssrTransformScript (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/chunks/node.js:21140:9)
 ✓ src/hooks/HookForwarder.test.ts (17 tests) 590ms
    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'
    },
 ✓  unit  src/lib/attachmentUpload.test.ts (28 tests) 31ms
    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) 156ms
      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__: {
 ✓  unit  src/features/sharing/incoming-share-model.test.ts (19 tests) 58ms
    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,
 ✓ src/agentActivity/FcmDeliveries.test.ts (29 tests) 216ms
      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: /**
     ^
 ✓ src/app/DesktopEarlyElectronStartup.test.ts (19 tests) 32ms
  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)
 ✓ src/snapShot/HyprlandSnapShot.test.ts (9 tests) 95ms
      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)
 ✓  unit  src/features/home/useThreadListActions.test.ts (37 tests) 41ms
        at Object.invoke (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:568:33)
        at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
        at async VitestModuleRunner.getModuleInformation (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1217:7)
        at async request (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1234:83)
        at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/requireNativeModule.ts:1:1
        at async VitestModuleEvaluator._runInlinedModule (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.5_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@vitest+browser-playwright@5._a4090df6c7be8012d869871fb8a7445d/node_modules/vitest/dist/module-evaluator.js:261:4)
        at async VitestModuleRunner.directRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1277:59)
        at async VitestModuleRunner.cachedRequest (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/@voidzero-dev+vite-plus-core@1.3.0_@tsc-rs+typescript@0.8.0_@types+node@24.12.4_@volar+_298b27adb89a86e0d0a0a5c4125affc4/node_modules/@voidzero-dev/vite-plus-core/dist/vite/node/module-runner.js:1184:73)
        at /home/runner/_work/t3code/t3code/node_modules/.pnpm/expo-modules-core@58.0.22_patch_hash=f0b0fd100550ed76e5c25b4d13eb7c9ff62825f8f197c53edf_6a1c9e707e4caac0e11bcdf133fd5ef6/node_modules/expo-modules-core/build/sweet/sweet/setUpJsLogger.fx.ts:2:1
  }
}

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

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

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

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

stderr | src/state/use-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
}

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

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

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

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

 ✓ src/window/ContextMenuImage.test.ts (15 tests) 158ms
 ✓ src/agentActivity/ApnsDeliveries.test.ts (36 tests) 539ms
 ✓ src/snapShot/GnomeCaptureSetup.test.ts (11 tests) 456ms
 ✓ src/wsl/DesktopWslBackend.test.ts (1 test) 25ms
 ✓  unit  src/native/workspace-stack-projection.test.ts (22 tests) 35ms
 ✓  unit  src/state/use-composer-drafts.test.ts (74 tests) 2104ms
   ✓ mobile composer drafts (74)
     ✓ restores deleted file chips and releases undo history (uploaded: false) 713ms
     ✓ keeps attachment files and uploads after a recovered message leaves an incomplete outbox 389ms
     ✓ hydrates persisted drafts before a cold-start sweep deletes their files 314ms
 ✓ src/agentActivity/AgentActivityPublisher.test.ts (10 tests) 60ms
 ✓ src/ipc/methods/window.test.ts (5 tests) 225ms
 ✓ src/updates/releaseNotes.test.ts (8 tests) 10ms
 ✓ src/electron/ElectronWindow.test.ts (2 tests) 75ms
 ✓ src/hooks/HookInboxStore.test.ts (11 tests) 913ms
   ✓ HookInboxStore (11)
     ✓ refuses a request that would pass the byte cap 434ms
 ✓ src/electron/ElectronProtocol.test.ts (3 tests) 92ms
 ✓ src/app/DesktopAppIdentity.test.ts (5 tests) 122ms
 ✓ src/server/gitCafePullRequestJson.test.ts (14 tests) 54ms
 ✓  unit  src/lib/mobileTheme.test.ts (24 tests) 230ms
 ✓ scripts/main-process-bundle.test.mjs (2 tests) 696ms
   ✓ loads the emitted packaged boot entry and backend cache preload 477ms
 ✓ src/agentActivity/ApnsClient.test.ts (6 tests) 284ms
 ✓ src/server/GitCafeCredentials.test.ts (4 tests) 40ms
 ✓ src/server/GitCafeSourceControlProvider.test.ts (8 tests) 91ms
 ✓ src/preview/PasskeyBridge.test.ts (3 tests) 8ms
 ✓ src/environments/EnvironmentLinker.test.ts (4 tests) 157ms
 ✓ src/server/GitCafePullRequestProvider.test.ts (29 tests) 229ms
 ✓  unit  src/state/thread-task-permissions.test.ts (7 tests) 32ms

 Test Files  5 passed (5)
      Tests  62 passed (62)
   Start at  17:03:43
   Duration  4.12s (transform 51%, import 39%, setup 7%, tests 3%)


~/packages/client-runtime$ vp test run ⊘ cache disabled
 ✓  unit  src/lib/attachmentDownload.test.ts (19 tests) 71ms
 ✓ src/updates/remoteUpdateFlow.test.ts (6 tests) 4ms
 ✓ src/backend/DesktopBackendPool.test.ts (1 test) 48ms
 ✓ src/agentActivity/FcmClient.test.ts (4 tests) 194ms

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

 ✓  unit  src/lib/android-workspace-navigation.test.ts (15 tests) 27ms
 ✓  unit  src/state/use-thread-outbox-drain.permissions.test.ts (12 tests) 27ms
 ✓  unit  src/lib/composerAttachmentUploadQueue.test.ts (11 tests) 21ms
 ✓ src/auth/RelayTokens.test.ts (5 tests) 178ms
 ✓ gnome-extension/captureFeedback.test.js (4 tests) 19ms
 ✓  unit  src/lib/composerContext.test.ts (15 tests) 411ms
 ✓ src/app/DesktopAppActivation.test.ts (3 tests) 219ms
 ✓ src/window/QuitHold.test.ts (7 tests) 40ms
 ✓ src/ssh/DesktopSshPasswordPrompts.test.ts (2 tests) 106ms
 ✓  unit  src/features/threads/thread-feed-live-follow.test.ts (28 tests) 13ms
 ✓ src/snapShot/captureConfigEdit.test.ts (24 tests) 89ms
 ✓ src/agentActivity/MobileRegistrations.test.ts (2 tests) 35ms
 ✓  unit  src/features/pull-requests/pullRequestList.test.ts (15 tests) 90ms
 ✓  unit  src/state/composer-attachment-uploads.test.ts (5 tests) 48ms
 ✓ gnome-extension/captureService.test.js (10 tests) 20ms
 ✓ src/ipc/methods/wsl.test.ts (2 tests) 39ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[17:03:49.907] INFO (#5): Plan: 1 tasks
[17:03:49.912] INFO (#5): [PublishClientConfig] run [action]
[17:03:49.913] INFO (#5):

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

 ✓ src/legacyLocalStorageMerge.test.ts (7 tests) 53ms
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-TVAtsy/client.env
[17:03:49.954] INFO (#47): [PublishClientConfig] ran (10ms)

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

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[17:03:49.983] INFO (#5): Plan: no resources
[17:03:49.989] INFO (#5):
[17:03:49.990] INFO (#63): [PublishClientConfig] skipped
[17:03:50.004] INFO (#64): [PublishClientConfig] skipped
[17:03:50.004] INFO (#5):
[17:03:50.004] INFO (#5): Done: 0 succeeded, 1 skipped (15ms)

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

stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[17:03:50.032] 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-TVAtsy/client.env
[17:03:50.034] INFO (#79): [PublishClientConfig] ran (2ms)

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

 ✓ src/preview/BrowserImport/BrowserImport.test.ts (3 tests) 205ms
 ✓ src/environments/EnvironmentCredentials.test.ts (3 tests) 96ms
stdout | src/clientConfig.test.ts > PublishClientConfig > writes the env file on deploy and skips an unchanged redeploy
[17:03:50.057] INFO (#5): Plan: 1 tasks
[17:03:50.057] INFO (#5): [PublishClientConfig] drop [action]
[17:03:50.057] INFO (#5):
[17:03:50.058] INFO (#88): [PublishClientConfig] deleting
[17:03:50.058] INFO (#88): [PublishClientConfig] deleted (0ms)
[17:03:50.059] INFO (#5):
[17:03:50.059] 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
[17:03:50.097] INFO (#117): Plan: 1 tasks
[17:03:50.098] INFO (#117): [PublishClientConfig] run [action]
[17:03:50.098] INFO (#117):

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

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

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

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

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

 ✓ src/clientConfig.test.ts (10 tests) 454ms
   ✓ PublishClientConfig (3)
     ✓ writes the env file on deploy and skips an unchanged redeploy 303ms
 ✓ src/wsl/wslPathParsing.test.ts (12 tests) 19ms
 ✓ src/updates/updateMachine.test.ts (4 tests) 8ms
 ✓ src/app/CodexAuthCallback.test.ts (4 tests) 147ms
 ✓ src/linuxSecretStorage.test.ts (7 tests) 29ms
 ✓ src/app/DesktopCliShim.test.ts (4 tests) 149ms
 ✓  unit  src/features/voice-input/voiceInputSession.test.ts (13 tests) 77ms
 ✓ src/ipc/methods/notificationBadge.test.ts (1 test) 66ms
 ✓  unit  src/features/updates/app-updates.test.ts (11 tests) 112ms
 ✓ src/ipc/methods/preview.test.ts (5 tests) 75ms
 ✓ src/snapShot/RegionSnapShot.test.ts (4 tests) 24ms
 ✓ src/preview/GuestInput.test.ts (4 tests) 13ms
 ✓  unit  src/lib/composerContextClipboard.test.ts (7 tests) 107ms
 ✓ src/permissions/MacPermissionHelper.test.ts (1 test) 36ms
 ✓  unit  src/connection/environment-cache-store.test.ts (4 tests) 86ms
 ✓ src/environments/EnvironmentPublishSignatures.test.ts (3 tests) 195ms
 ✓ src/agentActivity/agentActivityPolicy.test.ts (5 tests) 26ms
 ✓ src/backend/tailscaleEndpointProvider.test.ts (3 tests) 22ms
 ✓ scripts/verify-preload-bundle.test.mjs (7 tests) 66ms
 ✓ src/app/DesktopWebLinks.test.ts (2 tests) 16ms
 ✓  unit  src/features/threads/checkout-new-task-branch.test.ts (11 tests) 5418ms
   ✓ new-task branch checkout (11)
     ✓ switches to a free branch and clears its historical worktree path 461ms
     ✓ does not release the selection while checkout is still pending 373ms
     ✓ reuses an existing worktree without switching the project checkout 335ms
     ✓ reuses an occupied picker worktree when the project root is a symlink 471ms
     ✓ resolves historical branch metadata to its worktree beyond a long query's first page 551ms
     ✓ resolves a non-origin remote to the right worktree when the remote name contains slashes 823ms
     ✓ switches to the selected remote instead of reusing a worktree tracking another remote 952ms
     ✓ rejects historical worktree reuse when project root is unsafe (nested: true) 422ms
     ✓ rejects picker worktree reuse when project root is unsafe (nested: false) 327ms
     ✓ keeps a nested project's cwd when historical metadata names the already-current branch 420ms
 ✓ src/ipc/methods/snapShot.test.ts (3 tests) 47ms
 ✓ src/auth/DpopProofs.verifyAndConsume.test.ts (4 tests) 138ms
 ✓  unit  src/state/pending-task-editor-writes.test.ts (5 tests) 22ms
 ✓  unit  src/features/home/home-thread-navigation.test.ts (6 tests) 15ms
 ✓ src/electron/ElectronShell.test.ts (5 tests) 66ms
 ✓ src/preview/BrowserImport/CookieDatabase.test.ts (2 tests) 130ms
 ✓ src/agentActivity/ApnsProviderTokens.test.ts (2 tests) 207ms
 ✓  unit  src/state/thread-outbox-removal.test.ts (5 tests) 86ms
 ✓ src/snapShot/NativeCaptureFeedback.test.ts (2 tests) 30ms
 ✓  unit  src/features/threads/threadOrderAvailability.test.ts (7 tests) 506ms
   ✓ computeThreadMoveAvailability matches the reference planner (7)
     ✓ agrees across randomized sections (keys, holes, non-writable rows, hidden keys) 499ms
 ✓ src/preview/PickedElementPayload.test.ts (2 tests) 3ms
 ✓ ../../native/kde-snap-shot/src/activate.test.ts (2 tests) 24ms
 ✓ scripts/browser-secret-native.test.mjs (10 tests) 1859ms
   ✓ bundled libsecret helper (10)
     ✓ builds an executable for the requested architecture into a staged resource directory 831ms
 ✓ src/preview/BrowserImport/SafariPermission.test.ts (2 tests) 178ms
 ✓  unit  src/state/use-selected-thread-git-actions.test.ts (11 tests) 43ms
 ✓  unit  src/features/diffs/nativeReviewDiffHighlighter.test.ts (11 tests) 1549ms
   ✓ highlightNativeReviewDiffVisibleRows (3)
     ✓ does not carry grammar state across hunk boundaries 589ms
 ✓ src/snapShot/SnapShotAccessibilityProcess.test.ts (3 tests) 15ms
 ✓ src/electron/WindowsForegroundFocusThread.test.ts (2 tests) 18ms
 ✓  unit  src/features/cloud/linkEnvironment.test.ts (3 tests) 178ms
 ✓ src/authorization/layer.test.ts (23 tests) 593ms
 ✓ src/environments/EnvironmentLinks.test.ts (2 tests) 17ms
 ✓ src/electron/WindowsForeground.test.ts (3 tests) 26ms
 ✓ src/agentActivity/DeliveryAttempts.test.ts (3 tests) 56ms
 ✓  unit  src/features/sharing/incoming-share-inbox.test.ts (10 tests) 50ms
 ✓ src/preview/BrowserImport/LinuxBrowserSecret.test.ts (1 test) 149ms
 ✓ src/agentActivity/LiveActivities.test.ts (2 tests) 33ms
 ✓ src/app/DesktopUserData.test.ts (2 tests) 116ms
 ✓ src/app/DesktopEnvironment.test.ts (2 tests) 28ms
 ✓  unit  src/native/composerEditorRevision.test.ts (17 tests) 32ms
 ✓ src/state/runtime.test.ts (23 tests) 504ms
 ✓  unit  src/lib/composerImages.test.ts (6 tests) 28ms
 ✓ src/app/DesktopAppActivationBroker.test.ts (3 tests) 12ms
 ✓ src/connection/supervisor.test.ts (30 tests) 794ms
 ✓ gnome-extension/feedbackGeometry.test.js (7 tests) 11ms
 ✓ src/agentActivity/apnsDeliveryJobs.test.ts (1 test) 23ms
 ✓ src/preview/WebviewPreferences.test.ts (2 tests) 9ms
 ✓ src/rpc/session.test.ts (14 tests) 900ms
   ✓ RpcSessionFactory (14)
     ✓ recovers a slow subscriber after it misses theme and usage-source deletion 325ms
 ✓ src/environments/endpointFailure.test.ts (15 tests) 37ms
 ✓ src/permissions/MacSettingsWindow.test.ts (2 tests) 56ms
 ✓ src/snapShot/WindowsCaptureFeedback.test.ts (1 test) 11ms
 ✓ src/ipc/methods/localEnvironment.test.ts (1 test) 22ms
 ✓ src/deploymentConfig.test.ts (3 tests) 3ms
 ✓ src/hooks/HeldHooks.test.ts (1 test) 32ms
 ✓ ../../native/kde-snap-shot/src/feedbackGeometry.test.ts (2 tests) 24ms
 ✓ src/app/DesktopPreReadyFileSystem.test.ts (1 test) 46ms
 ✓ src/connection/registry.test.ts (41 tests) 1527ms
 ✓ src/preview/RecordingInput.test.ts (2 tests) 2ms
 ✓  unit  src/features/settings/scheduledTaskDraft.test.ts (12 tests) 32ms
 ✓ src/state/threads-sync.test.ts (24 tests) 384ms
 ✓  unit  src/dependency-graph.test.ts (2 tests) 17ms
 ✓  unit  src/features/home/homeThreadList.test.ts (4 tests) 40ms
 ✓ src/preview/AnnotationKeyboard.test.ts (1 test) 9ms
 ✓ src/preview/AnnotationIds.test.ts (1 test) 15ms
 ✓ src/ipc/methods/sshEnvironment.test.ts (1 test) 16ms

 Test Files  103 passed (103)
      Tests  836 passed (836)
   Start at  17:03:31
   Duration  25.10s (import 46%, transform 28%, tests 13%, setup 12%, worker 1%)

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


~/packages/source-control-github$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/state/pullRequests.test.ts (56 tests) 2084ms
   ✓ returns a successful mutation when source invalidation stalls 1039ms

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

 ✓ src/state/server.test.ts (19 tests) 92ms
 ✓ src/environments/ManagedEndpointAllocations.test.ts (1 test) 7ms
 ✓ src/voice-input/controller.test.ts (22 tests) 63ms
 ✓ src/operations/commands.test.ts (14 tests) 75ms
stdout | src/state/preferences.test.ts > mobile preferences state > falls back to empty preferences when secure storage cannot be read
[17:03:57.764] 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) 59ms
stdout | src/lib/storage.test.ts > mobile connection storage > loads legacy preferences when SQLite is unavailable
[17:03:57.775] WARN (#16): 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
[17:03:57.786] WARN (#17): 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
[17:03:57.800] WARN (#17): 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 (6 tests) 58ms
 ✓ src/state/shell-sync.test.ts (6 tests) 74ms
 ✓  unit  src/features/threads/thread-provider-instance.test.ts (3 tests) 24ms
 ✓  unit  src/state/session.test.ts (4 tests) 26ms
 ✓ src/agentActivity/ApnsDeliveryQueue.test.ts (1 test) 17ms
 ✓ src/state/vcs.test.ts (9 tests) 191ms
 ✓  unit  src/lib/mediaActions.test.ts (10 tests) 13ms
 ✓ src/connection/onboarding.test.ts (13 tests) 324ms
 ✓  unit  src/features/projects/AddProjectScreen.test.ts (3 tests) 28ms
 ✓ src/server/gitHubPullRequestJson.test.ts (49 tests) 141ms
 ✓ src/environments/CloudflareApiPause.test.ts (1 test) 15ms

 Test Files  30 passed (30)
      Tests  268 passed (268)
   Start at  17:03:37
   Duration  21.65s (import 81%, transform 10%, setup 5%, tests 4%)

 ✓ src/state/entities.test.ts (16 tests) 41ms
 ✓ src/state/environmentHttpAuth.test.ts (32 tests) 366ms
 ✓  unit  src/features/cloud/dpop.test.ts (5 tests) 321ms
 ✓ src/state/orchestrationV2Projection.test.ts (13 tests) 46ms
 ✓ src/state/vcsAction.test.ts (9 tests) 47ms

~/scripts$ vp test run --config ../vite.config.ts --dir . ⊘ cache disabled
 ✓  unit  src/features/settings/settings-scoped-server.test.ts (5 tests) 19ms
 ✓  unit  src/features/agent-awareness/liveActivityPreferences.test.ts (3 tests) 25ms
 ✓  unit  src/features/threads/new-task-project-selection.test.ts (9 tests) 14ms

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

 ✓  unit  src/features/pull-requests/pullRequestStack.test.ts (8 tests) 29ms
 ✓ src/state/threads-atoms.test.ts (4 tests) 326ms
 ✓ src/relay/discovery.test.ts (7 tests) 202ms
 ✓  unit  src/features/settings/environment-maintenance.test.ts (7 tests) 44ms
 ✓  unit  src/features/threads/thread-route-state.test.ts (5 tests) 10ms
 ✓ src/relay/managedRelay.test.ts (7 tests) 308ms
 ✓ src/connection/routes.test.ts (19 tests) 34ms
 ✓  unit  src/features/threads/thread-settings-sheet-state.test.ts (5 tests) 23ms
 ✓  unit  src/features/review/reviewModel.test.ts (5 tests) 17ms
 ✓ src/rpc/client.test.ts (8 tests) 198ms
 ✓  unit  src/features/review/reviewCommentSelection.test.ts (6 tests) 11ms
 ✓  unit  src/lib/protectedData.test.ts (3 tests) 270ms
 ✓ lib/third-party-licenses.test.ts (19 tests) 232ms
 ✓ src/state/threadCommands.test.ts (19 tests) 248ms
 ✓  unit  src/widgets/subscriptionUsageSnapshot.test.ts (5 tests) 36ms
 ✓ src/server/GitHubCredentials.test.ts (5 tests) 200ms
 ✓ src/server/gitHubGraphQlClient.test.ts (9 tests) 287ms
 ✓ src/state/threadShell.test.ts (9 tests) 165ms
 ✓ src/server/GitHubRest.test.ts (8 tests) 320ms
 ✓ notify-discord-release.test.ts (15 tests) 259ms
 ✓  unit  src/features/voice-input/lazyVoiceRecorder.test.ts (3 tests) 14ms
 ✓ src/server/githubStackActions.test.ts (9 tests) 293ms
 ✓ src/server/GitHubPullRequestProvider.test.ts (17 tests) 128ms
 ✓ src/device/stream.test.ts (14 tests) 105ms
 ✓  unit  src/state/remote-environment-projections.test.ts (1 test) 9ms
 ✓ dev-runner.test.ts (31 tests) 220ms
 ✓ legend-list-initial-reveal.test.ts (10 tests) 81ms
 ✓ merge-update-manifests.test.ts (5 tests) 89ms
 ✓  unit  src/features/review/nativeReviewDiffAdapter.test.ts (2 tests) 959ms
   ✓ buildNativeReviewDiffData row bound (1)
     ✓ caps each huge file excerpt while preserving full counts and ordinary files 923ms
 ✓ src/platform/storageDocument.test.ts (13 tests) 74ms
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) 1154ms
   ✓ withAndroidFbjniVersion (4)
     ✓ applies the force through the registered app config 1100ms
 ✓ src/server/gitHubRepositoryResolution.test.ts (3 tests) 4ms
 ✓ src/server/GitHubQuota.test.ts (4 tests) 50ms
 ✓ src/state/projectGrouping.test.ts (20 tests) 31ms
 ✓  unit  src/state/edit-pending-thread-message.test.ts (4 tests) 14ms
 ✓ update-release-package-versions.test.ts (3 tests) 128ms
 ✓  unit  src/features/usage/UsageLimitsSection.test.ts (2 tests) 14ms
 ✓  unit  src/lib/pdfPreview.test.ts (12 tests) 43ms
 ✓ lib/dev-share.test.ts (5 tests) 91ms
 ✓ build-npm-launcher.test.ts (1 test) 1631ms
   ✓ build-npm-launcher (1)
     ✓ publishes a launcher that downloads, verifies, caches, and runs the release executable 1597ms
 ✓  unit  src/features/agent-awareness/notificationNavigation.test.ts (6 tests) 57ms
 ✓  unit  src/features/pull-requests/pullRequestDiffPages.test.ts (3 tests) 26ms
 ✓ src/state/threadRelationships.test.ts (11 tests) 63ms
 ✓ lib/public-config.test.ts (1 test) 23ms
 ✓ src/server/GitHubSourceControlProvider.test.ts (29 tests) 2638ms
   ✓ keeps Enterprise operations on the selected remote: git@code.example.test:team/project.git 702ms
   ✓ keeps Enterprise operations on the selected remote: ssh://git@code.example.test/team/project.git 719ms
   ✓ keeps Enterprise operations on the selected remote: https://code.example.test/team/project.git 751ms
 ✓ src/state/fileMetadata.test.ts (11 tests) 1052ms
   ✓ file metadata (11)
     ✓ splits large mounts into bounded batches and caches misses 383ms
 ✓ src/connection/resolver.test.ts (6 tests) 354ms
 ✓  unit  src/features/workspace/android-workspace-navigation-colors.test.ts (9 tests) 225ms
 ✓  unit  src/state/thread-order.test.ts (4 tests) 55ms
 ✓ src/server/GitHubPullRequestApi.test.ts (105 tests) 3366ms
   ✓ GitHubPullRequestApi.layer (104)
     ✓ keeps the pull request being ticked through, not the one looked up first 1715ms
 ✓ src/state/commandPermissions.test.ts (14 tests) 210ms

 Test Files  10 passed (10)
      Tests  238 passed (238)
   Start at  17:03:57
   Duration  8.03s (transform 46%, import 30%, tests 19%, setup 5%)

 ✓ lib/cli-external-packages.test.ts (10 tests) 2740ms
   ✓ external package dependency closure (1)
     ✓ keeps every runtime dependency of an external package external too 2605ms
 ✓ src/state/threadExecution.test.ts (11 tests) 51ms
 ✓ sync-reference-repos.test.ts (2 tests) 79ms
 ✓ mobile-native-client.test.ts (2 tests) 176ms
 ✓ mock-update-server.test.ts (2 tests) 287ms

~/packages/source-control-azure-devops$ vp test run --config ../../vite.config.ts --dir . ⊘ cache disabled
 ✓ src/state/threadWorkflows.test.ts (21 tests) 29ms
 ✓ lib/resolve-catalog.test.ts (2 tests) 31ms
 ✓ src/state/threadHistoryMerge.test.ts (7 tests) 40ms
 ✓  unit  src/state/assets.test.ts (4 tests) 52ms
 ✓ src/mcpApps/host.test.ts (9 tests) 49ms
 ✓  unit  src/lib/adaptive-navigation.test.ts (8 tests) 34ms
 ✓ lib/build-target-arch.test.ts (1 test) 51ms
 ✓ mobile-showcase.test.ts (3 tests) 26ms

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

 ✓ lib/icon-export.test.ts (1 test) 8ms
 ✓ resolve-previous-release-tag.test.ts (3 tests) 50ms
 ✓ mobile-native-static-check.test.ts (2 tests) 20ms
 ✓  unit  src/lib/projectFaviconRequests.test.ts (4 tests) 26ms
 ✓  unit  src/state/pending-thread-creation.test.ts (4 tests) 17ms
 ✓  unit  src/features/connection/environmentSections.test.ts (3 tests) 33ms
 ✓ src/connection/outdatedHostUpdate.test.ts (3 tests) 165ms
 ✓ src/state/shellReducer.test.ts (14 tests) 25ms
 ✓  unit  src/state/attachments.test.ts (2 tests) 7ms
 ✓ src/state/threadSort.test.ts (21 tests) 295ms
 ✓ src/state/threadSnoozed.test.ts (20 tests) 65ms
 ✓ src/state/projectCommands.test.ts (4 tests) 78ms
 ✓ build-desktop-artifact.test.ts (42 tests) 6012ms
   ✓ build-desktop-artifact (40)
     ✓ rejects overlapping builds from another process until restoration finishes 1625ms
     ✓ builds web, server and desktop with the resolved version, restores changed manifests and preserves edits to matching ones 1011ms
     ✓ reports a restore failure while still restoring the remaining manifests 410ms
 ✓  unit  src/features/shortcuts/appShortcuts.test.ts (7 tests) 27ms
stdout | src/state/serverUsage.test.ts > keeps the cached usage summary when the awaited refresh fails
[17:04:08.560] 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) 161ms
 ✓  unit  src/lib/atomic-file.test.ts (4 tests) 18ms
 ✓ src/server/azureDevOpsDiff.test.ts (14 tests) 821ms
   ✓ azureDevOpsFilePatch (11)
     ✓ lists a file too far apart to diff without its hunks 752ms
 ✓  unit  src/state/workspace-connection-atoms.test.ts (1 test) 43ms
 ✓  unit  src/features/workspace/workspace-tabs-state.test.ts (4 tests) 17ms
 ✓  unit  src/features/pull-requests/pullRequestFileFilters.test.ts (4 tests) 33ms
 ✓ src/operations/commands.performance.test.ts (1 test) 221ms
 ✓  unit  src/state/use-thread-pr.test.ts (6 tests) 14ms
 ✓ src/state/terminalSession.test.ts (9 tests) 28ms
 ✓  unit  src/lib/markdownMedia.test.ts (12 tests) 11ms
 ✓ src/platform/shellCacheEncoding.test.ts (5 tests) 259ms
 ✓  unit  src/lib/localAttachmentPreview.test.ts (4 tests) 19ms
 ✓ src/state/subagentRuntime.test.ts (11 tests) 46ms
 ✓ src/state/threadRequests.test.ts (10 tests) 12ms
 ✓  unit  src/lib/copyTextWithHaptic.test.ts (5 tests) 49ms
 ✓  unit  src/features/terminal/useTerminalGridSync.test.ts (1 test) 26ms
 ✓ src/authorization/remote.test.ts (5 tests) 172ms
 ✓  unit  src/lib/reserved-regions.test.ts (5 tests) 7ms
 ✓  unit  src/features/terminal/useTerminalLifecycle.test.ts (3 tests) 40ms
 ✓  unit  src/persistence/mobile-database.test.ts (3 tests) 40ms
 ✓ src/work-log/commandLabel.test.ts (61 tests) 243ms
 ✓ src/state/usage.test.ts (8 tests) 28ms
 ✓  unit  src/features/pull-requests/pullRequestDiffComments.test.ts (4 tests) 7ms
 ✓  unit  src/features/review/incrementalSnippet.test.ts (3 tests) 553ms
   ✓ incremental snippet highlighting (3)
     ✓ matches full highlighting through partial lines, multiline syntax, edits and truncation 429ms
 ✓  unit  src/connection/storage.test.ts (3 tests) 50ms
 ✓ src/server/azureDevOpsPullRequestJson.test.ts (28 tests) 98ms
 ✓ src/projectFaviconCache.test.ts (8 tests) 210ms
 ✓ src/server/AzureDevOpsCli.test.ts (7 tests) 64ms
 ✓ src/state/boundedThreadSnapshotHttp.test.ts (5 tests) 110ms
 ✓ src/relay/managedRelayState.test.ts (4 tests) 30ms
 ✓  unit  src/persistence/mobile-storage.test.ts (3 tests) 33ms
 ✓  unit  src/connection/background-activity.test.ts (3 tests) 22ms
 ✓ src/state/threadSubagents.test.ts (7 tests) 24ms
 ✓  unit  src/lib/markdownHtml.test.ts (5 tests) 60ms
 ✓  unit  src/lib/layout.test.ts (7 tests) 10ms
 ✓ src/device/duoViewer.test.ts (2 tests) 27ms
 ✓ src/server/AzureDevOpsPullRequestCli.test.ts (20 tests) 317ms
 ✓ src/device/duoControl.test.ts (12 tests) 18ms
 ✓  unit  src/lib/videoThumbnails.test.ts (2 tests) 14ms
 ✓ src/pullRequestQuery.test.ts (17 tests) 26ms
 ✓  unit  src/features/threads/threadQueueControlPresentation.test.ts (7 tests) 11ms
 ✓ src/state/threadDetail.test.ts (11 tests) 43ms
 ✓ src/server/AzureDevOpsPullRequestProvider.test.ts (12 tests) 751ms

 Test Files  5 passed (5)
      Tests  81 passed (81)
   Start at  17:04:06
   Duration  5.30s (transform 49%, import 33%, tests 11%, setup 7%)


 ✓ src/work-log/presentation.test.ts (16 tests) 17ms
 ✓  unit  src/state/workspaceModel.test.ts (2 tests) 8ms
 ✓ src/state/itemSupport.test.ts (2 tests) 15ms
 ✓  unit  src/features/threads/pending-thread-feed.test.ts (4 tests) 4ms
 ✓ knip-schemas.test.ts (1 test) 12081ms
   ✓ allows types and schemas through the real Knip CLI without hiding runtime or file findings 12080ms

 Test Files  21 passed (21)
      Tests  161 passed (161)
   Start at  17:03:59
   Duration  12.86s (tests 52%, import 25%, transform 12%, setup 11%, worker 1%)
 ✓  unit  src/features/threads/thread-settings-options.test.ts (4 tests) 13ms

 ✓ src/connection/presentation.test.ts (4 tests) 4ms
 ✓ src/connection/diagnosis.test.ts (7 tests) 24ms

 ✓  unit  src/features/threads/use-composer-command-menu.test.ts (3 tests) 5ms
 ✓  unit  src/features/threads/fileChipMenu.test.ts (9 tests) 21ms
 ✓ src/preview/serverBrowserStream.test.ts (5 tests) 18ms
 ✓  unit  src/connection/migration.test.ts (2 tests) 17ms
 ✓  unit  src/lib/composerAttachmentFiles.test.ts (12 tests) 4ms
 ✓ src/pullRequestLinkInput.test.ts (14 tests) 13ms
 ✓ src/pullRequestMarkdown.test.ts (15 tests) 10ms
 ✓  unit  src/lib/microphonePriority.test.ts (4 tests) 3ms
 ✓  unit  src/features/pull-requests/pullRequestStatus.test.ts (4 tests) 4ms
 ✓ src/device/phoneViewer.test.ts (1 test) 43ms
 ✓ src/state/presentation.test.ts (3 tests) 31ms
 ✓  unit  src/features/threads/new-task-context-presentation.test.ts (7 tests) 12ms
 ✓  unit  src/features/settings/autoSettleSettingsSync.test.ts (3 tests) 13ms
 ✓  unit  src/features/home/workspace-connection-status.test.ts (3 tests) 6ms
 ✓ src/device/avcConfig.test.ts (8 tests) 15ms
 ✓  unit  src/features/terminal/terminalMenu.test.ts (5 tests) 16ms
 ✓ src/state/projectEntities.test.ts (2 tests) 36ms
 ✓  unit  src/native/voiceTranscription.ios.test.ts (1 test) 20ms
 ✓ src/platform/orchestrationCache.test.ts (3 tests) 35ms
 ✓  unit  src/lib/projectFaviconDatabaseCache.test.ts (3 tests) 36ms
 ✓ src/handoff.test.ts (8 tests) 6ms
 ✓  unit  src/lib/markdownLinks.test.ts (8 tests) 17ms
 ✓ src/state/threadFeedback.test.ts (4 tests) 20ms
 ✓ src/providerSkills.test.ts (6 tests) 7ms
 ✓  unit  src/features/terminal/terminalInput.test.ts (7 tests) 9ms
 ✓ src/reviewGuideTour.test.ts (7 tests) 5ms
 ✓ src/device/phoneScene.test.ts (8 tests) 142ms
 ✓  unit  src/features/devices/threadDevicePreviews.test.ts (2 tests) 3ms
 ✓ src/threadPullRequestCompatibility.test.ts (10 tests) 12ms
 ✓ src/operations/projects.test.ts (6 tests) 5ms
 ✓  unit  src/features/terminal/terminalLaunchContext.test.ts (3 tests) 3ms
 ✓ src/device/phoneInteraction.test.ts (4 tests) 10ms
 ✓ src/state/usageProgress.test.ts (4 tests) 14ms
 ✓  unit  src/state/queries.filesystem.test.ts (1 test) 4ms
 ✓  unit  src/features/threads/worktree-setup-state.test.ts (4 tests) 3ms
 ✓  unit  src/features/terminal/terminalPaste.test.ts (2 tests) 4ms
 ✓ src/state/attachments.test.ts (3 tests) 23ms
 ✓ src/device/model.test.ts (4 tests) 11ms
 ✓  unit  src/state/thread-provider-switching.test.ts (4 tests) 4ms
 ✓ src/device/duoScene.test.ts (2 tests) 15ms
 ✓  unit  src/lib/appLinking.test.ts (17 tests) 18ms
 ✓  unit  src/features/terminal/useTerminalSurfaceBuffer.test.ts (2 tests) 23ms
 ✓  unit  src/lib/device-type.test.ts (3 tests) 7ms
 ✓ src/state/filesystem.test.ts (8 tests) 6ms
 ✓  unit  src/features/threads/thread-route-hydration.test.ts (3 tests) 8ms
 ✓  unit  src/lib/projectThreadStartTurn.test.ts (3 tests) 11ms
 ✓  unit  src/state/queued-run-edit.test.ts (3 tests) 7ms
 ✓  unit  src/features/files/filePath.test.ts (7 tests) 8ms
 ✓ src/t3ToolSummary.test.ts (3 tests) 4ms
 ✓ src/connection/errors.test.ts (5 tests) 12ms
 ✓  unit  src/features/settings/scheduled-task-editor-state.test.ts (3 tests) 8ms
 ✓  unit  src/features/layout/deferred-navigation.test.ts (3 tests) 4ms
 ✓ src/mediaSource.test.ts (8 tests) 8ms
 ✓ src/state/threadSearch.test.ts (4 tests) 25ms
 ✓ src/state/turnItemPresentation.test.ts (2 tests) 16ms
 ✓ src/state/sharedSettings.test.ts (9 tests) 5ms
 ✓  unit  src/features/home/thread-dismissal.test.ts (3 tests) 18ms
 ✓ src/connection/compatibility.test.ts (4 tests) 16ms
 ✓  unit  src/features/cloud/managedRelayLayer.test.ts (1 test) 99ms
 ✓ src/work-log/toolPresentation.test.ts (4 tests) 4ms
 ✓ src/device/modelScene.test.ts (2 tests) 9ms
 ✓ src/device/streamFrames.test.ts (1 test) 13ms
 ✓ src/state/providerInstanceDisplay.test.ts (10 tests) 15ms
 ✓  unit  src/features/cloud/CloudAuthProvider.test.ts (1 test) 13ms
 ✓ src/promptLinks.test.ts (3 tests) 15ms
 ✓  unit  src/features/sharing/incoming-share-presentation.test.ts (2 tests) 5ms
 ✓  unit  src/features/devices/device-stream-document.test.ts (11 tests) 14ms
 ✓  unit  src/features/threads/provider-catalog-refresh.test.ts (2 tests) 4ms
 ✓ src/state/serverConfigProjection.test.ts (2 tests) 3ms
 ✓  unit  src/features/pull-requests/pullRequestActivityFilter.test.ts (1 test) 5ms
 ✓  unit  src/features/diagnostics/crash-log-model.test.ts (2 tests) 3ms
 ✓ src/device/deviceMotion.test.ts (2 tests) 7ms
 ✓ src/state/queryPersistence.test.ts (3 tests) 28ms
 ✓  unit  src/features/observability/tracing.test.ts (1 test) 21ms
 ✓  unit  src/lib/markdownTableBreaks.test.ts (5 tests) 38ms
 ✓ src/state/customSnooze.test.ts (11 tests) 12ms
 ✓ src/state/threadInbox.test.ts (2 tests) 8ms
 ✓  unit  src/features/pull-requests/pullRequestEnvironmentFallback.test.ts (3 tests) 8ms
 ✓  unit  scripts/generate-uniwind-themes.test.ts (1 test) 56ms
 ✓ src/state/usageAccess.test.ts (8 tests) 3ms
 ✓  unit  src/lib/assetImageSource.test.ts (3 tests) 3ms
 ✓ src/errors/safeLog.test.ts (2 tests) 4ms
 ✓  unit  src/lib/nativeTheme.test.ts (12 tests) 48ms
 ✓ src/work-log/itemDetail.test.ts (2 tests) 16ms
 ✓  unit  src/features/pull-requests/pullRequestAgentTasks.test.ts (2 tests) 9ms
 ✓ src/filePreview.test.ts (3 tests) 74ms
 ✓ src/state/auth.test.ts (2 tests) 5ms
 ✓ src/userMessage.test.ts (3 tests) 4ms
 ✓  unit  src/features/keyboard/commandPaletteItems.test.ts (2 tests) 8ms
 ✓ src/markdownImages.test.ts (12 tests) 7ms
 ✓ src/mediaReference.test.ts (7 tests) 9ms
 ✓ src/errors/transport.test.ts (3 tests) 8ms
 ✓ src/relay/errorPresentation.test.ts (3 tests) 9ms
 ✓  unit  src/lib/enrichedLinkPresentation.test.ts (3 tests) 3ms
 ✓ src/device/duoSnap.test.ts (1 test) 7ms
 ✓ src/state/assets.test.ts (1 test) 10ms
 ✓ src/state/threadHistoryController.test.ts (1 test) 7ms
 ✓  unit  src/lib/markdownMediaSource.test.ts (3 tests) 13ms
 ✓ src/device/renderScheduler.test.ts (1 test) 7ms
 ✓ src/device/androidFoldScene.test.ts (1 test) 81ms
 ✓  unit  src/features/pull-requests/pullRequestActions.test.ts (2 tests) 5ms
 ✓  unit  src/lib/connection.test.ts (1 test) 3ms
 ✓ src/state/commandOutput.test.ts (1 test) 5ms
 ✓ src/errors/errorTrace.test.ts (2 tests) 2ms
 ✓ src/work-log/scrollAnchor.test.ts (1 test) 5ms
 ✓ src/environment/endpoint.test.ts (1 test) 3ms
 ✓  unit  src/features/sharing/incoming-share-storage.test.ts (1 test) 5ms
 ✓  unit  src/features/connection/pairing.test.ts (5 tests) 6ms
 ✓  unit  src/lib/markdownInlineFileLinks.test.ts (4 tests) 25ms
 ✓ src/state/archivedThreads.test.ts (1 test) 6ms
 ✓ src/secretRequest.test.ts (2 tests) 5ms

 Test Files  120 passed (120)
      Tests  1101 passed (1101)
   Start at  17:03:48
   Duration  31.36s (import 50%, transform 31%, setup 10%, tests 8%)

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

 ✓  unit  src/features/settings/SettingsRouteScreen.logic.test.ts (2 tests) 3ms
 ✓  unit  src/features/home/swipe-row-activation.test.ts (3 tests) 3ms

 ✓  unit  src/state/asset-url-state.test.ts (3 tests) 3ms
 ✓  unit  src/lib/wideMarkdownBlocks.test.ts (2 tests) 4ms
 ✓  unit  src/features/pull-requests/botBadgeImages.test.ts (1 test) 3ms
 ✓  unit  src/features/review/shikiReviewHighlighter.test.ts (2 tests) 240ms
 ✓  unit  src/features/usage/usageEnvironmentSelection.test.ts (4 tests) 4ms
 ✓  unit  src/lib/serialized-async-queue.test.ts (2 tests) 4ms
 ✓  unit  src/features/pull-requests/pullRequestDescriptionContent.test.ts (1 test) 4ms
 ✓  unit  src/lib/openExternalUrl.test.ts (1 test) 23ms
 ✓  unit  src/features/threads/composerSendPresentation.test.ts (2 tests) 3ms
 ✓  unit  src/features/pull-requests/pullRequestDescription.test.ts (1 test) 12ms
 ✓  unit  src/features/sharing/incoming-share-native.test.ts (2 tests) 5ms
 ✓  unit  src/features/pull-requests/pullRequestNavigation.test.ts (2 tests) 5ms
 ✓  unit  src/features/diffs/nativeReviewDiffSurface.test.ts (1 test) 110ms
 ✓  unit  src/features/threads/threadContentPresentation.test.ts (2 tests) 8ms
 ✓  unit  src/features/cloud/managedRelayTokenStore.test.ts (1 test) 18ms
 ✓  unit  src/features/threads/subagent-card-presentation.test.ts (1 test) 2ms
 ✓  unit  src/lib/filePreviewGallery.test.ts (1 test) 9ms
 ✓  unit  src/features/pull-requests/pullRequestReviewDrafts.test.ts (1 test) 3ms
 ✓  unit  src/features/threads/customSnoozeDate.test.ts (2 tests) 3ms
 ✓  unit  src/state/thread-composer-error.test.ts (1 test) 3ms
 ✓  unit  src/features/pull-requests/pullRequestMediaSource.test.ts (1 test) 17ms
 ✓  unit  src/features/prompt-links/prompt-link-model.test.ts (1 test) 3ms
 ✓  unit  src/features/browser/previewPromptText.test.ts (3 tests) 2ms
 ✓  unit  src/features/cloud/publicConfig.test.ts (1 test) 12ms
 ✓  unit  src/state/queries.test.ts (1 test) 7ms
 ✓  unit  src/lib/nativeComposerTheme.test.ts (1 test) 3ms
 ✓  unit  src/features/projects/AddProjectScreen.logic.test.ts (1 test) 2ms
 ✓  unit  src/lib/http-response.test.ts (1 test) 4ms
 ✓  unit  src/lib/mobileThemeRuntime.test.ts (1 test) 3ms
 ✓  unit  src/lib/filePreview.test.ts (4 tests) 5ms
 ✓  unit  src/lib/foreground-handoff.test.ts (1 test) 2ms
 ✓  unit  src/lib/appearancePreferences.test.ts (1 test) 2ms
 ✓  unit  src/features/settings/lib/legal-document-url.test.ts (2 tests) 2ms
 ✓  unit  src/features/threads/projectThreadCreationValidation.test.ts (2 tests) 2ms
 ✓  unit  src/features/keyboard/hardwareKeyboardCommands.test.ts (2 tests) 2ms
 ✓  unit  src/reactCompilerCoverage.test.ts (908 tests) 61282ms
   ✓ React Compiler coverage (908)
     ✓ Metro's transformer applies the compiler 3515ms
     ✓ compiles src/Stack.tsx 590ms
     ✓ compiles src/components/ComposerAttachmentStrip.tsx 601ms
     ✓ compiles src/components/ComposerContextAttachment.tsx 402ms
     ✓ compiles src/components/ComposerContextSheet.tsx 714ms
     ✓ compiles src/components/ComposerEditor.tsx 757ms
     ✓ compiles src/components/ComposerToolbar.tsx 743ms
     ✓ compiles src/components/FilePreview.ios.tsx 340ms
     ✓ compiles src/components/FilePreview.tsx 555ms
     ✓ compiles src/components/FilePreviewModal.tsx 514ms
     ✓ compiles src/components/MediaImagePreview.tsx 348ms
     ✓ compiles src/components/MediaVideoPlayer.tsx 430ms
     ✓ compiles src/components/PdfPreview.android.tsx 360ms
     ✓ compiles src/components/ProjectFavicon.tsx 466ms
     ✓ compiles src/components/ScrollComposeButton.android.tsx 443ms
     ✓ compiles src/components/ui/AppBar.android.tsx 351ms
     ✓ compiles src/components/ui/Dialog.android.tsx 422ms
     ✓ compiles src/features/archive/ArchivedThreadsScreen.tsx 401ms
     ✓ compiles src/features/browser/PreviewStreamWebView.tsx 400ms
     ✓ compiles src/features/connection/CloudEnvironmentRows.tsx 446ms
     ✓ compiles src/features/devices/DevicePreviewRouteScreen.tsx 369ms
     ✓ compiles src/features/files/ThreadFilesRouteScreen.tsx 387ms
     ✓ compiles src/features/home/HomeScreen.tsx 479ms
     ✓ compiles src/features/home/thread-swipe-actions.tsx 367ms
     ✓ compiles src/features/layout/AdaptiveWorkspaceLayout.tsx 539ms
     ✓ compiles src/features/projects/AddProjectScreen.tsx 375ms
     ✓ compiles src/features/pull-requests/PullRequestRouteScreen.tsx 647ms
     ✓ compiles src/features/review/ReviewSheet.tsx 332ms
     ✓ compiles src/features/settings/SettingsScheduledTasksRouteScreen.tsx 485ms
     ✓ compiles src/features/terminal/ThreadTerminalRouteScreen.tsx 413ms
     ✓ compiles src/features/threads/McpAppWebView.tsx 329ms
     ✓ compiles src/features/threads/NewTaskDraftScreen.tsx 1035ms
     ✓ compiles src/features/threads/ThreadComposer.tsx 855ms
     ✓ compiles src/features/threads/ThreadDetailScreen.tsx 1374ms
     ✓ compiles src/features/threads/ThreadFeed.tsx 1445ms
     ✓ compiles src/features/threads/ThreadNavigationSidebar.tsx 449ms
     ✓ compiles src/features/threads/ThreadQueueControl.tsx 346ms
     ✓ compiles src/features/threads/ThreadRouteScreen.tsx 615ms
     ✓ compiles src/features/threads/ThreadSettingsSheet.tsx 581ms
     ✓ compiles src/features/threads/new-task-flow-provider.tsx 843ms
     ✓ compiles src/features/threads/thread-list-v2-items.tsx 532ms
     ✓ compiles src/features/threads/thread-work-log.tsx 711ms
     ✓ compiles src/features/usage/UsageRouteScreen.tsx 392ms
     ✓ compiles src/state/use-thread-composer-state.ts 450ms
     ✓ compiles src/state/use-thread-outbox-drain.ts 492ms
     ✓ caches the thread feed derivation 1682ms

 Test Files  196 passed (196)
      Tests  2167 passed (2167)
   Start at  17:03:33
   Duration  82.94s (import 39%, tests 25%, transform 25%, setup 8%, environment 2%)


---
vp run: 13/13 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=__1016e9bc-cb34-4c18-85f3-97629126cbc8.__actions_cache]
Post job cleanup.
Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-2baa264059789b1dde4bbc8fdc5b8342f31f2fc8e6176e5c5e486efdd242b36c, not saving cache.
##[end-action id=__1016e9bc-cb34-4c18-85f3-97629126cbc8.__actions_cache;outcome=success;conclusion=success;duration_ms=177]
##[start-action display=Cache Vite+;id=__1016e9bc-cb34-4c18-85f3-97629126cbc8.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=__1016e9bc-cb34-4c18-85f3-97629126cbc8.vp_cache;outcome=success;conclusion=success;duration_ms=87]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/6e0147e2-40e1-44c6-9da5-912f63218c3e' 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: 256
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 529
  BLACKSMITH_CHECK_RUN_ID: 120545168212
  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