Changelog: harnessweaver-cli¶
All notable changes to the harnessweaver command and its project templates. The format follows Keep a Changelog, and this package uses Semantic Versioning on its own (RULES V1). Versions before 0.7.1 were never published; their Git tags (harnessweaver-cli@<version>) mark the commit where each one landed.
[Unreleased]¶
0.7.1 - 2026-11-01¶
The first version published to PyPI.
Added¶
- The package ships the Apache-2.0
LICENSEin its wheel and sdist.
0.7.0 - 2026-11-01¶
Added¶
harnessweaver sidecar --max-body-bytes: the largest request body harnessd reads, 10 MiB by default.
0.6.2 - 2026-11-01¶
Security¶
spec diff git:<ref>:<path>read profiles from the working tree, so a pull request that weakened only a profile showed no difference. Agit:side is now loaded from that ref's own tree, the ref can't be read as a git option, and the diff lists profile layers added and removed.
0.6.1 - 2026-10-25¶
Fixed¶
- The
chattemplate's terminal app ends the chat at the end of input (Ctrl-D, or piped input running out) instead of raisingEOFError.
0.6.0 - 2026-10-20¶
Added¶
harnessweaver gateway litellmwrites a LiteLLM Proxy config from the spec (gateway models, aliases, retries, a timeout from the longest deadline, message logging off, theotelcallback, and a tool-permission guardrail that allows only tools whose manifests need no run), andharnessweaver gateway mcpwrites the neutraltool-allow-listfor an MCP gateway: each allowed tool's server, digest and scopes, and every withheld tool with its reason (ADR-0039).harnessweaver dev [--up]writes a local Compose stack into.harness/dev/(LiteLLM, an OpenTelemetry collector, Langfuse and harnessd, digest-pinned and on 127.0.0.1 only) with local secrets generated once into.env, and starts it.
0.5.0 - 2026-10-20¶
Added¶
harnessweaver sidecar [SPEC]runs harnessd.
0.4.0 - 2026-10-20¶
Added¶
harnessweaver add guardadds a guard in shadow mode (mode: log_only, R8), andharnessweaver add toolwrites a tool manifest from a function's signature and Google-style docstring and adds its directory totools.manifests. Both editharness.yamlwith its comments kept (ruamel.yaml, ADR-0016), and a guard whose edit doesn't load is taken back out.harnessweaver tools pinwrites each manifest'sdefinition_digest(S2);--toolpins one.harnessweaver plugin new <namespace>scaffolds a standalone plugin package (entry point,hw.Plugin, a sample<namespace>.banned_wordsguard, and tests whosepytestrun includes the conformance suite), andharnessweaver plugin listshows installed plugins with their versions, contract ranges and compatibility.- Project templates
rag,agent(a Pydantic AI agent with governed tools and a red-team eval set),workflowandchat, each passing its own tests offline (T6).
Changed¶
harnessweaver initrefuses template names starting with_, which are scaffolds for other commands.
0.3.0 - 2026-10-20¶
Added¶
harnessweaver eval run(baselines in.harness/baselines/<task>.<suite>.json,--update-baseline, the shadow-guard report; exit 1 on a missed threshold or a regression, 2 when the suites can't run) andharnessweaver eval report(online samples).harnessweaver policy testchecks a table of calls againstHarness.authorize(policy_tests.yaml; exit 1 on a mismatch, 2 when the tests can't run).harnessweaver replay <run_id>runs a recorded run again against the current code and spec (exit 1 when the status or output changed).
Changed¶
- The extraction template's offline overlay answers every golden case, so
harnessweaver eval run -e offlinepasses on it, and it tests its golden set.
0.2.0 - 2026-10-19¶
Added¶
harnessweaver doctorwarns about tool manifests without a pinned digest (printing the digest to pin) and fails ones that changed since they were pinned.
0.1.0 - 2026-10-18¶
Added¶
- The
harnessweavercommand withinit(built-in and plugin templates),spec validate,spec explain,spec diff(either side can begit:<ref>:<path>),doctor(level and next steps, reachable hooks, duplicate retry owners, unpinned profiles, shadow guards, content capture),hooks,test(offline, test mode on) andcontracts export. - The
extractionproject template, whose output passes its own tests (T6).