GitHub check
Whole log, 98 KB
Current runner version: '2.338.2'
Runner name: 'blacksmith-4vcpu-ubuntu-2404-dlmqogogv5l3qser'
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 3
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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
BLACKSMITH_CHECK_RUN_ID: 130349243143
BLACKSMITH_JOB_DISPLAY_NAME: Test Server 3
GITHUB_ACTIONS_CACHE_MODE: write
Logging daemon started (blacksmithd for logs)
Results daemon started (blacksmithd for results)
Background adoption and SSH setup started (PID: 2966)
----------------------------------------
View this job: https://app.blacksmith.sh/pingdotgg/runs/42967887445/jobs/130349243143
SSH Access (using your GitHub SSH key):
ssh -p 64004 runner@blacksmith-4vcpu-ubuntu-2404-dlmqogogv5l3qser.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-dlmqogogv5l3qser
Host: production-152.236.48.33-x8664
Host Agent PID: 2631472
Host Agent Git SHA: db010f00b
Host CPU Manufacturer: AuthenticAMD
Blacksmith Host Generation: gen 2
Petname: production-usable-marten-d1a9e625
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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
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/dc1beb80-ec95-432c-9b48-7d1a25c9729a' 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-4f5bf822-a93d-4ef0-9507-1ffd00f5b483.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-4f5bf822-a93d-4ef0-9507-1ffd00f5b483.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/home/runner/_work/t3code/t3code/.git/worktrees/*.path /home/runner/_work/_temp/git-credentials-4f5bf822-a93d-4ef0-9507-1ffd00f5b483.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-4f5bf822-a93d-4ef0-9507-1ffd00f5b483.config
[command]/usr/local/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-4f5bf822-a93d-4ef0-9507-1ffd00f5b483.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 +15012e48d52174644dc8b0a91386fe2ea1375415:refs/remotes/pull/23415/merge
From https://github.com/pingdotgg/t3code
* [new ref] 15012e48d52174644dc8b0a91386fe2ea1375415 -> pull/23415/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/23415/merge
Updating files: 0% (1/7043)
Updating files: 1% (71/7043)
Updating files: 2% (141/7043)
Updating files: 3% (212/7043)
Updating files: 4% (282/7043)
Updating files: 5% (353/7043)
Updating files: 6% (423/7043)
Updating files: 7% (494/7043)
Updating files: 8% (564/7043)
Updating files: 9% (634/7043)
Updating files: 10% (705/7043)
Updating files: 11% (775/7043)
Updating files: 12% (846/7043)
Updating files: 13% (916/7043)
Updating files: 14% (987/7043)
Updating files: 15% (1057/7043)
Updating files: 16% (1127/7043)
Updating files: 17% (1198/7043)
Updating files: 18% (1268/7043)
Updating files: 19% (1339/7043)
Updating files: 20% (1409/7043)
Updating files: 21% (1480/7043)
Updating files: 22% (1550/7043)
Updating files: 23% (1620/7043)
Updating files: 24% (1691/7043)
Updating files: 25% (1761/7043)
Updating files: 26% (1832/7043)
Updating files: 27% (1902/7043)
Updating files: 28% (1973/7043)
Updating files: 29% (2043/7043)
Updating files: 30% (2113/7043)
Updating files: 31% (2184/7043)
Updating files: 32% (2254/7043)
Updating files: 33% (2325/7043)
Updating files: 34% (2395/7043)
Updating files: 35% (2466/7043)
Updating files: 36% (2536/7043)
Updating files: 37% (2606/7043)
Updating files: 38% (2677/7043)
Updating files: 39% (2747/7043)
Updating files: 40% (2818/7043)
Updating files: 41% (2888/7043)
Updating files: 42% (2959/7043)
Updating files: 43% (3029/7043)
Updating files: 44% (3099/7043)
Updating files: 45% (3170/7043)
Updating files: 46% (3240/7043)
Updating files: 47% (3311/7043)
Updating files: 48% (3381/7043)
Updating files: 49% (3452/7043)
Updating files: 50% (3522/7043)
Updating files: 51% (3592/7043)
Updating files: 52% (3663/7043)
Updating files: 53% (3733/7043)
Updating files: 54% (3804/7043)
Updating files: 55% (3874/7043)
Updating files: 56% (3945/7043)
Updating files: 57% (4015/7043)
Updating files: 58% (4085/7043)
Updating files: 59% (4156/7043)
Updating files: 60% (4226/7043)
Updating files: 61% (4297/7043)
Updating files: 62% (4367/7043)
Updating files: 63% (4438/7043)
Updating files: 64% (4508/7043)
Updating files: 65% (4578/7043)
Updating files: 66% (4649/7043)
Updating files: 67% (4719/7043)
Updating files: 68% (4790/7043)
Updating files: 69% (4860/7043)
Updating files: 70% (4931/7043)
Updating files: 71% (5001/7043)
Updating files: 72% (5071/7043)
Updating files: 73% (5142/7043)
Updating files: 74% (5212/7043)
Updating files: 75% (5283/7043)
Updating files: 76% (5353/7043)
Updating files: 77% (5424/7043)
Updating files: 78% (5494/7043)
Updating files: 79% (5564/7043)
Updating files: 80% (5635/7043)
Updating files: 81% (5705/7043)
Updating files: 82% (5776/7043)
Updating files: 83% (5846/7043)
Updating files: 84% (5917/7043)
Updating files: 85% (5987/7043)
Updating files: 86% (6057/7043)
Updating files: 87% (6128/7043)
Updating files: 88% (6198/7043)
Updating files: 89% (6269/7043)
Updating files: 90% (6339/7043)
Updating files: 91% (6410/7043)
Updating files: 92% (6480/7043)
Updating files: 93% (6550/7043)
Updating files: 94% (6621/7043)
Updating files: 95% (6691/7043)
Updating files: 96% (6762/7043)
Updating files: 97% (6832/7043)
Updating files: 98% (6903/7043)
Updating files: 99% (6973/7043)
Updating files: 100% (7043/7043)
Updating files: 100% (7043/7043), done.
Note: switching to 'refs/remotes/pull/23415/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 15012e4 Merge dbfa670d6e2dd08ef57291ee6c0385f9129055cc into f021c92cc97ceadef2a4d311df336aee77f31e3d
[command]/usr/local/bin/git log -1 --format=%H
15012e48d52174644dc8b0a91386fe2ea1375415
Prepare all required actions
▸ Run ./.github/actions/ci-changes
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
GITHUB_REPO_NAME: pingdotgg/t3code
EVENT_NAME: pull_request
BEFORE_SHA: 9a68fd2dec10ebf59636a4be78d04db4b969ab12
Runs everything: apps/swift-ios/App/NativeFeatureClient.swift
Runs everything: apps/swift-ios/Tests/FeatureTests/NativeMultiEnvironmentTests.swift
Runs everything: apps/swift-ios/Tests/FeatureTests/NativeSubagentRequestTests.swift
Runs everything: apps/swift-ios/Tests/FeatureTests/NativeWorkspacePermissionTests.swift
Runs everything: apps/swift-ios/Tests/FeatureTests/TerminalPermissionTests.swift
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=57]
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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
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"
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
GITHUB_REPO_NAME: pingdotgg/t3code
##[end-action id=__self.vp;outcome=success;conclusion=success;duration_ms=10]
##[start-action display=Cache Vite+;id=__self.__actions_cache]
▸ Run actions/cache@v6
with:
path: ~/.vite-plus
key: vite-plus-home-v1-Linux-X64-1.0.0
enableCrossOsArchive: false
fail-on-cache-miss: false
lookup-only: false
save-always: false
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
GITHUB_REPO_NAME: pingdotgg/t3code
Cache not found for input keys: vite-plus-home-v1-Linux-X64-1.0.0
##[end-action id=__self.__actions_cache;outcome=success;conclusion=success;duration_ms=225]
##[start-action display=Setup Vite+;id=__self.__voidzero-dev_setup-vp]
▸ Run voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: true
sfw: false
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
GITHUB_REPO_NAME: pingdotgg/t3code
Resolved Node.js version '^24.13.1' from package.json
Resolved Vite+ version '1.0.0' from package.json
Installing Vite+@1.0.0...
[command]/usr/bin/bash -c set -o pipefail; curl -fsSL --connect-timeout 5 --max-time 15 https://viteplus.dev/install.sh | bash
info: installing vite-plus@1.0.0...
info: Preparing Node.js and pnpm...
info: Installing dependencies...
✓ Dependencies installed.
Setup:
Preparing vite-plus environment.
Created Shims:
/home/runner/.vite-plus/bin/node
/home/runner/.vite-plus/bin/npm
/home/runner/.vite-plus/bin/npx
/home/runner/.vite-plus/bin/pnpm
/home/runner/.vite-plus/bin/pnpx
/home/runner/.vite-plus/bin/pn
/home/runner/.vite-plus/bin/pnx
/home/runner/.vite-plus/bin/yarn
/home/runner/.vite-plus/bin/yarnpkg
/home/runner/.vite-plus/bin/bun
/home/runner/.vite-plus/bin/bunx
/home/runner/.vite-plus/bin/vpx
/home/runner/.vite-plus/bin/vpr
Next Steps:
For Bash, run:
. "/home/runner/.vite-plus/env"
If your ~/.bashrc does not already load Vite+, add this command for interactive non-login Bash sessions.
Login Bash shells must also load the command through their login profile.
Restart an already-running IDE to load its environment. Run `vp env doctor` to verify.
✓ Vite+ setup complete.
Setting up Node.js ^24.13.1 via vp env use...
[command]/home/runner/.vite-plus/bin/vp env use ^24.13.1
Installing Node.js v24.22.2...
Using Node.js v24.22.2 (resolved from ^24.13.1)
Auto-detected lock file: pnpm-lock.yaml
Using lock file: /home/runner/_work/t3code/t3code/pnpm-lock.yaml
Resolving dependency cache directory in: /home/runner/_work/t3code/t3code
Cache hit for restore-key: vite-plus-Linux-x64-pnpm-0262421055f6201385d452bff3f6c813033b90a61526b973fbe0dabdf94ca37f
Received 615747963 of 615747963 (100.0%), 858.5 MBs/sec
Cache Size: ~587 MB (615747963 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/1cafd180-fad9-4070-9392-ea207fb90d88/cache.tzst -P -C /home/runner/_work/t3code/t3code --use-compress-program unzstd
Cache restored successfully
Cache restored from key: vite-plus-Linux-x64-pnpm-0262421055f6201385d452bff3f6c813033b90a61526b973fbe0dabdf94ca37f
▸ Running vp install in /home/runner/_work/t3code/t3code...
[command]/home/runner/.vite-plus/bin/vp install
Scope: all 33 workspace projects
? Verifying lockfile against supply-chain policies (2265 entries)...
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1863
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1863, reused 212, downloaded 0, added 0
Progress: resolved 1863, reused 733, downloaded 0, added 0
Progress: resolved 1863, reused 822, downloaded 82, added 8
Progress: resolved 1863, reused 822, downloaded 358, added 28
Progress: resolved 1863, reused 822, downloaded 583, added 44
✓ Lockfile passes supply-chain policies (2265 entries in 5.2s)
Progress: resolved 1863, reused 822, downloaded 840, added 66
Progress: resolved 1863, reused 822, downloaded 928, added 74
Progress: resolved 1863, reused 822, downloaded 967, added 78
Progress: resolved 1863, reused 822, downloaded 1028, added 1531
Progress: resolved 1863, reused 822, downloaded 1028, added 1862
Progress: resolved 1863, reused 822, downloaded 1028, added 1863, done
.../tsc-rs@0.7.0/node_modules/tsc-rs postinstall$ node lib/install.js
.../esbuild@0.28.2/node_modules/esbuild postinstall$ node install.js
.../tsc-rs@0.7.0/node_modules/tsc-rs postinstall: Done
.../esbuild@0.28.2/node_modules/esbuild postinstall: Done
.../react-native-enriched-markdown postinstall$ node postinstall.mjs
.../node_modules/node-pty install$ node scripts/prebuild.js || node-gyp rebuild
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] restoring vendored native assets ...
.../esbuild@0.25.12/node_modules/esbuild postinstall$ node install.js
.../node_modules/node-pty install: > Checking prebuilds...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching runtime v0.26.3 from https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.26.3.tar.gz
.../node_modules/node-pty install: Done
.../node_modules/node-pty postinstall$ node scripts/post-install.js
.../esbuild@0.25.12/node_modules/esbuild postinstall: Done
.../node_modules/node-pty postinstall: > Cleaning release folder...
.../node_modules/node-pty postinstall: > Moving conpty.dll...
.../node_modules/node-pty postinstall: SKIPPED (not Windows)
.../node_modules/node-pty postinstall: Done
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] runtime -> react-native-enriched-markdown/cpp/highlight/vendor/tree-sitter/src
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-json@0.24.8 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-html@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-css@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-markdown@0.3.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-yaml@0.7.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-go@0.23.4 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-java@0.23.5 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-javascript@0.23.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-python@0.23.6 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c@0.23.5 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-rust@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-bash@0.23.3 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-typescript@0.23.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-cpp@0.23.4 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-swift@0.7.0 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-php@0.24.2 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-ruby@0.23.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c-sharp@0.23.1 ...
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] json -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/json
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] html -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/html
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] css -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/css
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] markdown -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/markdown
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] yaml -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/yaml
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] go -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/go
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] java -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/java
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] javascript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/javascript
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] python -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/python
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] rust -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/rust
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] bash -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/bash
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] typescript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/typescript
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] tsx -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/tsx
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] cpp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/cpp
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] swift -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/swift
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] php -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/php
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] ruby -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/ruby
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c-sharp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c-sharp
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] grammar sources ready.
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done.
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] math disabled via package.json ("enriched-markdown".enableMath = false); skipping RaTeX.
.../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] postinstall complete.
.../react-native-enriched-markdown postinstall: Done
devDependencies:
+ @coderabbitai/config 1.1.0
+ @effect/tsgo 0.51.1
+ @shadcn/lint 0.1.5
+ @types/node 24.12.4
+ knip 6.34.0
+ tsc-rs 0.7.0
+ typescript 7.0.2
+ vite-plus 1.0.0
. prepare$ effect-tsgo patch && vp config --no-agent
. prepare: Patched typescript at /home/runner/_work/t3code/t3code/node_modules/.pnpm/@typescript+typescript-linux-x64@7.0.2/node_modules/@typescript/typescript-linux-x64/lib/tsc
. prepare: Done
Done in 15.6s using pnpm v11.10.0
Successfully ran vp install
vp v1.0.0
Local vite-plus:
vite-plus v1.0.0
Tools:
vite v8.3.1
rolldown v1.2.11
vitest v5.0.1
oxfmt v0.70.0
oxlint v1.85.0
oxlint-tsgolint v7.0.2003
tsdown v0.23.0
Environment:
Package manager pnpm v11.10.0
Node.js v24.22.2 (.session-node-version)
##[end-action id=__self.__voidzero-dev_setup-vp;outcome=success;conclusion=success;duration_ms=22345]
▸ 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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
GITHUB_REPO_NAME: pingdotgg/t3code
Cache hit for: playwright-chromium-shell-Linux-X64-1.60.0
Received 106539107 of 106539107 (100.0%), 731.0 MBs/sec
Cache Size: ~102 MB (106539107 B)
[command]/usr/bin/tar -xf /home/runner/_work/_temp/231706e6-c020-417a-a8bf-b29e077cc68c/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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
GITHUB_REPO_NAME: pingdotgg/t3code
▸ Run vp run --filter t3 test --shard 3/8
vp run --filter t3 test --shard 3/8
shell: /usr/bin/bash -e {0}
env:
BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
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 3/8 ⊘ cache disabled
RUN v5.0.1 /home/runner/_work/t3code/t3code/apps/server
✓ src/git/GitManager.test.ts (170 tests) 41969ms
✓ GitManager (170)
✓ passive worktree status streams do not start remote refreshes 411ms
✓ finds a fork PR for a branch pushed without an upstream 608ms
✓ prefers an exact fork ref but does not guess between equal refs 404ms
✓ pushes and creates PR from a no-upstream branch when local commits are ahead of base 306ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote git@github.com:pingdotgg/codething-mvp.…, GH_REPO null, gh-resolved null) 309ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote git@github.com:pingdotgg/codething-mvp.…, GH_REPO https://github.com/pingdotgg/codething-…, gh-resolved null) 306ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote https://github.example.com:8443/pingdot…, GH_REPO https://github.example.com:8443/pingdot…, gh-resolved null) 306ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote https://gitlab.example.com:8443/pingdot…, GH_REPO null, gh-resolved null) 321ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote https://github.example.com:8443/pingdot…, GH_REPO null, gh-resolved acme/demo) 314ms
✓ reuses the open same-repository PR when the only remote is not named origin (remote https://github.example.com:8443/pingdot…, GH_REPO base, gh-resolved acme/demo) 302ms
✓ creates fork PRs with the owner head when gh's default repository is not the only remote 351ms
✓ creates the PR with head contributor:dev when GH_REPO is acme/demo, gh-resolved is null and the only remote is contributor/demo 340ms
✓ creates the PR with head contributor:dev when GH_REPO is ghe.example.com/contributor/demo, gh-resolved is null and the only remote is contributor/demo 334ms
✓ creates the PR with head dev when GH_REPO is github.com/Contributor/demo, gh-resolved is null and the only remote is contributor/demo 334ms
✓ creates the PR with head dev when GH_REPO is https://github.com/contributor/demo?tab…, gh-resolved is null and the only remote is contributor/demo 356ms
✓ creates the PR with head dev when GH_REPO is contributor/demo, gh-resolved is acme/demo and the only remote is contributor/demo 364ms
✓ creates the PR with head contributor:dev when GH_REPO is acme/demo, gh-resolved is base and the only remote is contributor/demo 428ms
✓ creates the PR with head contributor:dev when GH_REPO is junk/extra/contributor/demo, gh-resolved is acme/demo and the only remote is contributor/demo 429ms
✓ creates the PR with head contributor:dev when GH_REPO is base, gh-resolved is acme/demo and the only remote is contributor/demo 436ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is https://github.example.com:9443/contrib… and gh-resolved is null 420ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is github.example.com/contributor/demo and gh-resolved is null 451ms
✓ creates the PR with head dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is github.example.com:8443/contributor/demo and gh-resolved is null 474ms
✓ creates the PR with head dev when the only remote is https://github.example.com/contributor/…, GH_REPO is github.example.com:443/contributor/demo and gh-resolved is null 383ms
✓ creates the PR with head dev when the only remote is ssh://git@github.example.com:2222/contr…, GH_REPO is github.example.com/contributor/demo and gh-resolved is null 366ms
✓ creates the PR with head dev when the only remote is https://github.example.com:8443/contrib…, GH_REPO is null and gh-resolved is acme/demo 361ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com/contributor/…, GH_REPO is null and gh-resolved is acme/demo 366ms
✓ creates the PR with head contributor:dev when the only remote is https://github.example.com:443/contribu…, GH_REPO is null and gh-resolved is acme/demo 367ms
✓ creates the PR with head contributor:dev when the only remote is git@github.com:contributor/demo.git, GH_REPO is null and gh-resolved is acme/demo 355ms
✓ creates the PR with head contributor:dev when the only remote is ssh://git@github.example.com:2222/contr…, GH_REPO is null and gh-resolved is acme/demo 399ms
✓ still treats a fork remote as cross-repository with an upstream remote but no origin 401ms
✓ returns the correct existing PR when a slash remote checks out to a synthetic local alias 356ms
✓ picks the fork PR among same-named branches from other repositories 317ms
✓ does not reuse a cross-repo PR when GitHub omits head identity metadata 398ms
✓ generates PR content from branch changes when the remote base advances 357ms
✓ creates a new PR instead of reusing an unrelated fork PR with the same head branch 337ms
✓ creates cross-repo PRs with the fork owner selector and default base branch 369ms
✓ prepares pull request threads in worktree mode on the PR head branch 320ms
✓ prepares a worktree from the head branch when the host has no pull ref 510ms
✓ launches setup when creating a new PR worktree 318ms
✓ preserves fork upstream tracking when preparing a worktree PR thread 368ms
✓ refreshes a reused PR worktree onto the updated pull request head 447ms
✓ runs the setup script when a reused PR worktree moves onto the new head 447ms
✓ leaves the setup script alone when a reused PR worktree is already on the head 402ms
✓ resets a clean reused PR worktree onto a force-pushed pull request head 456ms
✓ keeps a reused PR worktree that carries its own commit off the rewritten head 414ms
✓ keeps a dirty reused PR worktree off the rewritten pull request head 398ms
✓ reuses an existing PR worktree with 0 preceding matching branches (fork: false) 324ms
✓ reuses an existing PR worktree with 110 preceding matching branches (fork: false) 980ms
✓ reuses an existing PR worktree with 0 preceding matching branches (fork: true) 326ms
✓ reuses an existing PR worktree with 110 preceding matching branches (fork: true) 852ms
✓ refreshes a reused PR worktree that has no upstream from the pull request ref 509ms
✓ preserves an unrelated local branch and upstream that share the fork head name 306ms
✓ does not block fork PR worktree prep when the fork head branch collides with root main 441ms
✓ does not overwrite an existing local main branch when preparing a fork PR worktree 434ms
✓ reuses an existing PR worktree and restores fork upstream tracking 363ms
✓ does not fail PR worktree prep when setup terminal startup fails 328ms
✓ create_pr preserves dirty work on an already pushed branch 366ms
✓ src/orchestration-v2/RunExecutionService.test.ts (54 tests) 88ms
stdout | src/usage/UsageService.test.ts > UsageService > reports saved usage of a removed directory only for windows it reaches
[05:47:29.500] ERROR (#1899): Error [AssertionError]: expected [] to deeply equal [ { day: '2026-08-01', …(10) } ]
at /home/runner/_work/t3code/t3code/apps/server/src/usage/UsageService.test.ts:1751:14 {
actual: [],
expected: [
{
day: '2026-08-01',
provider: 'claude',
model: 'claude-fable-5',
sourcePath: '/tmp/usage-service-test-ao7lqO/claude/projects',
totals: [Object],
costUsd: 0,
cacheSavingsUsd: 0,
costSource: 'unpriced',
records: 1,
unpricedRecords: 1,
sessions: 1
}
],
showDiff: true,
operator: 'deepStrictEqual',
[cause]: undefined
}
❯ src/usage/UsageService.test.ts (40 tests | 1 failed) 855ms
❯ UsageService (40)
✓ reads Pi per-model usage and auxiliary costs once across forks and repeated entries 63ms
✓ reports missing Pi history and skips malformed records without losing valid usage 12ms
✓ discovers Pi history in its default home and directory overrides 27ms
✓ reads shared managed default and disabled extra account history once 11ms
✓ omits Cursor account usage when no file login is saved 25ms
✓ keeps Cursor credential errors visible when a saved login cannot be read 8ms
✓ answers Cursor from its cache while one shared refresh runs 22ms
✓ caches Cursor's whole retention and then refetches only the newest edge 18ms
✓ reports a failed Cursor refresh from its cache without refreshing 17ms
✓ restores the Cursor account cache after a restart 14ms
✓ does not read the macOS Cursor Keychain before account usage is enabled 5ms
✓ ignores stale Cursor file logins when the active credential store differs 21ms
✓ includes OpenCode history but does not substitute desktop usage for an unavailable Cursor account 9ms
✓ counts aliased OpenCode and Antigravity directories once 5ms
✓ reads configured and disabled accounts once across shared and aliased homes 18ms
✓ uses explicit account settings before environment and default homes, then refreshes them 13ms
✓ uses inherited home variables when explicit default accounts have no home settings 11ms
✓ reports unreadable transcripts as partial and recovers once they can be read 11ms
✓ reprices unchanged transcripts when custom prices are added, edited, or removed 19ms
✓ counts appended usage on a rescan of a grown transcript 12ms
✓ keeps large-record totals and costs exact through append, dedupe, restart and cleanup 170ms
✓ upgrades a v4 cache: reprices live Codex tiers, keeps deleted rollouts, leaves v4 intact 11ms
✓ preserves saved tokens, costs and sessions after transcript cleanup and restart 23ms
✓ credits the same copy of a duplicate after its transcripts are deleted 59ms
✓ keeps a newer cached read when a slower scan of another window finishes later 26ms
✓ keeps the later read when a scan that read earlier finishes first 34ms
× reports saved usage of a removed directory only for windows it reaches 21ms
✓ does not share an in-flight scan after custom prices change 15ms
✓ shares one scan between concurrent identical requests 13ms
✓ refetches a rate table inside its TTL only when the client asks 14ms
✓ preserves cached estimates when both pricing downloads fail and recovers 15ms
✓ recovers pricing through the GitHub API after a network failure 22ms
✓ recovers pricing through the GitHub API after a http failure 17ms
✓ recovers pricing through the GitHub API after a invalidJson failure 15ms
✓ recovers pricing through the GitHub API after a empty failure 17ms
✓ tries the GitHub API after the primary pricing request times out 5ms
✓ keeps pricing unavailable when neither download has usable rates 4ms
✓ throttles failed pricing loads from completion with cached rates: false 8ms
✓ throttles failed pricing loads from completion with cached rates: true 14ms
✓ does not orphan an in-flight scan when its first caller is interrupted 8ms
✓ src/cloud/ManagedEndpointRuntime.test.ts (32 tests) 109ms
✓ src/orchestration-v2/PullRequestSyncReactor.test.ts (20 tests) 92ms
✓ src/orchestration-v2/ThreadManagementService.test.ts (38 tests) 966ms
✓ src/orchestration-v2/ThreadFind.test.ts (24 tests) 1362ms
✓ src/device/DeviceService.test.ts (33 tests) 86ms
✓ src/orchestration-v2/EffectWorker.test.ts (16 tests) 41ms
✓ src/provider/antigravityAuthSupport.test.ts (33 tests) 287ms
✓ src/mcp/toolkits/pullRequests/handlers.test.ts (24 tests) 40ms
✓ src/resourceTelemetry/ResourceTelemetry.test.ts (8 tests) 39ms
✓ src/mcp/OrchestratorMcpService.activity.test.ts (5 tests) 18ms
✓ src/provider/Drivers/CodexDriver.test.ts (14 tests) 112ms
✓ src/orchestration-v2/ShellStream.test.ts (24 tests) 23ms
✓ src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts (6 tests) 1788ms
✓ AcpRegistryAdapterV2 (6)
✓ offers client terminals to Devin only and client fs to no registry agent 546ms
✓ opens a real ACP child process resolved from registry configuration 1086ms
✓ src/provider/acp/AntigravityProtocol.test.ts (37 tests) 13ms
✓ src/cli/project.test.ts (14 tests) 1658ms
stdout | src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts > restart recovery records one continuation per active thread and is idempotent
[05:47:52.922] INFO (#1): 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'
]
}
stdout | src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts > restart recovery records one continuation per active thread and is idempotent
[05:47:53.336] INFO (#1): 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'
]
}
stdout | src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts > restart recovery records one continuation per active thread and is idempotent
provider runtime recovery (ms)
N A seed cand select prepare prep/A shutdown boot-after crash-recover recover/A recover-2
500 20 300.0 35 0.8 14.7 0.73 63.3 4.6 57.4 2.87 5.2
✓ src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts (2 tests | 1 skipped) 808ms
✓ restart recovery records one continuation per active thread and is idempotent 807ms
✓ src/review/ReviewService.test.ts (8 tests) 568ms
✓ src/orchestration-v2/ProviderTurnControlService.test.ts (1 test) 6ms
✓ src/scheduledTasks/ScheduledTaskService.test.ts (3 tests) 143ms
✓ src/orchestration-v2/pullRequestWatch.test.ts (15 tests) 5ms
✓ src/attachmentStore.test.ts (16 tests) 11ms
✓ src/preview/ServerBrowserContexts.test.ts (10 tests) 10ms
✓ src/cli/service.test.ts (19 tests) 44ms
✓ src/diagnostics/ProcessDiagnostics.test.ts (4 tests) 15ms
✓ src/usage/usageAggregation.test.ts (18 tests) 17ms
✓ src/vcs/VcsDriverRegistry.test.ts (6 tests) 29ms
✓ src/orchestration-v2/ProjectCommands.test.ts (15 tests) 11ms
✓ src/mcp/toolkits/worktree/registration.test.ts (1 test) 118ms
✓ src/orchestration-v2/toolOutputImageBytes.test.ts (10 tests) 13ms
✓ src/process/agentScope.test.ts (8 tests) 54ms
✓ src/environment/DirectEndpoints.test.ts (9 tests) 16ms
✓ src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts (1 test) 27ms
✓ src/provider/OpenCode2Client.events.test.ts (4 tests) 59ms
✓ src/device/deviceToolMaintenance.test.ts (8 tests) 309ms
✓ src/project/ProjectSetupScriptRunner.test.ts (1 test) 10ms
✓ src/persistence/Sqlite.test.ts (6 tests) 521ms
✓ waits out a concurrent writer instead of failing with SQLITE_BUSY 376ms
✓ src/preview/PreviewBrowserHost.test.ts (5 tests) 11ms
✓ src/auth/EnvironmentAuthPolicy.test.ts (7 tests) 25ms
✓ src/provider/CodexAuthCallback.test.ts (3 tests) 35ms
✓ src/resourceTelemetry/DesktopTelemetryReceiver.test.ts (6 tests) 9ms
✓ src/outboundHttp.test.ts (2 tests | 1 skipped) 36ms
✓ src/telemetry/DelegatedTaskAnalytics.test.ts (1 test) 5ms
stdout | src/cloud/http.test.ts > connect routes > answers CloudLinkInternalError with HTTP 500
[05:48:11.243] ERROR (#28): Could not answer cloud health request. {
cause: Error: disk full
at /home/runner/_work/t3code/t3code/apps/server/src/cloud/http.test.ts:75:16
at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:2763:52
at runWithSuite (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:3248:8)
at Object.collect (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:2763:22)
at Object.collect (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:2768:51)
at processTicksAndRejections (node:internal/process/task_queues:104:5)
at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:3449:26
at collectTests (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:3422:3)
at startTests (file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/run.C5UmxDPh.js:4156:17)
at file:///home/runner/_work/t3code/t3code/node_modules/.pnpm/vitest@5.0.1_@types+node@24.12.4_@vitest+browser-playwright@5.0.1_@vitest+browser-previ_9d834365f1c4172d16fb7bda18cee3f1/node_modules/vitest/dist/chunks/base.Cc3oda2V.js:90:6
}
stdout | src/cloud/http.test.ts > connect routes > answers ServerAuthCloudMintPublicKeyMissingError with HTTP 500
[05:48:11.248] ERROR (#40): Cloud mint public key is not installed for this environment. { cause: { _tag: 'ServerAuthCloudMintPublicKeyMissingError' } }
✓ src/cloud/http.test.ts (4 tests) 20ms
✓ src/utils/subscribeBeforeSnapshot.test.ts (2 tests) 10ms
✓ src/provider/Drivers/ClaudeSkillDispatch.test.ts (8 tests) 3ms
✓ src/preview/DesktopBrowserChannel.test.ts (1 test) 401ms
✓ receives desktop messages and exits while the parent keeps both input pipes open 401ms
✓ src/launcherWatch.test.ts (4 tests) 10ms
✓ src/orchestration-v2/ProjectStore.test.ts (1 test) 53ms
✓ src/orchestration-v2/ProviderTurnTokenUsage.test.ts (1 test) 3ms
✓ src/cli/consoleStdin.test.ts (2 tests) 2ms
✓ src/cloud/servicePreflight.test.ts (3 tests) 3ms
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
FAIL src/usage/UsageService.test.ts > UsageService > reports saved usage of a removed directory only for windows it reaches
AssertionError: expected [] to deeply equal [ { day: '2026-08-01', …(10) } ]
- Expected
+ Received
- [
- {
- "cacheSavingsUsd": 0,
- "costSource": "unpriced",
- "costUsd": 0,
- "day": "2026-08-01",
- "model": "claude-fable-5",
- "provider": "claude",
- "records": 1,
- "sessions": 1,
- "sourcePath": "/tmp/usage-service-test-ao7lqO/claude/projects",
- "totals": {
- "cacheCreationTokens": 0,
- "cachedInputTokens": 0,
- "outputTokens": 5,
- "reasoningTokens": 0,
- "uncachedInputTokens": 10,
- },
- "unpricedRecords": 1,
- },
- ]
+ []
❯ src/usage/UsageService.test.ts:1751:14
1749|
1750| const reached = yield* service.readSummary(WINDOW);
1751| assert.deepStrictEqual(reached.buckets, first.buckets);
| ^
1752| assert.strictEqual(reached.sources[0]?.status, "ok");
1753|
❯ IteratorImpl.~effect/Effect/successCont ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28
❯ ExitPrimitive.~effect/Effect/evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30
❯ FiberImpl.runLoop ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27
❯ Array.<anonymous> ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17
❯ doneUnsafe ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/Deferred.ts:1707:17
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
Test Files 1 failed | 53 passed (54)
Tests 1 failed | 804 passed | 2 skipped (807)
Start at 05:46:40
Duration 93.47s (tests 59%, import 30%, transform 8%, setup 2%)
Import 1176 modules were evaluated 13318 times · 27.09s total, 30% of tracked time
~24.70s 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
Error: AssertionError: expected [] to deeply equal [ { day: '2026-08-01', …(10) } ]
- Expected
+ Received
- [
- {
- "cacheSavingsUsd": 0,
- "costSource": "unpriced",
- "costUsd": 0,
- "day": "2026-08-01",
- "model": "claude-fable-5",
- "provider": "claude",
- "records": 1,
- "sessions": 1,
- "sourcePath": "/tmp/usage-service-test-ao7lqO/claude/projects",
- "totals": {
- "cacheCreationTokens": 0,
- "cachedInputTokens": 0,
- "outputTokens": 5,
- "reasoningTokens": 0,
- "uncachedInputTokens": 10,
- },
- "unpricedRecords": 1,
- },
- ]
+ []
❯ src/usage/UsageService.test.ts:1751:14
❯ IteratorImpl.~effect/Effect/successCont ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28
❯ ExitPrimitive.~effect/Effect/evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30
❯ FiberImpl.runLoop ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23
❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27
❯ Array.<anonymous> ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17
❯ doneUnsafe ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/Deferred.ts:1707:17
Error: Process completed with exit code 1.
▸ 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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
GITHUB_REPO_NAME: pingdotgg/t3code
Post job cleanup.
##[start-action display=Setup Vite+;id=__f40ea200-b112-408d-9327-ab51e7586340.__voidzero-dev_setup-vp]
##[end-action id=__f40ea200-b112-408d-9327-ab51e7586340.__voidzero-dev_setup-vp;outcome=skipped;conclusion=skipped;duration_ms=0]
##[start-action display=Cache Vite+;id=__f40ea200-b112-408d-9327-ab51e7586340.__actions_cache]
##[end-action id=__f40ea200-b112-408d-9327-ab51e7586340.__actions_cache;outcome=skipped;conclusion=skipped;duration_ms=0]
Post job cleanup.
[command]/usr/local/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/_work/_temp/7ea46c93-7c55-4d4a-8331-250df3467ea4' 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: 243
BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 391
BLACKSMITH_CHECK_RUN_ID: 130349243143
BLACKSMITH_JOB_DISPLAY_NAME: Test Server 3
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