Skip to content

v6.0.0

Choose a tag to compare

@OliverZhaohaibin OliverZhaohaibin released this 29 Apr 16:19
· 170 commits to main since this release
4d137a7

🚀 v6.0.0 — People, Face Clusters, Groups & Linux Maps Runtime

👥 A major People release with automatic face clustering, persistent People
state, multi-person groups, richer location metadata, and broader Windows/Linux
runtime packaging.

Key Updates

👥 People Face Clusters

  • Added the optional People face-scanning pipeline powered by InsightFace
    and ONNXRuntime through the ai-demo extra.
  • Detects faces in image assets, writes cropped face thumbnails, builds face
    embeddings, and clusters them into persistent People cards.
  • Added background face-scan scheduling alongside the normal asset scan, with
    pending, done, skipped, retry, and failed status tracking in the
    global asset index.
  • Rebuilt the People persistence model around a rebuildable runtime snapshot
    plus stable People state so names, covers, ordering, hidden flags, and group
    decisions survive rescans and reclustering.

👨‍👩‍👧 People Groups & Dashboard Workflow

  • Added People groups for collecting photos where multiple selected people
    appear together.
  • Group cards support shared-photo queries, cover selection, drag ordering,
    pinned state, and safe disbanding without deleting the underlying people or
    photos.
  • Added People card actions for naming, merging, hiding/unhiding, cover
    management, and dashboard filtering for hidden people.
  • Hardened merge safety so hidden and visible people cannot be merged by
    accident.
  • Split the People dashboard into focused board, card, dialog, shared, and
    widget modules for easier testing and future iteration.
People   Group #### 🗺️ Location & Info Panel Improvements - Added an embedded location map to the floating info panel so geotagged assets can show map context directly in metadata view. - Added location assignment plumbing and background tasks for updating selected asset coordinates. - Improved map source handling, OsmAnd search support, and map widget runtime behavior. - Extended Linux maps support with helper-backed OBF rendering and the native OsmAnd widget runtime when the required shared libraries are present.
Info panel with map Floating info panel in detail view
info1 info2

🧩 Albums, Menus & Pinned Items

  • Added persistent pinned-item services for albums, people, and groups.
  • Expanded sidebar and gallery context-menu plumbing with shared menu styling
    and consistent action handling.
  • Improved album dashboard/sidebar behavior, cover actions, rename/delete
    workflows, and album tree model coverage.
  • Added project popup guardrails so routine warnings and confirmations use the
    app-themed popup system instead of native QMessageBox surfaces.

⚙️ Scanning, Indexing & Packaging

  • Improved the scan pipeline with chunked persistence, scan-merge behavior, and
    global repository tests for move/delete and status preservation scenarios.
  • Added People cover caching and thumbnail cache services for faster dashboard
    rendering.
  • Updated Nuitka and Debian packaging guidance for bundled insightface,
    onnxruntime, extension/models, Linux maps runtime files, and People-page
    release smoke tests.
  • Added troubleshooting guidance for packaged face-scan failures, runtime typing
    compatibility issues, model-cache problems, and Linux XCB/GLX map startup.

🧪 Tests & Reliability

  • Added focused coverage for People pipeline clustering, People repositories,
    People service behavior, People dashboard widgets, group workflows, hidden
    state, merge guards, and cover persistence.
  • Added tests for info panel maps, map extension download tasks, gallery and
    playback coordinators, album sidebar/model behavior, scan/index sync, and
    Linux map source handling.
  • Improved packaged-runtime diagnostics so asset-level face failures are logged
    and retried without deadlocking the full People scan.

🚀 v6.0.0 — People、人脸聚类、Group 与 Linux 地图运行时

👥 这是一次重要的 People 功能发布,带来了自动人脸聚类、持久化 People 状态、多人 Group、更丰富的位置元数据,以及更完整的 Windows/Linux 运行时打包支持。

主要更新

👥 People 人脸聚类

  • 新增可选的 People 人脸扫描管线,通过 ai-demo extra 集成 InsightFace 与 ONNXRuntime。
  • 可检测图片资源中的人脸,写入裁剪后的人脸缩略图,生成人脸 embedding,并将其聚类为持久化的 People 卡片。
  • 在常规资源扫描之外新增后台人脸扫描调度,并在全局资源索引中记录 pendingdoneskippedretryfailed 状态。
  • 重构 People 持久化模型:基于可重建的运行时快照和稳定的 People 状态,让姓名、封面、排序、隐藏标记和 Group 决策在重新扫描与重新聚类后仍能保留。

👨‍👩‍👧 People Group 与 Dashboard 工作流

  • 新增 People Group,用于收集多个选中人物共同出现的照片。
  • Group 卡片支持共同照片查询、封面选择、拖拽排序、置顶状态,以及不删除底层人物或照片的安全解散。
  • 新增 People 卡片操作:命名、合并、隐藏/取消隐藏、封面管理,以及 Dashboard 中的隐藏人物过滤。
  • 加强合并安全性,避免隐藏人物和可见人物被误合并。
  • 将 People Dashboard 拆分为 board、card、dialog、shared 和 widget 等更聚焦的模块,便于测试和后续迭代。

🗺️ 位置与信息面板改进

  • 在浮动信息面板中新增内嵌位置地图,让带地理位置的资源可以直接在元数据视图中显示地图上下文。
  • 新增位置分配流程和后台任务,用于更新选中资源的坐标。
  • 改进地图源处理、OsmAnd 搜索支持和地图 widget 运行时行为。
  • 扩展 Linux 地图支持:当所需共享库存在时,可使用 helper-backed OBF 渲染以及原生 OsmAnd widget 运行时。

🧩 相册、菜单与置顶项目

  • 新增相册、People 和 Group 的持久化置顶项目服务。
  • 扩展侧边栏和图库上下文菜单流程,加入共享菜单样式和一致的操作处理。
  • 改进相册 Dashboard/侧边栏行为、封面操作、重命名/删除流程,以及相册树模型覆盖。
  • 新增项目弹窗保护机制,让常规警告和确认使用应用主题弹窗系统,而不是原生 QMessageBox 界面。

⚙️ 扫描、索引与打包

  • 改进扫描管线,支持分块持久化、扫描合并行为,并为移动/删除和状态保留场景补充全局 repository 测试。
  • 新增 People 封面缓存和缩略图缓存服务,加快 Dashboard 渲染。
  • 更新 Nuitka 和 Debian 打包指南,覆盖捆绑 insightfaceonnxruntimeextension/models、Linux 地图运行时文件,以及 People 页面发布烟测。
  • 新增故障排查指南,覆盖打包后人脸扫描失败、运行时类型兼容问题、模型缓存问题,以及 Linux XCB/GLX 地图启动问题。

🧪 测试与可靠性

  • 新增 People 管线聚类、People repository、People service 行为、People Dashboard widget、Group 工作流、隐藏状态、合并保护和封面持久化等专项测试覆盖。
  • 新增信息面板地图、地图扩展下载任务、图库和播放协调器、相册侧边栏/模型行为、扫描/索引同步,以及 Linux 地图源处理相关测试。
  • 改进打包运行时诊断,使资源级别的人脸失败能够被记录并重试,同时避免阻塞完整的 People 扫描。