Repository navigation
Declare each Harness's support once - #531
Merged
Merged
Conversation
Each internal/harnessconfig/<kind> returns one proto.Declaration beside its Configuration. proto.ValidateSelection is the only check of a declared rule: saved Agents with a Harness, Session creation, input admission, device selection, the final claim and delivery check it in Core, and the Runtime checks it before the Executor factory. A heartbeat only narrows the static declaration; Core closes a connection whose heartbeat widens it. Delete services/core/internal/engine, the execution policy callbacks, the adapter and bridge re-checks, the capabilities that never narrowed (WorkspaceReadPreparation, WorkspaceOutputExport, ProgrammaticToolCallingDisable, WebSearchControl, SubagentControl), ExecutionControls.WebSearch and the hand-written Harness capabilities page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Each Harness now declares what it supports in one place, and one validator checks every selection against that declaration.
internal/harnessconfig/<kind>returns aproto.Declarationnext to itsConfiguration(): the capabilities, message and image limits, MCP origins, reserved labels and patterns, output-schema rules, andConflicts. Each daemon adapter starts from it and can only clear support.proto.ValidateSelectionis the only check of a declared rule.execution_prepare, before any Executor factory.unsupported_or_invalid_configuration, with the configuration path asparam.services/core/internal/engine/, including the generated constructor map and the catalogprofile;ExecutionControls.WebSearchwithWebSearchControl;harness-capabilities.md. The coverage ledger now lists each Harness's differences.harness-onboarding.mddrops step 4 and gains "Declare support".runtime-protocol.mdcovers the heartbeat. zh translations updated.Public behavior changes
invalid_requesttounsupported_or_invalid_configuration, the code whitespace-only text already used: unsupported message images, Claude function-result images that are failed, remote or not inline PNG/JPEG, and MiniMax Code function results. Each is a Harness limitation, not a malformed request.object, as an object. A union root used to be rejected.Checks
TestCoreErrorCatalog.-race -count=50on the changed concurrent tests.make check-harness-catalog;make openapiproduces no diff.pnpm testinclaude-sdk-adapter.make check-names check-docs check-ci.No live Harness qualification ran on this PR. It runs once after R6, because R6 changes the same adapters. A shared blind review covers this PR together with R6 and PR5b.
Net change: -1,498 lines.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.