01它解决什么
市面上的任务管理工具大致分两类:一类是纯本地待办,单机好用但换设备就抓瞎; 一类是云同步,方便却把你的每一项计划、习惯、笔记都放进别人服务器。 TaskFlow 选第三条路——数据默认在本地,跨设备同步时端到端加密, 中继服务只搬运密文,看不到任何内容。
这不是因为我们做不出云同步,而是任务管理这件事没必要把你的生活细节 交给第三方保管。代价是多花了不少功夫在加密协议和冲突解决上,换来的是: 没有 TaskFlow 账号这回事,也没有人能从服务器读出你的待办。
当前形态:移动端(iOS/Android/Web)、桌面端(Windows/macOS/Linux)、 可选的 Python 后端、可自托管的 Node 中继。同步协议两端字节级互通。
02四个组件,一种数据
移动端 ⇄ 桌面端:端到端加密 P2P,中继仅作穿墙搬运工,全程不解密。
03端到端加密同步
这是项目里花时间最多的一块。两台设备同步前先握手,互相验明身份, 协商出一对方向隔离的会话密钥,之后所有记录都用 AES-256-GCM 加密。 中继看到的只是密文字节流。
deviceId ‖ peerDeviceId ‖ nonce ‖ peerNonce ‖ ecdhPub 做 Ed25519 签名,防中间人。sendKey / receiveKey,info 按角色方向绑定:taskflow-sync-v1|initiator→responder。iv[12] ‖ authTag[16] ‖ ciphertext,IV 每次随机。mode[1] ‖ length[4 BE] ‖ payload。重放保护用序列号 + 滑动窗口,握手 30s 超时。
移动端用 Web Crypto API,桌面端用 Node crypto。两者线格式不同的地方
(AES-GCM 的 authTag 位置)做了显式重排,跨平台字节级互操作已用
668 项测试中的双向用例验证——移动端加密的帧桌面端能解,反之亦然。
(截至 2026-07-04,测试总数已增至 838 项,新增覆盖笔记 Markdown、AI 引擎、插件系统、MiniCharts 可视化、同步策略等。)
04隐私不是开关,是默认
- 文件级加密:桌面端 SQLite 用 SQLCipher,整库加密,不是只加密几个字段。
- 字段级加密:敏感内容再叠一层 AES-GCM,保险库里带密码生成器。
- 生物识别:macOS Touch ID、Windows Hello、Linux fprintd(D-Bus 调用,失败优雅降级)。
- 截图保护:
setContentProtection在 Windows/macOS 生效,Linux 诚实降级并提示。 - 密钥存储:移动端私钥走 expo-secure-store,不可用时直接抛错,无明文回退。
- 隐私外壳:启动锁、自动锁屏、隐私模式、剪贴板清空、全局快捷键。
两轮独立安全审计(TF-001~019、TF2-001~017)覆盖 CORS、密钥熵、备份元数据、 LLM 脱敏、API token 注入等,大部分已修复,剩余项在路线图跟踪。
05用数字说话
5000 条同步从 52 秒优化到 0.65 秒,靠的是修掉 REQUEST 分块 bug 加事务化批量落库。 测试覆盖:前端 509、桌面端 256、后端 65、Relay 8。
06能看到什么
六个视图同一份数据,按场景切换,不是六个独立的 TODO 列表:
- 看板 — 拖拽分栏,PanResponder + LayoutAnimation。
- 甘特 — 时间轴上的依赖关系。
- 时间线 / 时间块 / 表格 / 脑图 — 各管一种看法。
- 专注模式 — 全屏 Forest + 番茄钟 + Web Audio 白噪音。
- 任务依赖 —
blockedBy / blocks,被阻塞的任务不让你点完成。 - AI 建议 — 本地统计式(时间段、优先级、分类、合并/拆分),不上传不联网。
07技术栈
| 组件 | 选型 |
|---|---|
| 移动端 | React Native 0.86 · Expo 56 · TypeScript 6 · Zustand 5 · React Navigation 7 |
| 桌面端 | Electron · React · Vite · better-sqlite3-multiple-ciphers |
| 后端 | Python 3.11+ · FastAPI · PyGit2 · langchain-core |
| 中继 | Node.js 18+ · WebSocket · express-rate-limit · Docker 自托管 |
| 测试 | Vitest(前端/桌面/Relay)· pytest + Hypothesis(后端) |
| 安全 | CodeQL · Gitleaks · OSSF Scorecard · cosign 签名发布 |
08仓库
两处镜像,内容一致。GitHub 为主仓库,GitCode 为国内镜像。
本页只是介绍。要看代码、跑起来、提 issue,请到上面任一仓库。
本地启动:git clone 后 npm install,npm run web 浏览器预览,npm run android / npm run ios 真机。