- Image viewer controls (fit / 1:1 / rotate) now have handlers and reset per case (were dead buttons). - 'auto-entry deactivate' is scoped to the selected case's sourceSubmissionId (was deactivating an arbitrary global entry). - dismissCollectionCandidate persists via a real endpoint (was a local splice that resurrected on the next refresh). - setDecision has an in-flight guard; rerunSelectedEnrichment / applyCoverageFilter get null guards and a best-effort refresh on partial failure; deactivateCorrectionEntry skips already-inactive entries, tolerates per-entry failures, and always refreshes (guarded). - executeSuggestedQueries / runCandidateCollection commit only after success so a failed run doesn't wipe the previous view; applyBootstrap clears a stale error banner; renderCorrections guards derivedEntries. - riskClass allowlists the band and case/similar/face-crop URLs route through safeUrl (XSS defence-in-depth). |
||
|---|---|---|
| .. | ||
| operator-gui | ||