Skip to content

fix: honor --model for reconnect prompts#211

Open
skywills wants to merge 1 commit intoopenclaw:mainfrom
nathapp-io:feat/model-per-prompt-rebase
Open

fix: honor --model for reconnect prompts#211
skywills wants to merge 1 commit intoopenclaw:mainfrom
nathapp-io:feat/model-per-prompt-rebase

Conversation

@skywills
Copy link
Copy Markdown

@skywills skywills commented Apr 2, 2026

Summary

This PR fixes model selection drift on persistent/reconnected sessions so per-prompt --model is honored consistently (including warm queue-owner paths).

Root Cause

Session options were not consistently propagated through refactored queue-owner request/task boundaries, and model config updates were not always enforced immediately before the next prompt on all adapters.

Changes

  • Ported session-option propagation to refactored runtime/queue files.
  • Added merge helpers so command-level session options override persisted defaults where appropriate.
  • Carried per-prompt sessionOptions through queue submit request parsing, transport, and task execution.
  • Ensured queued prompt execution prefers task-level session options over owner startup defaults.
  • Improved model switching behavior:
    • prefer session/set_config_option for model updates (alias-friendly)
    • immediately enforce with session/set_model after config update when available
    • gracefully tolerate adapters that do not support specific session control methods
  • Added/updated integration coverage for prompt model updates on existing sessions.

Files Changed

  • src/acp/client.ts
  • src/acp/session-control-errors.ts
  • src/cli/command-handlers.ts
  • src/cli/queue/ipc-server.ts
  • src/cli/queue/ipc.ts
  • src/cli/queue/messages.ts
  • src/cli/queue/owner-env.ts
  • src/cli/session/contracts.ts
  • src/cli/session/queue-owner-process.ts
  • src/cli/session/queue-owner-runtime.ts
  • src/cli/session/runtime.ts
  • src/runtime/engine/connected-session.ts
  • src/runtime/engine/session-options.ts
  • test/integration.test.ts

Validation

  • corepack pnpm run typecheck
  • corepack pnpm run build:test
  • node --test --test-name-pattern "integration: prompt --model updates existing session model before prompt" dist-test/test/integration.test.js

Manual Repro

  • npx tsx src/cli.ts --model haiku claude sessions ensure --name "acpx-test-model"
  • npx tsx src/cli.ts --model haiku claude prompt -s acpx-test-model "What is your model name"
  • npx tsx src/cli.ts --verbose --model sonnet claude prompt -s acpx-test-model "What is your model name"
  • Confirmed model switches correctly on subsequent prompt turns.

@skywills skywills force-pushed the feat/model-per-prompt-rebase branch from 354599c to a8864a0 Compare April 10, 2026 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant