Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CF-TODO 桌面版

基于 Flutter 版 CF-TODO 待办 App 的 Windows 桌面端(Electron + 原生 JS/HTML/CSS)。 它作为一个轻量桌面小组件嵌入 Windows 桌面,展示月历与待办 / 备忘录,并通过 WebDAV 与 Nextcloud 与手机端双向同步数据。

手机端仓库:CF-todo-list


功能特性

  • 桌面嵌入:通过 Progman / WorkerW 子窗口将组件常驻桌面,不抢占焦点、不出现在任务栏切换。
  • 视图与交互:月视图 / 周视图待办展示;勾选、拖动、缩放、透明度调节、右键菜单。
  • 待办与备忘录:待办按分类(模块)着色;备忘录支持「标题 + 内容」两段结构。
  • 双通道同步:
    • WebDAV 整文件同步(todolist_backup.json)。
    • Nextcloud 同步(CalDAV 任务 VTODO + Notes 备忘录 + 分类模块)。
  • 软删除 + 墓碑模型:与手机端对齐的删除传播语义,跨端删除互不复发。
  • 自动合并:自动推送 / 拉取 / 合并(LWW by updated_at,本端删除权威化)。
  • 打赏:桌面展示打赏二维码(三排文字布局)。

技术栈

  • Electron 31 + 原生 JS / HTML / CSS(无前端框架)
  • electron-builder(nsis 安装版 / portable 绿色版)
  • 同步通道:
    • WebDAV:https.request,支持局域网自签证书的 host-bound 信任(rejectUnauthorized: false 且仅匹配配置 host)
    • Nextcloud:CalDAV(任务)+ Notes API(备忘录与分类定义)

目录结构

src/
  main.js                  主进程:窗口 / 桌面层级 / 同步 IPC / WebDAV 推送守卫
  preload.js               上下文桥(contextBridge)
  renderer/
    index.html
    styles/main.css
    scripts/app.js         渲染层:待办/备忘录 UI、删除落库、分类
  services/
    sync.js                合并引擎:LWW + 墓碑 + 本端删除权威化(localTsMap)
    nextcloud.js           Nextcloud 通道:CalDAV / Notes / 分类模块笔记
    webdav.js              WebDAV 整文件通道
  assets/donate-qrcode.jpg 打赏二维码
启动日历.bat                Windows 启动器(自动 unset ELECTRON_RUN_AS_NODE)

同步模型(重点)

双通道同步,软删除 + 墓碑语义与手机端保持一致:

  • 软删除:本地删除不物理删数据,仅标记 / 移除并写墓碑(deleted[] / tombstones)。
  • 墓碑传播:Nextcloud 通道对「曾从服务器拉取过」的任务发 DELETE;分类定义经固定标题 CFTODO_MODULES 的 Notes 笔记双向同步(空分类、颜色亦同步)。
  • 防复活:合并时本端已删除的 id 无条件挡住远端副本(v2.3.7 起 localTsMap 本端删除权威化),避免跨端时钟竞争导致删除被覆盖。
  • 一致性红线:禁止硬删;DELETE 失败保留墓碑重试。

构建

npm install
npm run build            # 产出 dist/(nsis 安装版 + portable 绿色版)
npm run build:portable   # 仅绿色版
npm run build:installer  # 仅安装版

⚠️ 构建需在 unset ELECTRON_RUN_AS_NODE 环境下进行(见 启动日历.bat),否则 Electron 会以纯 Node 模式运行导致打包异常。 注:electron-builder 清理临时文件阶段可能被本地安全软件拦截(safe-delete),但 dist/*.exe 本体已生成,不影响使用。


版本历史

版本 要点
v2.3.9 修复 Nextcloud 模块笔记被误当备忘录回推产生重复副本(CFTODO_MODULES 守卫)
v2.3.8 Nextcloud 通道分类(模块)跨端同步
v2.3.7 待办删除拉取侧复活修复(本端删除权威化 localTsMap)
v2.3.6 及以前 待办 / 备忘录删除复活、墓碑清理、推送 404 误判等修复

相关文档

  • 待办删除与Nextcloud同步机制对比.md —— 手机端 vs 桌面端删除与同步机制对比
  • 手机端分类同步修改提示词.md —— 手机端分类同步改造提示词(双端互通需要)
  • CFTODO_MODULES副本根因分析.md / Nextcloud同步异常排查结论.md —— 同步异常排查记录
  • PRD_桌面日历小组件.md / PRD_桌面日历小组件_v1.0.md —— 产品需求文档
  • 需求_*.md —— 各版本需求确认稿

已知问题 / 注意

  • 双端互通:手机端需按 手机端分类同步修改提示词.md 改造后,分类才能与桌面端真正双向互通。
  • 历史重复笔记:若 Nextcloud 上已存在历史的 [memo_xxx] CFTODO_MODULES 笔记副本,需手动在 Notes 中清理(或在桌面端启用自动清理逻辑)。

About

CF-TODO 桌面端(Electron)— WebDAV 与 Nextcloud 双向同步待办与备忘录

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages