APP

Media AI Analysis & Search — Implementation Plan (Phase 1)

Make media records (image/audio/video/document) first-class in search. Core extracts embedded metadata deterministically on claim and indexes the media even with AI off; when AI is on, an async job adds caption/OCR/transcription/idea/intent, the media is embedded through the existing per-model path, and its owner (article/ticket) is reindexed with a compact surrogate. Phase 1 = "find the right file" (no timestamped chunks, no video visual track — that is Phase 2, out of scope here).

State
Done
Progress
100%
Steps
52 / 52
Started
2026-09-28
Finished
2026-10-23
Module
Platform

Tasks.

  • Task 1: Media-analysis config + model registry (M21, M18) — DONE4/4
  • Task 2: content_hash + deterministic metadata on media create (M2, M15, M3a) — DONE4/4
  • Task 3: AI-owned ai_media_analysis table + model (M3b, M15) — DONE3/3
  • Task 4: Generic Core searchable-contributor seam (M4a) — DONE3/3
  • Task 5: Media becomes Searchable + IEmbeddableModel (M5, M6, M9, M14) — DONE4/4
  • Task 6: Event + AI listener + Core fallback (M11, M12, M14, M18) — DONE4/4
  • Task 7: AnalyzeMediaJob (M6, M11, M15, M20, M21) — DONE6/6
  • Task 8: Transcription backend (M21) — DONE3/3
  • Task 9: Embedding dedup + per-media rows (M15) — DONE2/2
  • Task 10: ACL — unified result set, owner-inherited, switchable (M16) — DONE3/3
  • Task 11: Parent enrichment + single-owner reindex cascade (M9, M14) — DONE2/2
  • Task 12: Media lifecycle (M19) — DONE3/3
  • Task 13a: Core resource-schema contributor seam (M22) — DONE2/2
  • Task 13b: Owner-scoped media curation section (M22, M3a, M3c) — DONE2/2
  • Task 13c: Read-only autonomous Media gallery resource (M22, M16) — DONE2/2
  • Task 13d: AI analysis panel + re-analyze action (M22, M18) — DONE2/2
  • Task 14: Docs + closeout3/3