Release 2.23.0 (Phase 13F, BSI Grundschutz++ stage 2).
- Map rules directly to BSI Kernel requirements from a dedicated BSI
corpus in Qdrant; mappings and decisions carry a framework
(migration 029, verified backup before applying).
- Compare directly accepted BSI requirements with those derived from
accepted ISO controls (Consistent / Inconsistent / No ISO reference)
in a new "ISO <-> BSI review" tile in the Client Info Compliance tab,
with Accept/Reject and "Mark reviewed" per fingerprint.
- Hybrid retrieval for ISO and BSI: German restatement of the public
query, dense English + dense German + German BM25 fused by
reciprocal rank; BSI skips BES/DLS/GEB/PERS and sends 16 candidates.
- ISO prompt 1.3.0 gives the model the full ISO/IEC 27002 control text
(never sent to the browser).
- Auto-accept only the first two strong proposals (primary, high or
medium confidence).
- Recognize Purple Knight scoped tool ids and SI indicator ids in the
mapping query.
- Rename Result DB "Map all ISO controls" to "Compliance mapping" with
ISO and BSI batches; "Mapping history" lists ISO and BSI runs.
- Data Hub BSI tile shows the BSI search index state and can build or
rebuild it.
- Update AGENTS.md and the implementation plan with these decisions.
- Move AI overview and privacy-safe JSON export into Compliance Engine
- Add ISO control and theme facets to Work, including GPO settings
- Enrich ISO queries with baseline context, Windows code meanings and technical explanations
- Count GPO settings once and preserve editable decisions across mapping runs
- Fix GPO mapping version conflicts and backup domain identity resolution
- Add regression coverage and update architecture and reimport documentation
Extract the regulatory ISO control mapping from the Core into the
Compliance Engine (src/compliance, server/compliance, tests/compliance).
- Fix ISO mapping after the Result DB privacy merge: look up a finding's
Result DB row scoped to its project instead of comparing a stripped
project id.
- Engine reads the Core only through ComplianceReadPort and writes only
its own ComplianceStore (existing migration 026 tables, own pool);
engine writes no longer advance the Core revision.
- Engines popup gains Compliance Engine; switched off it shows nothing
and sends no requests. Permanent on/off invariance test.
- Map ISO controls opens a window like Accepted Risk; accepted controls
appear as an ISO controls section in the Finding Reader and as tiles
below the Context heatmap in Client Info (drill-down into Work).
- First two proposals of a finished mapping are accepted automatically
(provisional user decision); existing decisions are never overridden.
- Activity log names Compliance Engine work, keeps running mappings,
batches and corpus embedding until the backend ends them, and no
longer logs repeated status checks.
- Data Flow diagram shows the Compliance Engine.
- Core guard treats a bare engine folder name as engine path; new guard
area test.