GitHub check

Whole log, 72 KB
Current runner version: '2.338.1'
Runner name: 'blacksmith-4vcpu-ubuntu-2404-wecjs24rfeeq6rf3'
Runner group name: 'blacksmith scale sets - blacksmith-4vcpu-ubuntu-2404'
Machine name: 'ip-172-31-73-130'
โ–ธ GITHUB_TOKEN Permissions
Contents: read
Metadata: read
Secret source: Actions
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)
Download action repository 'actions/upload-artifact@v7' (SHA:cf430e030ddbb5b0abf93d22962f4752f3646cd9)
Setting BLACKSMITH_ACTIONS_RESULTS_URL to https://results-receiver.actions.githubusercontent.com/
Complete job name: Test Server 4
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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  BLACKSMITH_CHECK_RUN_ID: 120722315582
  BLACKSMITH_JOB_DISPLAY_NAME: Test Server 4
  GITHUB_ACTIONS_CACHE_MODE: write
Logging daemon started (blacksmithd for logs)
Results daemon started (blacksmithd for results)
Background adoption and SSH setup started (PID: 2843)

----------------------------------------
View this job: https://app.blacksmith.sh/pingdotgg/runs/40044291740/jobs/120722315582
SSH Access (using your GitHub SSH key):
  ssh -p 64002 runner@blacksmith-4vcpu-ubuntu-2404-wecjs24rfeeq6rf3.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-4vcpu-ubuntu-2404-wecjs24rfeeq6rf3
Host: production-152.236.40.108-x8664
Host Agent PID: 162822
Host Agent Git SHA: 1637818df
Host CPU Manufacturer: AuthenticAMD
Blacksmith Host Generation: gen 2
Petname: production-simple-cockatoo-7a53a7d5
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:
  fetch-depth: 2
  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-tags: false
  show-progress: true
  lfs: false
  submodules: false
  set-safe-directory: true
  allow-unsafe-pr-checkout: false
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  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/f9bbc630-a754-4a5a-93ce-0b548bc73fbd' 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-76980720-2ed8-4499-b6f1-f1fb7b7b877b.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-76980720-2ed8-4499-b6f1-f1fb7b7b877b.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git/worktrees/*.path /home/runner/_work/_temp/git-credentials-76980720-2ed8-4499-b6f1-f1fb7b7b877b.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-76980720-2ed8-4499-b6f1-f1fb7b7b877b.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-76980720-2ed8-4499-b6f1-f1fb7b7b877b.config
โ–ธ Fetching the repository
[command]/usr/local/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --filter=blob:none --depth=2 origin +52628d863e977e1a8b16644141fd00ba96640b16:refs/remotes/origin/main
From https://github.com/pingdotgg/t3code
 * [new ref]         52628d863e977e1a8b16644141fd00ba96640b16 -> origin/main
[command]/usr/local/bin/git branch --list --remote origin/main
  origin/main
[command]/usr/local/bin/git rev-parse refs/remotes/origin/main
52628d863e977e1a8b16644141fd00ba96640b16
โ–ธ 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 -B main refs/remotes/origin/main
Updating files:   0% (1/6315)
Updating files:   1% (64/6315)
Updating files:   2% (127/6315)
Updating files:   3% (190/6315)
Updating files:   4% (253/6315)
Updating files:   5% (316/6315)
Updating files:   6% (379/6315)
Updating files:   7% (443/6315)
Updating files:   8% (506/6315)
Updating files:   9% (569/6315)
Updating files:  10% (632/6315)
Updating files:  10% (678/6315)
Updating files:  11% (695/6315)
Updating files:  12% (758/6315)
Updating files:  13% (821/6315)
Updating files:  14% (885/6315)
Updating files:  15% (948/6315)
Updating files:  16% (1011/6315)
Updating files:  17% (1074/6315)
Updating files:  18% (1137/6315)
Updating files:  19% (1200/6315)
Updating files:  20% (1263/6315)
Updating files:  21% (1327/6315)
Updating files:  22% (1390/6315)
Updating files:  23% (1453/6315)
Updating files:  24% (1516/6315)
Updating files:  25% (1579/6315)
Updating files:  26% (1642/6315)
Updating files:  27% (1706/6315)
Updating files:  28% (1769/6315)
Updating files:  29% (1832/6315)
Updating files:  30% (1895/6315)
Updating files:  31% (1958/6315)
Updating files:  32% (2021/6315)
Updating files:  33% (2084/6315)
Updating files:  34% (2148/6315)
Updating files:  35% (2211/6315)
Updating files:  36% (2274/6315)
Updating files:  37% (2337/6315)
Updating files:  38% (2400/6315)
Updating files:  39% (2463/6315)
Updating files:  40% (2526/6315)
Updating files:  41% (2590/6315)
Updating files:  42% (2653/6315)
Updating files:  43% (2716/6315)
Updating files:  44% (2779/6315)
Updating files:  45% (2842/6315)
Updating files:  46% (2905/6315)
Updating files:  47% (2969/6315)
Updating files:  48% (3032/6315)
Updating files:  49% (3095/6315)
Updating files:  50% (3158/6315)
Updating files:  51% (3221/6315)
Updating files:  52% (3284/6315)
Updating files:  53% (3347/6315)
Updating files:  54% (3411/6315)
Updating files:  55% (3474/6315)
Updating files:  56% (3537/6315)
Updating files:  57% (3600/6315)
Updating files:  58% (3663/6315)
Updating files:  59% (3726/6315)
Updating files:  60% (3789/6315)
Updating files:  61% (3853/6315)
Updating files:  62% (3916/6315)
Updating files:  63% (3979/6315)
Updating files:  64% (4042/6315)
Updating files:  65% (4105/6315)
Updating files:  66% (4168/6315)
Updating files:  67% (4232/6315)
Updating files:  68% (4295/6315)
Updating files:  69% (4358/6315)
Updating files:  70% (4421/6315)
Updating files:  71% (4484/6315)
Updating files:  72% (4547/6315)
Updating files:  73% (4610/6315)
Updating files:  74% (4674/6315)
Updating files:  75% (4737/6315)
Updating files:  76% (4800/6315)
Updating files:  77% (4863/6315)
Updating files:  78% (4926/6315)
Updating files:  79% (4989/6315)
Updating files:  80% (5052/6315)
Updating files:  81% (5116/6315)
Updating files:  82% (5179/6315)
Updating files:  83% (5242/6315)
Updating files:  84% (5305/6315)
Updating files:  85% (5368/6315)
Updating files:  86% (5431/6315)
Updating files:  87% (5495/6315)
Updating files:  88% (5558/6315)
Updating files:  89% (5621/6315)
Updating files:  90% (5684/6315)
Updating files:  91% (5747/6315)
Updating files:  92% (5810/6315)
Updating files:  93% (5873/6315)
Updating files:  94% (5937/6315)
Updating files:  95% (6000/6315)
Updating files:  96% (6063/6315)
Updating files:  97% (6126/6315)
Updating files:  98% (6189/6315)
Updating files:  99% (6252/6315)
Updating files: 100% (6315/6315)
Updating files: 100% (6315/6315), done.
Switched to a new branch 'main'
branch 'main' set up to track 'origin/main'.
[command]/usr/local/bin/git log -1 --format=%H
52628d863e977e1a8b16644141fd00ba96640b16
Prepare all required actions
โ–ธ Run ./.github/actions/ci-changes
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Run set -uo pipefail;id=changes.detect]
โ–ธ Run set -uo pipefail
set -uo pipefail

decide() {
  node .github/scripts/ci-changes.cjs "$@" | tee -a "$GITHUB_OUTPUT"
  exit "${PIPESTATUS[0]}"
}

fail_open() {
  echo "$* Running every job."
  decide
}

# Reads the change from git rather than the REST API: every job that
# runs this shares the repository's 1,000 requests/hour GITHUB_TOKEN quota.
if [[ "$EVENT_NAME" == pull_request ]]; then
  # A pull request checks out GitHub's merge commit with fetch-depth: 2,
  # so its first parent is the base branch and the diff is the PR's change.
  base=HEAD^1
  mode=()
else
  base=$BEFORE_SHA
  git fetch --quiet --no-tags --depth=1 --filter=blob:none origin "$base" \
    || fail_open "Could not fetch ${base}."
  # main keeps a full run as the backstop for anything the gate misses.
  mode=(--full)
fi

# --no-renames lists a rename as its old and new path: renaming a file out
# of a package changes that package just like editing it. It also keeps
# git from fetching file contents to score renames.
git diff --name-only --no-renames "$base" HEAD > "$RUNNER_TEMP/changed-paths" \
  || fail_open "Could not diff against ${base}."
decide --paths "$RUNNER_TEMP/changed-paths" "${mode[@]}"
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
  EVENT_NAME: push
  BEFORE_SHA: 5e3ad56b8f459380ef1f2e2d4572fbf80f30bc30
Runs everything: .github/workflows/stale-needs-more-info.yml
Affected packages: @t3tools/client-runtime, @t3tools/contracts, @t3tools/desktop, @t3tools/marketing, @t3tools/mobile, @t3tools/oxlint-plugin-t3code, @t3tools/provider-acp, @t3tools/provider-acp-registry, @t3tools/provider-core, @t3tools/provider-cursor, @t3tools/provider-grok, @t3tools/provider-muse, @t3tools/provider-opencode, @t3tools/provider-pi, @t3tools/provider-testing, @t3tools/scripts, @t3tools/shared, @t3tools/source-control-azure-devops, @t3tools/source-control-bitbucket, @t3tools/source-control-core, @t3tools/source-control-forgejo, @t3tools/source-control-gitcafe, @t3tools/source-control-github, @t3tools/source-control-gitlab, @t3tools/source-control-testing, @t3tools/ssh, @t3tools/tailscale, @t3tools/web, effect-acp, effect-codex-app-server, t3, t3code-relay
typecheck=true
build=true
test=true
test_packages=
test_web=true
test_server=true
rust=true
release_smoke=true
mobile_native=false
##[end-action id=changes.detect;outcome=success;conclusion=success;duration_ms=287]
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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
##[start-action display=Resolve Vite+ version;id=__self.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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self.vp;outcome=success;conclusion=success;duration_ms=12]
##[start-action display=Cache Vite+;id=__self.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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  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%), 335.7 MBs/sec
Cache Size: ~162 MB (170349591 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/28d22e93-ecb8-4990-a233-462f2a5d9ae8/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.vp_cache;outcome=success;conclusion=success;duration_ms=1898]
##[start-action display=Use cached Vite+;id=__self.__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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
Using Node.js v26.12.1 (resolved from 26.12.1)
##[end-action id=__self.__run;outcome=success;conclusion=success;duration_ms=12]
##[start-action display=Setup Vite+;id=__self.__voidzero-dev_setup-vp]
##[end-action id=__self.__voidzero-dev_setup-vp;outcome=skipped;conclusion=skipped;duration_ms=0]
##[start-action display=Resolve pnpm store path;id=__self.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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self.pnpm_store;outcome=success;conclusion=success;duration_ms=24]
##[start-action display=Cache full pnpm store;id=__self.__actions_cache]
โ–ธ Run actions/cache@v6
with:
  path: /home/runner/.local/share/pnpm/store/v11
  key: pnpm-full-v1-Linux-X64-3cb0b4d7cff93dc8fe33f2ea73cac71ca25a36270fcb648b9b4a9320151012ef
  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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: pnpm-full-v1-Linux-X64-3cb0b4d7cff93dc8fe33f2ea73cac71ca25a36270fcb648b9b4a9320151012ef
Received 402653184 of 995020926 (40.5%), 379.8 MBs/sec
Received 939524096 of 995020926 (94.4%), 431.6 MBs/sec
Received 995020926 of 995020926 (100.0%), 440.3 MBs/sec
Cache Size: ~949 MB (995020926 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/b2e5c1a8-293d-456b-af5e-9d3b998ea919/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-3cb0b4d7cff93dc8fe33f2ea73cac71ca25a36270fcb648b9b4a9320151012ef
##[end-action id=__self.__actions_cache;outcome=success;conclusion=success;duration_ms=8891]
##[start-action display=Install dependencies;id=__self.__run_2]
โ–ธ Run vp install
vp install
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  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
โœ“ Lockfile passes supply-chain policies (2088 entries in 3.3s)
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 4.8s using pnpm v12.14.0
##[end-action id=__self.__run_2;outcome=success;conclusion=success;duration_ms=4850]
โ–ธ Run echo "version=$(node -p "require('./apps/server/node_modules/playwright-core/package.json').version")" >> "$GITHUB_OUTPUT"
echo "version=$(node -p "require('./apps/server/node_modules/playwright-core/package.json').version")" >> "$GITHUB_OUTPUT"
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
โ–ธ Run actions/cache@v6
with:
  path: ~/.cache/ms-playwright
  key: playwright-chromium-shell-Linux-X64-1.60.0
  enableCrossOsArchive: false
  fail-on-cache-miss: false
  lookup-only: false
  save-always: false
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: playwright-chromium-shell-Linux-X64-1.60.0
Received 106503405 of 106503405 (100.0%), 642.8 MBs/sec
Cache Size: ~102 MB (106503405 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/6b174311-4c0f-4bc6-b76f-09a7fb606d4c/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: playwright-chromium-shell-Linux-X64-1.60.0
โ–ธ Run browser=$(find "$HOME/.cache/ms-playwright" -name chrome-headless-shell -type f -print -quit)
browser=$(find "$HOME/.cache/ms-playwright" -name chrome-headless-shell -type f -print -quit)
test -n "$browser"
if ldd "$browser" | grep '=> not found'; then
  node apps/server/node_modules/playwright-core/cli.js install-deps chromium
fi
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
โ–ธ Run vp run --filter t3 test --shard 4/8
vp run --filter t3 test --shard 4/8
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
  T3CODE_TRANSFER_BUDGET_REPORT_PATH: /home/runner/_work/_temp/t3code-transfer-budget.md
  T3CODE_TRANSFER_BUDGET_RESULT_PATH: /home/runner/_work/_temp/thread-transfer-result.json
~/apps/server$ vp test run --shard 4/8 โŠ˜ cache disabled

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

 โœ“ src/orchestration-v2/FoundationPersistence.test.ts (39 tests) 2357ms
   โœ“ orchestration V2 foundation persistence (33)
     โœ“ replays shared provider-session payloads across every bound thread 334ms
 โœ“ src/orchestration-v2/ThreadLaunchService.test.ts (39 tests) 3166ms
stdout | src/storageCleanup.test.ts > removes clean submodules recursively, including deinitialized repositories
[00:18:52.944] INFO (#45): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > preserves late tracked edits when submodules were never initialized
[00:18:54.459] WARN (#1305): storage cleanup failed for worktree {
  threadId: 'thread-1',
  error: {
    _tag: 'GitCommandError',
    operation: 'StorageCleanup.cleanupGit',
    command: 'git worktree remove',
    cwd: '/tmp/cleanup-repo-Pt6I2o',
    detail: "fatal: '/tmp/storage-cleanup-GcpwSZ/worktrees/feature' contains modified or untracked files, use --force to delete it"
  }
}

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > reports allocated bytes of single-link files without following symlinks
[00:18:57.178] INFO (#5282): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > counts the pnpm virtual store only when its store forces copies (same-device)
[00:18:57.270] INFO (#5392): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > counts the pnpm virtual store only when its store forces copies (other-device)
[00:18:57.359] INFO (#5502): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > counts the pnpm virtual store only when its store forces copies (no-manifest)
[00:18:57.452] INFO (#5612): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > never stats a network pnpm store { storeDir: '\\attacker.test\s' }
[00:18:57.532] INFO (#5722): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > never stats a network pnpm store { storeDir: '/local/store', โ€ฆ(1) }
[00:18:57.621] INFO (#5832): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > still removes a worktree when measuring its size fails
[00:18:57.709] INFO (#5942): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > does not measure a worktree kept for an open provider session
[00:18:58.108] INFO (#6427): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > compares the checked-out branch without a full status
[00:18:58.240] WARN (#6552): storage cleanup failed for worktree {
  threadId: 'thread-1',
  error: {
    _tag: 'GitCommandError',
    operation: 'StorageCleanup.branchChanged',
    command: 'git',
    cwd: '/tmp/storage-cleanup-7m4Ria/worktrees/feature',
    detail: 'Git index is locked. Status will resume when the index lock is removed.'
  }
}

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > compares the checked-out branch without a full status
[00:18:58.302] INFO (#6552): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "uncommitted-changes"
[00:18:58.435] INFO (#6805): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "tracked-changes"
[00:18:58.514] INFO (#6910): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "tracked-changes"
[00:18:58.681] INFO (#7156): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > discovers trunk without a remote HEAD or tracking ref and removes an integrated worktree
[00:18:59.055] INFO (#7470): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > preserves tracked edits written after the final status check
[00:18:59.447] WARN (#7938): storage cleanup failed for worktree {
  threadId: 'thread-1',
  error: {
    _tag: 'GitCommandError',
    operation: 'StorageCleanup.cleanupGit',
    command: 'git worktree remove',
    cwd: '/tmp/cleanup-repo-6tWWFR',
    detail: "fatal: '/tmp/storage-cleanup-WiDKH0/worktrees/feature' contains modified or untracked files, use --force to delete it"
  }
}

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > caps entries while preserving totals and prioritizing removals
[00:18:59.535] INFO (#8048): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > serializes concurrent requests and returns each run's report
[00:18:59.713] INFO (#8226): storage cleanup removed worktree { threadId: 'thread-1' }

stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > reports git failures without aborting the remaining categories
[00:18:59.894] WARN (#8386): storage cleanup failed for worktree {
  threadId: 'thread-1',
  error: {
    _tag: 'GitCommandError',
    operation: 'StorageCleanup.cleanupGit',
    command: 'git worktree remove',
    cwd: '/tmp/cleanup-repo-uCfvg0',
    detail: 'fatal: cannot remove a locked working tree;'
  }
}

stdout | src/storageCleanup.test.ts > keeps saved usage data when removing a settled checkout
[00:19:00.120] INFO (#8648): storage cleanup removed worktree { threadId: 'thread-1' }

 โœ“ src/storageCleanup.test.ts (122 tests) 7610ms
   โœ“ removes clean submodules recursively, including deinitialized repositories 433ms
   โœ“ keeps nested submodule files protected by the current keep rule 502ms
   โœ“ keeps unpushed submodule history after checkout and deinitialization 608ms
 โœ“ src/serverSettings.test.ts (47 tests) 1420ms
 โœ“ src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts (14 tests) 1048ms
stdout | src/terminal/Manager.test.ts > TerminalManager > restarts with current provider secrets and clears bounded history
[00:19:05.772] INFO (#383): Migrations ran successfully {
  migrations: [
    '1_OrchestrationEvents',
    '2_OrchestrationCommandReceipts',
    '3_CheckpointDiffBlobs',
    '4_ProviderSessionRuntime',
    '5_Projections',
    '6_ProjectionThreadSessionRuntimeModeColumns',
    '7_ProjectionThreadMessageAttachments',
    '8_ProjectionThreadActivitySequence',
    '9_ProviderSessionRuntimeMode',
    '10_ProjectionThreadsRuntimeMode',
    '11_OrchestrationThreadCreatedRuntimeMode',
    '12_ProjectionThreadsInteractionMode',
    '13_ProjectionThreadProposedPlans',
    '14_ProjectionThreadProposedPlanImplementation',
    '15_ProjectionTurnsSourceProposedPlan',
    '16_CanonicalizeModelSelections',
    '17_ProjectionThreadsArchivedAt',
    '18_ProjectionThreadsArchivedAtIndex',
    '19_ProjectionSnapshotLookupIndexes',
    '20_AuthAccessManagement',
    '21_AuthSessionClientMetadata',
    '22_AuthSessionLastConnectedAt',
    '23_ProjectionThreadShellSummary',
    '24_BackfillProjectionThreadShellSummary',
    '25_CleanupInvalidProjectionPendingApprovals',
    '26_CanonicalizeModelSelectionOptions',
    '27_ProviderSessionRuntimeInstanceId',
    '28_ProjectionThreadSessionInstanceId',
    '29_ProjectionThreadDetailOrderingIndexes',
    '30_ProjectionThreadShellArchiveIndexes',
    '31_AuthAuthorizationScopes',
    '32_AuthPairingProofKeyThumbprint',
    '33_ProjectionThreadsSettled',
    '34_ProjectionThreadsSnoozed',
    '35_ProjectionThreadTitleRegeneration',
    '36_ProjectionThreadsPinned',
    '37_ProjectionTurnsKeysetIndex',
    '38_ProjectionThreadsPinOrderKey',
    '39_ProjectionProjectsDefaultThreadEnvMode',
    '40_ProjectionProjectFaviconPath',
    '41_AuthSessionClientConnection',
    '42_ProjectionThreadLinkedPullRequest',
    '43_ProjectionThreadsUnsettledAt',
    '44_ClearAutomaticProjectModelDefaults',
    '45_ProjectionProjectsAutoPull',
    '46_RepairAutomaticSettlementTimestamps',
    '47_ProjectionProjectIcon',
    '48_ProjectionThreadBranchPullRequest',
    '49_ProjectionThreadsActiveOrderKey',
    '50_ProjectionThreadPullRequests',
    '51_ProjectionThreadMessageContext',
    '52_ProjectionThreadTitleState',
    '53_PullRequestFilesViewed',
    '54_ProjectionThreadsAutoSettleDisabledAt',
    '55_OrchestrationV2',
    '56_RemoveRedundantProjectionIndexes',
    '57_ScheduledTaskWebhooks',
    '58_WebhookRelayDeliveries',
    '59_McpAppModelContext',
    '60_ThreadSnapshotWindowIndexes',
    '61_PullRequestReviewGuides',
    '62_ThreadFailureLookupIndex',
    '63_DropUnusedV1Projections',
    '64_CanonicalizeThreadPullRequestLinks',
    '65_CodexUsageNativeTurnIndex',
    '66_RepairClientSettlementTimestamps',
    '67_WebhookDedupe',
    '68_ShellStopRequestIndex'
  ]
}

 โœ“ src/terminal/Manager.test.ts (43 tests) 868ms
   โœ“ TerminalManager (41)
     โœ“ restarts with current provider secrets and clears bounded history 304ms
 โœ“ src/orchestration-v2/Orchestrator.control-reads.test.ts (11 tests) 711ms
 โœ“ src/orchestration-v2/SteeringCompletion.integration.test.ts (13 tests) 7624ms
   โœ“ delivers steering when completion wins during delivery 373ms
   โœ“ delivers mailbox notification when completion wins settled only 367ms
   โœ“ sends a selected held message once and preserves the remaining queue order 316ms
   โœ“ keeps a queued message queued when promoted into a run that Stop reached 2237ms
   โœ“ queues a plain send behind the stopped queue and releases its hold 2177ms
 โœ“ src/cloud/bootService.test.ts (33 tests) 141ms
 โœ“ src/mcp/toolkits/core.test.ts (15 tests) 144ms
 โœ“ src/provider/acp/AcpSessionRuntime.processTree.test.ts (17 tests) 877ms
 โœ“ src/workspace/WorkspaceFileSystem.test.ts (21 tests) 123ms
 โœ“ src/project/ProjectService.test.ts (13 tests) 238ms
 โœ“ src/orchestration-v2/ContextHandoffBudget.test.ts (17 tests) 195ms
 โœ“ src/orchestration-v2/Adapters/GrokAdapterV2.test.ts (10 tests) 83ms
 โœ“ src/mcp/OrchestratorMcpService.activity.test.ts (3 tests) 17ms
 โœ“ src/sourceControl/SourceControlProviderRegistry.test.ts (12 tests) 91ms
 โœ“ src/resourceTelemetry/Model.test.ts (12 tests) 7ms
 โœ“ src/provider/acp/AntigravityProtocol.test.ts (36 tests) 11ms
 โœ“ scripts/migrate-dev-db.test.ts (7 tests) 323ms
 โœ“ src/orchestration-v2/testkit/ClaudeReplayFixtures.integration.test.ts (38 tests) 19078ms
   โœ“ Claude Agent SDK replay fixtures (38)
     โœ“ runs claude_background_subagent_after_root/claudeAgent through OrchestratorV2 using deterministic replay 664ms
     โœ“ runs claude_background_task_after_root/claudeAgent through OrchestratorV2 using deterministic replay 344ms
     โœ“ runs claude_background_subagent_lifecycle/claudeAgent through OrchestratorV2 using deterministic replay 1401ms
     โœ“ runs claude_background_wake_before_queued_prompt/claudeAgent through OrchestratorV2 using deterministic replay 1171ms
     โœ“ runs claude_background_wake_before_queued_prompt_no_echo/claudeAgent through OrchestratorV2 using deterministic replay 1298ms
     โœ“ runs claude_compact_after_resume_wake/claudeAgent through OrchestratorV2 using deterministic replay 536ms
     โœ“ runs claude_compact_after_peer_turn/claudeAgent through OrchestratorV2 using deterministic replay 671ms
     โœ“ runs claude_compact_after_peer_turn_no_echo/claudeAgent through OrchestratorV2 using deterministic replay 538ms
     โœ“ runs claude_background_monitor_wake/claudeAgent through OrchestratorV2 using deterministic replay 578ms
     โœ“ runs claude_background_task_wake/claudeAgent through OrchestratorV2 using deterministic replay 651ms
     โœ“ runs claude_local_bash_task/claudeAgent through OrchestratorV2 using deterministic replay 353ms
     โœ“ runs claude_nested_background_subagent_wake/claudeAgent through OrchestratorV2 using deterministic replay 486ms
     โœ“ runs claude_nested_subagent_model/claudeAgent through OrchestratorV2 using deterministic replay 330ms
     โœ“ runs claude_mcp_tool_presentation/claudeAgent through OrchestratorV2 using deterministic replay 337ms
     โœ“ runs claude_idle_resume/claudeAgent through OrchestratorV2 using deterministic replay 523ms
     โœ“ runs claude_result_is_error/claudeAgent through OrchestratorV2 using deterministic replay 451ms
     โœ“ runs tool_call_denied_write/claudeAgent through OrchestratorV2 using deterministic replay 374ms
     โœ“ runs tool_call_read_only/claudeAgent through OrchestratorV2 using deterministic replay 350ms
     โœ“ runs tool_call_read_only_on_request/claudeAgent through OrchestratorV2 using deterministic replay 331ms
     โœ“ runs tool_call_workspace_never/claudeAgent through OrchestratorV2 using deterministic replay 332ms
     โœ“ runs tool_call_restricted_granular/claudeAgent through OrchestratorV2 using deterministic replay 308ms
     โœ“ runs subagent/claudeAgent through OrchestratorV2 using deterministic replay 354ms
     โœ“ runs multi_turn/claudeAgent through OrchestratorV2 using deterministic replay 404ms
     โœ“ runs multi_turn_restart/claudeAgent through OrchestratorV2 using deterministic replay 439ms
     โœ“ runs queued_turn/claudeAgent through OrchestratorV2 using deterministic replay 461ms
     โœ“ runs web_search/claudeAgent through OrchestratorV2 using deterministic replay 335ms
     โœ“ runs message_steering/claudeAgent through OrchestratorV2 using deterministic replay 357ms
     โœ“ runs command_output_streaming/claudeAgent through OrchestratorV2 using deterministic replay 366ms
     โœ“ runs turn_interrupt_restart/claudeAgent through OrchestratorV2 using deterministic replay 585ms
     โœ“ runs thread_rollback/claudeAgent through OrchestratorV2 using deterministic replay 744ms
     โœ“ refuses messages to a native subagent thread without touching it 474ms
     โœ“ streams a subagent's foreground Bash output live during the root turn 511ms
     โœ“ ends a background subagent's open WebFetch (opened while root is idle) when its notification is stopped 510ms
     โœ“ ends a background subagent's open Write (opened before root settles) when its notification is failed 517ms
 โœ“ src/orchestration-v2/ThreadPullRequestService.test.ts (6 tests) 16ms
 โœ“ src/environment/ServerEnvironment.test.ts (6 tests) 100ms
 โœ“ src/device/ExpoApi.test.ts (7 tests) 26ms
 โœ“ src/project/ProjectEnrichmentService.test.ts (4 tests) 16ms
 โœ“ src/provider/codexUsageLimits.test.ts (15 tests) 6ms
 โœ“ src/sourceControl/gitHubChangeRequestTemplate.test.ts (10 tests) 392ms
 โœ“ src/orchestration-v2/http.test.ts (1 test) 1803ms
   โœ“ exports full history with size, scope, and missing-thread checks 1802ms
 โœ“ src/persistence/OrchestrationEventStore.sequence.test.ts (2 tests) 175ms
 โœ“ src/provider/ClaudeModelCatalog.test.ts (4 tests) 4ms
 โœ“ src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts (1 test) 27ms
 โœ“ src/environment/DirectEndpoints.test.ts (7 tests) 17ms
 โœ“ src/git/linkCreatedPullRequest.test.ts (4 tests) 8ms
 โœ“ src/auth/ServerSecretStore.test.ts (4 tests) 19ms
 โœ“ src/orchestration-v2/ThreadLiveEventCoalescer.test.ts (7 tests) 14ms
 โœ“ src/persistence/DatabaseMaintenance.test.ts (3 tests) 121ms
 โœ“ src/preview/PreviewBrowserHost.test.ts (2 tests) 8ms
 โœ“ src/cloud/environmentKeys.test.ts (3 tests) 19ms
 โœ“ src/orchestration-v2/ProviderSessionTransitionPolicy.test.ts (5 tests) 3ms
 โœ“ src/provider/Drivers/claudeUsage.test.ts (3 tests) 2ms
 โœ“ src/scheduledTasks/webhookFilter.test.ts (4 tests) 3ms
 โœ“ src/cloud/traceRelayRequest.test.ts (2 tests) 6ms
 โœ“ src/provider/ProviderInstanceRegistryHydration.test.ts (4 tests) 3ms
 โœ“ src/usage/UsageLimitSources.test.ts (1 test) 10ms
 โœ“ src/provider/CodexThreadRevert.test.ts (2 tests) 14ms
 โœ“ src/git/GitWorkflowService.test.ts (1 test) 71ms
 โœ“ src/persistence/Migrations/057_ScheduledTaskWebhooks.test.ts (1 test) 39ms
 โœ“ src/orchestration-v2/QueuedRunOrder.test.ts (1 test) 2ms
 โœ“ src/cli/connect.test.ts (1 test) 3ms
 โœ“ src/launcherWatch.test.ts (1 test) 4ms
 โœ“ src/orchestration-v2/testkit/MuseReplayFixtures.integration.test.ts (8 tests) 3218ms
   โœ“ Muse replay fixtures (8)
     โœ“ runs simple/muse through OrchestratorV2 using deterministic replay 504ms
     โœ“ runs subagent_v2/muse through OrchestratorV2 using deterministic replay 429ms
     โœ“ runs multi_turn/muse through OrchestratorV2 using deterministic replay 487ms
     โœ“ runs muse_permission/muse through OrchestratorV2 using deterministic replay 577ms
     โœ“ runs muse_subagent_approval/muse through OrchestratorV2 using deterministic replay 366ms
     โœ“ runs muse_workflow/muse through OrchestratorV2 using deterministic replay 462ms

 Test Files  51 passed (51)
      Tests  682 passed (682)
   Start at  00:18:39
   Duration  89.71s (tests 60%, import 29%, transform 8%, setup 2%)

     Import  1270 modules were evaluated 14787 times ยท 25.33s total, 29% of tracked time
             ~23.16s 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


โ–ธ Run if test -f "/home/runner/_work/_temp/thread-transfer-result.json"; then
if test -f "/home/runner/_work/_temp/thread-transfer-result.json"; then
  echo "present=true" >> "$GITHUB_OUTPUT"
else
  echo "present=false" >> "$GITHUB_OUTPUT"
fi
shell: /usr/bin/bash -e {0}
env:
  BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  GITHUB_REPO_NAME: pingdotgg/t3code
Post job cleanup.
Cache hit occurred on the primary key playwright-chromium-shell-Linux-X64-1.60.0, not saving cache.
Post job cleanup.
##[start-action display=Cache full pnpm store;id=__6c8d79f6-4441-4423-8951-2197f7a7d0bb.__actions_cache]
Post job cleanup.
Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-3cb0b4d7cff93dc8fe33f2ea73cac71ca25a36270fcb648b9b4a9320151012ef, not saving cache.
##[end-action id=__6c8d79f6-4441-4423-8951-2197f7a7d0bb.__actions_cache;outcome=success;conclusion=success;duration_ms=109]
##[start-action display=Cache Vite+;id=__6c8d79f6-4441-4423-8951-2197f7a7d0bb.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=__6c8d79f6-4441-4423-8951-2197f7a7d0bb.vp_cache;outcome=success;conclusion=success;duration_ms=78]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/bb8546c8-9f4a-475b-9b92-2f15386bdc97' 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: 223
  BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 405
  BLACKSMITH_CHECK_RUN_ID: 120722315582
  BLACKSMITH_JOB_DISPLAY_NAME: Test Server 4
  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