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
Accusys
3d2bacb07f
feat: Phase 1 base API test script (15 endpoints)
2026-05-19 14:15:00 +08:00
Accusys
7ab7119a99
fix: ASR processor indentation error
2026-05-19 13:23:09 +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
26725dcab7
fix: enable GFM tables in WASM doc renderer (pulldown-cmark ENABLE_TABLES)
2026-05-19 12:54:08 +08:00
Accusys
c9bcdcb56a
docs: regenerate HTML/WASM docs with video vs clip comparison + timestamps
2026-05-19 12:51:10 +08:00
Accusys
5b2f9b35bf
docs: add video vs clip comparison table + update timestamps to all 14 modules
2026-05-19 12:50:39 +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
72f4b53357
fix: add emergency API key bypass in middleware (3002+3003)
2026-05-19 09:59:09 +08:00
Accusys
ef64d69be7
feat: add download .md button to doc viewer
2026-05-19 03:29:46 +08:00
Accusys
6da046e831
feat: highlight matched keywords in search results
2026-05-19 03:21:22 +08:00
Accusys
7bc069b806
feat: full-text search across all doc modules
2026-05-19 03:18:46 +08:00
Accusys
b046a3b91c
feat: add search filter to doc-wasm sidebar
2026-05-19 03:16:06 +08:00
Accusys
f6f623eeea
docs: add 13_config to USER_MODULES + regenerate docs
2026-05-19 03:14:18 +08:00
Accusys
3085a7d048
docs: regenerate HTML/WASM docs after adding 13_config module
2026-05-19 03:06:39 +08:00
Accusys
2335781390
docs: extract config module (13_config.md) from pipeline module
2026-05-19 03:05:45 +08:00
Accusys
e14dc0fcb9
fix: register dedup response returns full existing file metadata (not zeros)
2026-05-19 03:02:56 +08:00
Accusys
1c42004abf
fix: scan job_id via LEFT JOIN LATERAL monitor_jobs instead of stale videos.job_id column
2026-05-19 02:49:53 +08:00
Accusys
538eea6406
feat: health consistency agent — 4 data integrity checks, GET /health/consistency
2026-05-19 02:17:27 +08:00
Accusys
c95de97762
feat: show config toggle states in /health/detailed
2026-05-19 00:42:41 +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
05e1e807c0
remove: pipeline flowchart diagram
2026-05-18 13:30:37 +08:00
Accusys
bc962e910d
fix: simplify vector DB labels
2026-05-18 13:28:45 +08:00
Accusys
522c0acabe
fix: rename Story 5W1H Summary -> Template 5W1H Story Summary
2026-05-18 13:26:15 +08:00
Accusys
66542174b9
fix: rename to Story 5W1H Summary / LLM 5W1H Summary
2026-05-18 13:22:59 +08:00
Accusys
13bc3f7f80
fix: correct naming - story sentence embedding / llm summary sentence embedding
2026-05-18 13:20:17 +08:00
Accusys
35a94aa979
fix: add missing vector storage steps to 入库 checklist
2026-05-18 13:18:59 +08:00
Accusys
8ec70e39de
fix: Story and 5W1H as separate agent items
2026-05-18 13:17:44 +08:00
Accusys
3fada32dae
fix: separate Story/5W1H into Agent subgraph
2026-05-18 13:16:04 +08:00
Accusys
be216f26bd
fix: Phase1/Qdrant/PG moved to top-level subgraphs
2026-05-18 13:12:32 +08:00
Accusys
56e6d2a985
fix: restructure 入库 into Phase1, Qdrant向量庫, PG向量庫
2026-05-18 13:10:35 +08:00
Accusys
ccf82ec8ba
fix: wrap vector storage in separate subgraph
2026-05-18 13:07:49 +08:00
Accusys
1515a0a682
fix: add voice+face embedding to pipeline diagram
2026-05-18 13:05:37 +08:00
Accusys
22e164f1a3
fix: correct pipeline dependency diagram
2026-05-18 13:01:02 +08:00
Accusys
6afbd45929
fix: OCR and Pose as separate nodes
2026-05-18 12:57:29 +08:00
Accusys
7835922264
fix: Mermaid colors + simplified LR layout
2026-05-18 12:54:51 +08:00