一个人维护多端软件,最怕的就是战线拉得太长,把精力全耗在重复打包和修壳子兼容上。到了 2026 年 10 月中旬,我回头盘点了一下 TaskDock 的各个客户端,决定先给自己做一次减法。

果断退役 Electron 桌面端,精力收拢回双端

当时的 TaskDock 除了 Web 网页端和纯原生 Android 客户端之外,还带了一个基于 Electron 打包的桌面客户端。但日常用下来我发现,由于 Web 端本身就做了完整的离线优先 IndexedDB 缓存和响应式布局,直接用电脑浏览器打开或者安装成桌面 PWA 应用,体验跟 Electron 几乎没有任何区别。继续维护那层薄薄的 Electron 壳子,除了每次发版多花好几分钟构建时间、多操心一份进程通信之外,没有任何实际收益。

于是在 2026 年 10 月 13 日(Commit ef890f9),我干脆利落地退役了 Electron 桌面端,把相关代码移入 archive/desktop-client/ 归档封存,从此把全部精力集中在 Web/PWA 和 原生 Android 两端上。

过期任务一键顺延撤销与离线冲突可视化

砍掉包袱的第五天,也就是 10 月 18 日(PR #22,Commit 9ec4332),我一口气补上了两个呼声最高的核心能力。

第一个是 过期任务批量顺延(Rollover)与一键撤销。前几天排了期但没干完的遗留任务,现在点一下就能批量顺延到今天;更关键的是,万一顺手点快了把不该挪的任务也混了进去,服务端专门记录了顺延批次,随时可以调 /rollovers/undo 一键反悔恢复原状。

第二个是 离线冲突可视化对比(Conflict UI)。以前如果手机在断网时改了某条任务的标题,电脑上也改了同一条任务,等手机重新联网推送 Outbox 撞上 VERSION_CONFLICT 时,界面只会干巴巴地弹个报错。现在则会直接弹出左右对比窗口,把本机修改和服务器当前版本清清楚楚摆在台面上,由你点选“保留本机修改”、“采用服务器版本”或者恢复后重试。