Skip to content

Latest commit

 

History

History
52 lines (34 loc) · 4.18 KB

PRIVACY.md

File metadata and controls

52 lines (34 loc) · 4.18 KB

隐私与数据处理说明

WordSnap 不包含账号系统、云同步、广告或分析 SDK。应用仍需将选中文本发送至用户配置的翻译接口,因此,本地运行并不表示所有数据均只在本机处理。

数据流

数据 处理位置 处理目的
选中文本 本机内存、用户配置的 OpenAI 兼容接口 生成翻译结果
API Key、Base URL、模型和目标语言 本机应用数据目录中的 settings.json 保存用户配置
单个英文单词、译文、查询次数和时间 本机 wordsnap.sqlite3 展示本地词表
短语、句子和中文输入 不写入词表数据库 仅用于当前翻译请求
剪贴板内容 在本机临时读取并尝试恢复 通过模拟复制获取当前选区
鼠标按下事件 仅在本机判断点击位置是否位于翻译卡片外 翻译完成后自动隐藏卡片,不记录点击位置或目标内容
运行诊断元数据 项目根目录 logs/ 中的会话日志文件 排查启动、快捷键、剪贴板、网络、数据库和窗口故障

当前代码不包含遥测或使用情况分析。网络翻译请求由用户选择的 API 服务提供方处理。使用前应查阅该提供方的隐私政策、日志处理方式和数据保留规则。

本地存储

WordSnap 使用 Tauri 为当前操作系统分配的应用数据目录,并在项目根目录中使用 logs/ 日志目录:

  • settings.json 以明文形式保存设置和 API Key,不使用 macOS Keychain、Windows Credential Manager 或其他系统密钥库。
  • wordsnap.sqlite3 保存词表。重复查询同一单词时,会更新译文、查询次数和最近使用时间。
  • logs/YYYY-MM-DD_HH-mm-ss.SSS_pid-<进程ID>.log 保存一次应用运行中的 DEBUG、INFO 和 ERROR 日志。每次启动创建一个独立文件,直至该次运行结束。日志包含事件名称、处理结果、耗时、文本字符数量、HTTP 状态码等诊断元数据,不包含 API Key、选中文本、译文、剪贴板内容、完整服务响应或用户配置的接口地址。
  • Unix 平台会尝试将 settings.json 的权限设置为 0600。该权限不能阻止以当前用户身份运行的其他进程读取文件。
  • Unix 平台也会尝试将日志文件权限设置为 0600。日志不会自动上传,但会保留在项目的 logs/ 目录中,直至用户删除相应文件。

不应在共享计算机或不受信任的用户账户中保存高权限 API Key。建议使用额度受限、可以轮换的独立 API Key。

网络传输

远程翻译接口应使用 https://。WordSnap 允许使用 http://,主要用于本机开发服务。对远程主机使用 HTTP 会使 API Key 和选中文本面临明文传输风险。

应用会规范化 Base URL,并在必要时自动追加 /chat/completions。请求通过 Bearer Token 传递 API Key。

剪贴板处理

快捷键触发后,WordSnap 会暂存剪贴板、模拟 Cmd+C 或 Ctrl+C、读取选区,并尝试恢复原内容。macOS 与其他平台支持的剪贴板格式不同。在非 macOS 平台上,复杂富文本、图片或自定义剪贴板格式可能无法完整恢复。因此,不应将剪贴板作为重要内容的唯一副本。

鼠标事件处理

在 macOS 上,WordSnap 会在应用运行期间监听鼠标按下事件,用于判断翻译完成后用户是否点击了卡片外部。应用不读取点击目标的内容,不保存或发送点击坐标,也不会在翻译仍处于加载状态时隐藏卡片。

删除本地数据

  • 可以在词表窗口中逐条删除已保存的单词。
  • 如需删除全部本地数据和已保存的 API Key,应先退出 WordSnap,再删除操作系统应用数据目录中与 com.yuntsy.wordsnap 对应的目录。
  • 如需删除运行日志,应先退出 WordSnap,再删除项目根目录 logs/ 中的相应 .log 文件。
  • 如需使旧 API Key 立即失效,还应在 API 服务提供方的控制台中撤销或轮换该密钥。

报告问题或分享截图前,必须移除 API Key、私人文本、数据库内容和包含凭据的接口地址。安全问题应按照安全策略提交私密报告。