Sat Oct 24 10:55:24 UTC 2026 ea3642a4872efa089663fff337bd6283c52e17be COMMAND: vp test run src/orchestration-v2/runtimeLayer.test.ts -t starts a provider wake queued beside a held queue --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/issue-22033/apps/server ↓ src/orchestration-v2/runtimeLayer.test.ts > project deletion during thread commands > deleting a thread removes its thread-bound automations through the effect worker ↓ src/orchestration-v2/runtimeLayer.test.ts > project deletion during thread commands > deleting a project removes its thread-bound automations through the effect worker ↓ src/orchestration-v2/runtimeLayer.test.ts > project deletion during thread commands > waits for an in-flight thread update before planning deletion ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > projects a rollback that fails every attempt and clears it on the next one ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > rejects non-ready rollback targets before persisting events or effects ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > resolves delivery intent against the active run and starts after it completes ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > answers an async question after its provider exits and commits the answer once ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > dismisses message-capable questions directly and while settling ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > merges an explicit provider-finished run while checkpoint capture is pending ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2 legacy import > hydrates imported transcripts before commands and propagates hydration failures ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > applies lifecycle commands idempotently and emits archive/removal shell deltas ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > keeps the branch pull request when linking another pull request ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > retains multiple pull requests and dismissed stack members through rebuilds ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > starts, records, and stops a pull request watch ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settling ends every pull request watch: manual ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settling ends every pull request watch: automatic ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > archiving ends watches, and an archived thread cannot start one ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > ends a watch it cannot read, and tells the agent ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes once for a state it reported, across a restart and a new watch ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > finishes owed checks once after pending sweeps, a restart, and a re-watch ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > a watch that ends on the comment limit keeps what its last pass saw ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes once when no checks report on the head, without saying they passed ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes for checks that complete after the no-checks notice on the same head ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > watching a dismissed stack layer again keeps what its last watch told ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: single page ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: paginated ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: page failure ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: repeated cursor ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: missing comments ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: thread list truncated ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > persists rejected command receipts across retries ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits restart continuations once and rejects a stale continuation behind newer work ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a failed run that lost a shell: false ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a completed run that lost a shell: false ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a waiting run that lost a shell: false ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a cancelled run that lost a shell: false ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a failed run that lost a monitor: false ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a completed run that lost a monitor: true ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a waiting run that lost a monitor: true ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a cancelled run that lost a monitor: true ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > rejects settling a thread while a run is active ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settles a thread its own agent settled once the turn completes ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settles past held automatic runs but not held user messages ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > cancels preparing work on archive and keeps it cancelled through replay ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > promotes only one queued run after each terminal run (notification: false) ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > promotes only one queued run after each terminal run (notification: true) ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > starts a wake's work clock from the run that ran before it ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > handles a queued message after a usage_limit failure ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > handles a queued message after a provider_error failure ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > keeps queued user selections and pauses only the limited provider ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > delivers a queued monitor update from server after conversation selection {"instanceId":"codex","model":"gpt-5.4"} ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > delivers a queued monitor update from provider after conversation selection {"instanceId":"codex","model":"gpt-5.4"} ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > delivers a queued monitor update from provider after conversation selection {"instanceId":"codex_alternate","model":"gpt-5.4"} ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > keeps the queue after a user interrupts the active run ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > places held queued messages after a continuation that started first ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > preserves and holds queued messages across startup until explicitly resumed ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > preserves and holds queued messages across shutdown until explicitly resumed ✓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > starts a provider wake queued beside a held queue 146ms ↓ src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > edits and removes queued runs ↓ src/orchestration-v2/runtimeLayer.test.ts > pending provider interruption > interrupts a pending provider start without launching provider work ↓ src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > only user messages block snooze with a held notification run ↓ src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > only user messages block snooze with a held delegated-completion run ↓ src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > only user messages block snooze with a held user run ↓ src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > a notification message on a snoozed thread keeps the snooze only when automatic ↓ src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > a user message on a snoozed thread keeps the snooze only when automatic ↓ src/orchestration-v2/runtimeLayer.test.ts > snooze projection > carries snooze state through the V2 shell projection ↓ src/orchestration-v2/runtimeLayer.test.ts > visited projection > carries the visited watermark through the V2 shell projection ↓ src/orchestration-v2/runtimeLayer.test.ts > compact PR events > persists only the changed PR link and replays it without losing other links ↓ src/orchestration-v2/runtimeLayer.test.ts > shared application data plane > orders retained project transactions and V2 thread transactions in one source ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > manually resumes an interrupted run ahead of its queued message only once ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > manually resumes an usage_limit run ahead of its queued message only once ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against resume ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against queued-resume ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against rearm ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against snooze-race ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against archive ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against replacement ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against manual-snooze ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against invalid-snooze ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against cancel-resume-keep-snooze ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against independent-patches ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against expired-snooze ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against wake ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against stop ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against stop-before-arm ↓ src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against stop-before-arm-mismatched-recovery ↓ src/orchestration-v2/runtimeLayer.test.ts > queue.resume on a project-disabled instance > holds a queued run instead of starting it on an instance the project turned off Test Files 1 passed (1) Tests 1 passed | 86 skipped (87) Start at 10:55:25 Duration 5.43s (import 59%, transform 32%, tests 7%, setup 2%) EXIT_CODE=0 ea3642a4872efa089663fff337bd6283c52e17be