• turbo 2.10.12 • Packages in scope: @bb/provider-bridge-acp • Running test in 1 packages • Remote caching disabled //:ensure-native-modules: cache bypass, force executing f5a32d6fabe58a88 //:ensure-native-modules: //:ensure-native-modules: > bb@ ensure-native-modules /tmp/reproduction/verify //:ensure-native-modules: > node scripts/ensure-native-modules.mjs //:ensure-native-modules: @bb/provider-bridge-acp:test: cache miss, executing 53a3fb19ce1bbd6a @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: > @bb/provider-bridge-acp@0.0.1 test /tmp/reproduction/verify/packages/provider-bridge-acp @bb/provider-bridge-acp:test: > vitest run --config vitest.config.ts "--testNamePattern=issue 4154" @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: RUN v4.1.1 /tmp/reproduction/verify/packages/provider-bridge-acp @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: (node:87944) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: (node:87950) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/model-catalog.test.ts (31 tests | 31 skipped) @bb/provider-bridge-acp:test: (node:87948) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/session-params.test.ts (28 tests | 28 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp:isolated| src/probe.test.ts (4 tests | 4 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/dialect.test.ts (24 tests | 24 skipped) @bb/provider-bridge-acp:test: (node:87946) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/interactions.test.ts (20 tests | 20 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/delta-translation.test.ts (72 tests | 72 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/agent-connection.test.ts (8 tests | 8 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/wire.test.ts (8 tests | 8 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/tool-call-operation.test.ts (8 tests | 8 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/tool-proxy-mcp.test.ts (6 tests | 6 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/cursor-mcp-approval.test.ts (4 tests | 4 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp:isolated| src/bridge/opencode-usage.test.ts (23 tests | 23 skipped) @bb/provider-bridge-acp:test: (node:87949) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/provider-maintenance.test.ts (2 tests | 2 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/cursor-model-selection.test.ts (3 tests | 3 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/launch-spec.test.ts (2 tests | 2 skipped) @bb/provider-bridge-acp:test: (node:87943) ExperimentalWarning: SQLite is an experimental feature and might change at any time @bb/provider-bridge-acp:test: (Use `node --trace-warnings ...` to show where the warning was created) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/bridge.conformance-calibration.test.ts (1 test | 1 skipped) @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/mcp-server-entry.test.ts (1 test | 1 skipped) @bb/provider-bridge-acp:test: stderr | src/bridge/bridge.test.ts > acp bridge > issue 4154 preserves later model efforts (reject middle: true) @bb/provider-bridge-acp:test: {"rejectMiddle":true,"probed":["probe-a","probe-b"],"response":{"jsonrpc":"2.0","id":3,"result":{"models":[{"id":"probe-a","model":"probe-a","displayName":"probe-a","description":"","supportedReasoningEfforts":[{"reasoningEffort":"low","description":"low"},{"reasoningEffort":"medium","description":"medium"},{"reasoningEffort":"high","description":"high"}],"defaultReasoningEffort":"low","isDefault":true},{"id":"probe-b","model":"probe-b","displayName":"probe-b","description":"","supportedReasoningEfforts":[{"reasoningEffort":"medium","description":"Reasoning effort is managed by the connected ACP agent."}],"defaultReasoningEffort":"medium","isDefault":false},{"id":"probe-c","model":"probe-c","displayName":"probe-c","description":"","supportedReasoningEfforts":[{"reasoningEffort":"medium","description":"Reasoning effort is managed by the connected ACP agent."}],"defaultReasoningEffort":"medium","isDefault":false}],"selectedOnlyModels":[]}}} @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: ❯ |@bb/provider-bridge-acp:isolated| src/bridge/bridge.test.ts (104 tests | 1 failed | 102 skipped) 112ms @bb/provider-bridge-acp:test: ✓ issue 4154 preserves later model efforts (reject middle: false) 56ms @bb/provider-bridge-acp:test: × issue 4154 preserves later model efforts (reject middle: true) 54ms @bb/provider-bridge-acp:test: ↓ answers initialize and lists grouped models without spawning an agent @bb/provider-bridge-acp:test: ↓ answers a minimal model/list (no params) with the synthetic default @bb/provider-bridge-acp:test: ↓ uses the CLI model list before ACP-native session discovery when both are present @bb/provider-bridge-acp:test: ↓ uses Cursor CLI variants as reasoning metadata for bare ACP models @bb/provider-bridge-acp:test: ↓ discovers ACP-native models and per-model reasoning from session configOptions @bb/provider-bridge-acp:test: ↓ advertises Cursor's parameterized model picker during discovery @bb/provider-bridge-acp:test: ↓ applies Cursor model parameters and maps 'default' to fast='false' @bb/provider-bridge-acp:test: ↓ applies Cursor model parameters and maps 'fast' to fast='true' @bb/provider-bridge-acp:test: ↓ translates a legacy Cursor model for thread/start session construction @bb/provider-bridge-acp:test: ↓ translates a legacy Cursor model for thread/resume session construction @bb/provider-bridge-acp:test: ↓ translates a legacy Cursor model for thread/fork session construction @bb/provider-bridge-acp:test: ↓ fails session construction when an advertised Fast selection is rejected @bb/provider-bridge-acp:test: ↓ leaves service tier untouched when the agent advertises no Fast option @bb/provider-bridge-acp:test: ↓ discovers ACP-native models from session models state @bb/provider-bridge-acp:test: ↓ advertises launch-time reasoning CLI levels on ACP-native models @bb/provider-bridge-acp:test: ↓ authenticates before ACP-native model discovery @bb/provider-bridge-acp:test: ↓ probes per-model reasoning across large catalogs instead of falling back @bb/provider-bridge-acp:test: ↓ keeps ACP-native discovered models when per-model reasoning discovery errors @bb/provider-bridge-acp:test: ↓ times out hung ACP-native discovery, kills the child, and falls back to the synthetic model @bb/provider-bridge-acp:test: ↓ serves ACP-native discovered models from cache within the TTL and re-discovers after it @bb/provider-bridge-acp:test: ↓ falls back to the synthetic model when ACP-native session discovery has no model option @bb/provider-bridge-acp:test: ↓ fails model/list with a clear error when the list command is missing @bb/provider-bridge-acp:test: ↓ fails model/list when the list command reports ACP auth is required @bb/provider-bridge-acp:test: ↓ falls back to the synthetic model when the list command prints no models @bb/provider-bridge-acp:test: ↓ keeps CLI reasoning on the resolved model variant instead of ACP config @bb/provider-bridge-acp:test: ↓ launches ACP agents with a configured reasoning CLI flag @bb/provider-bridge-acp:test: ↓ launches full-mode ACP agents with configured permission CLI args @bb/provider-bridge-acp:test: ↓ does not apply full-mode permission CLI args in workspace-write mode @bb/provider-bridge-acp:test: ↓ uses modelCli only for model selection when reasoningCli owns effort @bb/provider-bridge-acp:test: ↓ selects ACP-native models with session/set_config_option before the first prompt @bb/provider-bridge-acp:test: ↓ falls back to session/set_model when the model config option errors @bb/provider-bridge-acp:test: ↓ selects ACP-native models from session models state @bb/provider-bridge-acp:test: ↓ selects ACP-native reasoning with session/set_config_option before the first prompt @bb/provider-bridge-acp:test: ↓ applies configured native reasoning when the ACP agent does not advertise thought_level @bb/provider-bridge-acp:test: ↓ keeps ACP-native models without thought_level at the single managed level @bb/provider-bridge-acp:test: ↓ keeps reasoning empty when an ACP-native model advertises only unmapped thought levels @bb/provider-bridge-acp:test: ↓ shows configured native reasoning for ACP-native models without thought_level @bb/provider-bridge-acp:test: ↓ does not leak bridge-only Electron env to the spawned agent @bb/provider-bridge-acp:test: ↓ preserves Electron Node mode for the dynamic-tool MCP process only @bb/provider-bridge-acp:test: ↓ warns and launches the family id when a reasoning variant is missing @bb/provider-bridge-acp:test: ↓ starts a session and runs a prompt turn end to end @bb/provider-bridge-acp:test: ↓ rebuilds the agent with environment from a later turn @bb/provider-bridge-acp:test: ↓ authenticates ACP sessions with cached tokens when advertised @bb/provider-bridge-acp:test: ↓ prefers xAI API-key auth when XAI_API_KEY is available @bb/provider-bridge-acp:test: ↓ lets agents surface their own error for unsupported advertised auth methods @bb/provider-bridge-acp:test: ↓ keeps a non-auth session failure untyped when the agent advertises a login bb cannot perform @bb/provider-bridge-acp:test: ↓ keeps an agent exit during session/new untyped when the agent advertises a login bb cannot perform @bb/provider-bridge-acp:test: ↓ passes dynamic tools to ACP sessions as an MCP server @bb/provider-bridge-acp:test: ↓ approves Cursor session MCP servers for the session lifetime (#2018) @bb/provider-bridge-acp:test: ↓ forwards ACP dynamic tool calls through the runtime tool-call contract @bb/provider-bridge-acp:test: ↓ cancels the runtime tool request after socket-close @bb/provider-bridge-acp:test: ↓ cancels the runtime tool request after provider-exit @bb/provider-bridge-acp:test: ↓ cancels the runtime tool request after turn-end @bb/provider-bridge-acp:test: ↓ keeps the dynamic-tool TCP server alive after a client reset on initialize @bb/provider-bridge-acp:test: ↓ lists skills/configure roots in canonical session instructions @bb/provider-bridge-acp:test: ↓ prepends instructions to the first prompt only @bb/provider-bridge-acp:test: ↓ auto-allows permission requests in full mode @bb/provider-bridge-acp:test: ↓ forwards permission requests to the runtime in ask mode @bb/provider-bridge-acp:test: ↓ presents an external-directory write permission as a file-change approval @bb/provider-bridge-acp:test: ↓ answers session-grant decisions with the allow_always option @bb/provider-bridge-acp:test: ↓ acknowledges fs add writes @bb/provider-bridge-acp:test: ↓ acknowledges fs update writes @bb/provider-bridge-acp:test: ↓ denies client fs writes outside the workspace in accept-edits mode @bb/provider-bridge-acp:test: ↓ allows canonical accept-edits writes into a configured extra write root @bb/provider-bridge-acp:test: ↓ cancels a hung prompt and continues the same turn with steer input @bb/provider-bridge-acp:test: ↓ keeps partial output from the cancelled prompt then continues @bb/provider-bridge-acp:test: ↓ delivers stacked steers on the same turn @bb/provider-bridge-acp:test: ↓ cancels a stacked steer prompt that also hangs @bb/provider-bridge-acp:test: ↓ runs the builtin /compact command as compaction, not as a prompt @bb/provider-bridge-acp:test: ↓ fails the compaction turn legibly when the agent rejects the request @bb/provider-bridge-acp:test: ↓ does not report an ACP refusal as successful compaction @bb/provider-bridge-acp:test: ↓ does not apply OMP compaction prose to 'generic' ACP @bb/provider-bridge-acp:test: ↓ does not apply OMP compaction prose to 'OpenCode' ACP @bb/provider-bridge-acp:test: ↓ fails the compaction turn when the agent reports the failure in an end-turn message @bb/provider-bridge-acp:test: ↓ completes a no-op compaction turn without reporting a compacted context @bb/provider-bridge-acp:test: ↓ keeps classifying a no-op compaction when the agent rewords its prose @bb/provider-bridge-acp:test: ↓ fails the compaction turn when the failure report is reworded or preceded by other text @bb/provider-bridge-acp:test: ↓ accepts turn input only after the prompt carrying it goes out @bb/provider-bridge-acp:test: ↓ never accepts a queued steer the stopped turn did not send @bb/provider-bridge-acp:test: ↓ rejects steers when no turn is active @bb/provider-bridge-acp:test: ↓ cancels the active turn on thread/stop @bb/provider-bridge-acp:test: ↓ settles the interrupted turn itself when the agent ignores session/cancel @bb/provider-bridge-acp:test: ↓ forks an advertised ACP session with the target cwd and MCP servers @bb/provider-bridge-acp:test: ↓ rejects a checkpoint fork before session/fork @bb/provider-bridge-acp:test: ↓ rejects a fork result that reuses the source session id @bb/provider-bridge-acp:test: ↓ rejects fork before session/fork when the agent omits the capability @bb/provider-bridge-acp:test: ↓ resumes via session/load when the agent supports it @bb/provider-bridge-acp:test: ↓ emits session.reset after identity at every construction (start, resume, fork) @bb/provider-bridge-acp:test: ↓ surfaces Grok context window size and prompt usage from session _meta @bb/provider-bridge-acp:test: ↓ ignores Grok-shaped session _meta on other ACP dialects @bb/provider-bridge-acp:test: ↓ holds an agent update written with the session/new response until thread/identity is out @bb/provider-bridge-acp:test: ↓ holds an agent update written with the session/fork response until the fork's thread/identity is out @bb/provider-bridge-acp:test: ↓ forwards context usage reported during session/load @bb/provider-bridge-acp:test: ↓ ignores load-time context usage for a different session @bb/provider-bridge-acp:test: ↓ discards load-time context usage when session/load fails @bb/provider-bridge-acp:test: ↓ re-applies ACP-native reasoning after session/load resume @bb/provider-bridge-acp:test: ↓ falls back to a fresh session with a warning when load is unsupported @bb/provider-bridge-acp:test: ↓ reports unexpected agent exits as a single provider error @bb/provider-bridge-acp:test: ↓ releases a session still under construction: the agent is reaped and the pending thread/start fails @bb/provider-bridge-acp:test: ↓ lets a retried thread/start supersede a construction still in flight for the same thread @bb/provider-bridge-acp:test: ↓ fails thread/start with a clear error when the agent command is missing @bb/provider-bridge-acp:test: ↓ rejects thread/start without an ACP launch spec @bb/provider-bridge-acp:test: ↓ |@bb/provider-bridge-acp| src/bridge/bridge.recorded-conformance.test.ts (1 test | 1 skipped) @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: FAIL |@bb/provider-bridge-acp:isolated| src/bridge/bridge.test.ts > acp bridge > issue 4154 preserves later model efforts (reject middle: true) @bb/provider-bridge-acp:test: AssertionError: expected { models: [ { …(7) }, …(2) ], …(1) } to match object { Object (models) } @bb/provider-bridge-acp:test: (6 matching properties omitted from actual) @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: - Expected @bb/provider-bridge-acp:test: + Received @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: @@ -24,17 +24,12 @@ @bb/provider-bridge-acp:test: }, @bb/provider-bridge-acp:test: { @bb/provider-bridge-acp:test: "id": "probe-c", @bb/provider-bridge-acp:test: "supportedReasoningEfforts": [ @bb/provider-bridge-acp:test: { @bb/provider-bridge-acp:test: - "reasoningEffort": "low", @bb/provider-bridge-acp:test: - }, @bb/provider-bridge-acp:test: - { @bb/provider-bridge-acp:test: + "description": "Reasoning effort is managed by the connected ACP agent.", @bb/provider-bridge-acp:test: "reasoningEffort": "medium", @bb/provider-bridge-acp:test: - }, @bb/provider-bridge-acp:test: - { @bb/provider-bridge-acp:test: - "reasoningEffort": "high", @bb/provider-bridge-acp:test: }, @bb/provider-bridge-acp:test: ], @bb/provider-bridge-acp:test: }, @bb/provider-bridge-acp:test: ], @bb/provider-bridge-acp:test: } @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: ❯ src/bridge/bridge.test.ts:593:29 @bb/provider-bridge-acp:test: 591| const probed = readFileSync(log, "utf8").trim().split("\n"); @bb/provider-bridge-acp:test: 592| console.error(JSON.stringify({ rejectMiddle, probed, response })); @bb/provider-bridge-acp:test: 593| expect(response.result).toMatchObject({ @bb/provider-bridge-acp:test: | ^ @bb/provider-bridge-acp:test: 594| models: [ @bb/provider-bridge-acp:test: 595| { id: "probe-a", supportedReasoningEfforts: [ @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test: Test Files 1 failed | 18 skipped (19) @bb/provider-bridge-acp:test: Tests 1 failed | 1 passed | 348 skipped (350) @bb/provider-bridge-acp:test: Start at 00:50:31 @bb/provider-bridge-acp:test: Duration 5.03s (transform 21.46s, setup 0ms, import 28.29s, tests 112ms, environment 5ms) @bb/provider-bridge-acp:test: @bb/provider-bridge-acp:test:  ELIFECYCLE  Test failed. See above for more details. @bb/provider-bridge-acp#test: ERROR command (/tmp/reproduction/verify/packages/provider-bridge-acp) /tmp/reproduction/bin/pnpm run test --testNamePattern=issue 4154 exited (1) Tasks: 1 successful, 2 total Cached: 0 cached, 2 total Time: 8.085s Failed: @bb/provider-bridge-acp#test ERROR run failed: command exited (1)