Repository navigation
Harden the harness core for rollout and bump to 0.6.0 - #131
Merged
Merged
Conversation
Drop the lifetime maxDescendants cap. maxConcurrent now counts open descendants across the tree, defaults to 8, and a finished child frees its slot. A spawn at the limit is refused rather than queued, because a child waiting for a slot its parent holds could deadlock. Regenerate the API contract and TypeScript consumers, and update the web config editor, demo fixtures, docs and live tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
session/declared/start now takes declaration instead of workflowTools, and its type becomes SessionDeclarationInput. The document also holds the lifecycle controller, which is not a tool, and the new name matches session.declaration on the read side. The old field is refused with no alias. Regenerate the API contract and TypeScript consumers, and update the workflow tools guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lukebuehler
enabled auto-merge
November 4, 2026 20:57
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.
Hardens the harness core ahead of the first large rollout and bumps the version to 0.6.0. This is a breaking release with no compatibility layer: stored event kinds, durable state and wire values all change.
What changed
The review found the reducer and planners sound, and the failure handling around them not. This PR fixes these areas:
session/restartrecovers an interrupted session on request.maxDescendantsis gone.maxConcurrent(default 8) counts running children in the tree, and a spawn at the limit is refused, not queued.managedsplits intolifecycleControlledanddeclared, includingsession/declared/start, whose request field is nowdeclaration.nativeMCP execution becomesruntime.workflowToolIdreplaces the overloadedtoolIdon workflow tools.Rationale and the risky calls are in
docs/roadmap/p194-harness-core-hardening.md. Start with its "Read these first" section.Before merging or deploying
scripts/release/workflow-compat.sh v0.5.1printsbreaking. Runtime schema moves to revision 14 (migrations 012 to 014), and 014 fails on anymcp_serversrow still holdingnative.session/managed/start,workflowToolsand--execution nativeall fail.ls-benchmarkneeds a follow-up: it reads an old error kind andcompletedAtMs.release/notes/v0.6.0.mdisn't written yet and is needed before tagging.Testing
harness-core-hardening: Clippy clean, 3,081 workspace tests,npm run check, and 40 of 41 live suites on a reset dev database.anthropic_messages_compaction_livefails because Anthropic's classifier refuses fixtures at random. Refused compactions are a known open risk, parked for now and listed in the roadmap doc.maxDescendantschange:store_pg_live(44),subagents_live(13),code_capabilities_live(2) and the affected web tests (142).declarationrename:apiandapi-projectiontests (168),temporal-runtimeunit tests (571) and SDK tests (16).subagents_live.declarationrename has only been compiled and unit tested.🤖 Generated with Claude Code