github lifedever/TaskTick v1.4.0
TaskTick v1.4.0

latest release: v1.4.1
7 hours ago

What's Changed

🛡 Critical: Data Loss Fix

  • New StoreHardener checkpoints any pending SwiftData -wal sidecar into the main store before the app opens it. Data that would previously get stranded in the WAL across an in-app update is now merged at launch and can't be lost.
  • Explicit checkpoint on app termination, during in-app update install, and right after a backup restore.
  • Removed the destructive auto-restore that ran when the model container failed to open. That code silently overwrote your current database with an older backup — the actual root cause of the recurring data loss reports. Open failures now fall back to a read-only in-memory session and leave your files untouched; you can still restore from Settings → Backup.

✨ New: Pre-Run Command (per task)

  • A new optional "Pre-Run Command" block that executes in the same shell session as the main script. Great for export https_proxy=…, loading environment variables, activating a Conda env, etc.
  • Disabled by default; flip the toggle on and a text editor appears.

🎨 Editor redesign

  • The old "Script" tab is split into two cleaner tabs: Content (pre-run command + script source + validation) and Settings (shell, working directory, timeout, ignore exit code).
  • 11 languages (EN / 简体 / 繁體 / 日本語 / 한국어 / Deutsch / Español / Français / Italiano / Bahasa / Русский) fully localized.

🔧 Misc

  • Task duplication and JSON import/export now carry the pre-run command. Older JSON files without the field still import cleanly.

更新内容

🛡 关键:修复数据丢失问题

  • 新增 StoreHardener,app 启动时先把遗留在 -wal 文件里的数据 checkpoint 合并进主库,确保下一步 SwiftData 打开到的是完整、自包含的数据库文件。以前在应用内更新前后,这部分 WAL 数据会被遗弃,是本次事故的直接触发源。
  • 退出、应用内更新、备份恢复三条路径统一强制 checkpoint。
  • 删除了打开失败时破坏性的"自动备份覆盖"逻辑——这才是反复丢数据的真正根因:容器打开一旦失败(哪怕只是临时锁冲突),旧代码会默默用备份覆盖当前文件。现在打开失败会降级到内存只读模式、保留原始文件,让你在"设置 → 备份"里自行决定是否恢复。

✨ 新功能:前置命令(每任务独立)

  • "前置命令"与主脚本在同一个 Shell 会话中执行,适合 export https_proxy=…、加载环境变量、激活 Conda 环境等场景。
  • 默认关闭,打开 Toggle 后才出现编辑框,不占视觉空间。

🎨 编辑器重构

  • 旧的"脚本" tab 拆成两个:内容(前置命令 + 脚本源 + 校验) 和 设置(Shell、工作目录、超时、忽略退出码),布局更清爽。
  • 11 种语言(EN / 简体 / 繁體 / 日本語 / 한국어 / Deutsch / Español / Français / Italiano / Bahasa / Русский)完整本地化。

🔧 其它

  • 复制任务、JSON 导入导出同步带上前置命令;老版本导出的 JSON 仍可无缝导入。

Full Changelog: v1.3.7...v1.4.0

Don't miss a new TaskTick release

NewReleases is sending notifications on new releases.