Acceptance — v0.4.2¶
Status: published — the v0.4.2 tag and PyPI release point at this
commit. This document records what changed since
docs/ACCEPTANCE_v0.4.1.md, which remains the authoritative acceptance
record for every functional and security claim unchanged by this
release — nothing in the Tier 1 architecture, verified=True gating,
the scoped pfSense credential, or the live-evidence chain changed
between v0.4.1 and v0.4.2.
Release scope¶
v0.4.2 is a documentation/packaging presentation patch only. Its
public MCP contract is unchanged from v0.4.1/v0.4.0/v0.3.1: 42 READ
tools, 0 WRITE tools under the default profile (confirmed byte-identical
against the frozen tests/contracts/mcp_public_contract_v0.4.1.json
snapshot). No new tool, no new capability, no schema change, no
security-relevant code change of any kind — no file under src/ changed
between v0.4.1 and this release.
Everything that changed is README/documentation-site presentation:
- Portable README links for PyPI. 29 README link occurrences
across 11 distinct targets were repository-relative and silently
broke when the same file rendered as the PyPI long_description
(PyPI's renderer has no repository filesystem context). Converted to
either the published MkDocs page or an absolute GitHub blob URL,
matching the convention
mkdocs.ymlalready used for its own non-MkDocs-published links. A regression check (readme_portability_errorsinscripts/validate_docs.py, wired intomake validate) now fails the build if a repo-relative link is ever reintroduced. - Corrected 42-tool catalog wording — README had one stale
"41-tool catalog" reference; every other reference in README,
docs/API.md, andscripts/public_contract.pyalready agreed on 42. docs/ACCEPTANCE_v0.4.0.md's status line corrected to accurately describe that v0.4.0's PyPI publish failed (it previously read "published," written before that failure was discovered) and point to v0.4.1 as the fix.v0.4.0's tag/Release were not touched.- 7 documentation pages exposed in
mkdocs.yml's navigation that existed in the repository but were never linked from nav (ACCEPTANCE_v0.3.0/v0.3.1/v0.4.0/v0.4.1,ADR-027/028/029), and the deployed documentation site itself — stale since a 2026-08-09 build — redeployed from currentmain, publishing these plus everything added since then (ADR-020throughADR-026, TPM host-witness and production-store-bootstrap subsystem specs). - Public-facing security description improvements in README's
"Security-first by design" section and its first-screen "42 READ / 0
WRITE" line — every added claim traces directly to
docs/adr/ADR-026-first-write-capability-adapter.md's existing evidence chain; no new security capability or claim beyond what that document already substantiates.
What this release does NOT do¶
- Does not perform, and did not require, any further pfSense contact of any kind (no WRITE, no privilege change, no credential rotation).
- Does not touch the TPM witness in any way.
- Does not move, delete, or reuse the
v0.4.0orv0.4.1git tags or their GitHub Releases. Both remain permanent, accurate historical records. - Does not introduce, imply, or claim any new security capability.
Acceptance boundary¶
This document accepts the v0.4.2 release-candidate state at its
preparation commit, once that commit passes the required local and
remote gates (CI, CodeQL, make release-check). It does not
authorize a tag, push of a tag, GitHub Release, TestPyPI/PyPI upload, or
any further pfSense/witness/credential action. Each of those remains a
separate, explicit owner decision, taken only after this document and
the exact commit SHA it corresponds to have been reviewed.