Commit Graph

8 Commits

Author SHA1 Message Date
Binh 1dd2164a85 feat(comparison): serve the timeslot comparison through a read-only port
Add the Comparison Engine read port, a Core-owned adapter that loads each
timeslot as Work reads it (scoped scanner runs, rolled-up GPO verdicts, backup
creation time only) and GET /projects/:id/timeslot-comparison with validation,
a concurrent-change guard and an off switch. The API client gains an
engine-free getTimeslotComparison and the activity label.
2026-10-14 11:57:09 +02:00
Binh 6a784a7626 feat(compliance): direct BSI mapping, ISO/BSI review and hybrid search
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.
2026-10-14 11:54:49 +02:00
Binh bc9a439b91 feat(compliance): preload Compliance tab and fix AI overview generation
Client Info now loads the Compliance tab overview when a timeslot opens, so the first switch to the tab shows it at once.

AI overview fixes:
- drop references to IDs that are not in the input instead of failing the run
- keep source IDs when chunked analyses are consolidated (prompt version 1.3.0)
- allow CIS rule numbers and other address-like values from the input in the email/IP check
- remove the count limit for questions and assumptions; the panel shows ten with a Show all toggle
- label AI overview requests as Compliance Engine in the activity log and keep one Generating AI overview entry open for the whole run

The product version stays unchanged.

Core-Release: Platform, Presentation
2026-10-14 11:54:48 +02:00
Binh 6570d6d64c 2.22.0: BSI Grundschutz++ derived from ISO mappings
Compliance Engine stage 1 for BSI Grundschutz++ (Kernel requirements only):
- Pinned snapshots of the BSI Kernel catalog and the official ISO 27001
  Annex A -> Grundschutz++ mapping with source URL, SHA-256 and CC BY-SA
  attribution, generated by server/compliance/update-bsi-assets.mjs.
- Requirements are derived from accepted ISO controls, never stored as
  decisions; missing mapping targets are reported.
- Client Info Compliance tab: BSI Grundschutz++ tile and Results window.
- Finding Reader: collapsed BSI requirements section grouped by ISO control.
- Work: BSI requirement and BSI practice facets.
- Data Hub: BSI catalog tile with Update from BSI and Use bundled catalog;
  new outbound target documented in SECURITY.md.
2026-10-14 11:54:47 +02:00
Binh 0eba6bf2b4 feat: extend Compliance Engine and ISO workflows for v2.19.0
- 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
2026-10-14 11:53:35 +02:00
Binh c0afbb14e0 2.18.0: Compliance Engine for ISO control mapping
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.
2026-10-14 11:53:35 +02:00
Michael 614ac1b147 Backup 2026-10-11 03:33:25 +02:00
Michael ec0d9f2d3e Context Engine + Backup Commit - not ready yet! 2026-10-01 18:05:02 +02:00