Skip to content

Releases: lifedever/TaskTick

TaskTick v1.8.4

12 May 07:12

Choose a tag to compare

What's Changed

Quick Launcher visual overhaul

  • Native macOS standard window shadow (replaces the compact popup-style shadow previous versions used)
  • Rounded corners on all four sides (top-only before)
  • Translucent material background matching the Spotlight / Raycast idiom
  • Footer hints now sit flush with the card bottom — no more empty space below them
  • Search field still auto-focuses without TaskTick stealing foreground from the previous app

Task list selection contrast

  • Status dots and the running spinner now use a white tint when their row is selected, so they stay legible against the accent-coloured highlight (the running blue dot used to disappear into the blue background)
  • Colour change happens in the same frame as the selection highlight — no more visible "lag" while the dot fades from green to white

Localization

  • 9 locales (de, es, fr, id, it, ja, ko, ru, zh-Hant) backfilled to full parity with English — Quick Launcher, CLI settings, backup dialogs, error messages, and other recent UI no longer fall back to English for non-English/Chinese users
  • 988 new translations across all 9 locales

更新内容

快捷启动器视觉重构

  • 原生 macOS 标准窗口阴影(替代之前的紧凑弹出式阴影)
  • 四个角全部圆角(之前仅顶部圆角)
  • 半透明 material 背景,与 Spotlight / Raycast 一致
  • 底部快捷键提示贴合卡片底边,不再有大块空白
  • 搜索框依然自动聚焦,不抢前台 App 焦点

任务列表选中态对比度

  • 状态圆点和运行中转圈在选中行(蓝色高亮)上改用白色——之前运行中的蓝点几乎和蓝色背景融为一体
  • 颜色切换与选中高亮在同一帧完成,不再有"圆点慢慢从绿渐变到白"的视觉延迟

多语言

  • 德/西/法/印尼/意/日/韩/俄/繁中 9 个语言补全所有缺失翻译,快捷启动器、CLI 设置、备份对话框、错误提示等界面不再对非中英用户回退英文
  • 跨 9 个语言共新增 988 条翻译

Full Changelog: v1.8.3...v1.8.4

TaskTick v1.8.3

11 May 09:18

Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • #28 UI freeze with high-output scripts — Running scripts that emit heavy log streams (npm run dev + Spring Boot dual-streaming) no longer pegs the main thread and freezes the UI. Replaced the per-chunk O(N) string concatenation in LiveOutputManager with an O(1) line buffer; pipe I/O is now coalesced at 50ms before crossing to the main thread; the log viewer renders via NSTextView (TextKit fragmented layout) instead of SwiftUI Text, which choked on the 512KB ceiling. Sample shows main-thread time in the live-output pipeline went from 97% → 0%.
  • "0秒后" stuck in task rows — Task list, Quick Launcher, and log rows no longer freeze on "0秒后" / "in 0 seconds" after a task completes. The relative-time formatter quantizes |diff| < 1s to "0秒后" in zh-Hans, and SwiftUI didn't auto-refresh the row. Added TimelineView and a "just now" / "刚刚" short-circuit; rows now tick every minute.
  • Log truncation now keeps the suffix instead of prefix — When stdout/stderr exceeds 512KB, the last 256KB is kept (with the stack trace and exit reason) rather than the first 256KB. For build/start scripts this is the part you actually need.

✨ New Features

  • tasktick create CLI command — Create tasks from a script file via the command line:
    tasktick create "stress test" --script /path/to/script.sh --manual
    tasktick create "daily backup" --script ~/scripts/backup.sh --repeat daily --at 08:00
    Supports --shell, --cwd, --timeout, --manual, --repeat, --at, --no-enable, --json. The GUI owns the SwiftData write — CLI generates the UUID and posts a cli.create notification, then polls the read-only store to confirm.

🔧 Internal

  • New IOBatcher (per-task pipe coalescer) and LogTextView (NSTextView wrapper for virtualized rendering).
  • 12 new unit tests covering LineBuffer edge cases (CR / CRLF, amortized trim, pending overflow). All 23 tests pass.

更新内容

🐛 Bug 修复

  • #28 大量日志输出会卡死 UI — 跑日志输出量大的脚本(比如 npm run dev + Spring Boot 同时输出)不再把主线程占满、界面卡死。重写了 LiveOutputManager:用 O(1) 行缓冲替代之前每个 chunk 都做 O(N) 字符串拼接和截断;I/O 在 50ms 窗口内合批后再切到主线程;日志查看器从 SwiftUI Text(500KB 字符串撑不住)换成了 NSTextView(TextKit 分片布局)。采样显示主线程在 live output 链路上的占用 从 97% 降到 0%
  • 任务列表卡在"0秒后" — 任务列表、Quick Launcher、日志行不再卡死在 "0秒后" 上。系统的相对时间格式化器在中文 short 风格下,会把 |diff| < 1秒 量化成 "0秒后",而 SwiftUI 任务完成后不会自动重画那一行。加了 TimelineView + "刚刚" 短路逻辑,每分钟自动 tick 一次。
  • 日志截断改为保留末尾而不是开头 — stdout/stderr 超过 512KB 时保留最后 256KB(错误堆栈和退出原因都在那),而不是开头那 256KB。对于编译/启动脚本来说,结尾才是你真正需要的部分。

✨ 新功能

  • tasktick create CLI 命令 — 从命令行直接创建任务:
    tasktick create "stress test" --script /path/to/script.sh --manual
    tasktick create "daily backup" --script ~/scripts/backup.sh --repeat daily --at 08:00
    支持 --shell--cwd--timeout--manual--repeat--at--no-enable--json。CLI 只生成 UUID 并发送 cli.create 通知,由 GUI 负责实际写入 SwiftData,避免多进程写库竞争。

🔧 内部改进

  • 新增 IOBatcher(每任务一个的管道合批器)和 LogTextView(NSTextView wrapper,虚拟化渲染)。
  • 12 个新单测覆盖 LineBuffer 边界情况(CR / CRLF、amortized trim、pending 溢出等),全部 23 个测试通过。

Full Changelog: v1.8.2...v1.8.3

TaskTick v1.8.2

09 May 06:44

Choose a tag to compare

v1.8.2 fixes a launch-blocking bug shipped in v1.8.0 (CLI/GUI binaries colliding inside Contents/MacOS/ on default case-insensitive APFS) and adds an auto-repair flow for users whose tasktick symlink got pointed at the now-relocated CLI binary. Recommended for everyone on v1.8.0 / v1.8.1.

What's Changed

Auto-Repair Stale CLI Symlinks

v1.8.x relocated the CLI binary from Contents/MacOS/tasktick to Contents/cli/tasktick (necessary to avoid a case-insensitive APFS collision with the GUI binary TaskTick). DMG users who had previously installed the CLI symlink — /usr/local/bin/tasktick or /opt/homebrew/bin/tasktick — were left with a stale link.

On launch, TaskTick now automatically detects the broken symlink and offers a single-click in-place repair via Touch ID / admin password — no Terminal, no Settings navigation. Click "Update Now" once and you're done.

Settings → Enable CLI Path Fix

The "Enable CLI…" button in Settings → Command Line now generates the correct sudo ln -sf command targeting the new Contents/cli/tasktick path. (Previously generated a sudo command targeting the old Contents/MacOS/ path which would silently resolve to the GUI binary on case-insensitive disks.)

From v1.8.x (recap, in case you skipped earlier)

  • tasktick CLI bundled with the app + the new Raycast extension
  • tasktick events subcommand — NDJSON lifecycle stream for real-time integrations
  • Action toasts — instant system banner when you Run / Stop / Restart from any entry point
  • Redesigned app icon — white squircle, centered clock, properly inset green check
  • CLI hides Dock icon via setActivationPolicy(.prohibited) — no more clock icon flashing on every CLI invocation

更新内容

v1.8.2 修复 v1.8.0 引入的启动崩溃 bug(CLI 与 GUI 二进制在 case-insensitive APFS 上的 Contents/MacOS/ 内同名冲突),并新增自动修复 — 用户从旧版升级时不再需要手动改 symlink。v1.8.0 / v1.8.1 用户强烈建议升级。

自动修复过期的 CLI Symlink

v1.8.x 把 CLI 二进制从 Contents/MacOS/tasktick 改到了 Contents/cli/tasktick(避免与 GUI 二进制 TaskTick 在 case-insensitive APFS 上同名冲突)。已经手动启用过 CLI(/usr/local/bin/tasktick/opt/homebrew/bin/tasktick)的 DMG 用户的 symlink 会指向旧路径。

启动时 TaskTick 会自动检测过期 symlink,弹一次"立即更新"对话框,走 Touch ID / 管理员密码一键修复 —— 不用打开终端、不用进设置。点一下"立即更新"即可。

Settings → 启用 CLI 路径修正

"Enable CLI…" 按钮现在生成的 sudo 命令指向新的 Contents/cli/tasktick 路径(之前指向旧的 Contents/MacOS/,在 case-insensitive 磁盘上会被悄悄解析到 GUI 二进制)。

1.8.x 主功能(如果你之前跳过了)

  • tasktick CLI 内置进 app,配合新的 Raycast 扩展
  • tasktick events 子命令 —— NDJSON 流式生命周期事件,外部工具可订阅
  • 操作类系统通知 —— Run / Stop / Restart 任意入口都立即弹横幅
  • 全新 App 图标 —— 白色圆角方形、表盘居中、绿对勾内移
  • CLI 不弹 Dock 图标 —— setActivationPolicy(.prohibited),每次 CLI 调用不再蹦时钟

Full Changelog: v1.7.1...v1.8.2

TaskTick v1.8.1

09 May 06:04

Choose a tag to compare

Note: v1.8.0 had a launch-blocking bug (case-insensitive APFS collision between the GUI and CLI binaries inside Contents/MacOS/). v1.8.1 ships the same features with the CLI relocated to Contents/cli/tasktick. Please skip v1.8.0.

What's Changed

Raycast Extension Support

TaskTick now ships with a tasktick CLI binary inside the app bundle, enabling control from terminals, scripts, and the new TaskTick Raycast extension. The CLI lives at /Applications/TaskTick.app/Contents/cli/tasktick and is auto-symlinked to /opt/homebrew/bin/tasktick (Apple Silicon) or /usr/local/bin/tasktick (Intel) when installed via Homebrew Cask.

New tasktick events Subcommand

Streams task lifecycle events as NDJSON for real-time integrations. Lets external tools subscribe to taskStarted / taskCompleted events without polling.

Action Toasts

Run / Stop / Restart from any entry point (CLI, Raycast, GUI buttons, menu bar, Quick Launcher) now emits an instant system banner so you know the action was received — independent of the existing per-task completion notifications. Honors the global "Enable Notifications" preference.

Redesigned App Icon

White rounded-square background, centered & enlarged clock face, properly inset green check badge. Cleaner at small sizes (Dock, Spotlight, list views).

Other Improvements

  • CLI hides its Dock icon (NSApplication.setActivationPolicy(.prohibited)) — tasktick list / events no longer flash a clock icon in the Dock on every invocation
  • All 11 supported locales now include the new toast strings

更新内容

注意: v1.8.0 因为 macOS 默认 case-insensitive APFS 下 GUI 与 CLI 二进制在 Contents/MacOS/ 里同名冲突,导致启动失败。v1.8.1 修复了这个 bug(CLI 改放 Contents/cli/tasktick),功能与 v1.8.0 一致。请直接跳过 v1.8.0

支持 Raycast 扩展

TaskTick 现在内置 tasktick CLI(在 .app bundle 内的 Contents/cli/),可从终端、脚本以及全新的 TaskTick Raycast 扩展 控制任务。Homebrew 安装会自动 symlink 到 /opt/homebrew/bin/tasktick(Apple Silicon)或 /usr/local/bin/tasktick(Intel)。

新增 tasktick events 子命令

以 NDJSON 流式输出任务生命周期事件(taskStarted / taskCompleted),外部工具可订阅而无需轮询。

操作类系统通知

通过任何入口(CLI、Raycast、GUI 按钮、菜单栏、快速启动)触发 Run / Stop / Restart 时,立即弹出系统横幅,告诉你操作已被接收 —— 与原本的任务完成通知互不替代。受全局"启用通知"开关控制。

全新 App 图标

白色圆角方形背景,表盘居中且更显眼,绿色对勾徽章位置内移。在 Dock、Spotlight、列表视图等小尺寸下更清爽。

其他改进

  • CLI 隐藏 Dock 图标(NSApplication.setActivationPolicy(.prohibited))—— tasktick list / events 不再每次调用都在 Dock 闪一下时钟
  • 全部 11 种支持的语言新增本次的 toast 字符串

Full Changelog: v1.7.1...v1.8.1

TaskTick v1.7.1

08 May 04:56

Choose a tag to compare

What's Changed

Quick Launcher

  • Cold-start flash fixed. The "white card" that briefly appeared under the search field on first open is gone — pre-warmed the system text-input service at app launch + tightened the reveal timing.
  • ⌘O opens the selected task in the main window.
  • ⌘, opens Settings.
  • Three-way "Show tasks" filter: All / Scheduled only / Manual only.
  • Quick Launcher gets its own Settings tab.

Menu Bar

  • Status item icon now indicates running state — outline checkmark badge → filled checkmark when scripts are running. Same SF Symbol family means zero icon drift on state change.
  • Icon size bumped slightly for better visual weight.
  • Scheduled tasks: max 3 shown. Manual scripts: max 5 shown.
  • Footer: dividers replaced with hover backgrounds matching the task rows. Whole row clickable to start/stop with pointer cursor.
  • Manually-executed tasks bump to the top of the lists in sidebar / Quick Launcher / menu bar. Long-running dev servers surface immediately on play. Scheduled cron runs don't churn the order.
  • Live "已运行 5m 23s" indicator in Quick Launcher row + detail-page schedule card while a task is running.
  • Sidebar "X days ago" timestamp now follows actual run activity (was stuck on creation date).

Log Streaming (Manual Tasks)

  • Manual task output streams to ~/Library/Logs/TaskTick/<task-name>.log (truncate per run). tail -F it from a terminal or drop it into Console.app for live monitoring.
  • ANSI color codes stripped before writing for clean output.
  • Toggleable from Settings → Logs. Detail page exposes Reveal-in-Finder / Open-in-Console / Copy-Path actions.

Lifecycle Hardening

  • No more orphan processes. Quitting TaskTick (or pkill, Ctrl+C) now cleanly terminates every running script and its descendants. Confirmation dialog warns before killing in-flight work.
  • Each spawned script gets its own process group — per-task stop and global quit both reach grandchildren (npm → node, make → cc, etc.).
  • Signal handlers (SIGTERM / SIGINT / SIGHUP) added so pkill and Ctrl+C trigger the same graceful shutdown as the menu bar Quit button.

更新内容

快速访问(Quick Launcher)

  • 修复冷启动闪屏。 第一次打开时搜索框下面那张"白卡片"已消除 —— 提前在 App 启动时唤醒系统文本输入服务,配合显示时序优化。
  • ⌘O 在主窗口中打开选中任务。
  • ⌘, 打开设置。
  • 任务范围三选一过滤器:全部 / 仅自动 / 仅手动。
  • 快速访问独立成 Settings 一个 tab。

菜单栏

  • 状态栏图标会随运行状态变化 —— 运行时角标从描线变为实心。同系列 SF Symbol,切换时图标位置完全不动。
  • 图标尺寸稍微放大,视觉权重更协调。
  • 列表上限:自动任务最多 3 个,手动脚本最多 5 个。
  • 底部按钮去除分割线,改用悬浮高亮(和任务行风格一致)。整行可点击启动/停止,鼠标悬浮时显示小手光标。
  • 手动执行的任务自动排到第一位(侧边栏、快速访问、菜单栏三处一致)。长跑 dev server 一点运行就立刻冒到顶。自动调度任务不会扰乱顺序。
  • 任务运行时显示"已运行 5m 23s"实时计时(快速访问行 + 详情页调度配置)。
  • 侧边栏"X 天前"时间戳现在跟随实际运行活动(之前一直显示创建时间)。

日志流式写文件(手动任务)

  • 手动任务输出流式写入 ~/Library/Logs/TaskTick/<任务名>.log(每次运行覆盖)。可在终端 tail -F 实时查看,也可拖进控制台 (Console.app) 监听。
  • 写入前自动剥离 ANSI 颜色码,输出干净。
  • 设置 → 日志 中可关闭。详情页提供"在 Finder 显示"/"在控制台打开"/"复制路径"按钮。

生命周期加固

  • 不再产生孤儿进程。 退出 TaskTick(或 pkill / Ctrl+C)时会干净地终止所有运行中的脚本及其子进程。如有正在运行的任务会弹出确认对话框。
  • 每个脚本启动时独立进程组 —— 单任务停止和全局退出都能触达孙进程(npm → node, make → cc 等)。
  • 添加 SIGTERM / SIGINT / SIGHUP 信号处理 —— pkill 和 Ctrl+C 与菜单栏退出按钮走同样的优雅关闭流程。

Full Changelog: v1.7.0...v1.7.1

TaskTick v1.7.0

07 May 13:01

Choose a tag to compare

✨ The Quick Launcher (⌘⌥T)

Trigger any script from anywhere — no need to open the main window.

Quick Launcher

Press ⌘⌥T (customizable) from any app and a Spotlight-style panel drops in. Type a few characters of the task name, hit Enter, done. The whole flow is keyboard-first.

What it can do

Shortcut Action
/ Navigate the result list
Smart: starts an idle task, stops a running one
⌘R Restart (kill running + start fresh)
esc Dismiss panel

Highlights

  • Fuzzy search — typing dlbk matches daily-backup. No need to remember exact names.
  • Live state — running tasks pin to the top with a green spinner and "Running…" indicator.
  • MRU sort — your most-recently-launched scripts rise to the top automatically.
  • Toast feedback — every action surfaces a confirmation pill at the bottom of the screen.
  • Doesn't disturb your flow — the launcher doesn't activate the app or pop up the main window.
  • Chinese IME-safe — composing pinyin won't accidentally trigger task execution.

🆕 Other Major Features

Manual-only Tasks

A new "Manual trigger only" toggle at the top of the Schedule tab. Manual tasks skip the scheduler entirely — they only run when you click ▶ or trigger them from the quick launcher. The main window list and menu bar now group tasks into Scheduled and Manual sections.

Unlimited Timeout (-1)

Set timeout to -1 (or any negative value) for no timeout — useful for dev servers, file watchers, and other long-running processes. Unlimited tasks bypass the concurrency semaphore so they can't starve the scheduler.

Other Improvements

  • Notification permission alert — when notifications are disabled at the OS level, the app surfaces a friendly prompt with a deep link to System Settings.
  • Stop button on hover for stale "running" log entries in the task detail view.
  • Centralized running state — start/stop indicators are now consistent across menu bar, list, detail view, and quick launcher.
  • App launch cleanup — logs left in running state by a previous session are auto-finalized.

✨ 快速访问(⌘⌥T)

在任何 App 中一键唤起,立即执行脚本——再也不用切回主窗口。

快速访问

按下 ⌘⌥T(可自定义),Spotlight 风格的面板瞬间弹出。输入几个字搜索,按回车执行,搞定。整个流程纯键盘操作,不打断你正在做的事。

全部快捷键

按键 操作
/ 在结果列表中选择
智能:空闲任务执行、运行中任务停止
⌘R 重启(停止后重新启动)
esc 关闭面板

亮点

  • 模糊搜索 —— 输入 dlbk 命中 daily-backup,不用记完整名字
  • 实时状态 —— 运行中的任务自动置顶,绿色 spinner + "执行中…"提示
  • MRU 排序 —— 最近用过的脚本自动靠前
  • Toast 提示 —— 每次操作底部弹出反馈,知道发生了什么
  • 不打扰当前工作 —— 不切换 App、不弹主窗口
  • 中文输入安全 —— 输入法选字时按回车不会误触发

🆕 其他重磅功能

手动触发任务

调度 tab 顶部新增"仅手动触发"开关。打开后任务不进入定时调度,只通过 ▶、右键运行或快速访问触发。主窗口列表、菜单栏自动按 自动调度手动脚本 分组展示。

永不超时(-1)

把超时时间设为 -1(或任意负数)即可让脚本无限运行——适合 dev server、文件监听等常驻进程。无超时任务不占并发槽位,不会饿死调度器。

其他改进

  • 通知权限提示 —— 通知被系统禁用时,自动弹出对话框 + 一键跳转系统设置
  • 悬停停止按钮 —— 任务详情页"最近执行"中残留的"运行中"条目悬停可清理
  • 运行状态统一 —— 菜单栏、列表、详情页、快速访问的开始/停止指示完全同步
  • 启动自动清理 —— 上次会话留下的"运行中"日志在 App 启动时自动收尾

Full Changelog: v1.6.0...v1.7.0

TaskTick v1.6.0

26 Apr 03:51

Choose a tag to compare

What's Changed

New Features

  • Run on Launch: New per-task toggle that runs the task once each time the app launches (3 seconds after the scheduler starts), independent of any time-based schedule. Useful for maintenance scripts or environment setup that should fire on every app start. (#25)

Bug Fixes

  • Date / Time toggles in the Schedule editor now persist correctly. Previously, disabling them and saving had no effect — they would silently reset to enabled on the next edit. (#24)

Improvements

  • Execution log "Trigger" field now shows Launch when a task fires from the new on-launch flow, alongside the existing Manual and Scheduled values.
  • Backup / restore now preserves the Run on Launch flag.

更新内容

新功能

  • 启动时执行一次:每个任务新增可选开关,App 每次启动后(scheduler 初始化 3 秒后)自动执行一次任务,独立于定时计划。适合维护脚本、环境初始化等需要在每次 App 启动时跑的场景。(#25)

Bug 修复

  • 编辑器调度页的「日期」「时间」开关现在能正确保存。之前关闭并保存后,再次打开会自动回到开启状态。(#24)

优化

  • 执行日志的「触发方式」字段现在能显示「启动」,与原有的「手动」「定时」并列。
  • 备份/恢复现在会保留「启动时执行」开关。

Full Changelog: v1.5.1...v1.6.0

TaskTick v1.5.1

26 Apr 03:54

Choose a tag to compare

What's Changed

New Features

  • Run on Launch: New per-task toggle that runs the task once each time the app launches (3 seconds after the scheduler starts), independent of any time-based schedule. Useful for maintenance scripts or environment setup that should fire on every app start. (#25)

Bug Fixes

  • Date / Time toggles in the Schedule editor now persist correctly. Previously, disabling them and saving had no effect — they would silently reset to enabled on the next edit. (#24)

Improvements

  • Execution log "Trigger" field now shows Launch when a task fires from the new on-launch flow, alongside the existing Manual and Scheduled values.
  • Backup / restore now preserves the Run on Launch flag.

更新内容

新功能

  • 启动时执行一次:每个任务新增可选开关,App 每次启动后(scheduler 初始化 3 秒后)自动执行一次任务,独立于定时计划。适合维护脚本、环境初始化等需要在每次 App 启动时跑的场景。(#25)

Bug 修复

  • 编辑器调度页的「日期」「时间」开关现在能正确保存。之前关闭并保存后,再次打开会自动回到开启状态。(#24)

优化

  • 执行日志的「触发方式」字段现在能显示「启动」,与原有的「手动」「定时」并列。
  • 备份/恢复现在会保留「启动时执行」开关。

Full Changelog: v1.5.0...v1.5.1

TaskTick v1.5.0

25 Apr 12:25

Choose a tag to compare

What's Changed

Features

  • Notify only when output exists — new per-task toggle in the Notification tab (#23). When enabled, a successful run that prints nothing to stdout stays silent; only echo'd content fires a notification (and becomes the body). Lets polling-style scripts skip the no-op chatter and only chirp on real business events.
  • Smarter automatic backups — backup snapshots are now content-deduplicated (#22). The rolling backup window no longer fills with identical copies during long quiet periods; nothing is written if your tasks haven't changed since the last backup.

Bug Fixes

  • Foreground notifications now work — TaskTick was missing a UNUserNotificationCenterDelegate, which caused macOS to silently drop notifications submitted while TaskTick was the active app. Notifications now appear regardless of whether TaskTick is in the foreground.

Compatibility

  • New notifyOnlyWhenOutput field defaults to false, so existing tasks keep their original behavior.
  • Older backup files (without the dedup hash) are still readable.

更新内容

新功能

  • 「仅在有输出时通知」开关#23)—— 任务编辑器的通知 tab 新增此开关。开启后,脚本执行成功但没打印任何 stdout(典型的轮询空跑)就不弹通知;只在脚本通过 echo 主动输出业务信息时才通知,正文就是 echo 的内容。
  • 自动备份去重#22)—— 备份机制不再覆盖相同内容。如果数据自上次备份以来没有变化,本次定时备份会跳过写盘;最大 N 份的滚动窗口里不会再被一模一样的副本占满。

Bug 修复

  • 前台通知不再被吞 —— 修复 UNUserNotificationCenterDelegate 缺失导致的问题:之前当 TaskTick 处于前台时,macOS 会静默丢掉通知,用户看不到任何提示。现在无论 TaskTick 是否在前台,通知都会正常弹出。

兼容性

  • 新增的 notifyOnlyWhenOutput 字段默认为 false,老任务行为不变。
  • 旧备份文件(没有去重哈希字段)仍然能正常读取和恢复。

Full Changelog: v1.4.2...v1.5.0

TaskTick v1.4.2

21 Apr 08:32

Choose a tag to compare

What's Changed

  • Fix the root cause of silent data loss on macOS. Your tasks are now stored in a location other apps can never touch. Existing data is migrated automatically on first launch.
  • Backup & restore rewritten to be reliable. Old backups from v1.4.0/v1.4.1 still work.
  • Restore no longer freezes the UI on databases with long execution history.
  • "Clean Up Old Logs" button now actually works.
  • Assorted small fixes.

更新内容

  • 修复 macOS 上数据静默丢失的根因,任务存储位置改为其他应用无法访问的专属目录。已有数据在升级后首次启动自动迁移。
  • 重写备份与恢复,备份出来一定能恢复。v1.4.0 / v1.4.1 的旧备份依然可用。
  • 恢复不再卡 UI,日志多也丝滑。
  • "清理历史日志" 按钮真正能用了。
  • 若干小修小补。

Full Changelog: v1.4.1...v1.4.2