Numbered errata against published normative documents, per the governance policy. An erratum may clarify prose, correct non-normative text, or add conformance cases. No erratum may change a verdict of an existing certified corpus: any change that would alter such an accept/reject outcome is a contract-major change and follows the evolution contract, never this registry. The one exception is a soundness repair (governance § Soundness repairs): it changes verdicts only from accept to reject on producer-impossible inputs, adds its cases in a new additive corpus, and leaves every existing corpus verdict unchanged.

Each entry records: number, date, affected document and versions, the correction, and its conformance-corpus impact (which must be additive or none).

#DateDocumentCorrectionCorpus impact
12026-08-24docs/protocol-v1.md and the standalone/embedded selector schemas as published in package versions 0.1.0–0.1.2An all selector is valid on exactly the three recognized selector member sets; path and value/values are inert when present. No other member set is accepted.None: corpus bytes, 283 verdicts, and the certified index SHA are unchanged.
E-2026-09-17-12026-09-17README.md (published Hex 0.4.1)The 0.4.1 package's README records checksum 8544a9ff…358a9 (the pre-publish mix hex.build inner-tar checksum) where the registry checksum belongs. The 0.4.1 registry checksum is 4648f545f681d540c965d460411133cf6188066439dbc37fc869288f9fcad1cf (read back from the Hex release API); README on main is corrected. Consumers verify package identity against the registry, not the shipped README string.none
22026-10-12spec/bap-v1.md, spec/bap-v2.md, and the local-loopback, role-attestation, and content-assertion profile specifications, as published through package version 0.7.0Soundness repair: Ed25519 verification is strict. Point encodings must be canonical, small-order keys and R values are rejected, S must be below the group order, and the cofactorless equation is mandatory; public keys must pass key acceptance; hosts must check torsion-freedom at enrollment, trust install, and deny-list comparison. See the security advisory.Additive: the new bap-strict-ed25519/1 corpus (2,410 cases; index SHA-256 732117dfe1881b553998126a9524a95bfb1171257e388d5430a0a099f2287cb9). Every existing corpus index, its cases, and its verdicts are unchanged.
32026-10-14spec/bap-v1.md § 16 (and its docs/protocol-v1.md view), spec/bap-v2.md, spec/bap-v3.md § 3.2, and the local-loopback, role-attestation, and content-assertion profile specifications, as published through package version 0.8.0Compact assembly and anchored-export encoding are producer surfaces: they frame a signature and verify none (§ 16 lists them among the public surfaces because they are public). Each MUST refuse a signature that no conforming signer emits: under contract-major 3, r or s outside 0 < r < n, 0 < s ≤ ⌊n/2⌋; under Ed25519, S ≥ L, or R non-canonical or of small order. Each MUST emit accepted signature bytes unchanged and never normalizes. Every BAP verifier already rejected these signatures, so no verification verdict changes. Requirement ids REQ1-SIGNING-ed25519-producer-canonical, REQ2-SIGNING-ed25519-producer-canonical, and REQ3-SIGNING-producer-canonical; the sibling profiles' assembly requirements carry the same clause.Additive: the new bap-producer-canonicality/1 corpus (75 cases; index SHA-256 99ee6fbbf32758b03d4630647f721d8d4e349f0628d860493d667fe6e762c601). Every existing corpus index, its cases, and its verdicts are unchanged.
42026-10-14spec/bap-v1.md § 14.1 (and its docs/protocol-v1.md view), as published through package version 0.8.0Editorial: the torsion paragraph said one secret can sign under "up to eight distinct mixed-order encodings" of its key. The eight encodings A + T over the eight small-order points T include T = O, the prime-order key itself, so they are the prime-order key and up to seven mixed-order variants. The requirement (REQ1-HOST-ed25519-torsion-free) and every verdict are unchanged.None: no corpus, case, or verdict changes.
52026-10-14spec/bap-v1.md (and its docs/protocol-v1.md view), spec/bap-v2.md, and spec/bap-v3.md, as published through package version 0.8.0Editorial: section anchors were written as kramdown {#id} heading attributes, which HexDocs and GitHub print as literal text, and spec/bap-v1.md cross-references as (#id), which they do not link, so links such as bap-v1.md#strict-ed25519 did not resolve. Each anchor is now an explicit <a id="…"></a> element before its heading, with the same ids, and each cross-reference is a Markdown link to it. No heading wording, requirement, requirement id, or verdict changes.None: no corpus, case, or verdict changes.
62026-11-09spec/bap-v1.md § 7 and § 12 (and its docs/protocol-v1.md view), spec/bap-v2.md § 4, and spec/bap-v3.md § 4, as published through package version 0.9.1Soundness repair: grant decode on every contract-major rejects an equals value or one_of member that contains a float-tagged number equal to zero at any depth, whatever its sign or spelling (0.0, -0.0, -0e0, an underflowing 1e-400). Range bounds and inert all members are unchanged; range comparison treats −0.0 and 0.0 as equal. RFC 8785 writes a float zero as 0, which decodes integer-tagged, so no conforming producer emits one; verifiers accept non-JCS payload bytes, and conforming verifiers disagreed on whether 0.0 and -0.0 are the same selector value. The grant producer refuses any float-tagged integral selector value, because its JCS bytes would decode integer-tagged. Requirement ids REQ1/REQ2/REQ3-SELECTOR-float-zero, REQ3-SELECTOR-range-signed-zero, and REQ1/REQ2/REQ3-SIGNING-integral-float-selector; the REQ2-SELECTOR-range-signed-zero evidence is corrected. Signer-bound: every affected value sits inside issuer-signed bytes, so under governance § Soundness repairs condition 6 this entry is the disclosure and there is no separate advisory. Affected releases, which stay installable and return the pre-repair verdict: bounded_authority_protocol 0.9.1 and earlier on Hex; @bounded-authority-protocol/verifier 1.0.0 and earlier on npm; @bounded-authority-protocol/signer 1.0.0 and earlier on npm (producer refusal only); bounded_authority_report_adapter 0.12.0 and earlier on Hex (producer refusal only, through its protocol ~> 0.9.1 requirement).Additive: the new bap-selector-float-zero/1 corpus (161 cases; index SHA-256 97fd7a99cdbf3acc0a78f5ba1c6556e23a63e0ad66f533e31fd69f82dc5f3003). Every existing corpus index, its cases, and its verdicts are unchanged.