$ git rev-parse HEAD bfd52848f9c02add53ab87e4a7dff31aae12b745 row: S-H-N harness: Vitest verbose test-run transcript (no rendered UI) UTC: 2026-10-27T14:25:55.237792+00:00 $ pwd /home/ubuntu/wt/pr-25970/apps/server $ env -u NODE_OPTIONS node --version v24.22.1 $ env -u NODE_OPTIONS vp exec node --version v24.22.1 $ env -u NODE_OPTIONS node -p ''"'"'NODE_OPTIONS='"'"' + (process.env.NODE_OPTIONS ?? '"'"''"'"')' NODE_OPTIONS= EPERM preload active: no $ sha256sum /tmp/lead-25970-r1/evidence-capture-1/no-symlink-preload.cjs e364864529ef79a816183b75d210f52b7fc134bc220b318de3dcaddf93cecdde /tmp/lead-25970-r1/evidence-capture-1/no-symlink-preload.cjs $ uname -a Linux fs-35 6.1.102 #1 SMP PREEMPT_DYNAMIC Wed Aug 26 20:12:24 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux rendering: none; device emulation, DPR, font scaling, viewport, theme, frozen clock: N/A $ env -u NODE_OPTIONS vp test run src/serverSettings.test.ts src/project/AgentSessionScanner.test.ts --reporter=verbose note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.5 /home/ubuntu/wt/pr-25970/apps/server ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > reads Claude project cwds from transcripts, newest first 40ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > merges the same cwd seen by both agents and flags imported projects 18ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > returns the imported project ID through a realpath alias 13ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > merges case aliases and preserves the persisted project path 21ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > keeps case variants distinct when the filesystem identities differ 16ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > uses explicit default-slot homes instead of the fixture homes 20ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > scans each distinct home across multiple instances once 63ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > honors provider instance home directory environment variables 12ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > does not scan provider instances disabled by the envelope or config 11ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > drops candidates whose directory no longer exists 7ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes the home directory, temporary root, and T3 data directory 10ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes T3-managed worktree sandboxes 8ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > skips linked git worktrees and reports the origin of real checkouts 20ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > offers bare-repository worktrees separately and imports only their own sessions 31ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes sandboxes under the configured worktrees dir without .t3 in the path 7ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes sandboxes reached through a symlink into the worktrees dir 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > finds the cwd on a later line when the first records carry none 8ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > reads a complete transcript record at the exact chunk boundary 8ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > skips malformed transcripts without failing the scan 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > imports recent Claude and Codex sessions for the selected project only 16ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > keeps the provider instance that owns a custom session home 11ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > excludes Codex subagents from discovery and the recent-thread budget 80ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > suppresses duplicate session copies without reporting a skipped import 13ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > skips excessive records without blocking an older valid transcript 1285ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks claudeAgent snapshot cwd after replacement with same root 17ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks claudeAgent snapshot cwd after replacement with other root 17ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks claudeAgent snapshot cwd after replacement with symlink alias 16ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks claudeAgent snapshot cwd after replacement with other then same 14ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with same root 11ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with other root 11ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with symlink alias 11ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with other then same 14ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > checks file identity and provider before skipping completed history 15ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > imports same-metadata replacements with exact large file IDs and backfills legacy IDs once 16ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > imports long Claude tool history with metadata from discarded records 344ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > skips growth during reading without exceeding the reserved bytes 11ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > uses configured order when custom instances share a session home 12ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > handles the exact record limit and an interior blank overflow=false 310ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > handles the exact record limit and an interior blank overflow=true 4ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > keeps Claude text and titles while dropping malformed and tool records 1ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > uses Claude custom titles [ 'Refactor auth module' ] over the AI title 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > uses Claude custom titles [ 'Refactor auth module', '' ] over the AI title 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > drops injected Codex instructions while keeping the visible user event 1ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > keeps the canonical first prompt after long Codex transcripts are capped 4ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > restores the canonical first prompt when a later user message remains 4ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > keeps mixed-format response users when turn IDs repeat after an assistant 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > preserves response user text when Codex turn metadata is ambiguous 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > uses the first valid Codex session ID when a fork copies ancestor metadata 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > skips Codex transcripts without a resumable session ID 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > uses the canonical Codex event when its turn has generated response context 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > preserves context markup in response-only Codex messages 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > titles a Codex event after the request that follows injected setup blocks 0ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > skips sessions without a visible user message 0ms ✓ src/serverSettings.test.ts > server settings > serializes concurrent model preference edits without cancelling duplicate adds 128ms ✓ src/serverSettings.test.ts > server settings > persists and broadcasts model preferences to other connected clients 90ms ✓ src/serverSettings.test.ts > server settings > migrates saved token delivery to paragraph buffering without resetting settings 119ms ✓ src/serverSettings.test.ts > server settings > moves an idle compaction mode saved in the legacy switch to its own field 62ms ✓ src/serverSettings.test.ts > server settings > tells clients it reads idle compaction modes before any settings are saved 62ms ✓ src/serverSettings.test.ts > server settings > saves through a symlinked settings file without replacing the link 67ms ✓ src/serverSettings.test.ts > server settings > retries a failed settings read instead of keeping the failure 61ms ✓ src/serverSettings.test.ts > server settings > decodes legacy object-shaped textGenerationModelSelection.options from settings.json 1ms ✓ src/serverSettings.test.ts > server settings > deep merges nested settings updates without dropping siblings 67ms ✓ src/serverSettings.test.ts > server settings > keeps an external settings edit that the watcher has not reloaded yet 85ms ✓ src/serverSettings.test.ts > server settings > refuses to save over a settings file it cannot parse 77ms ✓ src/serverSettings.test.ts > server settings > creates provider instances atomically without overwriting a concurrent add 64ms ✓ src/serverSettings.test.ts > server settings > pauses provider-instance mutations while a settings snapshot is in use 58ms ✓ src/serverSettings.test.ts > server settings > buffers changes after a subscription is acquired but before it is consumed 57ms ✓ src/serverSettings.test.ts > server settings > preserves saved usage settings during cleanup edits and removes custom prices 68ms ✓ src/serverSettings.test.ts > server settings > preserves model when switching providers via textGenerationModelSelection 65ms ✓ src/serverSettings.test.ts > server settings > keeps a custom instance's selection when the driver's default instance is disabled 54ms ✓ src/serverSettings.test.ts > server settings > falls back to enabled instance codex after disabling the selection 74ms ✓ src/serverSettings.test.ts > server settings > skips explicitly disabled default instances when choosing a fallback 57ms ✓ src/serverSettings.test.ts > server settings > falls back to the thread default when it is a custom model on that instance 66ms ✓ src/serverSettings.test.ts > server settings > preserves the source control writer selection when its provider instance is disabled 61ms ✓ src/serverSettings.test.ts > server settings > moves customized legacy provider settings into default instances on load 57ms ✓ src/serverSettings.test.ts > server settings > keeps an explicit default instance over the legacy blob for its driver 62ms ✓ src/serverSettings.test.ts > server settings > enables previously used optional providers while migrating legacy settings 57ms ✓ src/serverSettings.test.ts > server settings > keeps explicit legacy disables even when provider history shows use 66ms ✓ src/serverSettings.test.ts > server settings > migrates legacy providers from an invalid file without rewriting it 58ms ✓ src/serverSettings.test.ts > server settings > keeps a default-off provider's new instance disabled and sparse on disk 59ms ✓ src/serverSettings.test.ts > server settings > folds a legacy in-config enabled flag into the envelope on load 57ms ✓ src/serverSettings.test.ts > server settings > keeps the inline value on disk when secret migration fails 81ms ✓ src/serverSettings.test.ts > server settings > preserves an inline secret on a redacted settings save 61ms ✓ src/serverSettings.test.ts > server settings > preserves the effective last inline secret when names are duplicated 60ms ✓ src/serverSettings.test.ts > server settings > replaces an inline secret with an explicit value 58ms ✓ src/serverSettings.test.ts > server settings > clears an inline secret with an explicit empty value 69ms ✓ src/serverSettings.test.ts > server settings > preserves duplicate secret operation order (sensitive last: true) 57ms ✓ src/serverSettings.test.ts > server settings > preserves duplicate secret operation order (sensitive last: false) 54ms ✓ src/serverSettings.test.ts > server settings > uses the same secret lifecycle for provider config, environment, host tokens, and quota keys 96ms ✓ src/serverSettings.test.ts > server settings > moves saved provider credentials to the secret store when settings load 64ms ✓ src/serverSettings.test.ts > server settings > keeps source control host secrets in the secret store and tells clients only that one is set 73ms ✓ src/serverSettings.test.ts > server settings > keeps the retired keys for another load when a token cannot be copied 54ms ✓ src/serverSettings.test.ts > server settings > moves the retired bitbucket and github keys and their secrets on load 68ms ✓ src/serverSettings.test.ts > server settings > moves a hand-edited source control token into the secret store when settings load 73ms ✓ src/serverSettings.test.ts > server settings > materializes provider secrets for terminal environment resolution 56ms ✓ src/serverSettings.test.ts > server settings > rolls back provider secret changes when the settings file commit fails 68ms ✓ src/serverSettings.test.ts > server settings > rolls back provider secret changes after response materialization fails 60ms ✓ src/serverSettings.test.ts > server settings > rolls back provider secret changes after partially committed write fails 61ms ✓ src/serverSettings.test.ts > server settings > folds legacy project overrides into projectSettingsOverrides once 64ms ✓ src/serverSettings.test.ts > server settings > leaves an unreadable settings.json untouched instead of folding over it 54ms Test Files 2 passed (2) Tests 100 passed (100) Start at 14:25:56 Duration 17.29s (transform 45%, tests 33%, import 20%, setup 1%) exit code: 0