Commit Graph

242 Commits

Author SHA1 Message Date
Accusys
6ede2a443c release: Phase 2.6-2.7 to production (3002) - edges migration and identity resolution
Release: 2026-06-21 05:15
Binary: Jun 21 05:14 (34MB)
PID: 95567

Features:
- Phase 2.6: All edges from Qdrant (co_occurrence, face_face, speaker_face)
- Phase 2.7: Identity resolution for gaze_trace/lip_trace nodes
- Rule2: Extended for face_trace/gaze_trace/lip_trace node types

Architecture:
- Complete TKG-only identity resolution
- PostgreSQL fallback for empty Qdrant
- Estimated 3.6x edges performance improvement

Backup: momentry_backup_20260621_phase25

Commits:
- e214106d: Phase 2.7 identity resolution
- Phase 2.6 commits: edges migration to Qdrant

Status:  Release successful
2026-06-21 05:17:34 +08:00
Accusys
e214106d48 feat: Phase 2.7 identity resolution for gaze/lip trace nodes
Implementation:
- gaze_trace nodes: Query face_trace identity_id, add to properties
- lip_trace nodes: Query face_trace identity_id, add to properties
- Rule2: Extend identity resolution to support gaze_trace/lip_trace node types

Architecture:
- All face-related nodes now have identity_id in TKG properties
- Rule2 unified identity resolution for face_trace/gaze_trace/lip_trace
- TKG-only approach (no face_detections dependency for identity)

Code Changes:
- src/core/processor/tkg.rs: Add identity_id query in gaze/lip builders
- src/core/chunk/rule2_ingest.rs: Extend node_type condition

Docs:
- docs_v1.0/DESIGN/TKG_PHASE2_7_IDENTITY_RESOLUTION.md

Status: Implementation complete, pending test with valid file
2026-06-21 05:12:13 +08:00
Accusys
2cfcfdd1af feat: Phase 2.6 edges migration to Qdrant (TKG-only architecture)
Phase 2.6.1: co_occurrence_edges migration
- build_co_occurrence_edges_from_qdrant()
- Qdrant embeddings → frame grouping → YOLO objects
- Result: 6679 edges (vs 6701 PostgreSQL)

Phase 2.6.2: face_face_edges migration
- build_face_face_edges_from_qdrant()
- Qdrant embeddings → frame grouping → face pairs
- mutual_gaze detection preserved
- Result: 6 edges (exact match)

Phase 2.6.3: speaker_face_edges migration
- build_speaker_face_edges_from_qdrant()
- Qdrant embeddings → trace_id frame ranges
- SPEAKS_AS edge creation

Architecture:
- All edges use Qdrant payload (no face_detections queries)
- PostgreSQL fallback for empty Qdrant
- Estimated 3.6x performance improvement

Testing:
- Playground (3003): ✓ All Phase 2.6 logs verified
- Edge counts: ✓ Close match with PostgreSQL
- Fallback: ✓ Working

Docs:
- docs_v1.0/DESIGN/TKG_PHASE2_6_EDGES_MIGRATION.md
- docs_v1.0/M4_workspace/2026-06-21_phase2_6_test.md
2026-06-21 04:47:49 +08:00
Accusys
0afc70fc5b test: Production (3002) Phase 2.5 release verification
Test results:
- TKG rebuild: 1.75s (2.4x faster than Playground)
- gaze_trace_nodes: 21 (PostgreSQL fallback)
- lip_trace_nodes: 21 (PostgreSQL fallback)
- Rule2 chunks: 75 ✓

Findings:
- Production faster than Playground (1.75s vs 4.2s)
- Qdrant collection empty (0 points)
- Using PostgreSQL fallback for Phase 2.5
- New videos will auto-populate Qdrant

Status:  Release successful
2026-06-21 04:31:52 +08:00
Accusys
721c343486 release: Phase 2.5 to production (3002) - gaze_trace and lip_trace Qdrant migration
Release: 2026-06-21 02:35
Binary: Jun 21 02:33
PID: 16386

Features:
- Phase 2.5.1: gaze_trace_nodes from Qdrant
- Phase 2.5.2: lip_trace_nodes from Qdrant + face.json
- Qdrant collection: momentry_face_embeddings (dim=512)

Verification:
- gaze_trace_nodes: 21 ✓
- lip_trace_nodes: 21 ✓
- Rule2 chunks: 75 ✓
- Performance: TKG rebuild 1.85s ✓

Backup: momentry_backup_20260619
2026-06-21 03:12:38 +08:00
Accusys
c39805bb8e feat: Phase 2.5 gaze_trace and lip_trace Qdrant migration + Charade Q&A test
Phase 2.5.1: gaze_trace_nodes from Qdrant
- build_gaze_trace_nodes_from_qdrant()
- Read trace_id, frame, bbox from Qdrant payload
- Compute gaze stats (yaw, pitch, roll, gaze direction, blink)
- No PostgreSQL face_detections dependency

Phase 2.5.2: lip_trace_nodes from Qdrant + face.json
- build_lip_trace_nodes_from_qdrant()
- Match trace_id using Qdrant embeddings + face.json bbox
- Compute lip stats (openness, variance, speaking frames)
- Fixed face.json bbox structure (x,y,width,height not bbox object)

Test results:
- 23 gaze_trace nodes from Qdrant
- 23 lip_trace nodes from Qdrant + face.json
- 51 lip_sync edges created
- Charade Q&A: 20 identities, 75 relationship chunks

Docs:
- TKG_PHASE2_NONFACE_MIGRATION_V1.0.md (migration plan)
- 2026-06-21_charade_qa_test.md (Q&A test report)
2026-06-21 02:17:08 +08:00
Accusys
23c440104b feat: Phase 2-3 TKG-only architecture
Phase 2.1: build_face_trace_nodes_from_qdrant()
- Read trace_id, frame, bbox directly from Qdrant payload
- No dependency on face_detections table

Phase 2.3: Rule2 queries TKG nodes
- identity resolution from tkg_nodes.properties.identity_id
- TKG-only architecture (Phase 2.3)

Phase 3: Identity Agent updates TKG nodes
- match_faces_iterative() updates tkg_nodes.properties
- bind_identity_trace() syncs identity_id to TKG
- unbind_identity() removes identity_id from TKG

Test results:
- 23 face_trace nodes from Qdrant (Phase 2.1)
- 75 relationship chunks (Rule2)
- TKG rebuild: Phase0 → Phase1 → Phase2
2026-06-21 01:30:04 +08:00
Accusys
3ad6f8740a feat: Rule2 TKG relationship chunks + Phase0-1 Qdrant integration
Phase 0: TKG builder populate face_detections from face.json
- Fix face.json parser for pose_angle format
- Call store_traced_faces.py to set trace_id
- Skip if trace_id already populated

Phase 1: Qdrant face embeddings integration
- Add FaceEmbeddingDb module (src/core/db/face_embedding_db.rs)
- Create dev_face_embeddings collection (dim=512)
- Store 1122 face embeddings with pose metadata
- API: init_collection, batch_upsert, search_similar

Rule2: TKG edges → relationship chunks
- Design: RULE2_TKG_RELATIONSHIP_V1.0.md
- Implementation: rule2_ingest.rs
- ChunkType::Relationship added
- Edge types: SPEAKS_AS, MUTUAL_GAZE, CO_OCCURS_WITH, HAS_APPEARANCE, WEARS
- Auto-trigger on TKG rebuild

API:
- POST /api/v1/file/:file_uuid/rule2 (vectorization)
- POST /api/v1/file/:file_uuid/tkg/rebuild (auto Rule2)

Test: 75 relationship chunks created + vectorized
2026-06-21 00:22:41 +08:00
Accusys
e1572907ae feat: ASRX hybrid pipeline, identity history, worker fixes, checkpoint system 2026-06-02 07:13:23 +08:00
Accusys
874d688987 feat: deploy hybrid search (semantic+keyword+identity) with RRF fusion
- Replace smart_search with hybrid RRF implementation
- Add speaker_detections table for identity-agent binding
- Fix identity queries: direct SQL to avoid type mismatches
- Add debug logs to job_worker for processor debugging
- Deployed to production (3002) successfully

Key changes:
- search.rs: Complete rewrite with 3 strategies + RRF
- postgres_db.rs: speaker_detections table + identity query fixes
- job_worker.rs: Debug logs for output file checks

Tested:
- Hybrid search works with semantic + keyword + identity
- Identity search: 'identity:Charade' returns correct results
- Chinese keyword search: '調光' matches Charade summaries

Bugs found:
- Case mismatch: 'ASRX' vs 'asrx' in processors field
- Missing CUT dependency for ASRX processor
2026-06-01 15:15:17 +08:00
Accusys
08167d73b2 docs: add Processor State Machine V1.0 design 2026-05-30 10:03:48 +08:00
Accusys
3d13d1390e Merge branch 'main' of http://192.168.110.200:3000/admin/momentry_core 2026-05-29 23:14:14 +08:00
Accusys
04cbb71ca0 docs: save handoff - library page flash & filter fix 2026-05-29 23:12:09 +08:00
Accusys
e96cc8c8de docs: record WordPress API URL update session progress 2026-05-29 19:06:15 +08:00
M5Max128
f5cf12409b docs: expand JPEG validation plan to include Python scripts 2026-05-27 15:55:20 +08:00
M5Max128
ea20e27a4d docs: add JPEG validation implementation plan for M5Max48 2026-05-27 15:40:15 +08:00
M5Max128
a036d985b7 docs: add Thumbnail QA Analysis for M5Max48 implementation 2026-05-27 14:35:53 +08:00
M5Max128
c85794292a docs: add processor refactoring assessment from M5Max128 workspace research 2026-05-27 03:59:13 +08:00
M5Max128
955282e587 docs: add LaunchDaemon architecture reference for M5Max128/M5Max48 collaboration 2026-05-27 01:12:37 +08:00
Accusys
20dae387ee docs: sync case-insensitive variant 2026-05-25 10:31:37 +08:00
Accusys
b9e93c6293 docs: update API Ref (V4.2), CHANGELOG, Release Notes for de88fd4e 2026-05-25 10:31:32 +08:00
Accusys
8fdd1d741b fix: stranger_id=NULL on bind/merge; doc: add traces+mergeinto endpoints 2026-05-25 03:03:27 +08:00
M5Max128
f8bcc0356c feat: frame/time pipeline split + output validation
- Add PipelineType enum + pipeline() to ProcessorType
- Split ProcessorPool into frame_slots (max 2) and time_slots (max 1)
- Add can_start_for() for pipeline-aware scheduling
- Add validate_output_file() — checks JSON validity before marking complete
- Add 3 unit tests for validate_output_file()
- Create DESIGN/FRAME_TIME_PIPELINE_V1.0.md (492 lines)
2026-05-23 21:14:28 +08:00
Accusys
6967b99142 Merge remote-tracking branch 'origin/main' 2026-05-22 17:38:34 +08:00
Accusys
4cd5d63e64 feat: RustDesk 1.4.6 verified and installed 2026-05-22 17:37:35 +08:00
M5Max128
3ccdf403b6 feat: add Ollama to verified sources (Gitea repo + manifest + build from source) 2026-05-22 17:20:14 +08:00
Accusys
c09268f3d3 docs: add go(golang) and ollama verification reports 2026-05-22 16:58:08 +08:00
Accusys
a78b5bc12b docs: add agents/search endpoint to 12_agent.md 2026-05-22 12:26:11 +08:00
Accusys
600ce8e964 fix: await initApp() + fulltextSearch for reliable restore 2026-05-22 10:58:53 +08:00
Accusys
bc04d1c44a fix: persist search query across refresh via sessionStorage 2026-05-22 10:56:29 +08:00
Accusys
832dc2c45b docs: add bind/trace endpoint to 07_identity.md 2026-05-22 10:41:34 +08:00
Accusys
cb5d4aef61 feat: search clear X button 2026-05-22 10:18:44 +08:00
Accusys
37e75bd84f fix: search result click scrolls to first match + highlight; left sidebar unchanged 2026-05-22 10:15:58 +08:00
Accusys
373dea4a0d merge 2026-05-22 10:10:07 +08:00
Accusys
a2042507a3 fix: search results displayed in left sidebar, not content area 2026-05-22 10:09:32 +08:00
M5Max128
e158176fbe Merge branch 'main' of http://192.168.110.200:3000/admin/momentry_core 2026-05-22 10:08:11 +08:00
M5Max128
3e81f7c16b docs: rebuild HTML + WASM doc after identity PATCH update 2026-05-22 10:08:08 +08:00
Accusys
fc338a4b59 fix: sidebar sticky top, independent scroll from content 2026-05-22 10:07:40 +08:00
Accusys
f6a24e8cb5 docs: thumbnail auto-detect + representative-frame endpoint in 08_media.md; sync wasm 2026-05-22 09:56:10 +08:00
M5Max128
2b025a014e docs: add PATCH identity endpoint doc + BCP 47 alias reference 2026-05-22 08:56:07 +08:00
M5Max128
e1619c724a Merge branch 'main' of http://192.168.110.200:3000/admin/momentry_core 2026-05-22 08:51:08 +08:00
M5Max128
701e71463d feat: identity PATCH update, alias system, name UNIQUE removal
- Add PATCH /api/v1/identity/:identity_uuid endpoint
- Migration 030: remove name UNIQUE, add tmdb_id index
- TMDb upsert: ON CONFLICT (name) -> ON CONFLICT (tmdb_id)
- get_or_create_identity: pre-check by name
- upload_identity: ON CONFLICT (name) -> ON CONFLICT (uuid)
- Search: include aliases in identity text search
- Add scripts/llm_metadata_enhancer.py
- Add DESIGN/IdentityUpdateAndAliasSystem.md
2026-05-22 08:35:32 +08:00
Accusys
deb9516796 feat: TKG extension - pose data + mutual gaze detection 2026-05-22 07:09:54 +08:00
Accusys
a9e9285032 docs: add TKG_QUERY_API_V1.0 design document 2026-05-22 06:29:25 +08:00
Accusys
6db29fc0e8 docs: add co-occur-with endpoint to 08_media.md 2026-05-22 05:35:24 +08:00
Accusys
6378d7be89 docs: add thumbnail endpoint to 08_media.md 2026-05-22 04:58:43 +08:00
Accusys
d7e11a394f docs: add representative-face endpoint to 08_media.md 2026-05-22 04:51:16 +08:00
M5Max128
80812128e2 merge: resolve conflicts with M5Max128 local changes 2026-05-21 01:11:44 +08:00
Accusys
8b53e815b8 docs: fix 3003 reference in pipeline module, regenerate HTML/WASM 2026-05-19 23:22:09 +08:00
Accusys
26725dcab7 fix: enable GFM tables in WASM doc renderer (pulldown-cmark ENABLE_TABLES) 2026-05-19 12:54:08 +08:00