# v0.14.4 — Composition Surfaces

PEAC v0.14.4 is a composition-surfaces release. It documents how the
PEAC records layer composes with adjacent runtimes, verifiers,
execution surfaces, evaluation platforms, harnesses, agent-to-agent
gateways, and the Model Context Protocol, without introducing new
protocol semantics. The wire format, signing envelope, public schema,
registered extension groups, receipt types, conformance sections,
public API, CLI surface, and package-publication surface all stay
exactly where they were in v0.14.3.

Wire format unchanged. Public schema unchanged. No new registry
entries, type URIs, conformance sections, CLI surfaces, or
package-publication surfaces.

## Highlights

- Five new operator-facing composition and verification recipes under
  `docs/SOLUTIONS/`.
- One new runnable composition example package under
  `examples/runtime-composition-records/`.
- One new committed-fixture .NET quickstart verifier under
  `examples/dotnet-quickstart/`, demonstrating offline verification of
  PEAC interaction records from a clean clone on the current supported
  .NET runtime line, with one direct cryptography dependency. This is
  an example, not a PEAC .NET SDK; there is no NuGet package and no
  `sdks/dotnet/` directory.
- Go middleware adapter parity for `chi`: a per-adapter README and
  four localized invariants (Config alias, default-config match,
  required verifier returns 401, optional verifier passes through).
- Five new doc-truth test files under `tests/tooling/` and one new
  smoke test enforce the public prose, scope discipline, boundary
  statements, and runnable example behavior added in this release.
- Conservative compatibility-matrix and example-catalog rows that
  improve discoverability without making product claims.

## Composition surfaces

### Runtime governance composition

`docs/SOLUTIONS/agt-peac-composition.md` documents how a runtime
governance toolkit and PEAC compose. The runtime decides; PEAC records
what the runtime reported. The recipe uses a generic
`normalizeRuntimeGovernanceEvent` flow with a vendor-neutral example
fixture set. A companion runnable example lives at
`examples/runtime-composition-records/` with three composition
fixtures (policy decision, authority scope, lifecycle event).

### Edge verification

`docs/SOLUTIONS/verify-at-the-edge.md` documents how to verify PEAC
records inside a Fetch-compatible edge runtime with bounded body,
key, timeout, and cache behavior. The recipe leads with a generic
edge pattern and lists provider-specific stability classes in a
single committed-reference-surface row.

### Evaluation and harness records

`docs/SOLUTIONS/eval-platform-records.md` and
`docs/SOLUTIONS/harness-records-quickstart.md` document how an
external evaluation platform or deterministic harness can emit
portable signed records of its observed events using existing
`peac emit lifecycle` and `peac record command` CLI surfaces and
existing `lifecycle-observation`, `cli-execution`, and `agent-action`
extension namespaces. No new CLI verb is introduced.

### MCP composition

`docs/SOLUTIONS/mcp-composition.md` documents how the PEAC records
layer composes with the Model Context Protocol. The composition is
record-only: PEAC reads what the MCP server, client, or tool
integration reported, signs an interaction record, and stops there.
The MCP runtime keeps owning transport, registry, auth, conformance,
and process management. The recipe cites four merged MCP SEPs by
exact number: 2468 (issuer parameter in MCP auth responses), 2484
(conformance tests for Standards Track SEPs before Final), 2577
(deprecation of Roots, Sampling, and Logging), and 2106 (tool input
and output schemas aligned with JSON Schema 2020-12).

## Developer examples and adapter parity

### .NET quickstart verifier

`examples/dotnet-quickstart/` is a committed-fixture, offline .NET
example targeting the current supported LTS runtime. It verifies six
committed PEAC interaction records from
`examples/dotnet-quickstart/fixtures/{pubkey.json, records.json}` by
parsing the compact JWS, checking the JOSE header (typ, alg, kid;
rejecting unsupported header parameters), verifying the Ed25519
signature, and cross-checking the payload `iss`, `kind`, `type`, and
`agent-action` extension `event_kind` claims against the index. The
project has one direct NuGet PackageReference for the Ed25519
verification path; restore may also fetch transitive native
dependencies. The example is not a PEAC .NET SDK.

### Go middleware chi parity

`sdks/go/middleware/chi/` now ships a per-adapter README and
`chi_test.go`, matching the file shape of the existing Go middleware
adapters. The chi adapter source itself is unchanged. The shared
parity harness under `sdks/go/middleware/paritytest/` continues to
enforce byte-identical responses across chi, echo, and nethttp.

## Public surface

No new public package names. No new package-publication surface. No
schema, registry, type URI, conformance ID, public API, CLI surface,
or wire/signing surface added or removed.

The compatibility matrix gains conservative rows for the .NET
quickstart example (marked examples only; not a PEAC .NET SDK; no
NuGet package) and cites the new composition guides on existing
MCP and runtime-governance rows. The examples catalog gains the
dotnet-quickstart row.

`.prettierignore` is extended to cover `**/bin/**` and `**/obj/**`
so contributors who build the .NET example locally do not trip
formatting checks on the generated build-output JSON files.

## Compatibility

| Surface                             | Status                                                               |
| ----------------------------------- | -------------------------------------------------------------------- |
| Wire 0.2 (`interaction-record+jwt`) | unchanged                                                            |
| Public schema (`@peac/schema`)      | unchanged                                                            |
| Registered extension groups         | unchanged (19)                                                       |
| Registered receipt types            | unchanged (61)                                                       |
| Conformance sections                | unchanged (32)                                                       |
| Conformance requirement IDs         | unchanged (290)                                                      |
| Build targets                       | 107                                                                  |
| Published package names             | unchanged (36 package names)                                         |
| Node.js minimum                     | unchanged (`>=22.0.0`)                                               |
| `@modelcontextprotocol/sdk` pin     | unchanged (no upgrade in this release)                               |
| Go SDK                              | unchanged core; chi adapter gains README + per-adapter tests         |
| .NET                                | examples only; no PEAC .NET SDK; no NuGet package; no `sdks/dotnet/` |

The release theme is composition over absorption: PEAC composes with
runtime governance toolkits, agent-to-agent gateways, evaluation
platforms, deterministic harnesses, edge verifier surfaces, and MCP
servers without becoming any of them.

## Migration

No migration required. v0.14.3 records remain verifiable under
v0.14.4; v0.14.4 records remain verifiable under v0.14.3 verifiers
because the wire envelope, signing path, schema, registries, and
public API are unchanged.

Operators who want the new composition guides can update local clones
to v0.14.4 to pick up the new `docs/SOLUTIONS/` recipes and the
.NET example. No package upgrade is required to verify records
produced by another v0.14.x peer.

## Boundary

PEAC records portable signed interaction records across systems.

PEAC does not host, route, transport, authenticate, authorize,
orchestrate, score, monitor, or replace any composing runtime,
adapter, gateway, evaluation platform, harness, verifier, or
specification authority. PEAC composes with these systems by recording
what they reported; their decisions remain theirs.
