feat(harness): allow changing harness settings between turns via `prepareCall()` support on `HarnessAgent` (#19828)
## Background `HarnessAgent` settings were fixed when an agent was created, preventing callers from adapting instructions, skills, and tools between completed turns. `ToolLoopAgent` already supported `prepareCall()` and `callOptionsSchema`, allowing to dynamically modify certain settings in between turns. ## Summary This aligns `HarnessAgent` with the `ToolLoopAgent` call-options pattern while keeping settings fixed throughout an active turn and its continuations. - Add `callOptionsSchema` and `prepareCall` support for deriving per-turn instructions, skills, and tools. - Capture active turn settings in continuation state so suspended and resumed turns cannot pick up later configuration. - Update harness adapters to apply settings changes between turns, including ACP skill refreshes and instruction guidance. - Make `writeSkills` safely replace only harness-owned skills and skip unchanged content using a manifest with SHA-256 hashes. - Add documentation, unit coverage, and changing-settings examples for every harness. ## End-to-End Verification Ran the new `changing-settings` examples against all harnesses. ## 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
14d4fc03114529c0d87962bc48093d09387daea9
Parent: 26dee85
Committed by GitHub <noreply@github.com>
on 8/27/2026, 6:55:54 PM