Commit Graph

11 Commits

Author SHA1 Message Date
f3d75ebce8 feat: Library 批量注册 + PeopleView 修复 + 国际化
Library:
- 添加 checkbox 和鼠标框选功能
- Unregistered 卡片添加快速注册按钮
- 状态标签移至左下方,人脸图标移至左侧中间
- Deep Scan 改为 unregister -> register -> process
- 完整国际化(日语、繁体中文、英语)

PeopleView:
- 修复卡片不显示问题(使用 get_file_traces API)
- 移除对 identity_id 字段的依赖

其他:
- 添加日语语言包
- 添加 useDragSelect composable
- 新增文档:Face Bbox Null Bug Report
2026-10-01 00:42:13 +08:00
adc8d944c6 perf: use direct trace-thumb endpoint + fallback for face group thumbnails
- loadTraceThumb now uses /api/v1/trace-thumb/{uuid}/{tid} (~8ms)
- Face group imgs use direct trace-thumb URL with fallback
- Merge dialogs also use direct trace-thumb with fallback
- MAX_CONCURRENT increased to 32

Fallback chain:
1. c.rep_trace.file_uuid/trace_id (full trace data)
2. selectedFileUuid/representative_trace (group data only)
3. SVG silhouette
2026-08-01 05:29:55 +08:00
5be57aec7d Revert "perf: lazy load face group thumbnails + increase concurrency to 32"
This reverts commit 26b94f7243.
2026-08-01 01:58:01 +08:00
26b94f7243 perf: lazy load face group thumbnails + increase concurrency to 32
- Add v-observe directive to face groups for lazy thumbnail loading
- Increase MAX_CONCURRENT from 16 to 32 for faster parallel loading
- Apply lazy loading to merge dialogs and candidate groups
- Only load thumbnails when cards become visible (IntersectionObserver)

Improves initial load time for Charade (153 groups, 2451 traces) from
~76s to <5s for visible groups.
2026-08-01 01:49:45 +08:00
ec67e749d7 fix: correct pipeline stage weights to match Core API
Problem:
- rule1_ingestion weight was 0.10 (should be 0.05)
- face_tracing weight was 0.10 (should be 0.05)
- identity_agent was filtered out (should be included with 0.10)
- Progress percentage calculation was incorrect

Solution:
1. Correct weights based on Core team specifications
2. Remove identity_agent filter (now part of pipeline)
3. Use correct weights:
   - processors: 0.30
   - rule1_ingestion: 0.05
   - face_tracing: 0.05
   - identity_agent: 0.10
   - tkg_nodes: 0.20
   - tkg_edges: 0.15
   - rule2_ingestion: 0.15

Impact:
- Progress percentage now accurately reflects pipeline completion
- All stages properly tracked and weighted

Thanks Core team for the correct weight configuration!
2026-07-25 02:20:50 +08:00
c347c200b2 fix: load pipeline stats in syncFileStatus and handle missing pipeline data
Problem:
- syncFileStatus() doesn't load pipeline progress data
- Files stuck in 'processing' without percentage display
- pollPipelineProgress() not started when pipeline data missing

Solution:
1. Add loadPipelineStats() call in syncFileStatus() for processing files
2. Start pollPipelineProgress() even when pipeline data is missing
3. Ensure progress bar always has data to display

Impact:
- Progress bar now shows percentage during deep scan
- Files no longer stuck in 'processing' state indefinitely
- Better handling of edge cases when API data is missing

Related: Core team needs to verify get_pipeline_stats API accuracy
2026-07-25 01:36:28 +08:00
55d0216083 feat: add real-time files watch for LibraryView
Implement comprehensive monitoring system:
- Watch for new registered files (5s interval)
- Detect file status changes (registered → processing → completed)
- Monitor file additions/removals

Functions added:
- startFilesWatch(): Poll get_files API every 5s
- stopFilesWatch(): Clean up interval

LibraryView integration:
- Enable on mount
- Disable on unmount

Enables cross-machine monitoring: one operates, another watches changes
2026-07-24 21:49:06 +08:00
5951aca086 feat: frame-based positioning and mark system foundation
Core Changes:
- Fix SearchView to use start_frame/end_frame directly (no time*fps conversion)
- Add hard_delete support to delete_trace API
- VideoPlayer: Main timeline + Mark system foundation
- Proxy: Add local routes for auth, media, identity-matches, cluster-results
- Add .gitignore to exclude build artifacts and dependencies

Design Documents:
- Multi-track Mark system design (.opencode/plans/)
- Video editing positioning standards research

Files Modified:
- src/views/SearchView.vue: Frame positioning, ensureMinDuration (240 frames)
- src/views/PeopleView.vue: batchDeleteGroups with hard_delete
- src/api/index.ts: delete_trace with hard_delete body
- src/components/VideoPlayer.vue: Timeline + Mark UI
- src-tauri/src/proxy.rs: New local routes
- AGENTS.md: Update documentation
2026-07-24 20:19:47 +08:00
691b38fe96 fix: m4mini deployment issues - duplicate script setup, auth redirect, Tauri bypass 2026-06-26 20:33:35 +08:00
f915aaf794 feat: pending identity sorting, face detail modal, video player fps, processor counts 2026-06-24 02:02:33 +08:00
7855983dc1 feat: bind/unbind by id, video streaming proxy, unmute default, library refresh, hamburger click-outside
- Core API: bind/unbind accept id (integer PK) when face_id is null
- Tauri proxy: stream video responses instead of buffering for seek bar
- VideoPlayer: remove muted attribute, unmute by default
- LibraryView: call invalidateFiles() before ensureFiles() on register/unregister
- PeopleView: close sort panel on click-outside, not just hamburger toggle
- bind_face: prefer face_id, fallback to id when face_id is null
2026-06-18 22:24:03 +08:00