Focused deterministic test recording: head ====================================================================== F04-F15 ====================================================================== UTC 2026-11-03T01:10:10.213297+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "reopens an idle session on the adapter rebuilt from changed settings", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings 292ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:13 Duration 13.26s (transform 79%, import 18%, tests 2%, setup 1%) UTC 2026-11-03T01:10:26.424868+00:00 EXIT 0 ====================================================================== F10 ====================================================================== UTC 2026-11-03T01:10:26.425508+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "keeps a session rebuilt settings made stale when a sibling turn starts while it is checked", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked 196ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:26 Duration 2.66s (import 60%, transform 28%, tests 8%, setup 4%) UTC 2026-11-03T01:10:29.699418+00:00 EXIT 0 ====================================================================== F11 ====================================================================== UTC 2026-11-03T01:10:29.700425+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "keeps a session rebuilt settings made stale while a compaction runs on it", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it 196ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:30 Duration 2.73s (import 63%, transform 26%, tests 8%, setup 3%) UTC 2026-11-03T01:10:33.128020+00:00 EXIT 0 ====================================================================== F12 ====================================================================== UTC 2026-11-03T01:10:33.129370+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "retires a session settings made stale only after a rollback on it ends", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends 170ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:33 Duration 2.48s (import 61%, transform 28%, tests 7%, setup 4%) UTC 2026-11-03T01:10:36.253555+00:00 EXIT 0 ====================================================================== F13-F19 ====================================================================== UTC 2026-11-03T01:10:36.254600+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "does not send a rollback to a stale session already being released", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released 185ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:36 Duration 2.52s (import 60%, transform 27%, tests 9%, setup 3%) UTC 2026-11-03T01:10:39.400236+00:00 EXIT 0 ====================================================================== F17a ====================================================================== UTC 2026-11-03T01:10:39.401464+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "keeps a shared session busy when another thread's start is stopped early", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early 180ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:39 Duration 2.55s (import 61%, transform 28%, tests 8%, setup 4%) UTC 2026-11-03T01:10:42.625062+00:00 EXIT 0 ====================================================================== F17b ====================================================================== UTC 2026-11-03T01:10:42.625973+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "keeps a shared session busy when a stopped start still ends its turn", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn 173ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:43 Duration 2.36s (import 61%, transform 27%, tests 8%, setup 4%) UTC 2026-11-03T01:10:45.548037+00:00 EXIT 0 ====================================================================== F19a ====================================================================== UTC 2026-11-03T01:10:45.548637+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "retries release records that failed to persist", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist 189ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:45 Duration 2.32s (import 61%, transform 26%, tests 9%, setup 4%) UTC 2026-11-03T01:10:48.420279+00:00 EXIT 0 ====================================================================== F19b ====================================================================== UTC 2026-11-03T01:10:48.420997+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "release retries leave a replacement session alone", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone 181ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:48 Duration 2.41s (import 60%, transform 28%, tests 8%, setup 4%) UTC 2026-11-03T01:10:51.393988+00:00 EXIT 0 ====================================================================== F19c ====================================================================== UTC 2026-11-03T01:10:51.394636+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "protects a reused credential from a predecessor release during open", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open 152ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:51 Duration 2.23s (import 61%, transform 28%, tests 7%, setup 4%) UTC 2026-11-03T01:10:54.215704+00:00 EXIT 0 ====================================================================== F22a ====================================================================== UTC 2026-11-03T01:10:54.216341+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "opens one shared runtime, broadcasts events, and detaches threads independently", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently 179ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:54 Duration 2.29s (import 60%, transform 28%, tests 8%, setup 4%) UTC 2026-11-03T01:10:57.088645+00:00 EXIT 0 ====================================================================== F22b ====================================================================== UTC 2026-11-03T01:10:57.089560+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "rejects a second thread when the provider runtime is exclusive", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive 152ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:10:57 Duration 2.35s (import 61%, transform 28%, tests 7%, setup 4%) UTC 2026-11-03T01:11:00.013770+00:00 EXIT 0 ====================================================================== F23 ====================================================================== UTC 2026-11-03T01:11:00.014897+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "cleans up an open interrupted mid-handshake", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake 160ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:11:00 Duration 2.44s (import 60%, transform 29%, tests 7%, setup 3%) UTC 2026-11-03T01:11:03.037683+00:00 EXIT 0 ====================================================================== F24a ====================================================================== UTC 2026-11-03T01:11:03.038636+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "rejects a deleted workspace before reusing a live session without changing its state", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ✓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state 174ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:11:03 Duration 2.50s (import 60%, transform 28%, tests 7%, setup 4%) UTC 2026-11-03T01:11:06.112172+00:00 EXIT 0 ====================================================================== F24b ====================================================================== UTC 2026-11-03T01:11:06.113113+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "rejects a missing workspace before opening a provider session", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ✓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session 168ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:11:06 Duration 2.47s (import 60%, transform 29%, tests 7%, setup 4%) UTC 2026-11-03T01:11:09.185796+00:00 EXIT 0 ====================================================================== F27 ====================================================================== UTC 2026-11-03T01:11:09.186639+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderSessionManager.test.ts", "-t", "opens a duplicate session only once", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ✓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once 164ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:11:09 Duration 2.35s (import 62%, transform 26%, tests 7%, setup 4%) UTC 2026-11-03T01:11:12.160598+00:00 EXIT 0 ====================================================================== F20a ====================================================================== UTC 2026-11-03T01:11:12.161396+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderAdapterRegistry.test.ts", "-t", "returns one adapter per instance build so sessions can detect a rebuild", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > routes two configured instances of the same driver independently ✓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > returns one adapter per instance build so sessions can detect a rebuild 11ms ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > blocks a new session while another instance changes their shared provider credentials ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > interrupts admitted session startup when a shared peer signs out Test Files 1 passed (1) Tests 1 passed | 3 skipped (4) Start at 01:11:12 Duration 949ms (import 63%, transform 25%, setup 10%, tests 2%, worker 1%) UTC 2026-11-03T01:11:13.634174+00:00 EXIT 0 ====================================================================== F20b-F22c ====================================================================== UTC 2026-11-03T01:11:13.635096+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderAdapterRegistry.test.ts", "-t", "routes two configured instances of the same driver independently", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ✓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > routes two configured instances of the same driver independently 9ms ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > returns one adapter per instance build so sessions can detect a rebuild ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > blocks a new session while another instance changes their shared provider credentials ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > interrupts admitted session startup when a shared peer signs out Test Files 1 passed (1) Tests 1 passed | 3 skipped (4) Start at 01:11:14 Duration 908ms (import 68%, transform 21%, setup 10%, tests 1%, worker 1%) UTC 2026-11-03T01:11:15.153542+00:00 EXIT 0 ====================================================================== F21a ====================================================================== UTC 2026-11-03T01:11:15.154515+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderAdapterRegistry.test.ts", "-t", "blocks a new session while another instance changes their shared provider credentials", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > routes two configured instances of the same driver independently ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > returns one adapter per instance build so sessions can detect a rebuild ✓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > blocks a new session while another instance changes their shared provider credentials 11ms ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > interrupts admitted session startup when a shared peer signs out Test Files 1 passed (1) Tests 1 passed | 3 skipped (4) Start at 01:11:15 Duration 908ms (import 68%, transform 19%, setup 11%, tests 2%, worker 1%) UTC 2026-11-03T01:11:16.622814+00:00 EXIT 0 ====================================================================== F21b ====================================================================== UTC 2026-11-03T01:11:16.623633+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderAdapterRegistry.test.ts", "-t", "interrupts admitted session startup when a shared peer signs out", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > routes two configured instances of the same driver independently ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > returns one adapter per instance build so sessions can detect a rebuild ↓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > blocks a new session while another instance changes their shared provider credentials ✓ src/orchestration-v2/ProviderAdapterRegistry.test.ts > interrupts admitted session startup when a shared peer signs out 16ms Test Files 1 passed (1) Tests 1 passed | 3 skipped (4) Start at 01:11:17 Duration 934ms (import 67%, transform 19%, setup 10%, tests 2%, worker 1%) UTC 2026-11-03T01:11:18.091780+00:00 EXIT 0 ====================================================================== F24c ====================================================================== UTC 2026-11-03T01:11:18.092573+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/ProviderTurnStartService.test.ts", "-t", "rejects compaction without conversation context after 0 prior compactions", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: // ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: the real path of a symlinked managed fo… ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: a path outside the managed folder ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: a symlink inside the managed folder tha… ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: a folder nested below a worktree ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: '..' out of the managed folder ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: '..' after a symlink inside the managed… ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recreates a missing worktree only at the managed location: a relative path ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recovers the local or pushed thread tip, else the current branch, remote default, or detached HEAD ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > preserves recreation interrupts and retries, then fails the final attempt before provider start ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > recovers an abandoned failed turn before continuing its native conversation ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > sends side chat context inline once, for the first turn that reaches the provider: {"contextRun":"current","runtimeMode":"approval-required","context":"SIDE_CHAT_CONTEXT"} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > sends side chat context inline once, for the first turn that reaches the provider: {"contextRun":"failed","runtimeMode":"approval-required","context":"SIDE_CHAT_CONTEXT"} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > sends side chat context inline once, for the first turn that reaches the provider: {"contextRun":"cancelled","runtimeMode":"approval-required","context":"SIDE_CHAT_CONTEXT"} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > sends side chat context inline once, for the first turn that reaches the provider: {"contextRun":"failed","switchedProvider":true,"runtimeMode":"approval-required","context":"SIDE_CHAT_CONTEXT"} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > sends side chat context inline once, for the first turn that reaches the provider: {"contextRun":"delivered","runtimeMode":"full-access","context":""} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > runs a planned native side chat fork when the parent is idle ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > runs a planned native side chat fork when the parent is busy ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > continues without interrupting when recovery does not apply: {"runStatus":"failed","turnStatus":"completed"} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > continues without interrupting when recovery does not apply: {"runStatus":"completed","turnStatus":"completed"} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > continues without interrupting when recovery does not apply: {"runStatus":"failed","turnStatus":"running","differentThread":true} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > continues without interrupting when recovery does not apply: {"runStatus":"failed","turnStatus":"running","liveSession":false} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > continues without interrupting when recovery does not apply: {"runStatus":"failed","turnStatus":"interrupted","interruptFailure":true} ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not start another turn when abandoned-turn cleanup fails ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > retries abandoned-turn cleanup without failing the continuation early ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not start the continuation if recording recovery fails ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not resume a continuation stopped while recovery was in flight ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > coordinates provider startup with cleanup-first ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > coordinates provider startup with startup-first ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > reads current startup state after waiting for the workspace lease ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not continue startup when replaced during policy resolution ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not continue startup when interrupted during session opening ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > starts another provider in the same checkout while a turn is pending ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > terminalizes a starting run when its provider session cannot open ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > leaves the run starting when a session-open failure will be retried ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > fails the run without a retry when the provider needs sign-in ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not terminalize a provider-session open interruption ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not overwrite a run interrupted while its provider session opens ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > does not mistake a failed state read for a superseded run ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > signs out the existing native provider before opening the newly selected provider ✓ src/orchestration-v2/ProviderTurnStartService.test.ts > rejects compaction without conversation context after 0 prior compactions 26ms ↓ src/orchestration-v2/ProviderTurnStartService.test.ts > rejects compaction without conversation context after 2 prior compactions Test Files 1 passed (1) Tests 1 passed | 41 skipped (42) Start at 01:11:18 Duration 11.38s (transform 67%, import 32%, setup 1%) UTC 2026-11-03T01:11:30.259312+00:00 EXIT 0 ====================================================================== F25 ====================================================================== UTC 2026-11-03T01:11:30.261032+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND ["vp", "test", "run", "src/orchestration-v2/testkit/ThreadMergeBack.integration.test.ts", "-t", "merges two sibling fork deltas into the original", "--reporter", "verbose"] TEST FILES on before: copied verbatim from head, production files unchanged 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-28108/apps/server ✓ src/orchestration-v2/testkit/ThreadMergeBack.integration.test.ts > orchestration V2 merge-back provider replay > merges two sibling fork deltas into the original codex thread 5878ms ✓ src/orchestration-v2/testkit/ThreadMergeBack.integration.test.ts > orchestration V2 merge-back provider replay > merges two sibling fork deltas into the original claudeAgent thread 4687ms Test Files 1 passed (1) Tests 2 passed (2) Start at 01:11:30 Duration 15.65s (tests 68%, import 17%, transform 15%, setup 1%) UTC 2026-11-03T01:11:46.629128+00:00 EXIT 0 ====================================================================== F24 file workspace control ====================================================================== Recorded UTC 2026-11-03T01:22:23.316708+00:00 SHA 5732ee6018fee30328bb7394c8be7e5cd638286d CWD /home/ubuntu/wt/pr-28108/apps/server COMMAND vp test run src/orchestration-v2/ProviderSessionManager.test.ts -t "rejects a file workspace before opening a provider session" --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-28108/apps/server ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens independent sessions concurrently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 closes every live session for a provider instance ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 reopens an idle session on the adapter rebuilt from changed settings ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale when a sibling turn starts while it is checked ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a session rebuilt settings made stale while a compaction runs on it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retires a session settings made stale only after a rollback on it ends ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not send a rollback to a stale session already being released ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens a duplicate session only once ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 starts a thread's session without its last agent's OOM kill ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 cleans up an open interrupted mid-handshake ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when another thread's start is stopped early ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session busy when a stopped start still ends its turn ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives up on a provider that never confirms a Stop ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a shared session a sibling is busy on when releasing ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 stops a session still opening when its layer shuts down ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 interrupts event subscriptions on server shutdown ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 drains subscribers when the provider stops ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 issues MCP credentials before opening and revokes them on close ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (null) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks MCP credentials of delegated children (subagent) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 withholds the preview capability when agent browser access is off ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 honors a project browser-access opt-out ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 fails browser access closed for a missing project ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes MCP credentials when release persistence fails ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread attached when an earlier attach of it is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a replacement session's attachment when a stale attach is interrupted ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 revokes a reused credential after a resume stopped while checking it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 duplicate detach preserves replacement MCP credentials ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a thread's MCP credential stable across detach and re-attach on a shared session ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 protects a reused credential from a predecessor release during open ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 terminal detach revokes the thread's MCP credential ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 clears the background roster of a session a detach releases ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps the roster of a runtime whose tasks can outlive it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps a provider update that lands while release clears ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 does not idle-release a session that turns busy during the pending-work check ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 releases sessions when provider event streams fail ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 marks pending runtime requests non-live on release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 retries release records that failed to persist ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 release retries leave a replacement session alone ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 keeps each failed release's cleanup ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 settles a request the event pump persists during release ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (manual_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 preserves questions only for server shutdown (server_shutdown) ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 persists session-scoped runtime requests without a run ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 opens one shared runtime, broadcasts events, and detaches threads independently ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 invalidates only errored threads and keeps reusable session errors cached ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 re-attaching a thread waits for its in-flight unload, then reloads it ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 rejects a second thread when the provider runtime is exclusive ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a missing workspace before opening a provider session ✓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a file workspace before opening a provider session 170ms ↓ src/orchestration-v2/ProviderSessionManager.test.ts > rejects a deleted workspace before reusing a live session without changing its state ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 applies project device access independently of browser access ↓ src/orchestration-v2/ProviderSessionManager.test.ts > ProviderSessionManagerV2 gives a delegated child its project's device access Test Files 1 passed (1) Tests 1 passed | 52 skipped (53) Start at 01:19:07 Duration 2.60s (import 60%, transform 29%, tests 7%, setup 4%)