Skip to content

PickDone 0.3.4

Choose a tag to compare

@github-actions github-actions released this 11 Sep 15:20
· 75 commits to main since this release

新增

  • Linux 支持:应用现以 AppImage(x64 + arm64)与 deb(arm64)发行,加密数据库、托盘、提醒与 CLI 与 Windows 完全一致。自本版起 Linux 用户走同样的应用内更新通道。

修复

  • Linux 打包:每个 Linux 包发版前强制校验渲染层与对应架构的 sqlite 驱动真实在包内(更早的构建曾出过只有 "not found" 的白窗,以及装错架构驱动导致数据库打不开的 arm64 包)。
  • Linux/macOS CLI:默认数据目录改按各平台惯例解析(与桌面应用存储位置一致)——此前走 Windows 专属路径,CLI 看到的是空数据库。
  • 安全:番茄浮窗、快捷添加与锁屏窗口的页面导航限制为应用自身来源(旧的子串匹配可被携带路由标记的任意 URL 穿越);锁屏窗额外禁止一切弹窗;账本记录忽略 extras 中的 __proto__ 类键。
  • 稳定性:账本写入失败不再导致本次会话剩余时间的账本变更广播永久静默;分类保存的写失败现在会显式暴露而不是与数据库静默分叉;清理了无法触发的死设置/窗口通道。
  • 维护:为可维护性重组了任务 store(撤销/备份/排程芯片关注点拆分)、主进程窗口与 IPC 表、测试目录(按功能域分组+快速套件过滤),并把重复的 600/720 分钟上限与中文日期解析收敛为单一共享源。无行为变化。

Added

  • Linux support: the app now ships as AppImage (x64 + arm64) and deb (arm64), with the same encrypted database, tray, reminders and CLI as Windows. Updates for Linux arrive through the same in-app updater channel from this release on.

Fixed

  • Linux packaging: the renderer bundle and the per-architecture sqlite driver are verified present in every Linux package before release (an earlier build shipped a window that only said "not found", and an arm64 package carrying the wrong prebuilt driver failed to open its database).
  • CLI on Linux/macOS: the default data directory now follows each platform's convention (matching where the desktop app stores its data) instead of a Windows-only path that left the CLI looking at an empty database.
  • Security: navigation from the floating-timer, quick-add and lock windows is now restricted to the app's own origin (the previous substring check let any URL carrying a route marker through); the lock window additionally denies all popups; ledger records ignore __proto__-style keys in stored extras.
  • Reliability: a failed ledger write no longer permanently silences ledger change broadcasts for the rest of the session; category saves surface write failures instead of silently diverging from the database; removing dead settings/window channels that nothing could trigger.
  • Maintenance: the store, main-process and test suites were reorganized for maintainability (undo/backup/plan-chip concerns extracted from the task store; tests grouped by functional domain with a fast suite filter; duplicated 600/720-minute limits and the Chinese date parser unified into single shared sources). No behavior changes.