Commit Graph

139 Commits

Author SHA1 Message Date
Accusys 8a7ffc94e4 fix: register uses birthday from pre.json (not DB registration_time) for UUID stability
- Step 4 UUID computation now reuses birthday from pre.json or file creation time
- Removed DB birthday query that overwrote the correct birthday with NOW()
- End-to-end verified: watcher UUID now matches registration UUID
2026-05-15 13:07:45 +08:00
Accusys cdbd205972 feat: file pre-processor in watcher — SHA256 + probe + UUID → .pre.json for all file types 2026-05-15 12:51:43 +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 263f017972 revert: remove /api/v1/register alias — not a valid endpoint, corrected M4 to use /api/v1/files/register 2026-05-15 03:12:32 +08:00
Accusys e5f2bba248 fix: add /api/v1/register alias for backward compatibility 2026-05-15 03:08:56 +08:00
Accusys 53d64677d0 fix: rsync pipeline check looks for source-built binary at ~/bin/rsync 2026-05-15 01:22:54 +08:00
Accusys 1c07136ef1 feat: add rsync as managed resource — registered in DB + pipeline health check 2026-05-15 01:13:57 +08:00
Accusys 194a3b161a feat: registration accepts optional content_hash from client — checksum at birth 2026-05-14 20:44:33 +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 189bec929a feat: all video endpoints support mode=normal|debug + audio=on|off 2026-05-14 19:04:42 +08:00
Accusys d2bc7c0e2d fix: trace debug cut query — use chunk table (no separate 'cut' table exists), show '-' when unavailable 2026-05-14 18:48:27 +08:00
Accusys 7fb6745c27 fix: trace debug — move overlay to top-left, double font sizes 2026-05-14 18:44:27 +08:00
Accusys 93d87f0582 fix: trace video normal mode — remove -an to preserve audio 2026-05-14 18:38:11 +08:00
Accusys b5215f13e3 fix: progress route :uuid → :file_uuid (consistency with API docs) 2026-05-14 17:58:57 +08:00
Accusys a9d0228a72 fix: unregister — rename request/response uuid → file_uuid 2026-05-14 17:46:38 +08:00
Accusys 4494935cc9 feat: dual input (start_frame/end_frame + start_time/end_time) + all outputs include frames, time, fps 2026-05-14 17:36:18 +08:00
Accusys 513b9e72fc feat: health/detailed — add pipeline status section (scripts, models, ffmpeg, embed, gdino, llm) 2026-05-14 17:01:54 +08:00
Accusys 1f7daf9e8b fix: escape colons in drawtext text values for ffmpeg 8.1.1 filter parser compatibility 2026-05-14 15:55:32 +08:00
Accusys 6728c2bb90 feat: trace debug — actual bbox thickness=4, interpolated bbox thickness=1 at first known position 2026-05-14 15:24:11 +08:00
Accusys d8dddda970 fix: trace debug bbox thickness 1 (thinner) 2026-05-14 15:21:04 +08:00
Accusys cfb0cfbb37 fix: trace debug info panel moved to bottom-left corner 2026-05-14 15:20:05 +08:00
Accusys 94122f5371 fix: trace debug bbox transparency 0.5 2026-05-14 15:18:12 +08:00
Accusys a8d7361a97 fix: trace debug — green bbox + trace_id label per face detection 2026-05-14 15:17:06 +08:00
Accusys c90394897d fix: trace debug — show Stranger_NNN for unnamed traces instead of unknown 2026-05-14 15:12:21 +08:00
Accusys 8f013cbdbc fix: trace debug mode — show all traces in frame range with interpolation
Debug overlay now lists every trace visible in the current frame range,
including interpolated frames (continuous from first to last detection).
Format per trace line:
  Trace {id}: start_frame={n}  Identity={name}
2026-05-14 15:09:34 +08:00
Accusys c51d6f6f2d fix: trace debug mode — text overlay only, no bounding boxes
Debug overlay now shows:
  File UUID: {uuid}
  Trace {id}: start_frame={n}  Identity: {name}
  Cut: {id}
  Frame: {n}  Time: {t}s
2026-05-14 15:07:28 +08:00
Accusys 1497b53e82 fix: trace video default mode changed from 'debug' to 'normal' 2026-05-14 15:00:35 +08:00
Accusys 6927415c41 feat: health API — add build_timestamp + detailed resource status list
- build.rs: BUILD_TIMESTAMP from build time via `date -u`
- GET /health: now returns build_timestamp
- GET /health/detailed: returns build_timestamp + resources block
  (cpu_used/cpu_idle/memory/gpu usage)
2026-05-14 14:59:30 +08:00
Accusys df47ed1417 feat: identity inactive cleanup — migration script + release.rs excludes status='inactive'
- New SQL migration: mark auto identities with no face references as inactive
- release.rs identities export now filters out status='inactive'
2026-05-14 14:46:30 +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 5a9b34f1c2 feat: identity text search endpoints — /search/identity_text + /identities/search 2026-05-14 12:27:08 +08:00
Accusys e8f44d7357 fix: trace_agent_api.rs — replace all dev.* hardcodes with schema::table_name() 2026-05-14 02:56:43 +08:00
Accusys 8f877b474f feat: trace video normal/debug mode — normal=raw, debug=bbox+frame+identity+cut 2026-05-14 02:41:22 +08:00
Accusys ac96a4242b fix: correct frame number expression in trace video 2026-05-14 02:31:29 +08:00
Accusys 605d02a674 feat: trace video shows frame number overlay 2026-05-14 02:30:40 +08:00
Accusys 9007e46b9f fix: trace video bbox no longer extends beyond last detection 2026-05-14 00:14:52 +08:00
Accusys adae263065 fix: add audio (aac) to trace video API 2026-05-13 23:46:06 +08:00
Accusys edb0e0bf7a fix: bundle vec0.dylib in package + deploy install (4/4 M4 items) 2026-05-13 20:46:29 +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 c0c0e6e8ea feat: self-contained deploy/verify scripts in release package
- Add deploy.sh: imports data.sql, copies video, copies output files, verifies
- Add verify.sh: checks file integrity + DB/offline status
- Both scripts included in tar.gz via release package command
- Package now deployable standalone without release CLI
2026-05-13 04:35:43 +08:00
Accusys bbf8e64752 feat: offline report from SQLite, no PostgreSQL needed
- Add render_offline_report.py — reads .sqlite directly
- Reports include: DB contents, TKG breakdown, density histogram,
  trace timeline, top identities, identity details card
- Supports --identity filter (like online mode)
- Add release visualize-offline <sqlite> [-i identity] [-o output]
- Works with exported .sqlite from export_sqlite.py
- Uses sqlite-vec vec0 tables for vector metadata
2026-05-13 03:10:59 +08:00
Accusys 2992a0e650 feat: service inventory, ERP reports, sqlite-vec integration, visualize tool
- Add SERVICE_INVENTORY_V1.0.0.md (25 source-verified tools, 3.7GB)
- Add ERP_SELECTION_REPORT.md (Odoo CE vs ERPNext comparison)
- Add SFTPGO_ODOO_REPLACEMENT.md (SFTPGo migration plan)
- Add SERVICE_GO_GITEA_BUILD.md (Go compiler + Gitea build report)
- Add release visualize command (face trace heatmap + identity filter)
- Add sqlite-vec integration (160MB SQLite with vec0 vector tables)
- Add export_identities.py, export_sqlite.py, render_face_heatmap.py
- Add Go, Gitea, Rust/Cargo, Swift, yt-dlp, SQLite, sqlite-vec to service CLI
- Fix package to include identities and identity_bindings in data.sql
- Update release list to show all deployed video stats
- Add V1.0.0 YAML frontmatter to all docs (DOCS_STANDARD compliant)
2026-05-13 02:37:45 +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 28652f5b76 feat: phased release packaging (Phase 1 + Phase 2)
- scripts/release_pack.py: packages output_json + schema + chunks + vectors
- Phase 1: triggered after ASR+ASRX+Rule 1+vectorization (sentence chunk delivery)
- Phase 2: triggered after full pipeline + 5W1H Agent (full delivery)
- Both phases include all available {uuid}.*.json files
- Non-overlapping directories: release/phase1/ and release/phase2/
2026-05-09 13:58:55 +08:00