SIGN IN SIGN UP

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