# Changelog

This changelog is generated automatically from [GitHub Releases](https://github.com/madeinoz67/benchweave-sdk/releases).


# benchweave-sdk 0.12.0

*2026-10-14* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.12.0)


## \[0.12.0\] - 2026-10-14


### Bug Fixes

- The release stamps' OTDP token moves to 0.2.3
- Complete the .bin removal -- vendored copy, lock row, and the watch arm


### Features

- Sync otdp 0.2.3 + registry 0.1.3 ([\#458](https://github.com/madeinoz67/benchweave-sdk/issues/458))


### Miscellaneous

- Stamp and register v0.12.0


### Testing

- RED -- the 0.2.3/0.1.3 sync arms ([\#458](https://github.com/madeinoz67/benchweave-sdk/issues/458))


### Contributors

- Stephen Eaton (5 commits)


# benchweave-sdk 0.11.1

*2026-10-13* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.11.1)


## \[0.11.1\] - 2026-10-13


### Features

- The twin gains merge_pinned_documents + profile_shadow ([\#446](https://github.com/madeinoz67/benchweave-sdk/issues/446) slice 2)


### Miscellaneous

- Stage the v0.11.1 cut
- Apply the v0.11.1 phase-2 registration


### Testing

- RED -- twin profile-shadow arms ([\#446](https://github.com/madeinoz67/benchweave-sdk/issues/446) slice 2)


### Contributors

- Stephen Eaton (4 commits)


# benchweave-sdk 0.11.0

*2026-10-13* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.11.0)


## \[0.11.0\] - 2026-10-13


### Bug Fixes

- Fold the four-lane refute slate -- hint visibility, override honesty, claim accuracy (issue [\#449](https://github.com/madeinoz67/benchweave-sdk/issues/449))


### Documentation

- Document the local override, theme parity, and waveform-first page


### Features

- Preview host fidelity -- lanes through ui-html, theme script, digest-pinned override (issue [\#449](https://github.com/madeinoz67/benchweave-sdk/issues/449) slice 1)
- Waveform-first capture page -- lanes lead, tiles secondary (issue [\#449](https://github.com/madeinoz67/benchweave-sdk/issues/449) fold F8)
- Commissioned-preset firmware gate -- vendored plugin-ui 0.3.1, authoring arm, SDK 0.11.0


### Miscellaneous

- Stamp and register v0.11.0


### Testing

- Pin the lanes hydrator's removal; retire the synthetic-column pin (issue [\#449](https://github.com/madeinoz67/benchweave-sdk/issues/449) slice 1 follow-up)


### Contributors

- Stephen Eaton (7 commits)


# benchweave-sdk 0.10.0

*2026-10-12* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.10.0)


## \[0.10.0\] - 2026-10-12


### Bug Fixes

- Collapse the duplicated header the v0.9.0 regen carried
- Fold wave 1 -- non-finite guards, loader order, sweep isolation, interleaved log (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285) I3c)
- Fold wave 2 -- stdio interrupt close-down, keep-on-unreadable, claim-honesty rides (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285) I3c)
- [\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc1 fold wave -- twin parse hardening (R1-R4, R9-R11)
- Fold wave 1 -- refute lane A's eight rows (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a)
- Fold wave 2 -- lane B's rows (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a)
- Refute fold -- rows 1, 2, 3a-disclosure (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285))
- [\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc3 refute fold -- era-bound stop requests, the SSE wedge, the twin protocol rows (S1-S7)
- Windows-mypy platform sites -- getattr last-error read, sys.platform-narrowed WNOHANG (CI-corroborated)
- Repair the windows-typing commit's indentation (gate-caught, follow-up)
- Windows-honest start path -- real detachment, typed token refusals, bounded ACL consults ([\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc3 fix wave 2)
- The refute fold -- 5 MEDIUMs + LOW/NIT rows folded RED-first (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b.1)
- The refute fold -- 4 MEDIUMs (one convergence) + 5 L/N rows, RED-first (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b.2)
- Wave 2 -- the hostile-id escaping arm goes Windows-portable (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b.2)
- [\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc4 fold the critic/gw1/l2 wave into the doctor+logs twins
- CRLF-honest tail rows (windows rollup catch -- S7/S8 tails carried
- The fold wave -- 12 ruled rows, one batch (per-row RED in-message)
- Fold wave 2 -- the wedge and the truthful-text rows (W1-W7)


### Documentation

- I3c retention, storage guard, shutdown -- design record (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285))
- Serve -env-file paragraph ([\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422))
- Issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4 analysis-and-reporting design record (commit 1)
- The I4a processed-value labelling row (SRF-4, ID provisional)
- The Q13 ruled-defaults design record (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285))
- [\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc3 -- the SDK lifecycle verbs paragraph (start/stop/restart/status, the tokens file, the wedge ladder, no -protective)
- The issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b analysis-extensions design record (commit 1, I3/I4a precedent)
- SRF-4's anchor set extends to the edge/assert blocks; the AR-5 sidecar pin carries the effective params (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b.1)
- Six supervision verbs, tokens-file guard mechanism, doctor disambiguation
- Add Analyse view and analysis report sections to the user guide ([\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286))
- Issue [\#440](https://github.com/madeinoz67/benchweave-sdk/issues/440) Q5 stdio shim design record
- The mcp stdio entry documented as the shim-with-fallback shape
- The STE register pass over the shim's user-facing text


### Features

- Rules engine, recorder, sweep and the prune CLI (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285) I3c)
- Capture_delete records its removal -- the ruling-9 recorder reuse (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285) I3c)
- The SW-58 reserve guard -- start refusal and mid-run reserve stop (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285) I3c)
- NFR-O1 close-down, in-host retention schedule, quota events, stdio settle (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285) I3c)
- The captures library page with next-effect projection (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285) I3c, SW-49)
- [\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc1 serve -env-file (the gateway twin's one standard)
- The analysis dataset loader and window statistics (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a, AR-1)
- The self-contained HTML report renderer (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a, AR-4/AR-6)
- Report_export -- catalogue row 22, the seam handler, MCP parity, the sweep's reserved reports/ dir (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a, AR-5)
- The Analyse view, the report download, and the report CSP (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a, §1.4)
- The ruled Q13 defaults as a packaged document (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285))
- Serve and prune arm the ruled defaults (issue [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285))
- [\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc3 -- the SDK lifecycle twins (start/stop/restart/status, wedge ladder, token file)
- AR-2 edge timing + AR-7 min/max assertions (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b.1)
- AR-8 the A-Z markers overlay, row 23 capture_analysis, click-to-place (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b.1)
- AR-9 the report context/zoom pair, marker glyphs, edge/assert blocks, the streaming reducer (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4b.1)
- AR-3(amended)/AR-10/AR-11 the power family -- pairing, gap integrals, four modes (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286))
- The report's power section -- SRF-4 captions, coverage rows, honest absence (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286))
- Power params through report_export + the Analyse view (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286))
- [\#422](https://github.com/madeinoz67/benchweave-sdk/issues/422) inc4 the doctor + logs twins
- Library.read_lock -- the lock's state, read without acquiring
- The stdio MCP shim module -- discovery, fork guard, proxy, markers
- The mcp command reshaped -- proxy, disclosed fallback, typed refusals


### Miscellaneous

- Bump fastmcp from 4.0.3 to 4.0.11
- Regenerate uv.lock for fastmcp 4.0.11 (dependabot lock-companion)
- V0.10.0 -- the bump, the matrix walk, the guide stamp fix
- Register v0.10.0 (phase 2 -- the tag commit applies the staged patch)


### Testing

- Bump the twin census pin to 39 (retention.py)
- Bump the closed-set and twin-census pins for row 22 and the two new modules (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a)
- Wave 3 -- the double-quote escaping arm goes Windows-portable (issue [\#286](https://github.com/madeinoz67/benchweave-sdk/issues/286) I4a, PR [\#133](https://github.com/madeinoz67/benchweave-sdk/issues/133))
- Scope the windows start leg to [\#432](https://github.com/madeinoz67/benchweave-sdk/issues/432) (empty-log no-readiness, three rollups) -- clear logic stays unit-pinned cross-platform
- Tamper arms hit a tmp copy, never the committed vendored tree
- Bridge the pidfile-to-listen gap in the S2 events arm
- Pin the serial binding-pending arm's cwd to tmp
- Suite-wide tree guard across four write vectors
- Ratchet the twin census to 45; carry the fallback interface in the settle double
- The CI wave -- three windows-lane failures, each root-caused
- The windows settle allowance moves 1.5 -\> 4.0, attributed


### Contributors

- Stephen Eaton (67 commits)
- Dependabot\[bot\] (1 commit)
- Madeinoz67 (1 commit)


# benchweave-sdk 0.9.0

*2026-10-10* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.9.0)


## \[0.9.0\] - 2026-10-07


### Bug Fixes

- Default-dialect coercion restored (fold, controller ruling 2)
- One shared receive-ceiling resolution (fold, ruling 3)
- Refuse-before-mutation -- the backend's validation ladder
- Close-path receive parity with the serial link
- Assert_complete grows teeth on the byte-stream host
- Close-path overlong parity + the quadratic cycle-plan scan
- The lock-anchor pattern matches the compact JSON the lock ships
- The regen lands in tests/fixtures/scaffold_expected, and a failed cut leaves no .release residue
- Refresh the project env before the fixture regen
- The summary prints the previous tag once (prev_tag already carries the v)
- Wave 3 -- patch content-verify, full pattern census, BaseException rollback
- The phase-2 patched surfaces check out LF on every OS
- The phase-2 patch travels by file path, never a text pipe
- The [\#407](https://github.com/madeinoz67/benchweave-sdk/issues/407) fold wave -- F1-F3 + LOW1-4, all cells green
- Wave-3 mechanism -- closed-session law + from_baud under the lock
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold wave 1 -- the discriminator counts the live enumeration
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold wave 2 -- live-presence pick check, guarded connect spans, README wording
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold wave 3 -- the re-occupied path refuses on serial evidence
- Complete the [\#126](https://github.com/madeinoz67/benchweave-sdk/issues/126) union -- retire the dangling serial_device_path assignment
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold -- the store's writes re-read and merge under a per-write lock
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold -- the connected-era scan reconciles against the mint-time serial
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold -- bind/unbind demand the per-launch operator action token
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold -- the LOW/NIT rows (drift-2/3/4, trust-5)
- The live wire contract + the lane's first finding, folded
- Fold the refute wave -- stale evidence, crash paths, the structural gate, key redaction


### Documentation

- The Mock transports section (offline rehearsal)
- The cycle rule, replay volume and the timing bound
- Land the guide's cycle rule and budget bound; STE register pass (gateway [\#394](https://github.com/madeinoz67/benchweave-sdk/issues/394))
- The test-surface census (S4) + the walk points at the tool
- The negotiated-serial-link section (issue [\#407](https://github.com/madeinoz67/benchweave-sdk/issues/407))
- Render LinkControlServices (issue [\#407](https://github.com/madeinoz67/benchweave-sdk/issues/407))
- The device-addition surface -- instance-keyed connection bindings ([\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385))
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) ladder 6 -- the serial serve posture, binding store and pick flow
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) fold -- the review addendum and the corrected operator docs
- Claim-conformance shadow lane -- pre-committed design record
- Hygiene and the README row
- The v0.9.0 self-registration (selector + versions list)


### Features

- The byte-stream mock transport for binary §8.1 plugins
- The -with-ui starter moves to the send_receive dialect
- The minimal-period cycle model + release-once (fold)
- The release-cut transaction -- the bump carries its blast radius
- Reconfigure_link -- the negotiated serial transport capability (issue [\#407](https://github.com/madeinoz67/benchweave-sdk/issues/407))
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) ladder 1 -- the binding store, schema and resolver
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) ladder 2 -- discovery rows carry their endpoints
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) ladder 3 -- the endpoint resolver owns the path; the seam binds
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) ladder 4 -- the bind/unbind routes and the pick-flow UI
- [\#385](https://github.com/madeinoz67/benchweave-sdk/issues/385) ladder 5 -- serial serve without -device starts binding-pending
- Manifest, dead band, and the injectable judge client
- The probes -- ten cells emitting neutral trace artifacts
- The runner -- validate, probe, judge, classify, report


### Miscellaneous

- Re-trigger PR checks (opened/reopened events were dropped by Actions)
- The v0.9.0 cut's blast radius (bump, lock, README, anchor, fixtures, matrix)


### Performance

- O(1) unit-guard closure -- the all-response-only residual


### Testing

- RED -- issue [\#394](https://github.com/madeinoz67/benchweave-sdk/issues/394) binary fixture + seam acceptance cells
- The G cell's deafness control (gateway [\#394](https://github.com/madeinoz67/benchweave-sdk/issues/394))
- RED -- the fold's cycle-model and release-once probes
- The G cell's equality + drop e5's wall-clock assert
- The tamper arm verifies a copy -- package tree never mutated ([\#121](https://github.com/madeinoz67/benchweave-sdk/issues/121))
- Windows IO-class allowance on the grace-arm settle bound ([\#123](https://github.com/madeinoz67/benchweave-sdk/issues/123))
- The census arm pins PATTERNS, not just (path, kind) pairs
- Governor fold wave -- corpus-path loader refusal, matrix-vs-registry census, CI-map row, count + extras nits
- The [\#407](https://github.com/madeinoz67/benchweave-sdk/issues/407) link-reconfigure cells, RED first
- The [\#407](https://github.com/madeinoz67/benchweave-sdk/issues/407) refute-wave cells, RED first (F1-F3 + LOW1-4)
- The post-close recheck gets its own pin (wave-2 F2, arm 2)
- Wave-3 cells -- R2 sensitivity, R1/R3/R4 RED (pre-fix)
- Align the wavegen fixture's declared identity with its unit


### Merge

- Origin/main into feat/issue394-mock-bytestream (gateway [\#394](https://github.com/madeinoz67/benchweave-sdk/issues/394))


### Contributors

- Stephen Eaton (67 commits)


# benchweave-sdk 0.8.0

*2026-10-06* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.8.0)


## \[0.8.0\] - 2026-10-05


### Bug Fixes

- Pass -device into StandaloneSeam so scans skip the connected port (exact-name match)
- Serve survives a browserless host (gateway [\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308) fold F1, PR [\#400](https://github.com/madeinoz67/benchweave-sdk/issues/400)) ([\#116](https://github.com/madeinoz67/benchweave-sdk/issues/116))
- Derive the citation gate from site_url and refuse a vacuous match set (gateway [\#401](https://github.com/madeinoz67/benchweave-sdk/issues/401))


### Documentation

- The v0.7.1 pin-up -- both buckets registered, selector complete, repo-wide parity restored
- Repoint published links to the project domains (gateway [\#401](https://github.com/madeinoz67/benchweave-sdk/issues/401))
- The v0.8.0 self-registration (selector + versions list)


### Features

- I3b -- capture lifecycle, the SQLite library, SSE capture events ([\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285)) ([\#110](https://github.com/madeinoz67/benchweave-sdk/issues/110))
- Size the serial reader ring for the 3 Mbps class (issue [\#393](https://github.com/madeinoz67/benchweave-sdk/issues/393))


### Miscellaneous

- The v0.8.0 walk -- bump, lock anchor, version surfaces, matrix record
- Regenerate the scaffold fixtures at 0.8.0


### Testing

- The SW-61 conformance cell set over both fixtures (issue [\#393](https://github.com/madeinoz67/benchweave-sdk/issues/393))
- The fold-wave S items -- deterministic gating, crlf pin, boundary arms, arithmetic (issue [\#393](https://github.com/madeinoz67/benchweave-sdk/issues/393))


### Ci

- Fresh full run -- the windows lane's rerun attempts kept canceling each other mid-flight
- Parallelise the suite with xdist -- the 15m ceiling stays, the suite gets fast ([\#117](https://github.com/madeinoz67/benchweave-sdk/issues/117))


### Merge

- Main post-v0.7.1 (docs pin-up [\#114](https://github.com/madeinoz67/benchweave-sdk/issues/114) + anchored lock [\#115](https://github.com/madeinoz67/benchweave-sdk/issues/115)) into the serial wiring fix


### Contributors

- Stephen Eaton (15 commits)


# benchweave-sdk 0.7.1

*2026-10-05* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.7.1)


## \[0.7.1\] - 2026-10-05


### Contributors


# benchweave-sdk 0.7.0

*2026-10-04* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.7.0)


## \[0.7.0\] - 2026-10-04


### Bug Fixes

- Resolve the installed benchweave-sdk launch path on Windows (PR [\#103](https://github.com/madeinoz67/benchweave-sdk/issues/103))
- Make the launch-resolution stub platform-aware (Scripts/.exe on Windows)
- Compare the launch-path pin case-insensitively on Windows
- Renderer_version reports the SDK's own version ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308)) \[**BREAKING**\]
- The publish smoke's install rides \[scaffold\] -- a latent red for the 0.7.0 release ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308) follow-up)
- The server-smoke banners are the tree's pinned wordings ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))
- The v0.7.0 bucket registers without git_ref -- the ref cannot precede its tag
- Docs-version registration moves to the post-tag pin-up -- pre-tag is structurally impossible


### Documentation

- De-hardcode the user-guide wheel filename (glob, no version literal) ([\#102](https://github.com/madeinoz67/benchweave-sdk/issues/102))
- WS4 first-timer documentation and docs-as-tests design record (issue [\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) increment 5)
- Four first-timer pages, usage-first navigation (issue [\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) WS4)
- Re-home the preview surface -- invariants, drift rows, CLAUDE.md, README, user guide ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))
- STE register pass on the preview-ui surfaces ([\#107](https://github.com/madeinoz67/benchweave-sdk/issues/107), gateway [\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))


### Features

- I2a -- presentation render, plot wrapper and the parity suite ([\#284](https://github.com/madeinoz67/benchweave-sdk/issues/284)) ([\#97](https://github.com/madeinoz67/benchweave-sdk/issues/97))
- Copier-backed new with updatable scaffolds, upgrade + adopt ([\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) WS2) ([\#93](https://github.com/madeinoz67/benchweave-sdk/issues/93))
- Claude assets -- AGENTS.md carrier + five managed skills ([\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) WS3) ([\#99](https://github.com/madeinoz67/benchweave-sdk/issues/99))
- I2b -- staged/apply and presets over the SW-10 catalogue ([\#284](https://github.com/madeinoz67/benchweave-sdk/issues/284)) ([\#98](https://github.com/madeinoz67/benchweave-sdk/issues/98))
- I2c -- the authoring loop, events and plugin_test ([\#284](https://github.com/madeinoz67/benchweave-sdk/issues/284)) ([\#101](https://github.com/madeinoz67/benchweave-sdk/issues/101))
- I3a -- the serial backend, discovery and the mock/serial parity ([\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285)) ([\#106](https://github.com/madeinoz67/benchweave-sdk/issues/106))
- Preview-ui becomes the standalone-host shim (PRD 12 R-9, gateway [\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308)) \[**BREAKING**\]
- The scaffold's preview citations move to the shim surface ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308)) \[**BREAKING**\]


### Miscellaneous

- Advance benchweave-ui-html pin to 0.2.0 (D-B5, [\#285](https://github.com/madeinoz67/benchweave-sdk/issues/285)) ([\#104](https://github.com/madeinoz67/benchweave-sdk/issues/104))
- Advance benchweave-ui-html pin to 0.2.1 ([\#105](https://github.com/madeinoz67/benchweave-sdk/issues/105))


### Refactoring

- Own the listener rules in the guard module ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))
- Delete the frozen renderer bundle and the TUI; textual leaves the base install ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308)) \[**BREAKING**\]


### Testing

- Pin-shape guard on the \[server\] extra's ui-html pin (issue [\#294](https://github.com/madeinoz67/benchweave-sdk/issues/294) slice 1, design §2.1)
- Docs-as-tests over the page's sh blocks (issue [\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) WS4)
- Self-diagnosing harness for the Windows lane (issue [\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) WS4, PR [\#103](https://github.com/madeinoz67/benchweave-sdk/issues/103))
- Move the SRF-2 projection arms into the SDK suite; the agreement test gains both directions (R-10, gateway [\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))
- The twin census pin moves to 37 with the [\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308) deletions
- Carry the four gateway-only preview pins SDK-side (review fold adv2 F1, gateway [\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))
- Fold review rows R1-R5 -- the parity pin gains type shape, the .claude references and the PR-time mirror follow the shim ([\#107](https://github.com/madeinoz67/benchweave-sdk/issues/107), gateway [\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))


### Ci

- Ui-html pin-freshness lane -- the missing freshness signal (issue [\#294](https://github.com/madeinoz67/benchweave-sdk/issues/294) slice 1, design §2.2)
- The installed-wheel smoke proves the preview-ui posture ([\#308](https://github.com/madeinoz67/benchweave-sdk/issues/308))


### Fold

- Two-lane adversarial review, all rows RED-first (issue [\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) WS4)


### Contributors

- Stephen Eaton (35 commits)


# benchweave-sdk 0.6.0 -- the server host ships in the SDK distribution

*2026-10-03* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.6.0)


## \[0.6.0\] - 2026-10-03


### Bug Fixes

- Regenerate standalone/uv.lock after the 0.5.0 bump ([\#225](https://github.com/madeinoz67/benchweave-sdk/issues/225) follow-up)
- The [\#90](https://github.com/madeinoz67/benchweave-sdk/issues/90)/#92 carry-forward rows -- R1/R4/R5 (gateway [\#309](https://github.com/madeinoz67/benchweave-sdk/issues/309)) ([\#95](https://github.com/madeinoz67/benchweave-sdk/issues/95))


### Documentation

- Document-writer agent + the ASD-STE100 documentation register ([\#354](https://github.com/madeinoz67/benchweave-sdk/issues/354))
- Add 'which checkout' section and 'using the SDK' pointer (refs [\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347)) ([\#84](https://github.com/madeinoz67/benchweave-sdk/issues/84))
- Register follow-up -- developer-facing guides, gortex grant, dictionary-check wording ([\#352](https://github.com/madeinoz67/benchweave-sdk/issues/352) rows L1/L3/L4)
- ASD-STE100 rewrite of user-facing documentation ([\#352](https://github.com/madeinoz67/benchweave-sdk/issues/352))
- Bridge capabilities to a structured source, stale-false streaming corrected, versions traced ([\#359](https://github.com/madeinoz67/benchweave-sdk/issues/359))


### Features

- Registry management family -- queue/status/publish-status/yank/advise/unlist/withdraw/transfer, v0.5.0 ([\#225](https://github.com/madeinoz67/benchweave-sdk/issues/225))
- Doctor -- offline scaffold-version vs installed-SDK report ([\#347](https://github.com/madeinoz67/benchweave-sdk/issues/347) WS1b) ([\#87](https://github.com/madeinoz67/benchweave-sdk/issues/87))
- Fold the standalone distribution into benchweave-sdk\[server\] ([\#309](https://github.com/madeinoz67/benchweave-sdk/issues/309)) ([\#90](https://github.com/madeinoz67/benchweave-sdk/issues/90)) \[**BREAKING**\]
- B -- the nine scenarios, preview semantics and the ui-html pin ([\#309](https://github.com/madeinoz67/benchweave-sdk/issues/309)) ([\#92](https://github.com/madeinoz67/benchweave-sdk/issues/92))


### Miscellaneous

- Re-anchor compatibility.sdk to 0.6.0 (gateway [\#359](https://github.com/madeinoz67/benchweave-sdk/issues/359) row 5)
- Ignore .wt/ parallel-lane worktrees (governor F4, gateway [\#359](https://github.com/madeinoz67/benchweave-sdk/issues/359))
- V0.6.0 docs sweep + matrix walk ([\#96](https://github.com/madeinoz67/benchweave-sdk/issues/96))
- Register v0.6.0 docs bucket and demote v0.4.1


### Contributors

- Stephen Eaton (15 commits)


# benchweave-sdk 0.4.1

*2026-10-02* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.4.1)


## \[0.4.1\] - 2026-10-02


### Bug Fixes

- Fold wave -- twin env filter, standard-set pin, value pins
- The slice-7 twin scratch fixtures carry the standards lock
- Fold wave -- marker truth, region dedupe, honesty layer, register pin
- Derive the preview stamps from the vendored lock (PR [\#66](https://github.com/madeinoz67/benchweave-sdk/issues/66) red)
- Fold wave -- reconnect liveness, startup asset verify, descriptor-layer pin
- Scope root pytest to tests/ -- exclude the standalone/ subtree
- Re-key the lock_rows cache on the lock file's (mtime_ns, size)
- Refuse non-canonical lock row versions typed (M3)
- The canonical version grammar is ASCII (adv2-F1)
- A present-but-non-dict mirror row refuses the check (adv2-F2)
- Typed refusal for an unreadable mirror standards container (adv2-F3)
- \_tuple_or_none requires exactly three segments (mech-F5)
- Discover the source package dir by glob
- The scoped_transport permission reaches the tier gate (CR-49 fold M3, gateway issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223))
- Namespace lookalikes ride the artefact set (CR-39 fold F5, gateway issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223))
- Structural TSTInfo parse + imprint binding + staged signatures (folds H1/M1/M2, gateway issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223))
- Cryptography in the dev group so mypy resolves the optional signing imports
- Derive the base branch from the repo -- never hardcode main (CI fix, gateway issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223))
- The submission commit carries its own git identity (CI fix 2, gateway issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223))


### Documentation

- Per-pin validation and the served set; drop the self-version claim (DOCS-c)


### Features

- Derive the five version literals from the lock; twin zero-literal counter
- Constant-folding assembly detection in the twin counter
- Marker-based environment detection + the shared counter region
- Render digital_lanes capture views ([\#244](https://github.com/madeinoz67/benchweave-sdk/issues/244) S2)
- I1 skeleton -- one seam over the scripted mock transport
- Cross-check lock row markers against the policy mirror (M5)
- One canonical derive_move_to with the downgrade labeled (M4)
- Package/submit commands + the six entry gates (issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223) slice 1)
- Publisher signs at package time; RFC 3161 timestamp (issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223))


### Miscellaneous

- Placeholder
- Remove release-notes placeholder (created in error, pre-release noise)
- Rebuild committed renderer with the safety behaviours ([\#242](https://github.com/madeinoz67/benchweave-sdk/issues/242) slice 2)
- Rebuild committed renderer with the review-fold fixes ([\#242](https://github.com/madeinoz67/benchweave-sdk/issues/242) slice 2)
- Rebuild committed renderer with series tokens + assignment ([\#242](https://github.com/madeinoz67/benchweave-sdk/issues/242) slice 3)
- Rebuild committed renderer with the folded proofs + palette ([\#242](https://github.com/madeinoz67/benchweave-sdk/issues/242) slice 3 fold)
- Rebuild committed renderer with limiting state, triad, staleness ([\#243](https://github.com/madeinoz67/benchweave-sdk/issues/243) slice 1)
- Rebuild committed renderer with the S1-fold fixes ([\#243](https://github.com/madeinoz67/benchweave-sdk/issues/243) slice 1)
- Rebuild committed renderer with axes, reference lines, provenance ([\#243](https://github.com/madeinoz67/benchweave-sdk/issues/243) slice 2)
- Rebuild committed renderer with the S2-fold fixes ([\#243](https://github.com/madeinoz67/benchweave-sdk/issues/243) slice 2)
- Rebuild with the addendum fixes ([\#243](https://github.com/madeinoz67/benchweave-sdk/issues/243) slice 2)
- Bump version to 0.4.0 for the digital_lanes served-set change
- Vendor the digital_lanes served set with the fold-wave bytes (plugin-ui 0.3.0 + plugin-ui-preview 0.2.0)
- Rebuild the bundle with the fold-wave renderer ([\#244](https://github.com/madeinoz67/benchweave-sdk/issues/244) S2 folds)
- Rebuild the bundle with the decoder-lane renderer ([\#244](https://github.com/madeinoz67/benchweave-sdk/issues/244) S3)
- Rebuild the bundle with the S3 adversary-fold renderer ([\#244](https://github.com/madeinoz67/benchweave-sdk/issues/244))
- Rebuild the bundle with the final-fold renderer ([\#244](https://github.com/madeinoz67/benchweave-sdk/issues/244) S3)
- Bundle refresh from the current ui/ (the [\#269](https://github.com/madeinoz67/benchweave-sdk/issues/269)-era renderer)
- Bundle refresh from the S2 renderer ui/ (gateway [\#244](https://github.com/madeinoz67/benchweave-sdk/issues/244) S2)
- Bundle refresh from the S3 decoder ui/ (gateway [\#244](https://github.com/madeinoz67/benchweave-sdk/issues/244) S3)
- Guard the subtree against artifact sweeps
- Bump version to 0.4.1 for the registry 0.1.2 active-row motion
- CodeQL + dependabot baseline (gateway issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223) slice 1, CR-59)
- Vendor the registry 0.1.2 served set (gateway issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223) slice 1)
- Regenerate uv.lock for the dev-group cryptography entry
- Bump actions/setup-python from 6.3.0 to 7.0.0 ([\#76](https://github.com/madeinoz67/benchweave-sdk/issues/76))
- Bump actions/configure-pages from 5.0.0 to 6.0.0 ([\#78](https://github.com/madeinoz67/benchweave-sdk/issues/78))
- Bump actions/download-artifact from 4.3.0 to 8.0.1 ([\#79](https://github.com/madeinoz67/benchweave-sdk/issues/79))
- Bump actions/upload-artifact from 4.6.2 to 7.0.1 ([\#80](https://github.com/madeinoz67/benchweave-sdk/issues/80))
- Update rich requirement from \<15,\>=14 to \>=14,\<16 ([\#77](https://github.com/madeinoz67/benchweave-sdk/issues/77))
- Regenerate uv.lock after the rich bump ([\#77](https://github.com/madeinoz67/benchweave-sdk/issues/77)) -- fix broken main
- Regenerate standalone uv.lock after the rich bump ([\#77](https://github.com/madeinoz67/benchweave-sdk/issues/77)) -- fix broken main
- Bump astral-sh/setup-uv from 9.0.0 to 10.2.0 ([\#81](https://github.com/madeinoz67/benchweave-sdk/issues/81))
- Bump orhun/git-cliff-action from 4.9.0 to 4.9.1 ([\#82](https://github.com/madeinoz67/benchweave-sdk/issues/82))
- V0.4.1 docs sweep + matrix walk


### Style

- Fold the E501 out of the fold's test helper


### Testing

- Assert the twin register cites the D2 trigger (G3a)
- Move the last lock_rows.cache_clear call to \_lock_rows_cached


### Rework

- Per-author collisions; attested firmware stated not refused (issue [\#223](https://github.com/madeinoz67/benchweave-sdk/issues/223))


### Contributors

- Stephen Eaton (61 commits)
- Dependabot\[bot\] (7 commits)


# benchweave-sdk 0.3.1 - multi-version serving

*2026-09-27* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.3.1)


## \[0.3.1\] - 2026-09-27


### Bug Fixes

- Close the standalone writer gaps from the [\#43](https://github.com/madeinoz67/benchweave-sdk/issues/43) re-check ([\#56](https://github.com/madeinoz67/benchweave-sdk/issues/56))
- Fold the [\#146](https://github.com/madeinoz67/benchweave-sdk/issues/146) slice-1 refute findings (LOW-1, NIT-1)
- Refresh stale uv.lock to 0.3.1 (F6)
- Digest-verified load path, typed drift, lazy constants (F1-F3)
- Pin the bump-class gate; narrowing reports dropped rows (F4-F5)
- Fold LOW/NIT rows 1, 3, 23, 25 (SDK side)
- Late Forge folds 1-3 -- full digest-gate coverage, active re-point gate, move-to wording
- Maintainer-review folds SDK side -- governed-field bump judging, typed anchors, honest labels


### Documentation

- Row-3 names both selector surfaces (R3) + worktree/stash discipline in AGENTS.md (R1) -- retro 2026-09-25
- Point the deferral rule at the main-side contract ([\#99](https://github.com/madeinoz67/benchweave-sdk/issues/99)) ([\#59](https://github.com/madeinoz67/benchweave-sdk/issues/59))


### Features

- DatasetServices protocol for extension-contract section 3 ([\#146](https://github.com/madeinoz67/benchweave-sdk/issues/146) slice 1)
- Multi-version serving -- carried set, per-pin validation, derived constants


### Miscellaneous

- V0.3.1 release-review walk phase 1 -- hero/timeline stamps + matrix result record
- V0.3.1 docs registration (phase 2)


### Contributors

- Platima (1 commit)
- Stephen Eaton (13 commits)


# v0.3.0 -- the execution 0.2.0 corpus release

*2026-09-25* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.3.0)


## \[0.3.0\] - 2026-09-25


### Bug Fixes

- Preserve operator-authored compatibility.notes through sync
- Regenerate compatibility.sdk = 0.2.0 -- the certified version (gateway [\#187](https://github.com/madeinoz67/benchweave-sdk/issues/187))


### Documentation

- [\#170](https://github.com/madeinoz67/benchweave-sdk/issues/170) compat-notes preservation design record
- Fold governor findings -- both rider surfaces, deferral reopen triggers, post-rebase base note, STD-6 anchor
- Fold refute findings -- halt-narrowing sentence in the rider, value-verbatim precision
- Correct row 8 to the [\#187](https://github.com/madeinoz67/benchweave-sdk/issues/187) fork (a) ruling -- compatibility.sdk is the certified version (gateway [\#187](https://github.com/madeinoz67/benchweave-sdk/issues/187)) ([\#51](https://github.com/madeinoz67/benchweave-sdk/issues/51))
- Correct row 8 to the [\#187](https://github.com/madeinoz67/benchweave-sdk/issues/187) fork (a) ruling -- compatibility.sdk is the certified version (gateway [\#187](https://github.com/madeinoz67/benchweave-sdk/issues/187))
- A short serial write is a connection error; pin the evidence fold ([\#198](https://github.com/madeinoz67/benchweave-sdk/issues/198))
- Release-review v0.3.0 -- surface walk + matrix record
- V0.3.0 latest + v0.2.0 prior in the selector (verifier fix)


### Miscellaneous

- Encode the 2026-09-24 discipline rows R1-R5 (gateway [\#181](https://github.com/madeinoz67/benchweave-sdk/issues/181))
- Sync gateway corpus -- compatibility.sdk certified for 0.3.0 (version-only delta)
- Register v0.3.0 -- the tag's own bucket (two-phase, phase 2)


### Testing

- Pin compat-notes survival across resync (RED)


### Standards

- Vendor execution 0.2.0 -- the [\#176](https://github.com/madeinoz67/benchweave-sdk/issues/176) promotion sync


### Contributors

- Platima (1 commit)
- Stephen Eaton (14 commits)


# benchweave-sdk 0.2.0

*2026-09-23* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.2.0)


## \[0.2.0\] - 2026-09-23


### Bug Fixes

- Prefixed refusal for oversize provider pins + the known-wounds disclosure ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) refute MEDIUM-2)
- The symlink refusal names the rule it enforces ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) R2)
- Typed refusals for direct pin callers, drive-colon precheck, prefixed reader escapes ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) Copilot C1a/C1b/C2)
- Typed pin-read failures -- OSError family, no host-path leak, cap-growth class ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam fold 1+2)
- Bounded message render + grammar-subschema nesting cap -- two RecursionError escapes ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam fold 3)
- Descriptor read faults match the preset side's typing ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam fold 4)
- Typed refusals for malformed declaration shapes ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam fold 5)
- A failed manifest write keeps the finalise retry path alive
- The published manifest is strict JSON -- non-finite floats refused
- Type-validate the declared-format constructor argument
- Started_at is validated against the corpus date-time annotation
- Fill the lock's compat notes -- the [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) increment-2/3 pairing constraint (AR-6)
- Pre-tag selector constraint found by the matrix walk


### Documentation

- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) transport-provider contract mechanism -- design of record
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) fold-in -- Decision 9 standalone composition, [\#155](https://github.com/madeinoz67/benchweave-sdk/issues/155) sequencing, row-6 lineage
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) build-time amendment -- landing order follows the SDK-sync dependency
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) refute fold -- mechanism-critic F1-F11 into the record
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) adversary fold -- M1 boundary correction + M2 namespace-minting row
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) measurement recorded -- PASS, deferral row 8 (suite self-arms)
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) deferral row 9 -- residual in-arc hard-cites (governor LOW-1, owner-ruled doc row)
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) acceptance-rule amendment -- record what was actually measured (review finding 2)
- Complete the 0.2.1 version train -- generated AI-GUIDE, website hero, check-surface census ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) review finding 3 + LOW)
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) disclosed divergence -- SDK strict no-follow pin resolution stands (R2 ruling)
- Website otdp badge, guide wheel cite, and the badge-census instrument ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam fold 8)
- AI-GUIDE step 2 points non-scoped-transport devices at the provider lane ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam fold 9)
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam wave dispositions -- every finding homed
- CaptureServices docstring names the writer; user-guide compatibility sentence narrowed
- Narrow the README compatibility sentence; the guard sweeps both surfaces
- A worked standalone runtime around the capture writer (serial host to OTDP 8.1) ([\#46](https://github.com/madeinoz67/benchweave-sdk/issues/46))
- [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) heal-path amendment + the errata batch disposition
- Release-review v0.2.0 -- surface walk + matrix record
- Selector claims v0.2.0 (latest) -- the tag commit


### Features

- Contributors section with [<span class="citation" data-cites="mentions">@mentions</span>](https://github.com/mentions) in every render
- Vendor OTDP 0.2.1 -- the transport-provider corpus ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) increment 2, part 1)
- Offline transport-provider checks -- S04 census, contract validation, descriptor-relative pins ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) increment 2, part 2)
- Declaration-site namespace row -- sanctioned provider feature ids ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) R1)
- The §6.4 placement row -- provider declarations require the adapter mode ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam fold 10)
- Capture-root resolution + capture_id segment rules (refuse before any fs call)
- Standalone writer open/append lifecycle (staging, states, cancellation, one-in-flight)
- Atomic finalise with real-digest manifest + declared-format refusal + abort scoping
- Vendor OTDP 0.2.2 -- the fold re-rolled as a PATCH, errata batched (gateway [\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147), fork A)


### Miscellaneous

- Capture module stub -- RED collection scaffold for the standalone writer


### Testing

- Self-arm the reserved-kind disjointness set ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) refute MEDIUM-1)
- Derive the mirror-regex pins from vendored bytes; retire the split tautology ([\#147](https://github.com/madeinoz67/benchweave-sdk/issues/147) RedTeam folds 6+7)
- The README arm's streaming wording accepts each surface's own phrasing
- Raw-string the empty-set match pattern


### Contributors

- Platima (1 commit)
- Stephen Eaton (44 commits)
- Madeinoz67 (1 commit)

Thanks [<span class="citation" data-cites="Platima">@Platima</span>](https://github.com/Platima) -- the one new human contributor since v0.1.0, for the serial-host example and the review contributions.


# benchweave-sdk 0.1.0

*2026-09-21* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.1.0)


## \[0.1.0\] - 2026-09-21


### Bug Fixes

- Keep checkouts LF so standards digests survive Windows
- Windows-portable read_file; no out-of-package validator fallback
- Repair the dead S02 bounds check; gate development-only fallbacks
- Sync-standards -check works from an installed SDK
- Conformance checks survive python -O via typed ConformanceError
- Idempotent preview shutdown; browser open off the UI thread
- Stage project generation atomically
- Review fixes -- no staging deletion, walk-bound samestat, merge repair
- Address Stephen's review on PR [\#9](https://github.com/madeinoz67/benchweave-sdk/issues/9) (windows execution, root detection, refusal classes)
- Refuse symlinked components on POSIX by inspection, not by kernel errno
- Judge manifest and lock rows as strings, identically in every lane
- Preview asset guard refuses a colon in the request path
- A regular file mid-path is NotADirectoryError on Windows, as on POSIX
- Close what a second adversarial pass found in the portability PR
- A failed staging swap restores the previous vendored tree
- Stage the vendored swap outside the package; refuse duplicate manifest ids; prove the atomicity tests
- A recovery sync puts the parked tree back before it stages anything
- Read the bundle once for real; a swap that cannot wedge; claims that match the code
- Plot example binds the first numeric observation target
- Generated conformance assert carries no trailing comma
- Refuse an empty standards list at the manifest gate; close the device-alias gap
- Refuse 8.3 aliases of the stamp path; tighten the device class to COM1-9
- Refuse segments containing characters Windows cannot write
- One sync at a time per checkout; NFC-folded duplicate ids


### Documentation

- V0.0.4 release review -- sweep stale surfaces, encode the matrix + skill ([\#38](https://github.com/madeinoz67/benchweave-sdk/issues/38))
- Installed-mode sync-standards -check and the fifth smoke lane
- The review protocol says where the behavioural suite lives now
- Document the testing surface; render all six public surfaces
- MockHost.transfer's Raises section describes what is actually raised
- Mark CaptureServices as a provisional, unpinned contract
- Document what the reference now renders; claims that match the code
- Previews render declared plots and hints
- Disclosure names observed targets, not bindings
- State the 8.3 stamp-alias mechanism precisely


### Features

- Plot_views projection + previewability relaxation


### Miscellaneous

- Sync plugin-ui-preview 0.1.1 (additive plot_views bump)
- Rebuild bundled renderer assets at ui 0.1.2
- Rebuild bundled renderer assets for the fold wave
- Bump 0.1.0 and walk the release-review matrix


### Performance

- Single-pass bundle hashing, atomic vendored swap, cached schemas


### Testing

- Regression coverage for the portability and correctness fixes
- Bring the SDK behavioural suite home from the parent repository
- Pin the bundle path guard and manifest self-vouching; macOS lane; honest export docstring
- Re-sync the migrated suite with the parent's current tests; relock at 0.0.4
- Pins that reach the guards; the publish smoke at PR time; lock in the gates
- Finish the protocol truth; reach the guards the homed suite only brushed
- Bring the migrated suite forward to plugin-ui-preview 0.1.1 and the plot-emitting scaffold


### Ci

- The Windows publish smoke installs into the venv directory; prove installed mode
- Windows lane, locked syncs, and an end-to-end scaffold check
- Least-privilege docs workflow, split concurrency, pinned actions


### Contributors

- [<span class="citation" data-cites="platima">@platima</span>](https://github.com/platima) (34 commits) -- first release appearance; the portability and correctness stack across both repositories
- [<span class="citation" data-cites="madeinoz67">@madeinoz67</span>](https://github.com/madeinoz67) (16 commits)


# benchweave-sdk 0.0.4

*2026-09-20* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.0.4)


## \[0.0.4\] - 2026-09-20


### Bug Fixes

- Website version labels follow the release -- v0.0.3 latest
- Resolve destination before writing; name symlink refusals in read_file


### Documentation

- Design record for issue [\#107](https://github.com/madeinoz67/benchweave-sdk/issues/107) symlinked-destination fix
- Disclose that new canonicalizes symlinked destinations
- Review-driven corrections for the issue-107 fix
- Recall the memory vault before proposing or diagnosing


### Miscellaneous

- SDK 0.0.4 -- the symlinked-destination fix


# benchweave-sdk 0.0.3

*2026-09-22* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.0.3)


## \[0.1.0\] - 2026-09-21


### Bug Fixes

- Keep checkouts LF so standards digests survive Windows
- Windows-portable read_file; no out-of-package validator fallback
- Repair the dead S02 bounds check; gate development-only fallbacks
- Sync-standards -check works from an installed SDK
- Conformance checks survive python -O via typed ConformanceError
- Idempotent preview shutdown; browser open off the UI thread
- Stage project generation atomically
- Review fixes -- no staging deletion, walk-bound samestat, merge repair
- Address Stephen's review on PR [\#9](https://github.com/madeinoz67/benchweave-sdk/issues/9) (windows execution, root detection, refusal classes)
- Refuse symlinked components on POSIX by inspection, not by kernel errno
- Judge manifest and lock rows as strings, identically in every lane
- Preview asset guard refuses a colon in the request path
- A regular file mid-path is NotADirectoryError on Windows, as on POSIX
- Close what a second adversarial pass found in the portability PR
- A failed staging swap restores the previous vendored tree
- Stage the vendored swap outside the package; refuse duplicate manifest ids; prove the atomicity tests
- A recovery sync puts the parked tree back before it stages anything
- Read the bundle once for real; a swap that cannot wedge; claims that match the code
- Plot example binds the first numeric observation target
- Generated conformance assert carries no trailing comma
- Refuse an empty standards list at the manifest gate; close the device-alias gap
- Refuse 8.3 aliases of the stamp path; tighten the device class to COM1-9
- Refuse segments containing characters Windows cannot write
- One sync at a time per checkout; NFC-folded duplicate ids


### Documentation

- V0.0.4 release review -- sweep stale surfaces, encode the matrix + skill ([\#38](https://github.com/madeinoz67/benchweave-sdk/issues/38))
- Installed-mode sync-standards -check and the fifth smoke lane
- The review protocol says where the behavioural suite lives now
- Document the testing surface; render all six public surfaces
- MockHost.transfer's Raises section describes what is actually raised
- Mark CaptureServices as a provisional, unpinned contract
- Document what the reference now renders; claims that match the code
- Previews render declared plots and hints
- Disclosure names observed targets, not bindings
- State the 8.3 stamp-alias mechanism precisely


### Features

- Plot_views projection + previewability relaxation


### Miscellaneous

- Sync plugin-ui-preview 0.1.1 (additive plot_views bump)
- Rebuild bundled renderer assets at ui 0.1.2
- Rebuild bundled renderer assets for the fold wave
- Bump 0.1.0 and walk the release-review matrix


### Performance

- Single-pass bundle hashing, atomic vendored swap, cached schemas


### Testing

- Regression coverage for the portability and correctness fixes
- Bring the SDK behavioural suite home from the parent repository
- Pin the bundle path guard and manifest self-vouching; macOS lane; honest export docstring
- Re-sync the migrated suite with the parent's current tests; relock at 0.0.4
- Pins that reach the guards; the publish smoke at PR time; lock in the gates
- Finish the protocol truth; reach the guards the homed suite only brushed
- Bring the migrated suite forward to plugin-ui-preview 0.1.1 and the plot-emitting scaffold


### Ci

- The Windows publish smoke installs into the venv directory; prove installed mode
- Windows lane, locked syncs, and an end-to-end scaffold check
- Least-privilege docs workflow, split concurrency, pinned actions


# benchweave-sdk 0.0.2

*2026-09-15* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.0.2)

CLI version now derives from package metadata (0.0.1 reported a stale 0.1.0). Install: pip install benchweave-sdk


# benchweave-sdk 0.0.1

*2026-09-15* · [GitHub](https://github.com/madeinoz67/benchweave-sdk/releases/tag/v0.0.1)

First PyPI release (0.0.x pre-1.0 line). Install: pip install benchweave-sdk
