这个项目能做什么

Fold 是一款自托管待办事项应用,兼容任意符合规范的 CalDAV 服务器。作为个人软件构建,所有任务以普通 VTODO 属性存储,可被其他 CalDAV 客户端正常读取,确保数据可移植性与长期可用性。 核心功能包括自然语言快速添加解析器——输入类似"明天下午3点清理 gutter #家务 p1"的内容,按一次回车即可自动提取截止日期、时间、列表和优先级。Today(今天)、Tomorrow(明天)、Next 7 days(接下来7天)、Summary(汇总)和 Search(搜索)等视图跨所有列表聚合内容。应用识别特殊列表名称:Health(健康)任务在所有视图顶部显示,Groceries(购物)则折叠为单行,因为问题在于是否购物,而非列出了多少项。 离线操作通过本地变更队列支持,恢复网络后自动回放。应用优先键盘操作,可作为 PWA 安装到手机。无通知、无连胜统计、无催促功能。 没有用户数据库或会话存储。登录时,CalDAV 凭据经服务器验证后以 AES-256-GCM 加密存入浏览器 HttpOnly Cookie,JavaScript 无法读取该 Cookie。每次请求在服务端内存中解封凭据完成 CalDAV 往返后即刻丢弃。重启容器不会丢失任何数据,因为服务端不持久化任何内容。 部署使用 Docker,仅需一个环境变量 SESSION_SECRET,用于加密凭据 Cookie。建议使用带 TLS 的反向代理,因为 Cookie 包含敏感凭据。ALLOW_INSECURE_COOKIE 选项适用于无 TLS 的信任局域网。CALDAV_ALLOWED_HOSTS 可限制登录表单接受的 CalDAV 服务器,保护面向公网的实例。 Fold 故意不支持子任务、重复待办、后台同步或多账户。现有 RRULE 属性会被保留,但应用不会创建或编辑它们。同一时间只有一个 CalDAV 账户处于激活状态。 项目采用 MIT 许可证。开发使用 Bun,测试包含多层类型检查:基于 Vitest 的单测、针对真实 Radicale 服务器的集成测试,以及 Playwright 端到端测试。完整规格与架构决策均记录在仓库 docs 目录中。