Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

Bug Fixes

  • Invoke compound-action failures report dispatched state
  • Promote jsonschema to runtime dependency
  • Exercise boolean continuous conditions
  • Recheck sample freshness at predicate evaluation
  • Require at least one tag on every memory proposal
  • Poll-sliced stable verification and uncertainty-preserving body truth
  • Final WP05 fix wave - read/write stg refs, interrupted outcome, product units, freshness honesty
  • Resolver identity recheck, pin-conflict guard, review minors (amends Task 5 brief)
  • Structural loader containment, record overwrite refusal, atomic writes, review minors (amends Task 7 brief)
  • Admission hardening — verify-if-exists cache, persisted high-water, source-level payload cap (WP06 final-fix wave 1)
  • Loader exec-time integrity — re-hash entry before import (WP06 final-fix wave 2)
  • Builder determinism wave — ZIP_STORED payloads, stale-dir pruning, origin-scoped sha_of, mypy coverage, full-breadth determinism pin (WP06 final-fix wave 3)
  • Live format validation (rfc3987 + rfc3339-validator) and the mutable-revision honesty line (WP06 final-fix wave 4)
  • Bind served status to its release — status_release_mismatch (unsigned-fix wave 1)
  • Dev identity fence on OriginConfig — dev-unsigned reserved for dev- origins (unsigned-fix wave 2)
  • Surface-audit wave 1 A — single-source §4 path check, archive_invalid, sys.modules rollback, prune dead map check, schema path pointer
  • Surface-audit wave 1 B — loader executes verified bytes, unreadable .sig maps to bad_signature, falsifiable cache asserts, dev-path status-swap pin
  • Surface-audit wave 1 C — model dev signatures honestly as bytes | None
  • Raw WRITE trip reports DISPATCHED — compound-action honesty (surface-audit wave 2, item 11)
  • Input-validation polish — eager deadline parse, scoped release swallow, typed condition-kind fence (surface-audit wave 2, item 13)
  • §11 id-sharing exemption is ownership-direction-only; provided-id maps split per kind (surface-audit wave 2, item 14)
  • WP07 task 3 follow-up — contract-legal artifact/evidence id shapes (no colons)
  • WP07 task 4 — permission tiers are a hierarchy (observe ⊆ control ⊆ admin) + cursor numeric guard
  • WP07 task 5 — canonical generation fence + worker-thread store for build_run + join fast path
  • WP07 task 8 — adapter limit/length clamping + first live run-through-app test
  • WP07 task 8 — clamp floor at 1 (negative/zero limit/length)
  • WP07 final fix wave — event_gap/§7, cancel scoping/§6, seam offset floor, MCP write gate, MCP isError + D8-D13 register
  • WP07 final — event_gap carries retained watermarks per §7/§10
  • Stream_id bench.{id} contract-pattern conformance
  • Scope dangling-request sweep to run keys, spare change keys
  • D11 artifact offset aligned to the §8 letter — beyond-size fails invalid_request, at-size keeps the zero-byte eof chunk (seam construction site, envelope parity pinned)
  • D13 MCP body ceiling — max_json_bytes over tool-call arguments, payload_too_large envelope parity with REST (D6 residual closed)
  • D13 internal_error one construction site — correlation_id minted (uuid4 hex16), message text parity across transports, detail rides details
  • D13 retry honesty — change_apply unknown-outcome advertises retry never (re-entry is conflict), pinned end to end
  • Internal diagnostics off the wire, keyed by correlation_id — details def is closed (D14/D15 registered)
  • Client guards for non-JSON and non-object 2xx bodies, read-phase timeout
  • Reject scheme-less gateway URLs at the client boundary (T9 carry)
  • Restore manifest gate + traceback-free at-rest boundaries
  • Operator-close path for the live demo view
  • Refuse empty and placeholder production secrets; observability + doc folds
  • Audit fix wave — complete denylist, report hold, restore extras gate, setup boundary
  • Verify carve-out for the registry work tree
  • Assert the CLI contract (–version) instead of the retired bare-call print
  • Mint correlation_id on every failure envelope (D14 cheap half)
  • Serve the interface-v1.1.1 tools corpus (align with seam validation)
  • Check_documents ignores fenced code blocks when scanning links
  • Review minors — command count, hostname scrub at retention, parse guard, dotfile skip, junit family pin, index precondition
  • Synthetic hostname in scrub test fixture (close-review F-M1; wave completed by controller after agent stall)
  • Scaffold a location-independent preview conformance test
  • Keep smoke contract sets aligned with the SDK build hook
  • Register the preview fixture schema with its docs source
  • Run config-driven mypy and type the SDK preview tests
  • Enforce preview-server trust boundaries
  • Ignore compiled vite config siblings
  • Harden generated-project creation
  • Polish preview runtime surfaces
  • Point the renderer freshness gate into the submodule
  • Refuse normative paths colliding in the bundle
  • Guard sync target against uncommitted submodule pointers
  • Neutralise newlines in matrix cells
  • Tolerate trailing telemetry in the commanded reply window (live-device defect)
  • Frame-atomic drain window — WP11 W1 straddle hardening + W2 same-field pin
  • Ruff-format dps150 session - repair dps150-independent lane (broken by #14)
  • Repoint preview wire-schema test at standards/ corpus path
  • Re-lock dps150 contracts at the standards tree
  • Review fix wave for the id/version tree (PR #21 M-1/M-2)
  • Smoke script + adapter API constant follow the 0.1.0 baseline
  • Audit straggler sweep — URN ids, catalog version, prose assertions
  • Review fix wave 2 — runtime interface version, example teachings, doc truth
  • Declare MIT license in pyproject metadata (was Proprietary)
  • Key the Pages concurrency group by ref
  • Wrap phone-width header onto two rows
  • Anchor public-site-assembly ignores to the repo root
  • B2 — Failure construction-site guard refuses empty correlation_id
  • D14-details — the closed six-key error envelope on every failure
  • D4 — every event kind emits the closed document-ref evidence
  • Review-fix wave — poison-emit guard, fallback log, hygiene
  • Pin the symmetric stray/stamp gates across all three check lanes (#9)
  • Portable store hold; the gateway now runs on Windows checkouts
  • Reject delimiter injection at issue time; fail fast on absent fixtures
  • Validate each scope element at issue time, not just the joined field
  • The hold marker lives beside the data dir, so restore can swap it on Windows
  • Resolve the data dir before deriving the hold marker; tolerate the legacy in-dir name in verify (PR #35 review fold)
  • Otdp 0.1.1 — byte-errata of 0.1.0 (#45) (#47)
  • Make the adapter-call AST pin total over the _adapter name
  • Pin Adapter protocol data members, not only methods
  • Require envelope key sets in enforcement position, not mere presence
  • Derive identity standard-version keys against the standards manifest
  • Reject duplicate standard ids at manifest load
  • Fail styled, not raw, from the versions command
  • Refuse string-mediated adapter access and state the pin’s true boundary
  • Pin the envelope comparison shape, not just the literal’s presence
  • Make the identity block closed-world
  • Declare the range_v/offset_v configure envelope in input_constraints
  • Make fetch honest — acquisition state, byte budget, corpus axes
  • Bound sample_count in both the descriptor envelope and dispatch
  • Snapshot the configuration at arm; validate trigger shape at dispatch
  • Name the true cause when the pretrigger buffer is empty
  • Carry the probe_ratio enum in the parameter descriptions; re-pin the digest chain
  • Forge-wave honesty — dispatched state refusals, single-use acquisition ids, small fixes
  • Accent arbitration, threshold carrier, a11y disclosure, token fallback (C1-C4)
  • Hidden traces release the accent claim (W1) + cross-product wording (W2)
  • Carrier participates in axis extent; legend swatches follow resolution (FC1/FC2)
  • Muted-x-absent cross-product cell, ruled fallback pin, renderer version (FC3-FC5)
  • Declare plugin-ui 0.1.1 in the ui resources
  • Total and exact float64 element boundary (B1/B2)
  • ASCII digit gate, marker bounds, duplicate-id refusal, containment (RB1-RB5)
  • Move to OTDP 0.1.2 with the active corpus (CI merge result)
  • Wave-3 audit findings (forge-B)
  • Review items R-F5-R-F7
  • C’s multi-channel specimen cites the active measurement URN
  • The measurement contract pin hashes the active corpus (F9)
  • Report DISPATCHED on post-dispatch device-state refusals
  • Rebuild sim fixture lattice for the dispatch-posture change
  • Split argument typing from device evaluation (R1/R2, #66 absorbed)
  • Issued-map fields must be declared action inputs (F1, #63)
  • Fold R1-R4 — record corrections, lock pin test, census obligation (#63)
  • Typing precedes the trip latch in _write (RF1); absence pin + poc walk flake kill (#63)
  • #85 fold — malformed bench/binding refuse startup typed, recovery containment pinned
  • Fold refute F1 + NIT-1 — convention-vs-mechanism disclosure, reorder tamper mode
  • Sweep miss — gateway lock emitter and test pins for 0.1.1
  • Collector reads file paths; chronological admission; dedup; real shallow guard (#97 review fold)
  • Refute fold — zero-gap double bumps, first-add anchor, shallow refusal (#97 G6)
  • Derive the devices mutation fixtures; GOVERNANCE claim scoped (D2 review fold)
  • Audit-annotate train_window’s git subprocess under the S-band; merge main
  • Resolve OUT once so the pinned check compares resolved-to-resolved (#119)
  • Precision folds from the first review wave (#102 D1, review F3/F5/F6/LOW-1/NIT-2)
  • EngineeringPlot re-resolves theme tokens on data-theme flips (FC6)
  • Disclosure names observed targets, not bindings
  • Preview workbench passes no fabricated threshold (R1b)
  • Render-quality batch — stable joins, safe keys, unit guards, wire labels (R2)
  • Sweep the presentation-admission seam onto the active plugin-ui version
  • Render repository-relative paths with forward slashes on every platform (#138)
  • Read the _GENERATED.txt stamps as UTF-8 (#139)
  • Keep the 0600 promise on Windows by restricting benchweave.env’s access list (#137)
  • Say what 0600 means on Windows in the remaining messages and tests (#137)
  • Forensic once-guard keys durability and lifecycle, not identity
  • The stamp discriminator requires identity and dispatch binding
  • Gate-region lock contention classifies RESOURCE_LIMIT
  • The writer’s stamp frame covers the COMMIT sites; sweep return documented
  • Finalise enforces the session key on the publishing path

Documentation

  • Correct compatibility record with UF_HIDDEN root cause
  • Pin memory vault routing to benchweave, ledger fallback until /mcp approval
  • Pin memory vault routing to benchweave, ledger fallback until /mcp approval
  • WP05 procedures plan and project ISA (close-of-WP05 state)
  • Code-reviewer gates on documentation coverage per change (rule 3b)
  • Rule 3b extends to API (OpenAPI lockstep) and MCP (mcp-tools.json) surfaces
  • Rule 3b names CLI surface explicitly and reserves the UI clause
  • Rule 3b adds fixture/CI/vendoring/security-posture surfaces; reserves deploy and hardware-evidence
  • Honesty labels — dev-unsigned auth wording, enforced-not-authenticated sequence (unsigned-fix wave 3)
  • Developer guide gains the registry dev loop — unsigned packaging, dev origins, signed production path, status refresh
  • Add AI device development guide with firmware path
  • Link AI device and firmware development workflows
  • Clarify external plugins and Docker gateway lifecycle
  • Link SDK workflow and clarify external adapter support
  • Align device quickstart with plugin layout
  • Show optional plugin feature directory layout
  • Disclose report’s migration-on-open window; settle missing-evidence render
  • Operator guide + clean-install gate (PRD-01 flow)
  • D14 correlation_id half CLOSED by WP09 Task 1 (3ebfcb5)
  • D14 mint-sites phrasing + HEAD-guard durability note; ledger re-ledgers
  • 100-run seeded volume leg — PRD §3 retained evidence
  • Second-install reuse runbook — the PRD §3 step-7 operator flow
  • Timed operator legs — author-run, wall-clock recorded
  • Timed-leg record precision — abort duration, verdict scoping, runbook ordering note
  • PRD §6 reference timing + stress tier — both targets pass
  • D13 decision landed; G2 deviation registrations
  • Fault-matrix harvest + deterministic digest index
  • Regenerated tree post-scrub
  • G2 gate record
  • Close-review honesty — PRD-11 registry-loss row structural, acceptance verdict qualified, index root-refusal disposition
  • Define style guide and workbench architecture
  • Define contextual alert message classes
  • Support declarative custom device compositions
  • Publish executable style guide
  • Add portable mock-up and design tokens
  • Design deterministic UI preview workflow
  • Complete local UI preview developer loop
  • Align preview documentation with what shipped
  • Review findings persist to memory at every severity
  • Bind RedTeam and external review outputs to the memory rule
  • G2 owner acceptance — ACCEPTED 2026-09-14
  • Standards synchronisation design and plan
  • Two-repo discipline for the SDK submodule
  • SDK guide moves to the SDK repository
  • SDK repo self-sufficiency design and plan
  • WP10 compatibility record + esp32 selection
  • WP10 close reconciliation — plugin status honest, PID boundary, completion companion
  • Record links stay in-docs — out-of-tree capture references as code paths (architecture gate)
  • WBR fix — README lifecycle honest (adapter performs the handshake); scratch-name cosmetic
  • Point SDK consumers at PyPI; simplify dead concurrency expression
  • Close-out - PyPI/brew publishing design + implementation plan (landed)
  • Record honesty — WP11 W3 ramp wording + W4 adapter-shape note
  • Fix errata README’s own post-move pointers (review M-1)
  • Add Contributor Covenant 3.0 code of conduct
  • Add SECURITY, CONTRIBUTING, SUPPORT and issue/PR templates
  • Public-site styleguide and mockup for the SDK website
  • Public-site styleguide v0.2 — AI instructions, sub-brands, icon set, nav mapping
  • Add Built with AI panel crediting models and tooling
  • Report via private advisory, not personal email
  • Add permanent Discord invite to README, SUPPORT and site (#33)
  • D4 + D14-details CLOSED by the interface-errata slice (#16)
  • Review rubric, hard invariants and drift obligations (#41)
  • Record the adapter-api identity and agreement invariants; correct stale baseline lines
  • Correct the remaining device-guide baseline claims (OTDP 0.1.1 / adapter API 1.1)
  • Commit the #44 design record
  • Complete the adapter-protocol obligation touch-set and hook triggers
  • Correct four remaining baseline lines to the machine versions
  • Sweep remaining stale version claims to the machine truth (#54)
  • Issue #6 row A settings-as-presets design record
  • Named settings as presets — the sim_scope reference instance
  • Correct the token-replay claim — mismatch-only, and the design’s range text
  • State the input_constraints lane split in the presets section
  • Fetch semantics in the README; design-record residual corrections
  • Review-wave prose corrections — parameter count, copy wording, simulator inventory scope
  • Issue #6 row C per-channel display hints design record
  • Record the forge-tail evidence in the 0.1.1 report
  • Scope the W1/C4 amendment claims; pin first-visible mark line (review-C)
  • Issue #6 row B — declarative derived variables design record
  • Sweep remaining version claims to the otdp 0.1.2 corpus
  • Complete the 0.1.2 link sweep (reviewer, quickstart, architecture, development)
  • M15 states the int-exactness rule and the M02 suspension
  • Apply the issue-#6 retrospective workflow rules (#69)
  • Governor-pass fixes on the #69 rules
  • Commit the issue-#64 design record on the branch
  • Commit the issue-#62 design record on the branch
  • State the orphan-sweep size residual in the 0.2.0 README
  • Issue #63 descriptor dialect reconciliation design
  • Issue #63 design update — dps150 absorbed (slice 5), 28-cell census, registry-decoupling correction
  • Record the dps150 lock otdp_version stale-field correction in item 22
  • Amend deferral rule 3 — table rows are first-class merge citations (#98)
  • Issue #85 bootstrap routes descriptors through the admission gate (absorbing #78)
  • #85 — startup admission refusal on the operator, device-author and invariant surfaces
  • #85 — fold refute F1-F3 (DEFENDED verdict)
  • Leg-(a) comment classifies by failure kind, not evaluation order (refute NIT)
  • Issue #79 machine-written, CI-pinned OTDP validation report
  • Issue #71 skill-role slice 1 — pre-committed acceptance rules
  • Align live baseline prose to 0.1.1; amend the sweep grep class
  • Record deferral citations per amended rule 3 + G4 sweep-gap note
  • Adopt retrospective row 4 — run-close junk sweep as step 8
  • Single issue stream — all issues file on the gateway tracker
  • Re-anchor the edit grant on the freshness gate (review R1+R2)
  • Row 14 — agent tool-grant surface (review F3, folded)
  • Recall the memory vault before proposing or diagnosing
  • Design record for issue #97 bind-the-train
  • Design record for #102 D2 — manifest-driven version discovery
  • Refute fold — name the platform condition; scope the residue case (#102 D2 G6)
  • Design record for #97 description-guard extension
  • Review fold — reconciliation precise; root-only scope stated (#97)
  • Design record for #125 pinned-escape coverage
  • Refute folds — revival-set precision, honest Windows posture (#125)
  • Issue #102 D1+D3 validation-report family design record
  • CON-11 family amendment, drift row 13, GOVERNANCE generalization, validation doc (#102 D1)
  • CON-11 structural reason + residual; wave-2 folds recorded (#102 D1, review R-F3 + A-F4)
  • Increment loop amendments from the #129 retrospective
  • Issue #43 capture & streaming design of record
  • Record owner calls on all four forks (agreed 2026-09-21)
  • Explicit §6 disposition — multi-device concurrency and time correlation
  • Issue #133 retrospective skill design of record
  • Review folds — archive+git evidence lanes, moment pinning, dead tag (#133)
  • Amendment 1 — integrate 12-analyst RedTeam findings into #43 record
  • #43 Amendment 2 — standalone capture mode (Decision 9), slice-1 scope
  • #43 Amendment 2 — pin the standalone capture directory layout
  • #43 Amendment 2 — standalone formats (plain text first-class) + declaration chain
  • #43 Amendment 3 — integrate external review (platima)
  • Issue #67 manifest-driven plot rendering design of record
  • Declared-plot preview behavior + obligation 12’s doc home
  • Review-wave amendment — guard wording, matrix sequencing, claim scoping, scaffold fix
  • One edit-routing card — which write path applies
  • Docstrings for the four worst-documented public vocabularies
  • Align development.md with what CI actually runs
  • Describe the CI gate this branch’s workflow actually runs
  • Bridge docstring — version fix, real async-host boundary, capture-budget disclosure
  • The busy-timeout disclosure prices the full failed-dispatch path
  • Narrow the develop-your-device loader sentence; pin it gateway-side

Features

  • Validate exact-byte JSON documents
  • Vendor admitted architecture contracts with verified manifest
  • MCP client spike with local identity issuer
  • Durable run lease request and event state
  • Publish scoped host ABI as typed OTDP envelopes
  • Sim_psu plugin with OVP OCP trip latch over the host ABI
  • Sim_controller plugin with numeric uptime telemetry
  • Fault matrix protocol fixtures and timeout-after-dispatch rule
  • Sim_psu dc_psu class actions over the host ABI
  • Strict admission of execution documents with executable fixtures
  • Semantic admission with lexical scope and budget bounds
  • Role binding resource closure and bench lease
  • Safety policy allow rules and continuous conditions
  • Eight-kind execution engine with occurrence ledger and body deadline
  • Lexical references issued ids and three-valued trustworthy predicates
  • Protection engine coordinator and truthful terminal records
  • Project muninndb MCP as muninndb-benchweave, distinct from global connection
  • Strict vendored-schema loaders; types-jsonschema carry-in
  • Deterministic fixture catalogue with signed releases and fault statuses
  • Ed25519 authenticity with expiry and sequence rollback rejection
  • §10 semantic admission — closure, paths, spdx, conflicts
  • Configured-origin resolver with strict routing and authenticated closure
  • Admission — lifecycle gates, verified extraction, explicit package lock
  • Idle-boundary activation record and cache plugin loader
  • WP06 close — vacuous-constraint warning, store single-writer doc, full gates
  • Origin-level signature policy — dev-unsigned skips authenticity only
  • Publish_dev — unsigned dev packaging and keyless developer loop
  • Add mock-qualified FNIRSI DPS-150 protocol and adapter
  • WP07 task 1 — fastapi/fastmcp deps + schema-fidelity spike (gateway_info deep-equality proven)
  • WP07 task 2 — v2 migration (generations, benches, devices, run_states, changes) + LeaseNotActive
  • WP07 task 3 — content-addressed documents/artifacts/evidence + quota-bound retain_evidence
  • WP07 task 4 — 14-code error model, observe seam, startup bench admission
  • WP07 task 5 — control seam, §9 scoped dedup, run queue/worker, monitor evidence hook
  • WP07 task 6 — bench event streams, seven kinds, principal-bound cursors, honest retention
  • WP07 task 7 — two-phase admin changes with independently authenticated approvals
  • WP07 task 8 — FastAPI app + FastMCP mount, 17 vendored-exact tools, token auth
  • WP07 task 9 — 20 REST routers, exact statuses, 14-code error translation
  • WP07 task 12 — licence display verdict, FastMCP qualification record, docs currency
  • Add SDK-aligned presentation contracts and presets
  • D8 seam validation against the vendored corpus
  • D9 §5 accept-time busy/binding pre-checks
  • D12 commissioned takeover slice + authority_changed emitters
  • D13 lease expiry, events index, crash-window reconciliation, hygiene
  • D13 lease_renew §6 semantics — duplicate returns same renewal (§9 keys, sweep resolves in leases), late renewal cannot revive an expired row
  • D13 §6 lease contention — lease_create rejects live run/live lease (closes the D12 consume→reserve window), fixtures restructured for one-live-lease-per-bench
  • D2 interface-v1.1.1 errata (change_apply approver_token), 1.1.0 untouched
  • Wire fixture resolver session at bootstrap (unblocks admin change kinds)
  • Click command tree + machine output paths
  • At-rest setup/verify + WAL-aware backup/restore with daemon-hold
  • Live status/demo with ephemeral fresh-install mode
  • Textual renderers with plain-text fallback
  • Truthful report model + markdown/JSON emitters
  • Systemd template + permissions review + CI verify; serve production posture
  • Seeded journey volume generator
  • PRD target measurement + non-gating stress tier
  • Fault-matrix harvest + digest index — evidence group complete
  • Establish React and Storybook foundation
  • Add Layered Precision themes and surfaces
  • Add staged engineering controls
  • Add semantic readings and alert bubbles
  • Add engineering plots and data tables
  • Add operator and admin workbench mock-ups
  • Define deterministic preview fixture contract
  • Validate preview fixtures and baseline states
  • Serve deterministic preview API on loopback
  • Add local preview-ui command
  • Render SDK preview scenarios through host components
  • Pin the preview wire document
  • Canonical standards manifest with hash validation
  • Deterministic bundle export
  • Non-mutating sync check and make targets
  • Generated compatibility matrix
  • Adopt the SDK repo’s sdk-tagged memory ledger (submodule 2b426a1)
  • Evidence-backed session layer — handshake frames + telemetry drain
  • Session establishment + telemetry drain/route per WP10 design
  • Live demo script under the plugin — ramp, telemetry, session-survival flourish
  • Git-cliff config, seeded CHANGELOG.md, merge-driven regeneration
  • Standards GOVERNANCE.md rulebook + resident standards-governor agent
  • Public site — static front door + Great Docs tree on Pages
  • Add “Where it came from” — the origin of the project
  • “What surprised us” and a validated “Where it stands”
  • Align the main site to public-site styleguide v0.2
  • Star-on-GitHub header CTA with live count
  • The build loop — agents, skills, drift guard, design records, constitution (#42)
  • Benchweave.standards repin — the mechanical pin writer (#46) (#52)
  • Derive-check identity.adapter_api against the descriptor schema const
  • Sim_scope settings-presets simulator + host-ABI dispatch suite
  • Sim_scope ui resources, both SDK lanes, eight RED controls
  • Plugin-ui 0.1.1 channel_hints + two-pass renderer
  • Pure module + admission + executor wiring (issue #6 row B)
  • OTDP 0.1.2 — derived variables in the measurement model
  • OTDP 0.2.0 — configure-carried averaging + class sample_count bound
  • Plugin-ui 0.2.0 — lane-1 descriptor envelopes + unreferenced-preset refusal
  • Descriptor admission validates and projects full-form OTDP (#63)
  • The tree converts to full-form OTDP — one dialect (#63)
  • The slim descriptor dialect dies (#63)
  • Re-version to OTDP 0.2.0 — check-clean, absorbed (#83 into #63)
  • #85 — route startup through the admission gate before any store write
  • Machine-written, byte-pinned OTDP validation report
  • Registry 0.1.1 — admit the skill payload-file role (issue #71 slice 1)
  • The prescriptive bump window, enforced (#97)
  • Manifest-driven OTDP version discovery in the validator + pin (#102 D2)
  • Shared validation-report writer; check_devices delegates (#102 D1)
  • Registry validation report joins the writer family (#102 D1)
  • Execution validation report joins the writer family (#102 D1)
  • Interface validation report joins the writer family (#102 D1)
  • Closure validation report joins the writer family (#102 D1)
  • Otdp coverage prose derives its counts (#102 D3)
  • Retrospective — standardized end-of-period report with sub-agent review (#133)
  • Plugin-ui-preview 0.1.0 -> 0.1.1 — plot_views on the wire
  • Manifest-declared plots render in the preview (0.1.2)
  • Gortex-write-gate — deny native edits in tracked primaries
  • V5 capture-staging migration + refuse-newer guard + hygiene pins
  • Staged-append capture writer (open/append/finalise/abort/sweep/ledger)
  • Composing capture-services bundle + controller + permission read
  • Bridge dispatch(capture) — gates, manifest conversion, classification, epilogue

Hardware Evidence

  • First real-hardware contact — identity, session behaviour, live telemetry
  • HW-04 leg 1 — baseline read-back via the shipped session layer (read-only)
  • HW-04 leg 2 — voltage setpoint write accepted, no readback path (dispatch-only confirmed)
  • HW-04 legs 3/3b/4/6 — setpoint+protection readback proven, both dialects live
  • HW-04 leg 5a+5b — output toggle proven; setpoints APPLY (1.00V commanded, 1.0V at terminals incl. ramp sample); restores verified; mid-run crash emergency-restored + re-run clean (codec 260B feed bound honored)
  • HW-04 panel observations — principal’s screen mirrored remote writes and output state throughout (no divergence)
  • Panel observation-3 — V-set display tracks local knob, not remote writes; local control live during PC session
  • HW-05 legs 1+2 — session SURVIVES port-close and host process death (answered with no re-handshake both times)
  • HW-05 leg 3 — session SURVIVES USB unplug/replug (cold query answered); /dev node name stable across re-enumeration; wake is power-cycle-bound
  • Task 6 interim — identify verified end-to-end via adapter stack; read verb unverified (harness request-shape, next session)
  • Task 6 complete — identify+reads wire-verified; ADAPTER DEFECT found: trailing telemetry poisons the session (live-only, mock-blind); fix direction recorded
  • Fix verified on device — 165/165 clean reads over 60s through the correlated-wire adapter

Miscellaneous

  • Ignore gortex cross-harness shims, checkpoint state, rendered ISA
  • Keep ISA local under docs/superpowers (muninndb convention)
  • WP08 slice-1 closure chores (flake evidence, stash reconciliation, SDK validation report, lock_path register note)
  • WP08 register close-out + vendored-tree guard
  • Advance submodule for standards sync
  • Sync submodule with SDK repo README and docs commits
  • Submodule pointer - superpowers docs stay local
  • Submodule pointer - ignore docs/superpowers
  • Submodule pointer - standards sync check exit, vocabulary and deprecation reporting
  • Submodule pointer - self-contained standards check and SDK CI pipelines
  • Submodule pointer - matrix gate note points main-side
  • Ignore the export staging directory
  • SDK reviewer agent, conventions and MCP wiring (submodule 032e8d8)
  • Submodule pointer - reviewer doc census completion
  • Submodule pointer - absolute doc links (submodule 49d0bb9)
  • Advance sdk pointer to v0.0.2 (0f105a3)
  • Advance sdk pointer to bb3159e (tap-bump job)
  • Ignore gortex git-hook artifacts (wiki, mermaid exports, docs bundle)
  • Remove the retired firmware/esp32_reference placeholder
  • Post-consolidation cleanup — retire firmware placeholder, re-lock dps150 contracts (#20)
  • Advance SDK pointer — adapter API constant at 0.1.0
  • Principal row calls — redate releases to the reset, align acceptance record
  • Re-lock dps150 at the 0.1.0 baseline
  • Re-lock dps150 at the 0.1.0 baseline (#22)
  • Ignore device plugins’ local vendored contracts
  • Ignore device plugins’ local vendored contracts (#23)
  • Advance SDK pointer — gortex-artifact ignore guard (main #17 parity)
  • Advance benchweave-sdk pointer (CoC + governance docs)
  • Advance SDK pointer — docs site + public site merged (PR #4); repoint plugin-sdk stub
  • Advance SDK pointer — close-out docs
  • Advance SDK pointer — SDK-focused static site
  • Advance SDK pointer — docs concurrency fix
  • Advance SDK pointer — styleguide v0.2 brand
  • Bump packages/sdk to 17d6ecb (star CTA + header wrap)
  • Bump packages/sdk to 5da15c7 (gateway links to project website)
  • Enable the security lint the tree’s suppressions were written for
  • Advance packages/sdk to the pushed plugin-ui 0.1.1 SDK branch
  • Advance packages/sdk to the C1-C4 renderer refresh
  • Advance packages/sdk to the W1 renderer refresh
  • Advance packages/sdk to the FC1/FC2 renderer refresh
  • Advance packages/sdk to the otdp 0.1.2 vendoring
  • Advance packages/sdk to the reconciled dual-standard tip
  • Grant code-reviewer + increment-builder gortex read/query tools
  • Grant the four review-lane agents gortex read/query tools
  • Frontmatter + gortex read/query grant for standards-governor
  • Muninndb-benchweave read/query grants for designer, adversary, critic
  • Advance packages/sdk to the OTDP 0.2.0 vendoring
  • Advance packages/sdk to the plugin-ui 0.2.0 vendoring
  • Drop Finder-style duplicate artifacts swept in by add -A
  • Advance packages/sdk to the registry 0.1.1 vendoring
  • Regenerate the lattice single-cause after the #87 rebase
  • Advance packages/sdk to the /src anchor + .hgignore widen
  • Advance packages/sdk to the agent-native scaffold (0.0.3, fold wave 1)
  • Migrate gortex grants to official server-pattern + disallowedTools shape
  • Deny muninndb write tools on the muninn-carrying agents
  • Grant mcp__gortex__edit to increment-builder, reconcile-gated
  • Advance packages/sdk to 1c700bf (issue #67 SDK arc)
  • Advance packages/sdk to 168cefb (disclosure wording)
  • Advance packages/sdk to 4263cc3 (scaffold numeric-target fix)
  • Advance packages/sdk to 57a3441 (generated-test syntax fix)
  • Advance packages/sdk to v0.1.0; reversed-range becomes both-refuse
  • Capture-store module stub — RED collection scaffold
  • Capture-services module stub — RED collection scaffold
  • Drop the dead EvidenceQuotaExceeded re-export; operator guide names refuse_newer_schema

Performance

  • Copy the docs tree once per session in the architecture tests

Refactoring

  • Keyless builders extracted to registry_common — dev loop loads no cryptography (surface-audit wave 2, item 15)
  • Colocate device and simulator projects
  • Align CLI with Click Rich and Textual
  • Single-source preview constants
  • One standards tree — corpus, prose and locks under standards/
  • One standards tree (corpus, prose, locks under standards/) (#19)
  • Id/version tree — standards/// with retention
  • Reset every standard to 0.1.0 — the governance starting point
  • Id/version tree, full 0.1.0 reset, and governance layer (#21)
  • Single-source the family marker; refusal-family honesty (#102 D1, review R-F5 + A-F3)

Style

  • Extract the execute-call fixture constant to clear E501
  • Ruff/mypy cleanups in the registry-contract instrument

Testing

  • WP06 acceptance — reuse, tamper, revocation, rollback, collision
  • Pin cache-loaded module identity in run legs (Task 8 review)
  • Cover high_water_invalid on malformed persisted state (final-wave review)
  • Six-pin test-posture batch closes the WP05 coverage gaps (surface-audit wave 2, item 12)
  • WP07 task 2 backfill — device method coverage + has_more/None paths (+ v2 newline)
  • WP07 task 3 backfill — sha-mismatch rejection pinned
  • WP07 task 10 — REST↔︎MCP parity suite + tier fix + deviation pins
  • WP07 task 10 backfill — wrong-audience + expired token probes + register disclosure
  • WP07 task 11 — event-recovery suite, worker poison guard, §144 disconnect+evidence failure
  • WP07 task 11 backfill — evidence-gap record survives with refs pinned
  • Satisfy strict CI typing for presentation tests
  • Pin extra-property wire truth + D8 residual, anchor test corpus path
  • _masked_error helper + wrong-typed approver_token 400 pin
  • T10 whole-branch minors — served events_get letter, second-boot refusal, autocheckpoint pin
  • T11 teardown pin + T12 real events_observed assertion
  • PRD journey scaffold — discover/admit/select live
  • Run journey REST+MCP+report, admin + stale-generation legs
  • Fault legs + second-install reuse — journey complete
  • Packaging asserts lock-wheel equality; smoke reads the SDK lock
  • Self-contained standards check without a bundle
  • Unchanged, clarification and breaking scenarios
  • F5-quiet exercises the idempotency path it names
  • WP11 carried minors — T1-1/T1-3/T2-6/T2-8/T5-9/T5-10
  • Fresh clones pass-or-skip; fork PRs stop failing on absent secrets
  • Outcome failures dump terminal reasons + error events (#48) (#50)
  • #48 review rows 1-2 — structural reasons render + mode=ro claim truth (#51)
  • Pin the adapter protocol three-way — expected literals, SDK, gateway, corpus
  • Pin the submodule HEAD to the recorded gitlink
  • Pin the submodule HEAD against the committed gitlink, not the index
  • Pin test_sdk resolution to the pinned submodule tree (#53)
  • RED for plugin-ui 0.1.1 channel_hints
  • RED for row C mechanism-critique fix wave (C1-C4)
  • Jsdom-robust accessibility assertions for hidden legend rows
  • RED for hidden-claimant accent release (W1) + honest table naming (W2)
  • RED for real-render carrier visibility (FC1) + legend swatches (FC2)
  • RED suite + normative census for issue #6 row B
  • Sync-stamp literal follows the otdp 0.1.2 lock
  • RED controls for OTDP 0.2.0 averaging admission + sample_count bound
  • Sync-stamp literal follows the otdp 0.2.0 lock
  • Complete the 0.2.0 literal sweep in two missed docstring paths
  • Pin the averaging envelope endpoints 1 and 64 (refute R1)
  • RED controls for plugin-ui 0.2.0 lane-1 envelopes + orphan refusal
  • Pin the descriptor schema’s otdp const to the manifest version (F2, #63)
  • #78 — replace the dead ADMITTED_DIRS hand-list with a derived closed-world dir guard
  • #85 RED — poisoned-lattice startup refusals, watched failing pre-fix
  • #85 fold — pin the S01 layering in the descriptor-equivalence census
  • Pin executor dispatch-state composition (#73)
  • Pin the OTDP validation report to a live devices-suite render
  • RED for the skill payload-file role (issue #71 slice 1)
  • Pin the sdist to the declared surface — PKG-2’s detector
  • RED for the agent-native seeded tree (issue #71 slice 2)
  • Prove the issue-107 fix — symlinked-destination scaffold, typed symlink refusal, errno guard
  • RED — bump-window arms against the absent train_window module
  • RED — OUT/title must follow the manifest’s active otdp version (#102 D2)
  • Extend the #47 annotation guard to description (#97)
  • Pin the pinned check’s path-escape arm (#125)
  • RED family pin for the machine-written validation reports (#102 D1)
  • Share one real-tree execution per suite between pin and guard (#102 D1)
  • Adapt #125 path-escape test to the family report-path signature (rebase resolution)
  • Report-family census — registered writers, classified artifacts (#102 D1, review F2)
  • Harden the family pin — duplicate names, byte compare, POSIX absoluteness (#102 D1, review F4/F7/F8)
  • Tamper fixture asserts its vacuous-green precondition (#102 D1, review A-F2)
  • Pin the projection and the relaxation (metrics A/E/F)
  • Scaffold plot selection — numeric-first, non-numeric-first, none
  • Unmocked disclosure arms, divergent-id join pin, trace-level colour (R3+R4)
  • Generated conformance test compiles and runs both variants
  • Add coverage measurement (report-only)
  • Honest slow-marker wording; bounded fault-test waits
  • Cover the vendoring resolution seam and presentation admission
  • Keep docs/ and standards/ siblings in the regression-detection cases
  • The unmutated copy must run clean before a regression case mutates it
  • Pin the served MCP tool descriptions to the vendored corpus
  • The harness closes the Store it opened (#136)
  • Close the store only once the server thread has stopped (#136)
  • Pin packaged-first precedence when both trees exist
  • The slice-1 sequential-model measurement (issue #43)
  • The contention arm asserts eventual reclaim, not overshoot timing
  • A6’s INTERNAL_ERROR gate arm gets its home (review R1)
  • Drop the dead Migration import pair in _apply_subset
  • Complete the dead-pair removal — drop the del Migration line

Build

  • Bundle versioned UI preview renderer
  • Mount benchweave-sdk as a submodule at packages/sdk
  • Pull _validation_report into strict mypy scope; honest NoReturn (#102 D1, review R-F4)

Ci

  • Fixture signing keys move to repo secrets; public halves stay; add gates workflow
  • Gate the UI toolchain and vendored-renderer freshness
  • Gate PRs and releases on standards sync
  • Gate-only package lane; SDK distribution moves to PyPI
  • Push CHANGELOG.md via changelog app token
  • Add manual trigger
  • Consistent action pinning, locked syncs, honest workflow behaviour

Ci+docs

  • Census runs on the OS matrix; coverage claims state it

Review

  • WP11 whole-branch fix wave — both verdicts clean, findings landed