Commit Graph

7 Commits

Author SHA1 Message Date
Binh cedfccc903 fix(comparison): compare real timeslots (2.26.1)
Split runs imported from several scanners into one source per file scanner
and pair several sources of one scanner by verified scope. On user decisions:
the timeslot order is the time basis (a stated report or backup time only
blocks when B is not newer), a PingCastle rule absent from a complete report
of the same domain and engine version counts as remediated (profile contract
1.1.0), and one report per scanner and timeslot without a stated scope uses
the client as scope. Detail-link and sanitizing diagnostics no longer block;
the scanner score delta uses the engine's verified source pairs.
2026-10-14 11:57:28 +02:00
Binh 522d0b47f7 feat(comparison): Compare tab, Work Change facet and Finding Reader section (2.26.0)
Register src/features/comparison as the Comparison Engine UI path and wire its
extension points: the Engines popup entry, the Client Info Compare tab (A/B
selection, score delta over comparable sources, change counts, source table),
the Work Change facet before Source: Scan (only after the tab loaded a
comparison of the open timeslot) and a collapsed Finding Reader Compare
section with both states and the retained GPO values side by side. The engine
now carries those values. The Data Flow diagram shows the engine; product
version 2.26.0.
2026-10-14 11:57:27 +02:00
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 24c0f959aa feat(comparison): compare scanners, GPO settings and score basis across timeslots
Separate new from regressed scanner deviations and accept a timeslot without
scanner runs on one side. Pair rolled-up GPO Work verdicts by scope and
technical identity with a newer backup set and the same baselines; a changed
value of a still deviating setting stays neutral. compareTimeslots yields the
change categories for the UI and a score delta over comparable sources only.
2026-10-14 11:57:09 +02:00
Binh 1fc4d0aa14 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-14 11:57:08 +02:00
Michael cdd93fe9e8 Abtrennung zu neuem Datenmodell 2026-09-21 09:10:54 +02:00
Tronth c473b0c94e Initial import 2026-08-24 09:16:16 +02:00