Commit Graph

4 Commits

Author SHA1 Message Date
Binh c982f0a0a2 feat(comparison): register the Comparison Engine and relocate the Phase 8 scan-run comparison
Move compareScanRuns, comparison normalization and local comparison rules
unchanged to src/evaluation/scan-run-comparison so src/comparison can become
the Comparison Engine; only import paths change. Register the engine paths,
document it in AGENTS.md and onboarding, extend the boundary test and add the
permanent on/off invariance test. Record the decision and staging in the plan.
2026-10-13 11:34:10 +02:00
Binh c5edcd9aa0 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-12 10:34:43 +02:00
Michael 0fe283d68f 2.9.0: privacy-compliant Result DB, materialized rows and disclosure policy 3.4.0
- Result DB is checked and stored on creation (migration 024, assessor_result_db_rows)
  with a content-free per-row trace, per-client identity guard and Open original in Work
- Disclosure policy 3.4.0: review state no longer revealed via withheld-field trace,
  per-finding scanner scores withheld, CIS numbers keep all seven levels
- Less over-redaction: "Limited" is no legal form, attached versions (Tls1.2, v1.0),
  Windows 95, 2012-R2, step/option/page references, documented Microsoft GUIDs and
  documented vendor values in the recommendation field stay
- Maester first read shows the native result statement verbatim

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 14:29:52 +02:00
Tronth c473b0c94e Initial import 2026-08-24 09:16:16 +02:00