Repository navigation
agent harness v0.9.0
v0.9.0
A release of @judgment-pack/harness as an attested package asset and a Go module tagged by the release workflow.
Install the tarball from this release and pin it by the digest in checksums.txt; install the Go module with go get github.com/Judgment-Pack/judgment-pack-agent/go@v0.9.0 and commit go.sum. The workflow creates go/v0.9.0 on the same commit as the release tag.
What v0.9.0 holds
- Reasoning defaults and discovery (#142; pull requests #145 and #147). An omitted native author preference no longer becomes an explicit
none. When resolution selects the model default, the provider request leaves reasoning absent. Hosts may supply the selected model's advertised reasoning set and default before admission; unsupported explicit chat or project preferences are refused before generation. - Table defaults remain defaults. A table-supplied value, including the compactor's
low, stays when discovery advertises it. Otherwise it resolves to the discovered default, or remains absent when discovery advertises no default. Without discovery, table-supplied child and sub-agentoff/nonevalues retain their prior behavior. This does not silently replace an explicit preference. - Provenance and request boundaries (pull requests #148 and #150). Resolved policy events and checkpoints carry
sourceaslayer,model-default, ordiscovered. TypeScript and Go request builders receive the resolved session boundary, including fallback, delegation and critic paths. Structural source guards and focused mutation checks cover attempts to restore raw defaults. These internal boundary changes add no further wire members. - Delegated child admission (#162; pull request #163). Live and resumed delegated children preserve the selected role's omitted reasoning, actual discovery evidence and provenance through fresh admission. An inconsistent saved binding is refused; raw parent effort cannot restore an omitted value. No wire or checkpoint fields are added.
- Native Node ESM consumption (#143; pull request #152). Node.js 22+ ESM and existing browser bundlers can consume the package. The build resolves emitted relative module and declaration paths, JSON attributes and source maps. All 74 earlier runtime entrypoints remain, with the additive
testing/captureGlobalhelper. Emitted testing helpers no longer require an undeclared Vitest installation; scripted transport capture restores host globals synchronously, including custom callbacks and thrown errors. - Dependency updates (#151; pull request #153). The harness pins MCP SDK 1.32.1. Development dependencies move to esbuild 0.28.2 and Vite 8.2.4; the repository lock also refreshes affected compatible transitive dependencies. See the dependency assessment for applicability and remaining limits.
Compatibility
Chat-over-project-over-table precedence remains unchanged. Without discovery, a 14-case comparison admits every policy/session case admitted by v0.8.1, including run-only child and sub-agent off/none values with or without project authorization, delegated profile roles and declared sub-agent roles. Known author tiers retain their existing ceiling.
Upgrade is supported: v0.9.0 reads v0.8.1 policy members and checkpoints, treating a historical member without source as layer-supplied. Downgrade is asymmetric because v0.9.0 records may carry source: v0.8.1's closed Go decoder rejects those members, while its TypeScript checkpoint reader accepts them. Do not run v0.8.1 readers against v0.9.0 checkpoints.
Dependency and host limits
The SDK version pin travels with the tarball; the repository lockfile does not impose transitive version floors on consuming applications. Update and audit the consuming application's dependency graph. SDK server protections such as maxToolInputElements and expectedResource require explicit configuration when a host uses those server APIs. Updating the harness alone does not enable them or assess a host-supplied transport.
Four remaining high-severity audit entries derive from one unresolved braces advisory. Vulnerable code remains installed. Current explicit deepagents/browser imports use picomatch-based matching, and the harness disables the built-in filesystem middleware; the reviewed operations do not invoke the vulnerable brace walkers. This narrow assessment does not cover host-owned filesystem tools or changed engine imports, middleware or backend configuration. See the dependency assessment before changing those paths.
On 2026-10-23, the maintainer accepted this bounded dependency-risk deferral for v0.9.0. Follow-up #161, assigned to milestone v0.9.1, tracks the upstream remediation separately. This deferral does not remediate the advisory; see the dependency assessment.