# 隐私与数据流 代码、公开动画与说明文档可以发布。实际的设置、API Key、聊天记录、用户导入的角色提示词和记忆不属于发布内容。 ## API 会接收到什么 - 你在桌宠里发送的文字,以及受限的最近聊天上下文。 - 你主动选择的角色提示词。 - 只有在设置页明确同意“向显示的 API 发送记忆”并保存后,才发送长期记忆、近日日记及本机/导入记忆的检索片段。包含相对来源名和校验值,不含绝对目录路径。授权按接口地址匹配;更换接口后需重新确认。 - 允许自由活动时的活动提示和本机时间。 - 本地互动的类型,例如轻点、拖动,不把它当成你输入的原话。 - 你选择并确认的窗口 / 显示器定格及该来源的名称,仅在共享启用时。 数据直接发送到设置中的 API 根地址,不经插件作者的服务器。不跟随 API 重定向,以免密钥被转发给另一站点。API 服务商如何存储或使用数据,以该服务商的条款为准。界面不会回显服务商原始错误正文。 ## 本机保留什么 0.6.0 新增 `deliveries/` 原文与回执文件。只留已取得的可见模型正文、回复/会话/消息编号、时间及状态;不保存 HTTP 错误正文、请求密钥、隐藏思考或控制工具参数。只有检索续问需要时,接口返回的工具对话及思考字段在本轮内存中原样回传同一已授权接口,不写入回执或历史。 0.7.2 起,模型原文单独存入 `reply-originals/`,`deliveries/` 保存与原文编号关联的发送状态等元数据。旧版合并记录兼容读取,不因翻阅自动批量迁移。界面的“未发原话”只列明确未作为聊天发出的已留底正文;结果不明留在“发送回执”标注待核对,不推断本人已读或自动重发。两类目录均不进入默认记忆检索、自动日记或 Git,本机备份和确认删除资料的卸载流程覆盖两者。 更新维护状态只包含操作类别、开始时间和固定提示;不包含下载响应、密钥或聊天内容。更新期间暂停模型接话,仍可在本机查看记录。安装完成或结果不明后,旧进程停止写入偏好,需正常重新打开桌宠;未确认的安装不自动重复执行。 失败、截断、检索过程或结果不明的原文与正常聊天分开,只在可信聊天窗口按固定编号读取,不纳入默认记忆检索、自动日记、朗读或 Git。“结束提醒”不删除原文,不变更实际结果;“核对本机记录”仅读取会话中原消息编号并记录核对结果,不补发、不调用模型、不重做动作。模型原文为本机明文,随整个数据目录备份,卸载选择删除资料时包含此目录。 原生工具参数不单独留底;若手动选择旧 JSON 兼容模式,模型返回的可见原文按整体保留,其中可能包含随正文返回的旧控制字段。两种模式均不把工具/回执文件当作新的用户授权。 聊天和模型文字回复按天存为 JSONL,包含时间、消息角色、触发原因、完成 / 失败状态;新会话另有用于分页的原文副本,旧日文件原样保留。消息编号保存在本机去重记录中,防止因重试或重开重复调用 API。草稿保存在本机偏好文件中,不自动发送,也不作为日记或记忆检索来源。翻阅历史不会重放动作、朗读旧回复或触发 API 请求。 本机 `memory/` 保存按天的 Markdown 日记、带出处的长期摘记和可编辑的 MEMORY.md。默认开启本地保存;可在设置关闭新增记忆写入,已有内容保留。模型日记明确区分于用户原话,长期摘记须逐字匹配已读来源,不把模型自己说的话升格为用户事实。本机聊天、草稿、记忆和精选文件不加密。 只有打开并授权的共享窗口会采样。普通采样最多保留三张内存图,模型分析与本机采样分开,不因没有自然语言回复就重复调用模型。用户明确保存,或模型针对已看过的确切帧提出带想法的保存请求时,才把对应图像及会话编号、SHA、来源名称、采样时间、尺寸与想法写入本机 `keeps/`。不可用的帧不会用新图替代。精选不进入默认记忆检索或 API 上下文,不自动上传。 API Key 通过操作系统提供的 Electron safeStorage 加密。Windows 使用 DPAPI;这不能防止同一个登录用户下的恶意程序。无法提供有效系统加密时,Key 只在内存里保留,本轮退出后需重新输入。 导入设置只持久化所选文件夹路径;正文在启动或手动刷新时只读载入内存。角色只读第一层;记忆可递归读取专用目录里的 `.md` / `.txt`,排除隐藏项、链接和常见敏感目录 / 文件名,另有数量、大小和深度上限。这种筛选不能保证识别所有个人信息,导入前请检查内容。模型可以在授权聊天中摘录导入内容为本机长期记忆,并保留其来源依赖。取消导入或原文变更后,该来源派生的摘记停止进入活动记忆;已经写入聊天或日记的历史内容不会自动删除。 检索索引只在内存中建立,依据已批准的导入范围与插件自己的数据目录,不扫描其他目录。设置页本机检索无需向 API 发送内容;模型检索只在当前接口获准使用记忆时进行,并受轮数、片段大小和上下文预算限制。保留的原始聊天不因摘要、摘录或上下文压缩而删除。 设置页“卸载插件…”及 `/friend-uninstall` 会先弹出本机确认窗口,默认选择取消。你可以选择保留资料,或在宿主成功移除本插件后清理插件自己的聊天、记忆、草稿、精选、设置、密钥密文和缓存。保存失败、移除失败或结果不明时不启动清理。清理程序在桌宠退出后运行,资料保留选择不会触发删除。 数据目录有本插件归属标记;清理仅针对固定的资料和缓存名称,不追随链接,不删除未知内容、导入的原始角色/记忆文件夹、源码项目、其他 DSH 配置或共用运行时。不能确认目录归属时只允许保留资料。多个 DSH 配置共用默认数据目录,删除会影响它们对该目录的读取。直接从 DSH 自带管理器或 CLI 移除不会调用本插件的询问流程,本机资料保持保留。 卸载时将必要的清理脚本临时复制到系统临时目录,删除选择的作业文件仅含本机数据路径、归属校验及受保护路径,不含聊天或密钥正文。完成后移除作业文件;结果文件仅记录状态与数量,失败时保留作业信息供本机排查。操作不调用聊天 API,不向外部发送这些路径。取消文件夹导入不会修改原文件。插件不自动上传个人资料。 ## 发布边界 0.7 的声音默认在本机生成,聊天正文通过私有 IPC 进入隔离的本机推理子进程,不写入音频文件。试听只用固定合成短句。首次离线模型下载只请求官方公开 GitHub 资源并校验固定 SHA256,不上传聊天、路径、API Key 或参考音频。参考音频克隆需要单独选择 WAV、填写原文并确认,仅连接数值回环地址的本机 CosyVoice 服务,不使用聊天/视觉 API 或第三方云端;更换参考文件撤销确认,文件内容变化会拒绝旧确认。参考 WAV、原文和音色参数只在本机,排除默认记忆检索与发布。 自选记忆存储路径保存在 `storage.json`,不发送绝对路径;复制迁移保留源文件,不改写只读导入目录。已有 API 目的地授权仍在网络边界执行。外部自选记忆目录在卸载时保留;默认数据目录中的音色模型、参考音频、设置、备份属于可选清理范围。 检查更新仅请求固定官方 GitHub 仓库的公开提交、包清单和 CI 状态。确认安装才通过宿主包管理器安装确切提交,不上传本机资料或检查其他插件文件。Electron 可只读复用经过版本与架构检查的旧公共运行时;默认全局缓存和 0.7.0 私有缓存也只读使用,用内置官方 SHA256 校验。新下载、解压及安装只写插件独立目录,不更新 dsh-pet 或公共 Electron 目录。启动状态仅传固定阶段、字节计数和安全错误文案,不传本机路径、下载响应或凭据;取消只中止本次启动准备,不关闭原有桌宠或删除资料。 资料备份由本人选择本机位置,不上传;包含私人记录、参考音频和系统加密的密钥,需要自行保管。恢复先保留本机副本,不扫描或备份导入目录中的原文。默认排除精选画面和可重新下载的模型。 0.5.0 的网页启动面板通过现有 DSH Connection/Gateway 发出六种固定、无参数控制操作:状态、打开/显示、设置、关闭、卸载询问、定位独立启动入口。回执仅含此入口拥有的进程是否运行/忙碌、运行版本和固定说明,不含聊天、记忆、截图、导入路径或 API Key。没有新增监听端口、浏览器直连聊天服务商或遥测。远程访问 DSH 的已授权客户端也能操作其宿主电脑上的桌宠,独立启动入口不依赖 Web。 `package.json` 用 `files` 白名单限制安装包。`.gitignore` 排除运行目录、草稿设置、会话、精选、凭据、JSONL、截图证据和环境变量文件。发布前执行 `npm run check`、检查 `npm pack --dry-run` 及 Git 暂存文件;不要把个人数据目录放在代码目录中。本机备份包含这些个人资料,只适合由本人保存,不能当作公开代码包上传。 仓库不包含开发者原有项目的记忆、账户、聊天、登录态或本机配置。