SIGN IN SIGN UP

feat(harness): allow changing `model` between turns via call options (#19958)

## Background

Follow up to #19828 and #19923: `HarnessAgent` previously fixed its
model when creating a session, so `prepareCall` could not select a
different model for a later turn without losing the existing
conversation.

## Summary

Model selection is now part of the turn settings passed through
`HarnessV1`. Each adapter applies the requested model through its
runtime's native session mechanism while preserving the active harness
session and conversation history.

- Allow `prepareCall` to replace `model` between completed turns.
- Update harness adapters to apply model changes through their
underlying SDKs.
- Replace ACP launch-time model resolution with static `modelMapping`
metadata and per-turn ACP configuration, in alignment with existing ACP
harness DX.
- Document and demonstrate model switching with conversation retention
across harnesses.

## End-to-End Verification

Ran the expanded `./tools/run-harness-agent-examples.sh --example
changing-settings` for all harness adapters.

## Checklist

- [x] All commits are signed (PRs with unsigned commits cannot be
merged)
- [x] Tests have been added / updated (for bug fixes / features)
- [x] Documentation has been added / updated (for bug fixes / features)
- [x] A _patch_ changeset for relevant packages has been added (for bug
fixes / features - run `pnpm changeset` in the project root)
- [x] I have reviewed this pull request (self-review)
F
Felix Arntz committed
8961fdeac49c6bf150eb91f79440d5da204692b8
Parent: 55a9981
Committed by GitHub <noreply@github.com> on 8/28/2026, 8:46:27 PM