# DS4 Context Engine 0.3.0-alpha.3

Status: published prerelease on 2026-08-30; tag `v0.3.0-alpha.3`.

This coordinated prerelease hardens proactive compaction after investigation of an intermittent `unsupported-exact-value` fallback. It preserves strict exact-value grounding and Pi fallback behavior while making repair failures diagnosable without exposing disputed source text.

## Fixed

- Tells the summary model to verify every complete backticked span verbatim and omit the whole bullet when the span is unsupported.
- Distinguishes bounded repair outcomes as `unsupported-location`, `too-many-bullets`, `removal-too-large`, and `post-prune-invalid`.
- Reports only compaction stage, validation issue code, categorical repair status, unsupported-span count, and affected-bullet count.
- Keeps rejected exact values out of logs, UI notifications, and diagnostics because they may contain sensitive source material.
- Preserves the existing limit of eight affected bullets, the 25% removal ceiling, strict second validation, and fallback to Pi default compaction.

No verbatim-comparison false positive was reproduced. A remaining unrepaired `unsupported-exact-value` result therefore continues to indicate unsupported prose, exceeded repair bounds, or an invalid post-prune summary rather than being accepted speculatively.

## Compatibility and persistence

The summary contract and canonical compaction storage format are unchanged. Pi JSONL remains canonical and append-only; an invalid DS4 summary is never installed. SQLite remains a disposable projection. Schema 15, migrations 1–15, `ds4-context-config-v1`, `runtime-adapter-v1`, `ds4-context-persistence-tool-v1`, and `ds4-context-persistence-result-v1` are unchanged.

The change adds metadata-only diagnostic categories and no model-callable action, persistence mutation, default-on feature, or weaker validation path.

## Package/version policy

The coordinated version is `0.3.0-alpha.3` for:

```text
ds4-context-core
ds4-context-reference-adapter
ds4-context-engine
```

Both adapters depend exactly on `ds4-context-core@0.3.0-alpha.3`. The packages were published manually under the explicit npm `alpha` dist-tag while `latest` remains `0.2.0`. GitHub Actions remains validation-only with OIDC and package-write permissions denied.

## Validation evidence

Local candidate verification on Node.js `26.5.1`:

- `npm ci`: passed.
- `npm run check`: 64 files and 288 tests passed.
- Focused compaction coverage: prompt grounding, bounded repair categories, second validation, privacy-safe diagnostics, and Pi fallback passed.
- `npm run quality:compare`: candidate quality `0.9875` versus baseline `0.808156`.
- `npm run schema:context-persistence`: 1,197 bytes and 300 estimated tokens; below the 1,500 absolute and 320 relative limits.
- `npm run latency:check -- <exact ds4-context-core@0.1.2>`: passed with ratio `1.052586`, at or below `1.10`.
- `npm run pack:check`: verified core (203 files), reference adapter (7 files), and Pi adapter (60 files) in a clean consumer.
- `npm pack --dry-run --json` for all three packages: passed with the same bounded inventories.
- The committed candidate was replayed from detached clean checkout `3e7bb32`; `npm ci`, the 64-file/288-test suite, quality, schema, package verification, and `git diff --check` passed.
- `git diff --check`: passed.
- Protected CI, compatibility golden, Pi fixture, migration, canonical Pin/Memory, and persistence-tool contract files: unchanged.

- `npm run registry:check -- 0.3.0-alpha.3`: passed against all three exact published versions; `alpha` resolves to `0.3.0-alpha.3` and `latest` remains `0.2.0` for every package.

Exact registry verification passed before the annotated tag and GitHub prerelease were created.

## Documentation

- [`../COMPACTION.md`](../COMPACTION.md)
- [`../PRIVACY.md`](../PRIVACY.md)
- [`../RELEASING.md`](../RELEASING.md)
- [`0.3.0-alpha.2.md`](0.3.0-alpha.2.md)
