# 隐私与数据流 / Privacy & Data Flow mcore 的设计前提是 **all-local**:人格状态、记忆、情感轨迹只存在你自己的磁盘上, 仓库里不带任何真实个人数据(`persona-core.template.json` 是脱敏骨架)。 ## 1. 本地存了什么 / What is stored locally | 路径 | 内容 | 是否明文 | | --- | --- | --- | | `~/.dsh/persona-core.json` | 人格档案:身份设定、画像、三层记忆、情感节点、技能、里程碑、时间线 | 明文 JSON | | `~/.dsh/backups/mcore/` | 上述状态的滚动备份(14 份) | 明文 JSON | | `/mcore-backup.json` | 一键全量备份(面板/API 导出) | 明文 JSON | | `~/.dsh/stockdata/` | 行情/K 线/公告/涨停池缓存 | 明文 JSON | | `~/.dsh/logs/` | DSH 自身日志(可能包含插件错误信息) | 明文 | 结论:等价于一份**明文个人档案**。要备份到云盘,请自己加密(7z/AES、age、Cryptomator 都行)。 ## 2. 什么时候会联网 / Outbound requests | 目标 | 触发场景 | 发出的数据 | | --- | --- | --- | | `push2*.eastmoney.com` · `money.finance.sina.com.cn` · `web.ifzq.gtimg.cn` · `data.10jqka.com.cn` | 股票行情/K 线/公告/涨停池 | 股票代码、HTTP 头;无个人身份 | | `searchapi.eastmoney.com` | 股票搜索联想 | 你输入的搜索词 | | `cn.bing.com` | `web_search` 工具 | 你给的查询词 | | `api.github.com` · `raw.githubusercontent.com` · `github.com` | 版本自动升级检测、抓取 README/skill 素材 | 拉取请求,无凭据(升级命令仅在本地执行) | | `www.skillhub.cn` | 每 15 分钟的自动学习抓取(可在配置里关) | 抓取请求 | | `arxiv.org` · `news.ycombinator.com` · `dev.to` | 学习缓冲区的素材来源 | 抓取请求 | | `DSHCORE_VISION_BASE_URL`(你自己配,如 `dashscope.aliyuncs.com`) | `describe_image` 真视觉 | **图片本体 + 你的提问**,发送到你配置的端点 | | 券商网关(`broker-everbright.mjs`) | 仅在你显式配置并关闭 dry-run 后 | 委托指令 | - 视觉调用走 OpenAI 兼容协议,`Authorization: Bearer `,拒绝重定向, 图片不进会话日志、密钥不落盘。 - 没有遥测、没有统计上报、没有默认云端同步。除上表外不会有外联。 ## 3. 你的控制权 / Your controls ```sh # 看当前状态落在哪(diag.workspaceRoot / statePath) curl -s http://127.0.0.1:3080/api/dhc/state # 导出全量备份(自己保管,别进 git) curl -s http://127.0.0.1:3080/api/dhc/backup -o mcore-backup.json # 彻底清除(先备份再删) rm -f ~/.dsh/persona-core.json rm -rf ~/.dsh/backups/mcore ~/.dsh/stockdata ``` 工作区位置可用环境变量固定:`DSHCORE_WORKSPACE` > `DSH_HOME` > 插件配置 > `~/.dsh` 探测 > 沙箱工作区 > cwd。 ## 4. 提交前自查 / Before you contribute `node release-check.mjs` 会按 `package.json` 的 `files` 清单扫描泄漏模式(本机路径、机器码、账号、密钥形态)。 维护者额外的私人 deny-list 放在**不入库**的 `release-check.local.json`(见下), 所以公开仓库本身不含任何真实标识。 ```json { "patterns": ["2d1xxxxx", "DHC-xxxx", "Users/yourname", "your-account"] } ```