Changelog: harnessweaver-sidecar¶
All notable changes to harnessd. The format follows Keep a Changelog, and this package uses Semantic Versioning on its own (RULES V1). Versions before 0.2.1 were never published; their Git tags (harnessweaver-sidecar@<version>) mark the commit where each one landed.
[Unreleased]¶
0.2.1 - 2026-11-01¶
The first version published to PyPI.
Added¶
- The package ships the Apache-2.0
LICENSEin its wheel and sdist.
0.2.0 - 2026-11-01¶
Security¶
- harnessd read and JSON-parsed a request body of any size before it checked the bearer token, so a peer without the token could grow its memory (RULES S6). The token is now checked in ASGI middleware before any of the body is read. Everything except
GET /v1/healthanswers 401 without it, which now includes unknown paths and FastAPI's/docs,/redocand/openapi.json. Bodies are capped too:--max-body-bytesonharnessd(max_body_bytesoncreate_app), 10 MiB by default, answers 413 with anErrorInfo, counting the bytes that arrive so chunked uploads count. The OpenAPI document gains the 413.
0.1.0 - 2026-10-20¶
Added¶
harnessd(ADR-0038) serves one effective spec over/v1:health,spec,hooks,guards/{stage}(input,context,output),guards/providers/{name}:check,decisions/{router},policy/evaluate,tools/{name}/authorize,tools/{name}/sanitize,validate,runs,runs/{run_id},runs/{run_id}/approvals/{approval_id}andevals/run. Checks run as one-step sessions answered with theirRunResult. Every route excepthealthneeds the bearer token; harnessd refuses to start without one and binds 127.0.0.1 (S6). Errors areErrorInfobodies, and invalid requests never echo their values (R9).contracts/openapi/harnessd.openapi.json, generated bymake schemasand drift-tested, andcontracts/proto/harnessweaver/v1/harnessd.proto, which mirrors its routes for gRPC later.