You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cross-tool command-line correlation — merges same process-creation events reported by different tools that share a command line, parent process, and host (closes #68).
SSH brute-force-success detection — flags a successful login following a burst of failures from the same IP (T1110.001).
Windows logon-type risk grading — grades risky logon types (external RDP, network-cleartext, runas /netonly) on 4624 events.
IOC list pagination — client-side paging for the IOCs section, matching the timelines.
AI-assisted content-tagger rules — describe a tagger rule in plain English; AI drafts, previews, and adds it.
Right-click "Send to DFIR-Companion" — send selected text, a table, or a link from any page, not just recognized consoles.
VolWeb adapter + manual tool override — extension auto-detects VolWeb and lets you force a different adapter per tab.
Live progress for Velociraptor imports — large imports stream progress instead of blocking silently.
Structured, deployable collection directives — one-click deploy and auto-detected satisfaction for "collect X from host Y" recommendations (investigation-guidance #8).
Case Statistics panel — per-case totals, source breakdown, and import velocity in Diagnostics (closes #36).
Prompt regression / eval harness — CI-safe and real-provider golden-output testing for AI extraction/synthesis quality.
Changed
CSV/log AI extraction now uses the text model, not the vision model — DFIR_AI_SYNTH_MODEL handles CSV/log/synthesis; DFIR_AI_MODEL is vision-only.
Velociraptor timeline events now describe the action, not just a filename — MFT/USN/browser/shellbags/UserAssist/Shimcache/Amcache/Prefetch/LNK all render human-readable descriptions.
Forensic Timeline redesign — bordered-card rows matching the Findings/IOCs styling.
Second-opinion deltas now keyed by semantic content, not exact title — a stable semanticKey prevents reworded findings from showing as spurious new deltas (closes #69).
Fixed
Work-log filter could drop real detections that merely named a tool — now honours a structured-field gate (closes #67).
Large deterministic imports could peg the CPU for an hour — forensic-timeline dedup is now O(n) instead of O(n²).
Large imports could fail with EPERM on state-file rename — atomic-write retry budget widened, tunable via DFIR_ATOMIC_WRITE_RETRIES.
Evidence drop-folder auto-imports were invisible in the Jobs panel — now register a background job like manual imports.
Tagger rules file wasn't created on first write — directory is now created on demand.
Extension content script failed to load on every page — content.js/pageHook.js now build as isolated, non-module bundles.
caseId wasn't validated on lock-status/unlock routes — closed the gap with the standard case-existence guard.
Renaming a manually-added asset was lost in the asset-graph view.
The enrich endpoint falsely reported acceptance when no providers were enabled.
A partial dwell-window update could fail validation instead of merging.
An empty {} JSON body on the generic push endpoint was imported instead of rejected.