v2.44.0
Cross-clip entities + bin briefing v2 — Phase D of the analysis + edit-engine program. Recurring people/places/props found by clustering the visual embeddings, confirmed with one vision call per cluster.
Added
- Schema v11 (
entities+entity_appearances) andsrc/utils/entities.py: union-find clustering over the CLIP frame vectors, representative-frame selection, ghost pruning across re-runs (labeled entities persist), and a detection-state stash soentity_indexresolves against the exact ordering the payload was issued with. media_analysisactions:detect_entities(clusters + deferred one-frame-per-cluster confirmation payload, caps pre-checked),commit_entities(conservative labels;merge_withcollapses duplicates),list_entities,prepare_bin_briefing(text-only),commit_bin_summary(host-synthesized briefing above the v2.0 aggregate inmemory/bin_summary.md).- Panel: "Recurring across this bin" card on Review (
/api/entities).
Validation
- Full offline suite: 1105 tests (10 new); 3 known live-Resolve environmental failures only.
- Live on the real sample root: 3 clusters from 16 CLIP vectors; host-chat confirmation labeled the shattered-windshield POV and the white rental sedan and merged the sedan's duplicate cluster; bin briefing synthesized and committed; panel card verified; screenshots regenerated.