Skip to content

Pass official execution options through to each Harness - #761

Merged
SaladDay merged 4 commits into
mainfrom
pass-official-execution-options-through
Oct 18, 2026
Merged

SaladDay merged 4 commits into
mainfrom
pass-official-execution-options-through

Conversation

@SaladDay

@SaladDay SaladDay commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Core passes the official execution options straight to each Harness's native settings and validates them against the Harness declaration. Core sends a value only when the Agent sets it or the pinned API defines a default; an omitted web_search or programmatic_tool_calling keeps the Harness's native behavior.

  • Codex: web_search disabled/cached/live with context_size, allowed_domains and location; reasoning.effort and reasoning.summary; service_tier default/flex/priority/fast (fast is Codex's native alias of priority); programmatic_tool_calling enabled: true turns on native code_mode, and is rejected together with multi_agent because Subagent observation turns code_mode off. An omitted programmatic tool calling setting stays native (off), which differs from the official default and is recorded in the compatibility notes.
  • Claude Code: reasoning.effort maps to the SDK effort. Search stays disabled or absent for now.
  • MiniMax Code: absent or disabled controls only.
  • Each declaration now carries its accepted value sets in Declaration.Execution; a value outside them is rejected at Session admission with a message naming the field. Settings of a disabled search configure nothing and stay admitted on every Harness, so saved disabled tools keep working. A declaration must include text verbosity medium, the official default Core always sends.
  • The Core–Runtime protocol version moves to 0.17.0.
  • reasoning.effort is the only home for effort: the Codex model_reasoning_effort and Claude effort harness_config keys are removed, and migration 000102 moves stored Agent and Session values into reasoning.effort before dropping the keys.
  • Deleted: the Codex verbosity catalog probe (Codex ignores unsupported verbosity itself), DISABLE_TELEMETRY, the per-control capability bits replaced by execution_controls, and the old Core gates.
  • Each Harness declaration is now one file: harnessconfig/admission.go folds into harness.go, and Claude's restrictions and native parameters fold into claudesdk/declaration.go.

Operator notes

  • Deployment default model configurations that set model_reasoning_effort (Codex) or effort (Claude) in harness_config lose that key on upgrade; set reasoning effort on the Agent instead.

Checks

  • go build ./..., go vet, focused go test on harnessconfig, daemon agent and CLI, Core execution and API.
  • make check-harness-catalog, make openapi (no tracked changes), make check-names, website translation tests.
  • Local PostgreSQL: the official-client suite (official_client.py and its Go tests) and the three services/core/tests/integration shards.
  • Not run: a live Codex run (TestNativeToolPolicyPublicExecution needs real model options).

Core carries the official web search, programmatic tool calling, reasoning, service tier, verbosity and output format values to the Runtime. Each Harness declaration lists the values it supports and Core admission validates against them. Reasoning effort now has one home, reasoning.effort, and migration 000102 moves the Harness-native keys there.
@blacksmith-sh

This comment has been minimized.

Codex now admits live and cached search, programmatic tool calling and
every official reasoning and service-tier value, so the tests that expected
the old gates assert admission instead. The Codex declaration accepts the
native fast tier and rejects code_mode with Subagent observation. Settings
of disabled search configure nothing and stay admitted on every Harness, a
declaration must include medium text verbosity, and the protocol version
moves to 0.17.0.
@SaladDay
SaladDay merged commit 867eb97 into main Oct 18, 2026
25 checks passed
@SaladDay
SaladDay deleted the pass-official-execution-options-through branch October 18, 2026 10:05
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