Refactor: settings persistence
@C-Achard 已经在做这个了。
开始于 2026年8月14日。
评估
这个 Issue 还没有评估数据。
描述
Improve configuration persistence and recovery UX
Goal
Prevent loss of unsaved experiment settings while keeping portable configuration separate from QSettings UI preferences.
Unsaved changes should be persisted in a temp recovery JSON, which the user can access.
This is to prevent settings being buried in QSettings, and allow for better inspection.
Persist in the recovery JSON
Autosave the complete portable experiment configuration:
multi_camera- Camera list, including single-camera setups
- Backend and device identity
- Resolution, FPS, exposure, gain, crop, rotation
- Trigger and backend-specific properties
dlc- Model path and type
- Device, precision, resize, dynamic crop
- Additional processor options
recording- Output directory
- Filename and container
- Codec and CRF
- Fast encoding
bboxvisualization- Not part of the schema yet:
- Selected inference camera
- Selected processor and enabled state
Keep in QSettings
- Last explicit configuration path
- Recovery config JSON path and maybe metadata
- Recent configuration paths
- Last directory used by file dialogs
- Window geometry, dock layout, and theme (maybe)
- Session name
- Timestamp-based versus indexed run folder preference (or according to Session scope rework)
- Other local UI preferences
Recovery behavior
- Autosave modified configuration to a readable temporary JSON file
- Include:
- Schema version
- Autosave timestamp
- Associated explicit configuration path
- Never overwrite the user’s explicit JSON file automatically
- On startup, load the last valid explicit configuration best-effort
- If a newer or different recovery file exists, offer:
- Restore recovered configuration
- Use saved configuration
- Save recovery as...
- If a newer or different recovery file exists, offer:
- Provide a way to open the recovery JSON file location
Unsaved config changes UX
Track whether the current UI differs from the last explicit save.
Before closing, loading another configuration, or replacing the current setup, show a warning message.
Additional low-effort UX improvements
- Add a Recent configurations menu
- Improve Save As for duplicating an experiment configuration
- Extra validation?
- Later consider a Start experiment action that starts preview, initializes inference, and optionally begins recording in a single click
- 主要语言
- Python
- 星标
- 72
- 派生
- 28
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
DeepLabCut/DeepLabCut-live-GUI 的其他 Issue
-
Prevent tests from altering user config/preferences可能已有人在做 @C-Achard 于 19 天前认领。 未关闭enhancement
DeepLabCut/DeepLabCut-live-GUI#127 · 已指派 1 人 ·
-
Add torch device toggle/dropdown可能重新可做 @C-Achard 于 30 天前认领,目前没有进行中的 PR。 未关闭config gui
DeepLabCut/DeepLabCut-live-GUI#124 · 已指派 1 人 ·
-
camera DLClive performance
难度 5/5 一周以上 新手友好度 25/100
-
redesign example processor - include saving procedure when calling `stop()`可能重新可做 @C-Achard 于 37 天前认领,目前没有进行中的 PR。 未关闭processor
DeepLabCut/DeepLabCut-live-GUI#117 · 1 个 reaction · 已指派 1 人 ·
-
Deprecate single camera field in config可能重新可做 @C-Achard 于 45 天前认领,目前没有进行中的 PR。 未关闭config
DeepLabCut/DeepLabCut-live-GUI#112 · 已指派 1 人 ·
查看 DeepLabCut/DeepLabCut-live-GUI 的全部 Issue
相似的 Issue
-
bug status/needs-triage
难度 2/5 1-3 小时 新手友好度 86/100
prowler-cloud/prowler#12887 · 1 条评论 ·
维护者通常 1 天内回复
-
area: desktop platform: macos priority: p3 status: ready type: enhancement
难度 1/5 1 小时以内 新手友好度 92/100
use-agent-os/agent-os#3484 ·
维护者通常 2 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 86/100
open-telemetry/opentelemetry-python-contrib#5113 · 2 条评论 · 2 个 reaction ·
维护者通常 1 天内回复
-
external
难度 2/5 1-3 小时 新手友好度 68/100
langchain-ai/docs#6255 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复