# v0.8.4 Release Notes

## Authority fetch diagnostics

`0.8.4` adds a package-visible, finite `bindingReason` to the blocked public
authority-fetch result. The verifier still exposes only the existing bounded
`binding-mismatch` state; the reason is one of `artifact`, `package-version`,
`source`, `enrollment`, `run`, `signer`, `freshness`, `consumption`,
`verification`, or `unknown`.

The result is nonreflective: receipt values, diagnostic paths, local paths,
tokens, URLs, raw verifier output, and artifact contents never cross the public
boundary. The trusted/unconsumed fetch path, one public Finish consumption, and
immediate replay rejection are unchanged.

## Conditional Runtime Context

The existing `runtimeInjection` opt-in now delivers eligible target context
only after a tool result is available. The payload is rendered from ordered
semantic sections rather than the legacy block. A PH-owned tool metadata marker
must survive into the same-session message collection before tool delivery is
confirmed; otherwise the semantic payload falls back to model input. Section
digests deduplicate independently, and pending/session state remains bounded
with lifecycle cleanup rather than growing without a limit.

The additive `phase0.runtime-context.1` evidence is metadata-only and records
delivery state plus digests/counts. It never stores prompt, source, rule, or
context bodies, and user-authored marker text is not observation proof. The
feature remains default-off and does not change workflow, Finish, authority,
or product-routing behavior.

## Version boundary

`0.8.3` is published and immutable. This `0.8.4` tree is an unpublished source
candidate and makes no registry, tag, dist-tag, GitHub release, or publication
claim. It requires fresh package and hosted gates before any release action.
