Usage:
python3 scripts/pipeline_status.py # formatted table
python3 scripts/pipeline_status.py --json # machine-readable JSON
Shows:
- 8-stage checklist with pass/fail per stage
- System health: CPU, memory, disk, GPU, 4 services
- Processor timing from DB
- All in under 1 second
wiki is not traditional RAG:
- RAG: ephemeral query-time augmentation
- Wiki: permanent model corrections, versioned, packaged with model
- Edits accumulate across versions as ground truth
Each momentry model includes a wiki/ directory for user-contributed knowledge:
- identity labels, object labels, ASR corrections
- Edits feed back into next model version
- TKG edges enriched by wiki data
Pipeline = training → produces momentry model per video
Core = inference engine → serves APIs from model
Phase 1 = tiny model (sentence chunks)
Phase 2 = full model (complete + 5W1H)
- New src/verification/ module: verify_output() checks JSON structure/completeness per processor type
- Worker: after processor succeeds, verification agent gates the result
- Passed -> mark completed + cleanup_temp_files (remove .tmp/.partial/.err/timestamp backups)
- Failed -> mark failed with verification details, preserve files for inspection
- cleanup_temp_files() keeps only the canonical {uuid}.{proc}.json
- Auto-run tkg_builder.py after face trace store + Qdrant sync + trace chunks
- Add face-face CO_OCCURS_WITH edges (two traces in same frame)
- docs: TKG integration report for M4
- New trace_ingest module: creates chunks for each face trace (time + bbox + ASR text)
- Computes pairwise time overlaps between traces -> co_appearances in metadata
- Worker auto-triggers after face trace store + Qdrant sync
- SearchFilters: chunk_type filter (sentence/cut/trace/visual)
- SearchFilters: co_appears_with_trace_id filter
- Extracted visual_stats per scene (face count, size, objects, duration, density)
- Classified 1130 scenes into 18 types (establishing/close_up/medium/long/two/group × dialogue/sparse/silent)
- All from existing data, no LLM needed
- Scene type stored in cut chunk metadata
- Replaced bitmap font (~195K drawbox commands) with drawtext (~2.2K)
- Write filter to temp file, use -/filter_complex to bypass ARG_MAX
- Added ffmpeg stderr logging for debugging
- Added FFMPEG Lazy static + ffmpeg_cmd() with DYLD_LIBRARY_PATH
- Replaced bitmap font rendering with drawtext (1 filter vs 35 per letter)
- Large traces (>1000 detections) may still fail (ARG_MAX with -vf)
Root cause: video file was renamed on disk but DB still had old path.
Old: ...Charade ... │ Comedy ...mp4
New: ...Old_Time_Movie_Show_-_Charade_1963.HD.mov
All 3 endpoints (trace/video, video/bbox, thumbnail) now return 200.