Accusys
bd82028f34
refactor: unified LLM config - CHAT_URL/VISION_URL/SUMMARY_URL with env var overrides
2026-05-22 15:47:17 +08:00
Accusys
380dd87d8b
feat: POST /api/v1/agents/search - Gemma4 function calling agent
2026-05-22 12:10:37 +08:00
Accusys
883535c4f7
feat: POST /identity/:uuid/bind/trace endpoint
2026-05-22 10:29:52 +08:00
Accusys
0794476902
feat: representative frame limited to first half of video
2026-05-22 09:24:48 +08:00
Accusys
2b950c985c
feat: representative frame - auto-detect thumbnail + JSON endpoint
2026-05-22 09:22:15 +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
M5Max128
3a33d00449
refactor: modularize server.rs into separate route modules
...
- Extract scan.rs, files.rs, types.rs, processing.rs, visual_chunk_search.rs
- Move AppState and AppConfig to types.rs
- Each module exposes pub fn xxx_routes() -> Router<AppState>
- server.rs reduced from 5005 to 118 lines (orchestrator only)
- All stubs filled with real implementations from git history
- Verify: cargo check, clippy, tests all pass
2026-05-21 16:38:49 +08:00
M5Max128
80812128e2
merge: resolve conflicts with M5Max128 local changes
2026-05-21 01:11:44 +08:00
Accusys
bebaa743ed
feat: trace-level matching, health watcher/worker status, timezone config
2026-05-21 01:08:30 +08:00
Accusys
ba68cd2548
feat: Identity JSON sync + schema-aware column selection
...
- storage.rs: add local_profile field, check disk for profile.jpg
- tmdb_api.rs: trigger JSON sync after TMDb probe
- identity_api.rs: upload_profile_image triggers JSON sync
- identity_binding.rs: bind/unbind/merge trigger JSON sync
- get_identity_json: Lazy Sync (generates JSON from DB if missing)
- identities.rs + identity_api.rs: use schema-aware column selection (dev:name vs public:real_name)
- Fixes 500 errors on identities endpoints across schemas
2026-05-19 23:10:49 +08:00
Accusys
0eb08acaae
feat: Identity JSON sync mechanism
...
- storage.rs: add local_profile field, check disk for profile.jpg in save_identity_file_by_pool
- tmdb_api.rs: trigger JSON sync after TMDb probe
- identity_api.rs: upload_profile_image triggers JSON sync
- identity_binding.rs: bind/unbind/merge trigger JSON sync
- get_identity_json: replace DB fallback with Lazy Sync (generates JSON from DB if missing)
- Fixes missing/obsolete JSON files for all identity mutations
2026-05-19 22:20:19 +08:00
Accusys
1ea23a6d51
fix: identity detail 502 - IdentityDetailRecord.id i32->i64 type mismatch panic
...
- identities.id is BIGINT (8 bytes), Rust struct was i32 (4 bytes)
- sqlx type mismatch caused panic, crashing backend process
- Proxy returned 502 due to empty reply from crashed backend
- Phase 5: 17/23 passed (was 16/23)
2026-05-19 18:33:21 +08:00
Accusys
77098b88ba
feat: Phase 2-5 API test scripts + create_monitor_job fix
...
Phase 2: 10/10 passed ✅
Phase 3: 7/7 passed ✅
Phase 4: 9/11 passed (2 known bugs - i.name column)
Phase 5: 13/23 passed (10 failures - pre-existing bugs)
Fixes:
- create_monitor_job: ON CONFLICT (uuid) DO UPDATE to prevent duplicate key errors
- test scripts: Correct request bodies for all visual search endpoints
2026-05-19 16:05:46 +08:00
Accusys
ea6ea02925
fix: delete_video - add file existence check + fix pre_chunks UUID cast
...
- unregister: check file exists before delete, return 200 with success:false if not found
- delete_video: cast pre_chunks.file_uuid parameter as UUID (::uuid)
- Added Phase 2 test script (10/10 endpoints passed)
2026-05-19 15:51:25 +08:00
Accusys
611441662f
fix: register_resource - use ON CONFLICT (resource_id) DO UPDATE instead of RETURNING id
...
- resources table uses resource_id as PK (no auto-increment id column)
- Make register idempotent: duplicate registration updates status + heartbeat
- Added Phase 1 API test script (15 endpoints, 100% pass)
2026-05-19 14:22:40 +08:00
Accusys
67ca846ccd
feat: ASR output frame numbers + rename start/end to start_time/end_time
...
- Python: asr_processor.py detects FPS from CUT/ffprobe (no fallback), outputs start_frame/end_frame
- Rust: All AsrSegment structs use start_time/end_time with #[serde(alias)] for backward compat
- store_asr_chunks: prefers ASR output frames, falls back to time-based conversion
- Added backward compatibility test for old JSON format (start/end)
Breaking change: ffprobe/CUT FPS failure now aborts instead of using default 24fps
2026-05-19 13:22:38 +08:00
Accusys
7b6da4f0d8
fix: identities API - use real_name instead of name for cross-schema compatibility
2026-05-19 10:21:49 +08:00
Accusys
538eea6406
feat: health consistency agent — 4 data integrity checks, GET /health/consistency
2026-05-19 02:17:27 +08:00
Accusys
a02a83c1c3
fix: scan status=unregistered not shown as registered; feat: config API for auto-pipeline/watcher-auto-register
2026-05-19 00:37:00 +08:00
Accusys
362c63007c
feat: smart search response includes start_frame/end_frame/fps, add limit param
2026-05-18 01:21:43 +08:00
Accusys
088aefdac7
fix: pipeline timeline log, chunk lookup, face processor no fallback, Qdrant UUID script, delete safety rules
2026-05-18 00:36:14 +08:00
Accusys
a880c80556
fix: face_detections INSERT in pipeline, add dependency graph doc
2026-05-17 22:16:20 +08:00
Accusys
3164a65554
update: pipeline, search, clip, embedding fixes
2026-05-17 19:46:35 +08:00
Accusys
5317cb4bec
feat: schema tracking, SHA256 integrity, identity UUID fix, 3-angle face match, cuts table, trace stranger_id
2026-05-16 03:10:50 +08:00
Accusys
c41f7e0c6e
feat: schema version tracking, SHA256 integrity, setup scripts, bug fixes
2026-05-15 18:06:36 +08:00
Accusys
0e73d2a2ce
test: add unified probe unit tests (8 Rust + 6 Python), fix pre-existing test compilation errors
2026-05-15 14:58:44 +08:00
Accusys
29eca5a224
feat: unified probe — dispatcher detects category, runs ffprobe/Python/meta per file type
2026-05-15 14:38:47 +08:00
Accusys
43cf702d05
feat: add 'unregistered' status — all incomplete files migrated to unregistered
2026-05-15 13:17:31 +08:00
Accusys
e86aebccee
feat: register INSERT now uses status='registered' + registration_time=NOW()
2026-05-15 12:46:42 +08:00
Accusys
37799fff4e
fix: add identity_uuid to /identities list + /file/:uuid/identities responses
2026-05-15 10:14:22 +08:00
Accusys
fdcec82274
fix: file/identities — replace NULL first/last_appearance with actual start_frame/end_frame + start_time/end_time + fps
2026-05-15 10:07:35 +08:00
Accusys
fc1d7751dd
feat: register non-video files — graceful probe fallback for svg/pdf/docx/pages etc
2026-05-15 03:17:57 +08:00
Accusys
4d1fe2d26f
feat: file dedup — content_hash SHA256 + /files/lookup API + auto-rename on name collision
2026-05-14 20:24:21 +08:00
Accusys
301a95e2bc
refactor: remove all dev.* and public.* schema hardcodes from runtime code
...
14 files updated to use schema::table_name() instead of hardcoded schema
prefixes. Only src/bin/release.rs intentionally retains dev.* references.
2026-05-14 14:40:14 +08:00
Accusys
e6aa45d7ea
fix: /files total count from DB (was hardcoded 0)
2026-05-13 20:45:23 +08:00
Accusys
2e7dd44552
fix: scan extensions add jpg/png, /files status from DB (2/4 M4 items)
2026-05-13 20:43:37 +08:00
Accusys
ffc30d7377
M4 handover: coordinate fixes, detector registry, deploy v2, YOLOv8s, identity lifecycle
...
- Fix swift_pose/swift_ocr Y-flip bugs (BUG-003~006)
- Add heuristic_scene module + post-processing trigger (replaces Places365)
- YOLOv5nu → YOLOv8s CoreML (+33% detections, +390% scene indicators)
- Per-table SQL export (split 4.7GB single file → 478MB max per table)
- Version/build check in deploy.sh (compare /health vs file_info.json)
- Add file_uuid column to identities table + backfill
- Identity pre-clean step in deploy (avoids UNIQUE conflicts on re-deploy)
- Stranger_xxx naming fix with UUID context
- Add DETECTOR_REGISTRY.md (25 detectors), DETECTOR_SELECTION_SOP.md
- Update SPATIAL_COORDINATE_REGISTRY.md (P layer, 6-layer architecture)
- New IDENTITY_LIFECYCLE.md
- M4 response docs for deploy_script_fix and 111614 test report
2026-05-13 20:00:47 +08:00
Accusys
cac60c6093
fix: M4 Phase 1 bugs - dev.chunks refs, search_path, uuid column
...
Bug fixes from M4 report:
- 4 remaining dev.chunks → dev.chunk in SQL queries
- search_path includes public for pgvector extension
- get_chunk_by_chunk_id_and_uuid: uuid → file_uuid
- New endpoint: GET /api/v1/file/:uuid/chunk/:chunk_id
2026-05-11 10:21:06 +08:00
Accusys
39ba5ddf76
feat: Phase 1 handover - schema migration, correction mechanism, API fixes
...
Schema changes: dev.chunks->dev.chunk, remove old_chunk_id/chunk_index
Correction: asr-1.json format, generate/apply scripts
API: 37/37 endpoints fixed and tested
Docs: HANDOVER_V2.0.md for M4
2026-05-11 07:03:22 +08:00
Accusys
b902763d45
feat: trace chunks with co-appearance relationships
...
- 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
2026-05-09 06:18:32 +08:00
Accusys
9f5afd1b86
fix: file-based source of truth for worker + backup protocol
...
- Worker: check {uuid}.{processor}.json existence before starting processor
- Worker: timestamp-copy backup existing output files before re-run (no delete, no overwrite)
- Executor: partial output saved as .json.partial (not .json) to avoid false completion
- Start script: removed set-e, log dir changed to momentry/logs, Qdrant collection status fix
- docs: M4 release incident report + M4/M5 collaboration protocol
2026-05-09 05:32:13 +08:00
Accusys
d8714aa46e
Fix semantic search: query chunks instead of empty parent_chunks table
2026-05-08 01:29:10 +08:00
Accusys
573714788f
Release v1.0.0 candidate
2026-05-08 00:48:15 +08:00
Warren
65a1f77e65
feat: trace quality agent selection report, identity clustering runner_v2 DB write, age/gender CoreML selection, updated experiment config UUID
2026-05-06 14:41:48 +08:00
Warren
74b6182eba
feat: media API (video/bbox/thumbnail), UUID unification, dot matrix text, portal fixes, API dictionary V1.3
2026-05-06 13:34:49 +08:00
Warren
e75c4d6f07
cleanup: remove dead code and duplicate docs
...
- Remove session-ses_2f27.md (161KB raw session log)
- Remove 49 ROOT_* duplicate files across REFERENCE/
- Remove 14 duplicate files between REFERENCE/ root and history/
- Remove asr_legacy.rs (dead code, replaced by asr.rs)
- Remove src/core/worker/ (duplicate JobWorker)
- Remove src/core/layers/ (empty directory)
- Remove 4 .bak files in src/
- Remove 7 dead private methods in worker/processor.rs
- Remove backup directory from git tracking
2026-05-04 01:31:21 +08:00
Warren
ee81e343ce
chore: remove obsolete APIs (register, probe, n8n, videos, people)
...
- Remove /api/v1/register (replaced by /api/v1/files/register)
- Remove /api/v1/probe (replaced by /api/v1/files/:uuid)
- Remove /api/v1/n8n/... (n8n workflow only)
- Remove /api/v1/unregister (high risk)
- Remove /api/v1/videos list (replaced by /api/v1/files)
- Remove /api/v1/people (merged into /api/v1/identities)
- Clean up dead code and unused structs
2026-04-30 22:16:24 +08:00
Warren
2b23d1cfbd
feat: update core API, database layer, and worker modules
...
- Remove unused imports (n8n_search, universal_search, Client, Arc, etc.)
- Update API endpoints for identity, face recognition, search
- Fix postgres_db.rs search_videos parent_uuid column
- Add snapshot API and identity agent API
- Clean up backup files (.bak, .bak2)
2026-04-30 15:07:02 +08:00