隐私与数据
Chronicle 存储什么、存储在何处,以及那少数几项会离开你机器的内容的完整清单。
Chronicle 在设计上就是本地优先,而非靠配置实现。解析、存储、查看、回放,乃至分享链接的生成,全部在设备上进行,也没有可供“选择退出”的云端后端。本页是一份诚实的说明:各项保证、确切的出站网络调用(一共只有三项,全部由用户发起或为可选项),以及你的数据实际存放的位置。
本地优先保证
- 所有工作都在设备上进行。 导入、解析、存储、搜索、时间旅行、因果关系分析、脱敏、回放,以及生成分享页面,全部完全在你的机器上运行。
- 任何地方都没有 LLM 调用。 一切看起来可能像 AI 的东西——因果关系置信度分级、密钥脱敏、成本计算——都是本地启发式方法或静态表。Chronicle 从不将你的对话发送给任何模型。
- 没有云端后端,没有账户。 没有可登录的东西,也没有持有你数据的服务器。
- 你的源日志从不被写入。 Chronicle 读取你的工具的日志;它既不修改也不删除它们。由 SQLite 支撑的源(Cursor、OpenCode)会被复制到临时位置——连同它们的
-wal/-shm附属文件——Chronicle 打开的是那份副本,绝不是你的活动数据库。 - 你的项目仓库从不被写入。 Git 快照引擎严格只读:它通过调用
git rev-list、ls-tree和show从历史中重建过去的代码状态。它从不提交、检出或暂存任何内容。 - 对外部系统始终只读。 同样的只读姿态适用于每个工具的数据——Chronicle 永远只是观察。
什么会离开机器
默认情况下,Chronicle 为查看或管理你的会话不会进行任何网络调用。仅存在三项出站调用,且每一项要么是可选的,要么由你明确触发:
- 更新检查与下载。 在打包后的桌面应用中,
electron-updater会轮询公共chizhangucb/homebrew-chronicletap 的 GitHub 发布源,并在后台下载新的、经过公证的构建。这是标准的应用更新路径;它不携带任何会话数据。 - 反馈(仅在你提交时)。 提交反馈表单会向
relay.getchronicle.dev上的托管中继发起 POST。该消息总是先在本地追加到~/.chronicle/feedback.log,因此没有任何内容依赖于网络;如果中继不可达,UI 会回退到一封mailto:草稿。发件人邮箱字段是可选的——填写它,它便成为回信地址;留空则没有任何东西能标识你。 - 从 GitHub 导入 Skills(仅在你请求时)。 从 GitHub 导入一个 skill 会对你选择的公共仓库执行一次浅克隆。不会上传任何内容;这是一次由你发起的单向拉取。
除此之外没有任何东西离开机器。特别地:
- Skill 评分与标签仅存于本地。
updateSkillMeta()将它们写入你的本地存储,从不上传。 - 会话内容从不被传输,无论是用于解析、查看还是分析。
分享链接保持在本地
分享链接由你自己正在运行的 Chronicle 提供服务,而非某个托管服务。当你创建一个分享链接时,Chronicle 会存储一份在创建时刻冻结的、经过脱敏的对话副本,并从本地的 /share/:token 页面提供它。原始会话从不被上传,创建后的编辑也不会改变已存在的分享。你可以在 Share Management 中查看浏览次数并立即吊销链接。
你的数据存放在哪里
Chronicle 持久化的一切都在 ~/.chronicle/ 之下(完整布局参见配置):位于 ~/.chronicle/chronicle.db 的 SQLite 数据库、中央 skills 存储、replay 沙箱,以及 feedback.log。它们都留在你的磁盘上。
脱敏是单向的。 当 Chronicle 脱敏密钥时——无论是为分享链接、导出的 Markdown 对话,还是安全扫描——它会替换掉敏感文本;它不会保留任何可逆的映射。脱敏后的产物无法被还原为原文,而你存储的原件在此过程中也从不被修改。