# v0.14.0 — Bounded Validation Gate

**Status:** Pre-release. Final release metadata is recorded in `docs/releases/facts.json`.

Wire 0.2 issuance and local verification now route through the
bounded validation gate. The previous direct-canonical admission
path remains available as an internal rollback path.

Public API: unchanged.
Wire format: unchanged.
Package surface: unchanged.
Extension keys: unchanged.
Default observable behavior: unchanged.

This release makes the internal rollback path meaningful while
preserving byte-equivalent behavior across the covered runtime matrix.

## Highlights

- **Bounded validation path is the primary internal admission path.**
  `@peac/protocol` `issue()` and `verifyLocal()` route through the
  bounded validation gate by default. The previous direct-canonical
  admission path remains available as the internal rollback path.
  Both paths produce byte-equivalent public outputs across the
  covered runtime matrix.
- **Internal rollback flag is now meaningful.** Both flag values
  exercise different internal admission paths. The flag exists for
  diagnostic and rollback purposes; both branches are tested on
  every protocol-touching change by the rollback-path CI matrix and
  re-run as a publish-time preflight at the tagged SHA.
- **Wire 0.1 verifier unaffected.** `verifyReceipt()` is not routed
  through the bounded validation gate; the gate is keyed on Wire 0.2
  claim shapes and does not apply to Wire 0.1.

## Operator references

- The version-specific operator runbook for the active rollback
  path is at [`docs/diagnostics/ROLLBACK-v0.14.0.md`](../diagnostics/ROLLBACK-v0.14.0.md).
- The release-neutral runbook for the rollback flag itself is at
  [`docs/diagnostics/ROLLBACK-PATH.md`](../diagnostics/ROLLBACK-PATH.md).
- The internal-only flags table in
  [`docs/STABILITY-CONTRACT.md`](../STABILITY-CONTRACT.md) describes
  the post-flip semantics of the rollback flag.
- The resource-limit invariants for verifier-bearing paths are at
  [`docs/specs/RESOURCE-LIMITS.md`](../specs/RESOURCE-LIMITS.md).

## Verification

- Dual-mode protocol test suite runs under both rollback-path modes
  on every protocol-touching change. Both halves green is the gate.
- Byte-equivalence assertions in the rollback-path tests cover
  deterministic issuance, local verification, and admission-rejection
  shapes.
- Publish-time release-gate matrix re-runs the rollback-path matrix
  at the tagged SHA before the publish step proceeds (4 cells:
  Node 22 + Node 24 LTS × rollback flag 0 / 1).

## Distribution

- npm `next` only. No `latest` promotion in this release.
- GitHub Release authored by maintainer at the tag, marked as
  prerelease.

## What did NOT change

- No public API change.
- No wire-format change. The `peac-receipt/0.1` envelope and the
  `interaction-record+jwt` JWS `typ` are unchanged.
- No package-surface change. The 36-package publish manifest is
  unchanged.
- No extension-key change.
- No new emitted public error code on the primary admission path.
- No OpenAPI structural change. `info.version` remains at the
  current contract level.
- No reference verifier `POST /v1/verify` response-shape change.
