Issue 23050: fake Pi adapter runtime before/after Base d27c6067a9162150f654e38f455a7a936ef79178; implementation 111dadc991; final head 1372a7af05 (test-only cleanup). Method: temporary case in existing adapter harness, source /tmp/23050-temp-test.txt (not committed). Completed strong turn 1, weak running turn 2 with completedAt null; tree includes u2 and later steer2; fork from turn1. Commands: ./node_modules/.bin/vp test run packages/provider-pi/src/server/adapter.test.ts -t "TEMP reproduces" --silent=false Before used same command without --silent=false; failure output is printed by default. BEFORE: 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-23050 stdout | packages/provider-pi/src/server/adapter.test.ts > PiAdapterV2 > TEMP reproduces issue 23050 running boundary ISSUE_23050_RUNTIME_TRANSCRIPT { _id: 'Result', _tag: 'Failure', failure: { _tag: 'ProviderAdapterForkThreadError', driver: 'pi', providerThreadId: 'provider-thread:provider:pi:native-thread:%2Ffake%2F.pi%2Fagent%2Fsessions%2F--workspace--%2F0001_abc.jsonl', cause: { _tag: 'ProviderAdapterProtocolError', driver: 'pi', detail: 'Pi turn 2 has no captured session-tree entry and none was found in the session tree' } } } stdout | packages/provider-pi/src/server/adapter.test.ts > PiAdapterV2 > TEMP reproduces issue 23050 running boundary [19:30:47.930] ERROR (#1): Error [AssertionError]: fork from turn 1 must succeed while turn 2 runs: expected 'Failure' to equal 'Success' at /home/ubuntu/wt/issue-23050/packages/provider-pi/src/server/adapter.test.ts:1828:14 { actual: 'Failure', expected: 'Success', showDiff: true, operator: 'strictEqual', [cause]: undefined } ❯ |root| packages/provider-pi/src/server/adapter.test.ts (84 tests | 1 failed | 83 skipped) 57ms ❯ PiAdapterV2 (82) × TEMP reproduces issue 23050 running boundary 55ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL |root| packages/provider-pi/src/server/adapter.test.ts > PiAdapterV2 > TEMP reproduces issue 23050 running boundary AssertionError: fork from turn 1 must succeed while turn 2 runs: expected 'Failure' to equal 'Success' Expected: "Success" Received: "Failure" ❯ packages/provider-pi/src/server/adapter.test.ts:1828:14 1826| }).pipe(Effect.result); 1827| console.log("ISSUE_23050_RUNTIME_TRANSCRIPT", result); 1828| assert.equal(result._tag, "Success", "fork from turn 1 must succ… | ^ 1829| assert.deepEqual(forkFake.allRequests().filter((request) => requ… 1830| }).pipe(Effect.scoped, Effect.provide(layerTest)), ❯ ~effect/Effect/successCont node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28 ❯ FiberImpl.succeedWith node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:711:30 ❯ MatchImpl.~effect/Effect/failureCont node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:3623:16 ❯ ~effect/Effect/evaluate node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:627:20 ❯ 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 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 83 skipped (84) Start at 19:30:40 Duration 7.04s (transform 72%, import 16%, setup 11%, tests 1%) AFTER: 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-23050 stdout | packages/provider-pi/src/server/adapter.test.ts > PiAdapterV2 > TEMP reproduces issue 23050 running boundary ISSUE_23050_RUNTIME_TRANSCRIPT { _id: 'Result', _tag: 'Success', value: { id: 'provider-thread:provider:pi:native-thread:%2Ffake%2Fforked.jsonl', driver: 'pi', providerInstanceId: 'pi', providerSessionId: 'provider-session-pi-test', appThreadId: 'fork-target', ownerNodeId: null, nativeThreadRef: { driver: 'pi', nativeId: '/fake/forked.jsonl', strength: 'strong' }, nativeConversationHeadRef: null, status: 'idle', firstRunOrdinal: null, lastRunOrdinal: null, handoffIds: [], forkedFrom: { providerThreadId: 'provider-thread:provider:pi:native-thread:%2Ffake%2F.pi%2Fagent%2Fsessions%2F--workspace--%2F0001_abc.jsonl', providerTurnId: 'turn-1' }, pendingBackgroundTasks: [], createdAt: DateTime.Utc(1970-01-01T00:00:00.000Z), updatedAt: DateTime.Utc(1970-01-01T00:00:00.000Z) } } ISSUE_23050_FORK_REQUESTS [ { type: 'fork', entryId: 'u2', id: 't3-1' } ] Test Files 1 passed (1) Tests 1 passed | 84 skipped (85) Start at 19:40:03 Duration 12.82s (transform 70%, import 21%, setup 8%, tests 1%) Scope: fake Pi protocol process harness, not native Pi session persistence. u2 native cut selects ancestors ending at turn1; no turn2 prompt retained by that cut. Pi 1.3.0 installed in /tmp; web attempted on isolated .t3, but live turn sequence not completed because dev watcher repeatedly restarted on tests/config cache writes and client needed reconnect. Windows/desktop/mobile/authenticated model behavior unverified.