- Shipped
- November 8, 2026 at 4:16 AM UTC
- Author
- Kamo
- Commit
- 9dcbc52
- RoleRightType ANTIVIRUS_WIDGET five-right block (703-707) under VIEW_ANTIVIRUS; RoleRightHierarchyTest 447 -> 452, children 292 -> 297. - AntivirusBlockedException body carries fileName and detectionId (string) when known; the gate sets both on an upload refusal so the composer locks the right attachment and "I think this is a mistake" has a target. - A scan of content whose bytes were stored before Antivirus (dedup by hash) now records bytes_stored=true, so the flagged-file recheck can reach it, and when harmful LOCKS the stored copy: LOCKED_LATER detections + viewer alerts in each holding organization (the uploading org gets its BLOCKED detection). Same in recordVerdict (hold completer, mail) and when a reused verdict had never latched bytes_stored. - **************** holders) for ConversionService's throttled pre-Antivirus baseline sweep. - AntivirusBaselineState entity + repository (table antivirus_baseline_state, hand-applied as kamo).
