Skip to content

v0.32.8

Choose a tag to compare

@github-actions github-actions released this 11 Oct 00:33
c213c62

Check before upgrading

A request that creates or updates a harness with a field the harness does not have now gets a 422 naming the field. Before, the field was dropped and the request answered 200. A harness read with GET and sent back as it came still saves.

Fixes

  • A harness field the server does not have is refused by name. A create or update carrying instructions, model, or a typo such as system_promt answered 200 and saved the harness without the setting, so a script or an agent driving the API had no way to learn why its harness came back empty. It is now refused with the field's name and the nearest one a harness has, for example unknown harness field 'system_promt' (did you mean 'system_prompt'?), and nothing is written. The camelCase names a harness comes back with (systemPrompt, defaultModel and the rest) are accepted, as before. (#445)
  • A default model the base does not run is refused when the harness is saved. A harness on, for example, gemini-2.5-flash saved with 200 and then refused every task given to it. It is now refused at save with 422 model_not_available and the base's models. The rule is the one a task naming the model is held to, so a model an integration of yours serves on that base is accepted. An edit that leaves an already-saved model unchanged still saves. (#445)

The protocol records both refusals as a known compromise of UHP 2026-10-04 (VERSIONING.md); the next protocol version states them in the harness chapter.

Checked

On the release candidate, with a test instance's settings:

  • The API. camelCase names stored; instructions, model and system_promt refused by name; a harness read and sent back saves; gemini-2.5-flash refused at save. On 0.32.7 the three fields were dropped and the model saved.
  • Conformance. UHP conformance at class full: 85 of 95 checks pass and none fail; the 10 skipped are the optional Memories chapter and a share check with nothing to share.
  • The console. New harness and Save Changes on pi, Claude Code and Codex: each harness is created on the console's default model, and the saved instructions read back. Every model the console offers on each of the 20 bases is one the server accepts.
  • Configured harnesses and kits. Harnesses with their own skill, environment variable, disabled tool and MCP server on pi, Claude Code and Codex ran a turn each; the slides starter kit launches.

Gateway tests pass.

docker run -d -p 3000:3000 -v hr-data:/data harnessrouter/harnessrouter:0.32.8

Full Changelog: v0.32.7...v0.32.8