Skip to content

隐私与数据

Chronicle 存储什么、存储在何处,以及那少数几项会离开你机器的内容的完整清单。

Chronicle 在设计上就是本地优先,而非靠配置实现。解析、存储、查看、回放,乃至分享链接的生成,全部在设备上进行,也没有可供“选择退出”的云端后端。本页是一份诚实的说明:各项保证、确切的出站网络调用(一共只有三项,全部由用户发起或为可选项),以及你的数据实际存放的位置。

本地优先保证

  • 所有工作都在设备上进行。 导入、解析、存储、搜索、时间旅行、因果关系分析、脱敏、回放,以及生成分享页面,全部完全在你的机器上运行。
  • 任何地方都没有 LLM 调用。 一切看起来可能像 AI 的东西——因果关系置信度分级、密钥脱敏、成本计算——都是本地启发式方法或静态表。Chronicle 从不将你的对话发送给任何模型。
  • 没有云端后端,没有账户。 没有可登录的东西,也没有持有你数据的服务器。
  • 你的源日志从不被写入。 Chronicle 读取你的工具的日志;它既不修改也不删除它们。由 SQLite 支撑的源(Cursor、OpenCode)会被复制到临时位置——连同它们的 -wal/-shm 附属文件——Chronicle 打开的是那份副本,绝不是你的活动数据库。
  • 你的项目仓库从不被写入。 Git 快照引擎严格只读:它通过调用 git rev-listls-treeshow 从历史中重建过去的代码状态。它从不提交、检出或暂存任何内容。
  • 对外部系统始终只读。 同样的只读姿态适用于每个工具的数据——Chronicle 永远只是观察。

什么会离开机器

默认情况下,Chronicle 为查看或管理你的会话不会进行任何网络调用。仅存在三项出站调用,且每一项要么是可选的,要么由你明确触发:

  1. 更新检查与下载。 在打包后的桌面应用中,electron-updater 会轮询公共 chizhangucb/homebrew-chronicle tap 的 GitHub 发布源,并在后台下载新的、经过公证的构建。这是标准的应用更新路径;它不携带任何会话数据。
  2. 反馈(仅在你提交时)。 提交反馈表单会向 relay.getchronicle.dev 上的托管中继发起 POST。该消息总是先在本地追加到 ~/.chronicle/feedback.log,因此没有任何内容依赖于网络;如果中继不可达,UI 会回退到一封 mailto: 草稿。发件人邮箱字段是可选的——填写它,它便成为回信地址;留空则没有任何东西能标识你。
  3. 从 GitHub 导入 Skills(仅在你请求时)。 从 GitHub 导入一个 skill 会对你选择的公共仓库执行一次浅克隆。不会上传任何内容;这是一次由你发起的单向拉取。

除此之外没有任何东西离开机器。特别地:

  • Skill 评分与标签仅存于本地。 updateSkillMeta() 将它们写入你的本地存储,从不上传。
  • 会话内容从不被传输,无论是用于解析、查看还是分析。

分享链接保持在本地

分享链接由你自己正在运行的 Chronicle 提供服务,而非某个托管服务。当你创建一个分享链接时,Chronicle 会存储一份在创建时刻冻结的、经过脱敏的对话副本,并从本地的 /share/:token 页面提供它。原始会话从不被上传,创建后的编辑也不会改变已存在的分享。你可以在 Share Management 中查看浏览次数并立即吊销链接。

你的数据存放在哪里

Chronicle 持久化的一切都在 ~/.chronicle/ 之下(完整布局参见配置):位于 ~/.chronicle/chronicle.db 的 SQLite 数据库、中央 skills 存储、replay 沙箱,以及 feedback.log。它们都留在你的磁盘上。

脱敏是单向的。 当 Chronicle 脱敏密钥时——无论是为分享链接、导出的 Markdown 对话,还是安全扫描——它会替换掉敏感文本;它不会保留任何可逆的映射。脱敏后的产物无法被还原为原文,而你存储的原件在此过程中也从不被修改。

相关内容

  • 安全与分享 — 安全检查、自定义脱敏规则、pre-tool-use hook 与分享管理。
  • 配置~/.chronicle/ 布局,以及这些默认值背后的环境变量。

Released under the MIT License.