{ "name": "red-original", "revision": "f0d7dfdd89cc2acd5628b2f90b42766c420c868e", "worktreeHead": "f0c4840a83a496a5b7aff4425156e7e42a723087", "cwd": "/home/ubuntu/wt/issue-25644", "env": { "EVIDENCE_REVISION": "f0d7dfdd89", "EVIDENCE_MODE": "original" }, "command": [ "vp", "test", "run", "--config", "/home/ubuntu/evidence-25644/vite.config.ts", "-t", "moves a queued message ahead of queued delegated completions" ], "overlay": "read-only Vite load hook; no source or HEAD mutations", "testSource": "f0d7dfdd89 runtimeLayer.test.ts" } 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-25644 SOURCE_OVERLAY f0d7dfdd89 packages/contracts/src/orchestrationV2.ts a0b1a9687baef68e03881fb86ed4245d2561092d9f6971cf70e3b76b81aadd7f SOURCE_OVERLAY f0d7dfdd89 apps/server/src/orchestration-v2/Orchestrator.ts e56f3e45a618d235195a74cef7136ed83ea153693fd76d2ee7e38e83485dd945 SOURCE_OVERLAY f0d7dfdd89 apps/server/src/orchestration-v2/QueuedRunOrder.ts e8a2330a2df90f9a3b60b3c0bc8f77ce33cfb3c4b2e783ed75ba5a7029711c7f ↓ 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 ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > project deletion during thread commands > deleting a project removes its thread-bound automations through the effect worker ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > project deletion during thread commands > waits for an in-flight thread update before planning deletion ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > projects a rollback that fails every attempt and clears it on the next one ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > rejects non-ready rollback targets before persisting events or effects ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > resolves delivery intent against the active run and starts after it completes ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > answers an async question after its provider exits and commits the answer once ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > reports an answer that never reaches its provider without reopening it ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > dismisses message-capable questions directly and while settling ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive > merges an explicit provider-finished run while checkpoint capture is pending ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2 legacy import > hydrates imported transcripts before commands and propagates hydration failures ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > applies lifecycle commands idempotently and emits archive/removal shell deltas ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > keeps the branch pull request when linking another pull request ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > retains multiple pull requests and dismissed stack members through rebuilds ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > starts, records, and stops a pull request watch ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settling ends every pull request watch: manual ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settling ends every pull request watch: automatic ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > archiving ends watches, and an archived thread cannot start one ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > ends a watch it cannot read, and tells the agent ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes once for a state it reported, across a restart and a new watch ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > finishes owed checks once after pending sweeps, a restart, and a re-watch ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > a watch that ends on the comment limit keeps what its last pass saw ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes once when no checks report on the head, without saying they passed ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes for checks that complete after the no-checks notice on the same head ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > watching a dismissed stack layer again keeps what its last watch told ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: single page ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: paginated ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: page failure ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: repeated cursor ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: missing comments ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > wakes a watched thread once: thread list truncated ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > persists rejected command receipts across retries ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits restart continuations once and rejects a stale continuation behind newer work ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a failed run that lost a shell: false ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a completed run that lost a shell: false ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a waiting run that lost a shell: false ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a cancelled run that lost a shell: false ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a completed run that lost a watchdog-monitor: false ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a failed run that lost a awaited-monitor: false ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a completed run that lost a awaited-monitor: true ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a waiting run that lost a awaited-monitor: true ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > admits a restart continuation of a cancelled run that lost a awaited-monitor: true ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > rejects settling a thread while a run is active ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settles a thread its own agent settled once the turn completes ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > settles past held automatic runs but not held user messages ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > cancels preparing work on archive and keeps it cancelled through replay ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > promotes only one queued run after each terminal run (notification: false) ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > promotes only one queued run after each terminal run (notification: true) ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > starts a wake's work clock from the run that ran before it ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > handles a queued message after a usage_limit failure ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > handles a queued message after a provider_error failure ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > keeps queued user selections and pauses only the limited provider ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > delivers a queued monitor update from server after conversation selection {"instanceId":"codex","model":"gpt-5.4"} ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > delivers a queued monitor update from provider after conversation selection {"instanceId":"codex","model":"gpt-5.4"} ↓ apps/server/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"} ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > keeps the queue after a user interrupts the active run ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > places held queued messages after a continuation that started first ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > preserves and holds queued messages across startup until explicitly resumed ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > preserves and holds queued messages across shutdown until explicitly resumed ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > edits and removes queued runs stdout | apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > moves a queued message ahead of queued delegated completions [23:31:40.756] ERROR (#3055): Error [OrchestratorDispatchError]: Failed to dispatch orchestration command queued-run.reorder (runtime-layer-reorder-before-completion-reorder). at /home/ubuntu/wt/issue-25644/apps/server/src/orchestration-v2/Orchestrator.ts:8492:21 at orchestrationV2.dispatch.withReceipt (/home/ubuntu/wt/issue-25644/apps/server/src/orchestration-v2/Orchestrator.ts:12319:7) at orchestrationV2.dispatch.withReceipt (definition) (/home/ubuntu/wt/issue-25644/apps/server/src/orchestration-v2/Orchestrator.ts:12101:44) { _tag: 'OrchestratorDispatchError', commandId: 'runtime-layer-reorder-before-completion-reorder', commandType: 'queued-run.reorder', [cause]: [Error: Queued messages cannot be reordered ahead of automatic completion delivery.] } × apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > moves a queued message ahead of queued delegated completions 140ms → Failed to dispatch orchestration command queued-run.reorder (runtime-layer-reorder-before-completion-reorder). ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > pending provider interruption > interrupts a pending provider start without launching provider work ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > only user messages block snooze with a held notification run ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > only user messages block snooze with a held delegated-completion run ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > only user messages block snooze with a held user run ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > a notification message on a snoozed thread keeps the snooze only when automatic ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > snooze queued runs > a user message on a snoozed thread keeps the snooze only when automatic ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > snooze projection > carries snooze state through the V2 shell projection ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > visited projection > carries the visited watermark through the V2 shell projection ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > thread opens > counts opens on the server clock, merges quick reopens, and keeps picked queries ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > compact PR events > persists only the changed PR link and replays it without losing other links ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > shared application data plane > orders retained project transactions and V2 thread transactions in one source ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > manually resumes an interrupted run ahead of its queued message only once ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > manually resumes an usage_limit run ahead of its queued message only once ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against resume ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against queued-resume ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against rearm ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against snooze-race ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against archive ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against replacement ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against manual-snooze ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against invalid-snooze ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against cancel-resume-keep-snooze ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against independent-patches ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against expired-snooze ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against wake ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against stop ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against stop-before-arm ↓ apps/server/src/orchestration-v2/runtimeLayer.test.ts > usage-limit recovery > guards a scheduled usage-limit continuation against stop-before-arm-mismatched-recovery ↓ apps/server/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 ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL apps/server/src/orchestration-v2/runtimeLayer.test.ts > OrchestrationV2LayerLive lifecycle > moves a queued message ahead of queued delegated completions OrchestratorDispatchError: Failed to dispatch orchestration command queued-run.reorder (runtime-layer-reorder-before-completion-reorder). ❯ apps/server/src/orchestration-v2/Orchestrator.ts:8492:21 8490| ? withoutMoving.length 8491| : withoutMoving.findIndex((run) => run.id === command.beforeRu… 8492| if (beforeIndex === -1) { | ^ 8493| return yield* new OrchestratorDispatchError({ 8494| commandId: command.commandId, ❯ ~effect/Effect/successCont node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28 ❯ ~effect/Effect/evaluate node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30 ❯ FiberImpl.runLoop node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41 ❯ FiberImpl.evaluate node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23 ❯ FiberImpl.evaluate node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27 ❯ Array. node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1025:13 ❯ MixedSchedulerDispatcher.runTasks node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/Scheduler.ts:254:17 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { _tag: 'OrchestratorDispatchError', commandId: 'runtime-layer-reorder-before-completion-reorder', commandType: 'queued-run.reorder' } Caused by: Queued messages cannot be reordered ahead of automatic completion delivery. ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 89 skipped (90) Start at 23:31:29 Duration 11.79s (transform 70%, import 26%, tests 3%, setup 1%) EXIT_STATUS=1