Commit Graph

49 Commits

Author SHA1 Message Date
Accusys
159684331e feat: GDINO A+B — time-bounded search (9s vs 130s) + parameterized interval 2026-05-14 13:57:25 +08:00
Accusys
39888ce3cc feat: eye filter flag + QA fixes (Gemma4 prompt, YOLO boundary, PaliGemma score, GDINO skip) 2026-05-14 12:24:25 +08:00
Accusys
f60a59b280 feat: QA self-check agent — 15 prompts, 5 judges, weighted scoring 2026-05-14 10:53:30 +08:00
Accusys
64bcfd716e feat: merge traces within same cut — centroid similarity threshold 0.75 2026-05-14 03:04:03 +08:00
Accusys
3a7facdc10 fix: face tracker — add iou>0.35+dist<100 condition for same-position matching 2026-05-14 02:26:37 +08:00
Accusys
1023930f73 feat: deploy.sh --force flag to skip overwrite confirmation 2026-05-14 01:53:59 +08:00
Accusys
b66d7963c2 fix: store_traced_faces — embed from DB, UPDATE not INSERT, dedup 2026-05-14 00:32:39 +08:00
Accusys
74f00d3baa fix: face traces split at scene cuts — even same person, different cut 2026-05-14 00:21:17 +08:00
Accusys
690254a5b2 fix: face tracker — reject cross-person match on bbox size + edge exit 2026-05-14 00:05:57 +08:00
Accusys
70a796e16c fix: face tracker embedding threshold — reject similarity < 0.5, tighten fallback to >0.75 2026-05-14 00:02:39 +08:00
Accusys
6cd41ed71f fix: deploy.sh pre-clean all tables + SCHEMA var for public/dev 2026-05-13 22:05:35 +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
fcaaeadf06 fix: deploy.sh missing REQUIRED_FILES variable 2026-05-13 20:20:26 +08:00
Accusys
1d69a88741 fix: deploy.sh build check lenient + per-file import order (M4 feedback)
- Accept SRV_BUILD=unknown (skip build check, only compare version)
- Per-table import with explicit FK order (nodes before edges)
2026-05-13 20:15:44 +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
48c3b13c37 fix: restore identity_id after face_dedup, rebuild package v20260512
- Re-ran identity_bind.py to restore identity_id on face_detections
- Dedup cleanup had removed rows with identity_id, kept NULL rows
- 70691 face_detections now have identity_id, 428 identities
- Full package rebuild: 169MB sqlite, 1358MB tar.gz
- identities.json: 428 identities + 5483 bindings + 5483 trace maps
- TMDB matching complete: Audrey Hepburn 843 traces, Cary Grant 482
2026-05-13 04:30:18 +08:00
Accusys
fff2af8ad1 fix: identity names now show in all trace tooltips (online + offline)
- Online: remove IDENTITY filter gating on identity_note — always show
- Offline: fix id_names scope bug — was overwritten by top10-only dict
- Both reports now show 'identity: PERSON_xxx' for all 2000 timeline traces
- All 5483 traces have identity mapping (verified in SQLite)
2026-05-13 03:19:26 +08:00
Accusys
8d4d29ce6e fix: offline report shows identity names in trace tooltips
- Load trace_to_identity mapping from SQLite face_detections
- Query identity names from identities table
- Show 'identity: PERSON_xxx' in each trace bar tooltip
- Works in both full view and --identity filtered view
2026-05-13 03:14:49 +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
007fe10c2e feat: TKG completion, PG audit, SQLite backup with Qdrant voice vectors
- Add voice_embeddings vec0 table (192D) from Qdrant to SQLite export
- Add tkg_nodes + tkg_edges tables to SQLite export
- Clean orphan TKG data (2414 nodes, 64 chunks)
- Rebuild TKG for both Charade files with speaker nodes
- Create asrx.json from chunk speaker metadata for TKG builder
- PG audit: pre_chunks 1.8GB (largest), 3 empty tables found
- Update release package to include all output files (not just JSON)
- Full backup: 9 SQLite tables + 3 vec0 vector tables
2026-05-13 03:03:38 +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
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
d043b6adae docs: Phase 1 completion report + LLM reasoning off fix 2026-05-09 22:03:34 +08:00
Accusys
e7f311e7b8 docs: Phase 1 checklist 6 sections (含 face trace + TKG + identities)
release_pack.py: identities 併入 phase 1(不限 phase >= 2)
2026-05-09 18:14:22 +08:00
Accusys
6fc1d2b54d dashboard: copy button, dedup files, /api/all single call 2026-05-09 18:00:46 +08:00
Accusys
4f1e546104 feat: Momentry Dashboard web app (Flask)
- Realtime dashboard on port 5050
- Pipeline checklist (8 stages /)
- System health: CPU, memory, disk, GPU, 4 services
- Redis metrics: memory, clients, hit rate, keys
- DB table counts: videos, chunks, face_detections, identities, TKG
- Processor timing chart
- Auto-refresh every 15 seconds + manual refresh button

Usage: python3 scripts/dashboard.py
Open: http://localhost:5050
2026-05-09 17:43:26 +08:00
Accusys
06caea51e7 feat: pipeline status dashboard (checklist + health + timing)
Usage:
  python3 scripts/pipeline_status.py              # formatted table
  python3 scripts/pipeline_status.py --json        # machine-readable JSON

Shows:
- 8-stage checklist with pass/fail per stage
- System health: CPU, memory, disk, GPU, 4 services
- Processor timing from DB
- All in under 1 second
2026-05-09 17:29:38 +08:00
Accusys
fc16e7b1c3 fix: Phase 1 pipeline fully operational
- store_traced_faces.py: add --uuid arg for PythonExecutor compat
- tkg_builder.py: add --uuid arg + timestamp_secs column fix
- release_pack.py: fix pg_dump/psql paths, proper JSON escaping
- pipeline_checklist.py: new independent verification tool

Phase 1 checklist 8/8 PASS:
ASR  ASRX  sentence chunks  vector embeddings 
face trace  TKG graph  trace chunks  Phase 1 release 
2026-05-09 17:21:17 +08:00
Accusys
19669a1f91 refactor: model naming v1(base)/v2, Qdrant collection naming
- Phase 1 = v1 (base model, sentence chunk embedding)
- Phase 2 = v2 (full pipeline + 5W1H)
- Naming leaves room for v3, v4, etc.
- Qdrant collection: momentry_dev_v1 (active model under dev)
- Release packaging exports Qdrant points snapshot
2026-05-09 14:14:04 +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
Accusys
a0774cb9ab feat: wire TKG builder into worker pipeline + face-face edges
- Auto-run tkg_builder.py after face trace store + Qdrant sync + trace chunks
- Add face-face CO_OCCURS_WITH edges (two traces in same frame)
- docs: TKG integration report for M4
2026-05-09 06:22:27 +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
Warren
6d82131589 M4: trace API, portal embed client, EmbeddingGemma sync, release plan 2026-05-08 01:04:23 +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
8f05a7c188 feat: update Python processors and add utility scripts
- Update ASR, face, OCR, pose processors
- Add release pre-flight check script
- Add synonym generation, chunk processing scripts
- Add face recognition, stamp search utilities
2026-04-30 15:07:49 +08:00
Warren
59809dae1f chore: backup before migration to new repo 2026-04-23 16:46:02 +08:00
Warren
395f74bf07 feat: 添加場景識別 Playground API 整合
新增:
- scripts/test_scene_api.py - API 測試腳本
- docs_v1.0/IMPLEMENTATION/SCENE_API_INTEGRATION.md - API 整合指南

功能:
-  GET /api/v1/scene/:uuid endpoint 設計
-  Python 測試腳本
-  完整使用文檔
-  Python 整合範例

使用方式:
```bash
# 啟動 Playground (port 3003)
cargo run --bin momentry_playground -- server --port 3003

# 測試場景識別
python3 scripts/test_scene_api.py <video_uuid>
```

目前狀態:
-  Python 場景識別功能正常
-  API endpoint 設計完成
-  Rust 完整實作進行中
- 📄 完整文檔已建立
2026-04-01 02:55:52 +08:00
Warren
363d6913f9 docs: 添加 Places365 安裝指南和測試腳本
新增:
- docs_v1.0/IMPLEMENTATION/PLACES365_INSTALLATION.md
- scripts/test_places365_scene.py

功能:
-  Places365 380 個場景類別載入
-  場景分類器測試
-  影片場景分類測試

目前狀態:
-  基礎場景識別功能正常
-  Places365 模型可選手動安裝
- 📊 準確率 37% → 預期 85-90%
2026-04-01 02:39:13 +08:00
Warren
6d5d121d0f feat: 整合 Places365 場景類別到場景識別
- 新增 places365_categories.json (380 個場景類別)
- 更新場景識別使用 Places365 類別名稱
- 使用最常見場景類型作為影片主要場景
- 改進場景合併邏輯

改進:
- 場景名稱從 'unknown_X' 改為實際場景索引
- 支援 Places365 380 個場景類別
- 自動統計最常見場景類型

限制:
- ResNet18 使用 ImageNet 1000 類別
- Places365 只有 365 類別,索引不完全匹配
- 建議使用專門的 Places365 模型獲得最佳結果

測試結果:
- ExaSAN 影片識別為 scene_664 (37% 信心度)
- 處理時間:1.3 秒
- 79 個取樣點成功處理
2026-04-01 02:31:49 +08:00
Warren
4109ec3d95 docs: 修復場景識別測試報告 markdown 編號
- 修正有序列表編號符合 markdownlint MD029
- 使用 1/2/3 樣式而非連續編號
2026-04-01 02:21:40 +08:00
Warren
95b44f1e55 fix: backup monitoring and PATH environment issues
- Fix backup_monitor.sh find command to sort by modification time
- Fix grep -oP syntax error (change to grep -oE)
- Adjust tier rotation threshold from -mtime +7 to +6
- Add backup_all.sh script with PATH fixes for crontab
- Add mysql-client/bin to PATH for mysqldump command
- Fix backup status check for v2 naming patterns
2026-03-30 04:11:02 +08:00
Warren
82955504f3 feat: 新增 Job Worker 系統與 API 文檔全面更新 2026-03-26 16:16:34 +08:00
Warren
845704724f fix: silence false-positive ruff lint warnings in Python scripts 2026-03-25 14:55:30 +08:00
accusys
383201cacd feat: Initial v0.9 release with API Key authentication
## v0.9.20260325_144654

### Features
- API Key Authentication System
- Job Worker System
- V2 Backup Versioning

### Bug Fixes
- get_processor_results_by_job column mapping

Co-authored-by: OpenCode
2026-03-25 14:53:41 +08:00
accusys
732ef9296b feat: add momentry_playground binary for development
- Add separate momentry_playground binary with distinct configuration
- Production (momentry): Port 3002, Redis prefix 'momentry:'
- Development (momentry_playground): Port 3003, Redis prefix 'momentry_dev:'
- Add SERVER_PORT and REDIS_KEY_PREFIX config via environment variables
- Replace all hardcoded Redis key prefixes with configurable values
- Create .env.development for playground environment settings
- Update .env with production defaults
- Add dotenv dependency for environment file loading

Configuration isolation allows running both binaries simultaneously
without port conflicts or Redis key collisions.
2026-03-25 14:53:41 +08:00
accusys
75edf0aa71 Initial commit: Momentry Core v0.1
- Rust-based digital asset management system
- Video analysis: ASR, OCR, YOLO, Face, Pose
- RAG capabilities with Qdrant vector database
- Multi-database support: PostgreSQL, Redis, MongoDB
- Monitoring system with launchd plists
- n8n workflow automation integration
2026-03-25 14:53:41 +08:00