Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 31 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

_No changes yet on the v0.11.x development branch._

## [0.11.0] - 2026-07-16

**Theme**: *The federal wave — three verified federal firsts on machine-readable rails.* v0.11.0 ships the re-cut Wave 1-2 scope of the v0.11 plan: **FedRAMP CR26 Security Decision Record emission** — `evidentia conmon ksi` emits the SDR `keySecurityIndicators` block (10 families / 46 KSIs) conformant to FedRAMP's official 2026-06-24 schemas, vendored at pinned upstream SHAs (re-verified at the schemas' 1.0.0 graduation) and drift-watched weekly — the **first production-grade open-source emitter** of the CR26 SDR format, and the first from any established tool; **OMB M-25-21 minimum-practice tracking** — structured per-practice status for the memo's seven §4(b) practices with CAIO waiver objects carrying the annual re-certification and 30-day OMB-report clocks, structure the federal AI Use Case Inventory lacks entirely; and **OMB M-25-22 acquisition-lifecycle tracking** — Evidentia's first procurement surface, modeling the memo's six §4 phases as auditable records with the §4(a) high-impact determination tie-in. The cycle's OSCAL 1.2.1 → 1.2.2 evaluation closed with a ratified **DEFER-WITH-TRIGGER** verdict (emitted documents stay on 1.2.1; adoption triggers armed), and a pre-release **claim-accuracy sweep** re-verified every public claim against primary sources (parity restated at the live 93.4%; machine-gated counts; first-mover registry updated with explicit caveats). Test suite: 4,947 passed; mypy strict clean; ruff clean.

**Deferred (ratified v0.12 plan re-cut, 2026-07-16 — see [`docs/releases/plans/v0.12-plan.md`](docs/releases/plans/v0.12-plan.md))**: Wave 4 phase 3 (EU-AI-Act ↔ ISO 42001 crosswalk) → v0.12-if-capacity; Wave 4 phases 1/2/4, Wave 3 DORA, and the medical-device traceability enrichment → v1.1; Waves 5-6 (OpenVEX/VSA, SARIF collector, auto-review) → post-1.0; arXiv preprint timing = open decision. The GUI parity pass for the five federal api-only verbs leads v0.12.

### Changed

- **FedRAMP CR26 vendored schemas re-synced to the upstream 1.0.0 graduation**
- **FedRAMP CR26 vendored schemas re-synced to the upstream 1.0.0 graduation** (#198)
(`FedRAMP/schemas` @ `ae0dc43e`, 2026-07-15 — caught by a manual drift probe
inside the weekly sentinel's blind window): the Security Decision Record
schema's `$schemaVersion` moved 0.1.0 → **1.0.0**, fixing the Public-Preview
Expand All @@ -21,7 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
The documented one-line cross-document `$ref` delta is retained — upstream
fix PR #4 remains unmerged; the 1.0.0 graduation did not include it.

- **Claim-accuracy sweep across the public docs** (pre-v0.11.0; every change
- **Claim-accuracy sweep across the public docs** (#197) (pre-v0.11.0; every change
traced to the 2026-07-15 primary-source verification pass): CLI↔GUI parity
claims recomputed from the manifest (98% → **93.4%**, 99 full / 7 api-only /
0 cli-only — README badge, `parity-coverage.md` regenerated, positioning,
Expand All @@ -43,10 +51,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
M-26-05 rescission of the M-22-18 self-attestation form, the v0.11
federal-wave surfaces added, resolved limitations pruned).

### Fixed

- **Pre-tag review hardening of the Wave-2 federal surfaces** (found by the
v0.11.0 `/pre-release-review` security fan-out, fixed before tag):
`ai-gov set-high-impact` no longer silently discards recorded M-25-21
practice status + CAIO waiver provenance when a later call amends the
determination's bases/rationale — the practices are carried forward per the
model's retention contract (API + CLI; regression tests on both surfaces).
`conmon ksi` now rejects duplicate KSI indicator keys in the status file
(previously last-wins-merged, silently dropping a block from the emitted
SDR — while still honoring legal YAML merge keys), warns when a
`--state-file` anchor keys a cadence slug that matches no
bundled cadence (its dates would otherwise be silently absent), and writes
`--out` atomically with a clean error contract instead of a raw traceback on
a missing/unwritable path. `PracticeWaiver.issued_by` and
`AIAcquisition.linked_system_id` gained the `max_length` bound every sibling
string field already carries.

### Added

- **OMB M-25-22 AI acquisition-lifecycle tracking — `evidentia ai-gov
acquisition`** (v0.11 Wave 2; spec ratified 2026-07-14, lifecycle phases
acquisition`** (#196) (v0.11 Wave 2; spec ratified 2026-07-14, lifecycle phases
verified verbatim against the memo text): Evidentia's first procurement
surface. `AIAcquisition` records track a procurement through the six §4
phases (Identification of Requirements → Market Research & Planning →
Expand All @@ -64,7 +90,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
`AI_ACQUISITION_PHASE_RECORDED` audit events.

- **OMB M-25-21 minimum-practice tracking — `evidentia ai-gov set-practice`**
(v0.11 Wave 2): fills the per-practice extension point reserved at
(#195) (v0.11 Wave 2): fills the per-practice extension point reserved at
v0.10.12. `OMBHighImpactAssessment` gains structured status for the seven
§4(b) minimum risk-management practices (practice headings verified
against the memo text), each recordable as implemented / in_progress /
Expand All @@ -80,7 +106,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
v0.10.12-era assessments load unchanged (the field defaults to empty —
reported as missing, never as satisfied).

- **FedRAMP CR26 KSI emission — `evidentia conmon ksi`** (v0.11 Wave 2,
- **FedRAMP CR26 KSI emission — `evidentia conmon ksi`** (#194) (v0.11 Wave 2,
target re-verified against the live CR26 stack + ratified 2026-07-14; see
the plan's §Wave 2 re-base record): emits the `keySecurityIndicators`
block of a CR26 **Security Decision Record** as a standalone JSON
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,5 @@ keywords:
- slsa
- python
license: Apache-2.0
version: 0.10.18
date-released: '2026-07-13'
version: 0.11.0
date-released: '2026-07-17'
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ For the full workspace (AI risk-statements, REST API, all collectors, MCP server
pip install 'evidentia[ai,api,collectors,mcp]'
```

Container: `docker pull ghcr.io/polycentric-labs/evidentia:v0.10.18` (cosign keyless OIDC + SLSA Provenance v1 verified).
Container: `docker pull ghcr.io/polycentric-labs/evidentia:v0.11.0` (cosign keyless OIDC + SLSA Provenance v1 verified).

See the [Getting Started wiki section](https://github.com/Polycentric-Labs/evidentia/wiki/Getting-Started) for air-gapped install, virtualenv setup, and full extras matrix.

Expand Down Expand Up @@ -121,12 +121,12 @@ See it first, no install — a self-hosted [asciinema](https://asciinema.org/) r

## Recent Releases

**v0.11.0 (2026-07-16)** — *The federal wave — three verified federal firsts on machine-readable rails*. **OMB M-25-22 AI acquisition-lifecycle tracking, `evidentia ai-gov acquisition`** (#196) (v0.11 Wave 2; spec ratified 2026-07-14, lifecycle phases verified verbatim against the memo text): Evidentia's first procurement surface.

**v0.10.18 (2026-07-14)** — *Container rebuild on a fresh hardened base*. **ROADMAP-currency gate** (`scripts/check_roadmap_currency.py`), the roadmap's status headings must agree with the CHANGELOG's shipped `## [X.Y.Z]` blocks: nothing PLANNED/RESERVED that has shipped, no SHIPPED entries inside a PLANNED cycle umbrella, exactly one open cycle, and the open cycle must link an on-disk plan doc.

**v0.10.17 (2026-07-09)** — *v0.10.x hardening close-out*. **Release-pipeline preflight dry-run**, `release.yml` now accepts a manual `workflow_dispatch` that runs the full pre-publish path (the SSOT gate suite + wheels + per-package SBOMs + the reproducible-build double-build + the container-built-from-local-wheels + the image smoke tests) **without publishing**, so the failure classes that previously surfaced only at tag time (a base/dep regression, a `uvx` exit-127, a `pip-compile` hash mismatch, the v0.10.14 / v0.10.15 ghost-tag failures) can be caught on-demand before a tag is cut.

**v0.10.16 (2026-07-02)** — *Engineering hardening + distroless container base — never ship a failed test again*. **Cryptography-native air-gap signing via DSSE/in-toto**, a binary-free, network-free signing path that works inside distroless and minimal-base containers.

Full release history: [`CHANGELOG.md`](CHANGELOG.md) | [GitHub Releases](https://github.com/Polycentric-Labs/evidentia/releases)

## Community & Governance
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ a vulnerability in Evidentia's own code.

| Version | Status | Reason |
|---------|--------|--------|
| **`0.10.18`** | ✅ **Supported** | Latest patch. See the [CHANGELOG](CHANGELOG.md) and the latest `docs/releases/reviews/security-review-*.md` for what shipped and the CVE posture at this release. |
| **`0.11.0`** | ✅ **Supported** | Latest patch. See the [CHANGELOG](CHANGELOG.md) and the latest `docs/releases/reviews/security-review-*.md` for what shipped and the CVE posture at this release. |
| Earlier patches | ❌ Deprecated | Pre-v1.0 single-supported-patch policy; upgrade to the latest patch. |
| Legacy `controlbridge*` packages | ❌ Yanked from PyPI | Every version of every legacy package was yanked at the v0.6.0 rename. Upgrade path documented in [`RENAMED.md`](docs/archive/RENAMED.md). |

Expand Down Expand Up @@ -172,7 +172,7 @@ Verify a release wheel:
pip install pypi-attestations
pypi-attestations verify pypi \
--repository https://github.com/Polycentric-Labs/evidentia \
"pypi:evidentia-0.10.18-py3-none-any.whl"
"pypi:evidentia-0.11.0-py3-none-any.whl"
```

If verification fails, **stop and report immediately** via the
Expand Down
4 changes: 2 additions & 2 deletions docker/Dockerfile.demo
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
# from cosign verification, NOT `:latest`):
# docker build -f docker/Dockerfile.demo \
# --build-arg BASE=ghcr.io/polycentric-labs/evidentia@sha256:<digest> \
# -t evidentia-demo:v0.10.18 .
# -t evidentia-demo:v0.11.0 .
#
# Smoke test (before the signed digest exists — BASE is overridable so the
# multi-stage build + the allowlist/refusal logic are testable against a bare
Expand All @@ -74,7 +74,7 @@
# docker run --rm --network none --read-only --tmpfs /tmp \
# --memory 512m --cpus 1 --pids-limit 256 \
# --security-opt no-new-privileges --cap-drop ALL \
# evidentia-demo:v0.10.18 doctor
# evidentia-demo:v0.11.0 doctor

# The signed release digest is the default BASE at deploy time. Declared here as a
# GLOBAL ARG (before the first FROM) so the final stage's `FROM ${BASE}` can
Expand Down
2 changes: 1 addition & 1 deletion docker/requirements.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
evidentia[gui]==0.10.18
evidentia[gui]==0.11.0
urllib3>=2.7.0
57 changes: 50 additions & 7 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Evidentia roadmap

**Last updated: v0.10.18 (planning, July 2026).**
**Last updated: v0.11.0 (planning, July 2026).**

> **Engineering practices** — how Evidentia is built, tested, and shipped (the
> PR-flow + merge-queue gate, atomic releases, supply-chain integrity, and the
Expand Down Expand Up @@ -2038,15 +2038,41 @@ DEFER-WITH-TRIGGER verdict and a same-day setuptools 83.0.0 fix
v0.11.0's boundary re-cuts to Waves 1–2. No package
(`packages/*/src`) code changes.

## v0.11 — Federal-compliance theme + AI governance — PLANNED
## v0.11 — Federal-compliance theme + AI governance — SHIPPED

**The open cycle** (opened 2026-07-09). Full plan:
Opened 2026-07-09; **closed 2026-07-16 with v0.11.0** (the re-cut
Wave 1–2 scope per the 2026-07-14 boundary re-cut — Wave 0 + the
hygiene track H1–H6 had shipped early inside v0.10.18). Full plan:
[`v0.11-plan.md`](releases/plans/v0.11-plan.md) — wave sequencing, the
cycle-hygiene track (the 2026-07 practice-delta adoptions + the
v0.10.17 deferred queue), the medical-device row split, and the
ratification asks. Sourced from Phase B audit v3 + integration plan
§"Per-release detailed integration plan" §v0.11. Substantive minor
(~6-8 weeks):
ratification record. The remaining planned waves carry the **ratified
2026-07-16 disposition** in
[`v0.12-plan.md`](releases/plans/v0.12-plan.md) (Wave 4 phase 3 →
v0.12-if-capacity; Wave 4 phases 1/2/4 + Wave 3 DORA + medical-device
traceability → v1.1; Waves 5–6 → post-1.0; arXiv preprint = open
decision).

### v0.11.0 — The federal wave — SHIPPED (released 2026-07-16)

Three verified federal firsts on machine-readable rails: **FedRAMP
CR26 SDR emission** (`evidentia conmon ksi` — the SDR
`keySecurityIndicators` block, 10 families / 46 KSIs, conformant to
the official 2026-06-24 schemas vendored at pinned SHAs and re-verified
at their 1.0.0 graduation; weekly `fedramp-schema-watch` drift
sentinel; the first production-grade OSS emitter of the format),
**OMB M-25-21 minimum-practice tracking** (`ai-gov set-practice` —
seven §4(b) practices with CAIO waiver objects carrying the annual
re-cert + 30-day OMB-report clocks), and **OMB M-25-22
acquisition-lifecycle tracking** (`ai-gov acquisition` — the six §4
phases with the §4(a) high-impact tie-in). Plus the ratified OSCAL
1.2.2 DEFER-WITH-TRIGGER verdict and a pre-release claim-accuracy
sweep (parity restated at the live 93.4%; first-mover registry updated
with explicit caveats). Test suite 4,939 passed. The five federal
api-only parity rows lead the v0.12 GUI pass.

The feature bullets below are the cycle's planning record; items not
shipped in v0.11.0 carry the ratified disposition above.

- **KSI (Key Security Indicators) emission** — wires as third output
mode on `evidentia conmon` alongside the 7 bundled cadences shipped
Expand Down Expand Up @@ -2237,7 +2263,7 @@ engineering-hardening batch addressed all three:
maintainer — checked at PRR Row 21). P3 FIPS container variant stays gated on
the federal-SI OpenPGP-interop answer.

### Medical-device GRC feature line (v0.11 → v1.1+) — PLANNED (web-grounded research 2026-06-17)
### Medical-device GRC feature line (v1.1+; re-cut 2026-07-16 from v0.11) — RESERVED (web-grounded research 2026-06-17)

The medical-device-security direction the v0.10.10 FDA Section 524B catalogs opened, scanned + validated in a multi-angle web-grounded research pass. **Each feature gets a dedicated `polycentric-labcoat` research fleet at build-time** — the entries below are the high-level scan + positioning, not build specs. Effort and tier are planning-grade. The throughline: **don't rebuild commodity layers (STRIDE authoring, CBOM scanners) — ingest them; the uncontested slice is the open, signed, OSCAL/BOM-emitting evidence wrapper.**

Expand Down Expand Up @@ -2280,6 +2306,23 @@ Items deferred from Phase B audit v3 + integration plan §"v1.1+":
- Architectural Tier 3 items from Phase B audit v3 (control-chart
script ships skill-side; dynamic-install eBPF scan; etc.).

## v0.12 — Pre-1.0 hardening + GUI parity — PLANNED

**The open cycle** (ratified 2026-07-16 at the v0.11.0 release prep).
Full plan: [`v0.12-plan.md`](releases/plans/v0.12-plan.md) — the
ratified disposition of the remaining v0.11 waves plus the LEAN v0.12
scope: (1) the GUI parity pass for the five v0.11 federal api-only
verbs (+ the `version`/`init` exempt-reclassification decision);
(2) deprecation completions ahead of the v1.0.0 removals;
(3) api-stability freeze-prep (the surface audit the v1.0 stability
promise formalizes); (4) CR26 emitter coverage extension only if cheap
(FRR statements next); (5) the CR26-fragility watches (upstream PR #4
delta drop, additionalProperties tightening, CR27 dated-fileset MAJOR,
the competitive-flip playbook, and the fresh-drift-probe-at-release
lesson). The v1.0 operator self-test is scheduled at v0.12 cycle-open
per [`v1.0-transition.md`](v1.0-transition.md) so reviewer outreach can
start while v0.12 builds.

## v1.0 — Federal compliance shipped + API stability — RESERVED

See [`docs/v1.0-transition.md`](v1.0-transition.md) for the full
Expand Down
29 changes: 28 additions & 1 deletion docs/capability-matrix.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Evidentia capability matrix (v0.7.0 baseline · re-validated through v0.10.12)
# Evidentia capability matrix (v0.7.0 baseline · re-validated through v0.11.0)

> Step-4 deliverable from the v0.7.0 comprehensive review (2026-04-25).
> Functional + code-review + adversarial smoke testing of every public
Expand All @@ -13,6 +13,33 @@

---

## Re-validation snapshot — 2026-07-16 (v0.11.0 PRE-TAG) — the federal wave

v0.11.0 ships the re-cut Wave 1–2 scope: FedRAMP CR26 SDR emission, OMB
M-25-21 minimum-practice tracking, and OMB M-25-22 acquisition-lifecycle
tracking, plus the ratified OSCAL 1.2.2 DEFER-WITH-TRIGGER verdict and a
pre-release claim-accuracy sweep. Unchanged subsystems are REUSED from the
v0.10.x matrices; this snapshot covers the federal-wave delta.

### Surface delta — new in v0.11.0

| # | New surface | Kind | Verification |
|---|---|---|---|
| 1 | `evidentia conmon ksi` — CR26 Security Decision Record `keySecurityIndicators` emission (10 families / 46 KSIs; schema-valid full-SDR skeleton; official 2026-06-24 schemas vendored at pinned SHAs, re-verified at their 1.0.0 graduation) | CLI | 26 emitter tests incl. jsonschema round-trip against the vendored schemas; emitted output re-validated against upstream 1.0.0 at the graduation re-vendor; the 5 no-base-`statement` KSIs + 2 no-800-53-mapping KSIs covered explicitly |
| 2 | `ai-gov set-practice` — M-25-21 seven §4(b) practices; a WAIVED practice captures a CAIO waiver object recording the annual re-certification + 30-day OMB-report dates (the `waiver_certification_due` / `waiver_omb_report_overdue` clock helpers evaluate them; surfacing them in a verb/console is a v0.12 item) | CLI/API | 28 tests; waived-status model validator (waiver fields enforced); practice headings verified against the memo PDF; RBAC write-gated |
| 3 | `ai-gov acquisition register\|list\|show\|set-phase` — M-25-22 six §4 lifecycle phases, §4(a) high-impact tie-in | CLI/API | 26 tests; `AIAcquisitionStore` = registry-store clone (traversal guard, atomic writes, `EVIDENTIA_AI_ACQUISITION_DIR` isolation); phases verified verbatim against the memo |
| 4 | `fedramp-ksi-2026` catalog (46 indicators) + 800-53 rev5 crosswalk | Catalog | catalog-loader + crosswalk unit tests; `gen_fedramp_ksi.py --check` re-derives both from the pinned `FedRAMP/rules` dataset (2026.07.14.01) on demand (run at each re-vendor; not yet a standing CI gate) |
| 5 | `fedramp-schema-watch.yml` weekly drift sentinel | CI | Fired-live lesson recorded: upstream moved inside the blind window on 2026-07-15 (SDR 0.1.0 → 1.0.0); a fresh drift probe at the release gate caught it and the schemas were re-vendored pre-tag |

### Parity baseline (G27 cross-surface walk)

`check_parity` is green on all 5 checks. Counts: **99 full / 7 api-only /
0 cli-only / 11 exempt = 93.4% GUI coverage**. The 7 api-only rows are
expected and documented: the five v0.11 federal verbs (`ai-gov
set-practice` + the four `ai-gov acquisition` verbs — the GUI pass leads
v0.12) plus the two legacy chrome-surfaced utilities (`version`, `init`,
exempt-reclassification decision queued in the v0.12 plan).

## Re-validation snapshot — 2026-06-23 (v0.10.12 PRE-TAG) — full CLI↔GUI parity build-out + OMB M-25-21

v0.10.12 closes the CLI↔GUI parity programme opened in v0.10.8: GUI coverage of
Expand Down
Loading
Loading