Mark 0.2.108 in the changelog and validate submit_result with arktype - #604
Merged
Conversation
The repo already validates with arktype; ajv was added only because arktype cannot consume a JSON Schema document (it exports toJsonSchema but has no fromJsonSchema). Declaring the contract as an arktype type instead removes the need for a second validator, gives compile-time types for free, and produces better correction text for the worker. No director package had declared an outputSchema yet, so no adopted contract changes.
TheGreatAxios
enabled auto-merge (squash)
August 24, 2026 06:09
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.
Two changes, both prerequisites for cutting 0.2.108.
1. Changelog. Renames
## [Unreleased]to## [0.2.108] - 2026-08-24; the release script requires a clean working tree.2. Drops the
ajvdependency #602 added.arktypeis already this repo's validator. It was not a drop-in for #602's design becausearktype/@ark/schemaonly exposestoJsonSchema— the export direction — with nofromJsonSchema, so it cannot validate against a JSON Schema document. The fix is to declare the contract as an arktype type rather than as JSON Schema data:ReportContract.outputSchema(JSON Schema object) →outputType?: OutputType(arktypeType)RunSubAgentParams.reportSchema→reportTypesubmit-result.tsvalidates viainput.outputType(input.result)andinstanceof ArkErrors, using.summaryfor the correction messageUpsides beyond removing a dependency: compile-time types for declared contracts, and better correction text for the worker —
verdict must be \"fail\" or \"pass\" (was \"maybe\"), one line per violation, versusajv.errorsText. Constraints are also terser:score: "0<=number<=10"replaces separateminimum/maximumkeys.No director package had declared an
outputSchemayet, so this changes no contract anyone had adopted.bun installreports1 package removed.0.2.108 contents, all already merged
spawn_agent/wait_agentssplit out oftask()(CL-6942: split spawn_agent / wait_agents out of task() #600)read_agent_tracefor orchestrator tiers (Add read_agent_trace fleet verb (orchestrator tiers only) #599)submit_resulttyped reporting channel for leaves (Add submit_result typed reporting channel for Tier 3 leaves #602, amended here)