$ git rev-parse HEAD e9236274a3a6e0c731a7df4092db1e686f039068 row: S-P-N harness: Vitest verbose test-run transcript (no rendered UI) UTC: 2026-10-27T14:25:25.388891+00:00 $ pwd /home/ubuntu/wt/pr-25970-base/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-base/apps/server ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > reads Claude project cwds from transcripts, newest first 130ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > merges the same cwd seen by both agents and flags imported projects 15ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > returns the imported project ID through a realpath alias 12ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > merges case aliases and preserves the persisted project path 14ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > keeps case variants distinct when the filesystem identities differ 13ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > uses explicit default-slot homes instead of the fixture homes 55ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > scans each distinct home across multiple instances once 14ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > honors provider instance home directory environment variables 11ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > does not scan provider instances disabled by the envelope or config 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > drops candidates whose directory no longer exists 6ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes the home directory, temporary root, and T3 data directory 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes T3-managed worktree sandboxes 7ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > skips linked git worktrees and reports the origin of real checkouts 19ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > offers bare-repository worktrees separately and imports only their own sessions 29ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes sandboxes under the configured worktrees dir without .t3 in the path 6ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > scan > excludes sandboxes reached through a symlink into the worktrees dir 7ms ✓ 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 9ms ✓ 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 15ms ✓ 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 72ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > suppresses duplicate session copies without reporting a skipped import 12ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > skips excessive records without blocking an older valid transcript 1307ms ✓ 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 14ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks claudeAgent snapshot cwd after replacement with symlink alias 14ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks claudeAgent snapshot cwd after replacement with other then same 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with same root 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with other root 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with symlink alias 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > rechecks codex snapshot cwd after replacement with other then same 9ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > checks file identity and provider before skipping completed history 13ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > imports same-metadata replacements with exact large file IDs and backfills legacy IDs once 15ms ✓ src/project/AgentSessionScanner.test.ts > AgentSessionScanner > recentThreads > imports long Claude tool history with metadata from discarded records 313ms ✓ 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 10ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > handles the exact record limit and an interior blank overflow=false 321ms ✓ src/project/AgentSessionScanner.test.ts > parseAgentSessionTranscript > handles the exact record limit and an interior blank overflow=true 5ms ✓ 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 3ms ✓ 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 235ms ✓ src/serverSettings.test.ts > server settings > persists and broadcasts model preferences to other connected clients 95ms ✓ src/serverSettings.test.ts > server settings > migrates saved token delivery to paragraph buffering without resetting settings 108ms ✓ src/serverSettings.test.ts > server settings > moves an idle compaction mode saved in the legacy switch to its own field 57ms ✓ src/serverSettings.test.ts > server settings > tells clients it reads idle compaction modes before any settings are saved 56ms ✓ src/serverSettings.test.ts > server settings > saves through a symlinked settings file without replacing the link 62ms ✓ src/serverSettings.test.ts > server settings > retries a failed settings read instead of keeping the failure 57ms ✓ 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 62ms ✓ src/serverSettings.test.ts > server settings > keeps an external settings edit that the watcher has not reloaded yet 69ms ✓ src/serverSettings.test.ts > server settings > refuses to save over a settings file it cannot parse 56ms ✓ src/serverSettings.test.ts > server settings > creates provider instances atomically without overwriting a concurrent add 61ms ✓ src/serverSettings.test.ts > server settings > pauses provider-instance mutations while a settings snapshot is in use 53ms ✓ src/serverSettings.test.ts > server settings > buffers changes after a subscription is acquired but before it is consumed 54ms ✓ src/serverSettings.test.ts > server settings > preserves saved usage settings during cleanup edits and removes custom prices 69ms ✓ src/serverSettings.test.ts > server settings > preserves model when switching providers via textGenerationModelSelection 72ms ✓ src/serverSettings.test.ts > server settings > keeps a custom instance's selection when the driver's default instance is disabled 52ms ✓ src/serverSettings.test.ts > server settings > falls back to enabled instance codex after disabling the selection 70ms ✓ src/serverSettings.test.ts > server settings > skips explicitly disabled default instances when choosing a fallback 65ms ✓ src/serverSettings.test.ts > server settings > falls back to the thread default when it is a custom model on that instance 58ms ✓ src/serverSettings.test.ts > server settings > preserves the source control writer selection when its provider instance is disabled 59ms ✓ src/serverSettings.test.ts > server settings > moves customized legacy provider settings into default instances on load 95ms ✓ src/serverSettings.test.ts > server settings > keeps an explicit default instance over the legacy blob for its driver 56ms ✓ src/serverSettings.test.ts > server settings > enables previously used optional providers while migrating legacy settings 80ms ✓ src/serverSettings.test.ts > server settings > keeps explicit legacy disables even when provider history shows use 76ms ✓ src/serverSettings.test.ts > server settings > migrates legacy providers from an invalid file without rewriting it 55ms ✓ src/serverSettings.test.ts > server settings > keeps a default-off provider's new instance disabled and sparse on disk 71ms ✓ src/serverSettings.test.ts > server settings > folds a legacy in-config enabled flag into the envelope on load 64ms ✓ src/serverSettings.test.ts > server settings > keeps the inline value on disk when secret migration fails 82ms ✓ src/serverSettings.test.ts > server settings > preserves an inline secret on a redacted settings save 78ms ✓ src/serverSettings.test.ts > server settings > preserves the effective last inline secret when names are duplicated 66ms ✓ src/serverSettings.test.ts > server settings > replaces an inline secret with an explicit value 78ms ✓ src/serverSettings.test.ts > server settings > clears an inline secret with an explicit empty value 77ms ✓ src/serverSettings.test.ts > server settings > preserves duplicate secret operation order (sensitive last: true) 58ms ✓ src/serverSettings.test.ts > server settings > preserves duplicate secret operation order (sensitive last: false) 58ms ✓ src/serverSettings.test.ts > server settings > uses the same secret lifecycle for provider config, environment, host tokens, and quota keys 123ms ✓ src/serverSettings.test.ts > server settings > moves saved provider credentials to the secret store when settings load 80ms ✓ src/serverSettings.test.ts > server settings > keeps source control host secrets in the secret store and tells clients only that one is set 101ms ✓ src/serverSettings.test.ts > server settings > keeps the retired keys for another load when a token cannot be copied 77ms ✓ src/serverSettings.test.ts > server settings > moves the retired bitbucket and github keys and their secrets on load 90ms ✓ src/serverSettings.test.ts > server settings > moves a hand-edited source control token into the secret store when settings load 56ms ✓ 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 73ms ✓ 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 54ms ✓ src/serverSettings.test.ts > server settings > folds legacy project overrides into projectSettingsOverrides once 68ms ✓ src/serverSettings.test.ts > server settings > leaves an unreadable settings.json untouched instead of folding over it 75ms Test Files 2 passed (2) Tests 100 passed (100) Start at 14:25:26 Duration 17.44s (transform 42%, tests 35%, import 22%, setup 1%) exit code: 0