Accusys
380dd87d8b
feat: POST /api/v1/agents/search - Gemma4 function calling agent
2026-05-22 12:10:37 +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
883535c4f7
feat: POST /identity/:uuid/bind/trace endpoint
2026-05-22 10:29:52 +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
Accusys
7805eaa3cb
fix: doc-wasm hardcoded path momentry_core_0.1 -> momentry_core
2026-05-22 09:33:33 +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
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
2d3017d3c1
feat: GET file/:uuid/identities/:a/co-occur-with/:b endpoint
2026-05-22 05:34:25 +08:00
Accusys
6378d7be89
docs: add thumbnail endpoint to 08_media.md
2026-05-22 04:58:43 +08:00
Accusys
d67f123949
feat: GET file/:uuid/trace/:tid/thumbnail endpoint
2026-05-22 04:58:28 +08:00
Accusys
d7e11a394f
docs: add representative-face endpoint to 08_media.md
2026-05-22 04:51:16 +08:00
Accusys
37f8aea4aa
feat: GET file/:uuid/trace/:tid/representative-face endpoint
2026-05-22 04:50:07 +08:00
Accusys
e2c627da31
merge: M5Max128 server.rs split + path updates
2026-05-21 21:04:37 +08:00
Accusys
0710c5edf7
chore: update paths from momentry_core_0.1 to momentry_core
2026-05-21 21:03:43 +08:00
M5Max128
e1dbd27333
docs: add Gitea sync info + access token to AGENTS.md
2026-05-21 17:27:33 +08:00
M5Max128
3c458dfc5c
Merge remote-tracking branch 'origin/main'
2026-05-21 16:38:52 +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
Accusys
e7eb90b987
docs: sync notes + identity_binding.rs traces pagination
2026-05-21 16:30:27 +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
8ede4be159
chore: organize logs into logs/ directory with startup scripts
...
- Moved momentry_3002.log, momentry_3003.log to logs/
- Moved 34 nohup_worker_*.log files to logs/
- Created run-server-3002.sh, run-server-3003.sh for easy startup
- Updated AGENTS.md with log paths and startup scripts
- logs/ already excluded by *.log in .gitignore
2026-05-20 09:31:48 +08:00
Accusys
8b53e815b8
docs: fix 3003 reference in pipeline module, regenerate HTML/WASM
2026-05-19 23:22:09 +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
7680c202ef
Phase 5: mark bind/unbind/match-trace as tested on 3003
2026-05-19 21:08:16 +08:00
Accusys
58c283a1fc
fix: playground ASR field names (start_time/end_time) + add 3003 specific test script
...
- playground.rs: seg.start/end -> seg.start_time/end_time
- scripts/test_m5api_phase5_3003.sh: tests bind, unbind, match-from-trace on localhost:3003
- Note: bind fails on dev (real_name column missing), match-from-trace returns 404 for no embeddings
2026-05-19 21:07:39 +08:00
Accusys
d2d3197c0d
Phase 5: 21 tests (18 pass, 3 known: identity deleted by mergeinto, multipart required, proxy 404)
...
Note: mergeinto is destructive and deletes source identity.
Match-from-photo requires multipart file upload.
Match-from-trace works but proxy returns 404.
2026-05-19 20:31:34 +08:00
Accusys
e3c7e347b7
fix: identity binding + JSON endpoint + Phase 5 test script
...
- identity_binding.rs: fix i32->i64 type mismatch, COALESCE name column
- identity_api.rs: get_identity_json fallback to DB if file missing
- test_m5api_phase5.sh: fixed variable expansion, updated request bodies
- Phase 5: 21/23 passed (2 known: multipart + proxy 404)
2026-05-19 20:30:05 +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
02ad015b86
fix: type mismatch BIGINT->INT4 and FLOAT8->FLOAT4 in traces and faces endpoints
...
- trace_agent_api: CAST trace_id, frame_number to int; CAST confidence to float4
- identities: CAST frame_number to int; CAST confidence to float4
- Fixes 500 errors on /traces, /trace/:id/faces, /faces/candidates
2026-05-19 18:09:25 +08:00
Accusys
47a480a5e2
fix: identity search - fix i.name column and simplify identity_bindings join
...
- search_identity_text: COALESCE(i.real_name, i.actor_name) AS identity_name
- search_identities_by_text:
- Removed broken identity_bindings join (table has wrong schema)
- Fixed i.id type mismatch (bigint -> i32 via ::int cast)
- Simplified to direct face_detections join
- Added error logging for debugging
- Phase 4 now 11/11 passed
2026-05-19 16:21:15 +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
ff0bf6b25b
feat: Phase 2-5 API test scripts
...
Phase 2: Files (10 endpoints) - 10/10 passed
Phase 3: Process & Pipeline (7 endpoints) - 4/7 passed
Phase 4: Search (12 endpoints) - pending
Phase 5: Identity/Media/TMDB (24 endpoints) - pending
Known issues:
- Process trigger fails for already-processed files (500)
- Health detailed returns 200 when tested directly
2026-05-19 15:53:53 +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