# 更新记录 [返回首页](README.md) · [安装与开发](docs/setup.md) · [界面图鉴](docs/gallery.md) 这里归档原 README 的完整发布说明。**所有“本轮”“实机验证”、测试数量、指标与修复描述均属于对应版本当时的历史记录,不自动代表 0.28.0 或当前宿主的复测结果。** 早期设计和评估方法可能已被后续版本替代;尤其不能将合成检索成绩、旧情感准确率当作真实用户效果。 0.28.0 更新的是 Web 插件设置页;原生实现最近一次补丁为 0.27.1。903 项 Python 测试属于 0.27.1 的历史验证,未作为本次 Web 更新重新运行。当前宿主入口曾返回 401,新版是否实际挂载仍未确认;离线合成预览不是已认证宿主验证。 以下保留原文中的技术细节和可复现命令;当前安装、开发和权限说明请优先阅读 [安装与开发](docs/setup.md) 与 [安全说明](SECURITY.md)。 ## 0.28.0 · Web 插件页重设计与前端架构拆分 本轮针对 **DSH 设置 → 内置插件 → 云岚养成**,不是上方原生桌宠窗口。采用岚青色成长手记:等级进度与阶段路线、三项关键统计、四维属性和习惯线索;成长回顾、数据与隐私分别独立为页签,适配窄栏/宽屏、深浅色和键盘操作。 - 前端拆成纯展示模型、API、可测试轮询控制器、页面与组件、局部 CSS;使用 esbuild 可复现生成宿主原有的客户端入口,React 仍由 DSH 提供。 - 轮询串行、隐藏暂停、超时取消、卸载清理;读取失败保留旧状态,清零隔离旧回包,HTTP 或业务失败绝不显示成功。 - 清零须输入「清零」确认;损坏存储禁止清零,取消/Escape/成功后恢复键盘焦点。导出改为**统计摘要白名单**,不含回顾、习惯、项目/工具名或会话信息。 - **61 项 Node 测试**通过,包含实际生成客户端的 React/DOM 交互和清零超时回归;源码/产物一致性检查通过。没有改动原生 helper、模型或真实档案,不沿用旧轮次的 Python 测试作为本次新增验证。 - 离线合成预览已在真实 Tabbit 中检查 320/360/623/1000px、深浅色、筛选、确认与焦点恢复,无横向溢出;不读取真实档案。**现有 DSH 入口刷新后仍返回 401,尚未确认当前宿主已加载新版**,不把离线预览冒充实机验证。 - 分发清单另显式排除五张仅保留本地的运行截图,防止 npm 打包重新收录;打包隐私检查通过。 详见 [Web 成长手记架构与验证边界](docs/web-dashboard.md)。历史记录:撰写本节时尚未推送 GitHub;这不是当前发布状态。 ## 0.27.1 · 运行接线、隐私撤销与检索指标修复 - 修复原生/语音输入先于聊天窗口创建时的上下文空引用;明确记忆/知识问题先走真实检索,话题规则不再抢答;旧主动搭话不再覆盖追问或纠正。 - 云端请求按 session + request UUID 归属;旧窗口/重复回包不再解除新请求的 busy 或串写当前对话,回复情绪归属保留请求时值。 - 记忆与连续聊天授权真正独立;逐条发送预览按实际授权说明摘要范围。记忆来源回复带私密来源标记,撤销记忆后不再借历史自动发送;主动气泡永不自动作为历史上传。 - 清除记忆/互动记忆同时撤销窗口授权、清空窗口历史/草稿/上下文/检索反馈并使旧回包失效;部分磁盘清除失败如实报告,不假称“原文件未变”。 - 动作决策与反馈统一使用动作发生前的同一份特征,直接主动搭话也不再等打开聊天后采样;独立 `action_runtime.py` 便于实际方法回归。 - 生产检索基准默认关闭重排、尊重指定模型目录;使用实际稳定 ID,未命中计零,top-k 不超过引擎上限;无答案独立计分。旧“100%”不能当作未污染基线。 - 重排存档升级 v2:参数有限数/宽度/类型与 2MiB 上限检查,绑定模型/分词/预处理版本;旧 v1 仅禁用、不删不覆盖,只有用户显式重新训练才启用。 - smoke 不再继承用户密钥和任何数据路径;模型目录也隔离。冻结包带上指纹所需源码,smoke 实测 v2 保存/加载、真实聊天方法和隐私清空。安装兼容 JSON 纳入分发清单。 - 本轮全量 **903 项 Python 测试 + 36 项 Node 测试**通过;额外用现有本地 ONNX 资产、合成 26 问运行真实 `MemoryEngine.recall` 基线(重排 OFF):Hit@1 **96.15%**,MRR **0.9808**,nDCG@5 **0.9858**。该样本没有无答案查询;无答案只由独立回归夹具覆盖,仍无真实用户准确率。 ## 0.27.0 · 多轮上下文、本地检索标注与运行时拆分 - **多轮对话不再逐句补丁**:`CompanionContext` 在内存里保留最近 6 行、最多 4000 字符,支持“公园→那里→风很舒服”的话题承接、明确指代、纠正/拒绝/休息后的关系修复。它不是持久化聊天记录,也没有通用理解。 - **人格策略接入生成链路**:固定枚举的 values/goals/boundaries 与关系修复策略可进入模型指令;修复/休息/拒绝期间被动搭话返回空并跳过气泡,不再出现“刚被要求安静又主动出现”。 - **记忆发送需要独立同意**:连续云聊同意不自动包含记忆;窗口新增“本次允许模型使用记忆摘要”,默认关闭,仅发送本次相关的最多 3 条摘要/800 字符,且作为“不可信资料”单独消息,不拼接进系统指令。 - **本地检索标注**:`retrieval_review.py` 支持人工勾选本次命中/无答案,必须显式同意才写本机;按会话组做 60/20/20 划分,少于 5 条或 3 组时明确报 `insufficient_data`,不伪造准确率。`--production` 与评估都调用真实 `MemoryEngine.recall`。 - **记忆巩固与隐私删除**:同一称呼/计数习惯合并到稳定 slot,保留来源;重复同步不增加 hits;清除时同时清向量缓存和 slot tombstone,旧记忆不会借新 ID 复活。 - **情绪契约 v3**:`neutral` 明确是弃权而非 calm;报告已覆盖/缺失类别,固定六类 F1 与已支持类 F1 分开;公开数据仍只有 4 类,缺 anxious/tired 会被显式标出。 - **运行时拆分**:原生 helper 的对话/公开学习/展示/陪伴逻辑拆为 `runtime/conversation_runtime.py`、`public_learning_runtime.py`、`presentation_runtime.py`、`companion_runtime.py` 四个 mixin;入口、窗口、权限仍集中在一个进程。 - **上游兼容单一来源**:`native/upstream_compat.json` + `upstream_compat.py`,`install.ps1` 不再硬编码第二份版本号。 - 测试增至 **840 项**;新增 `test_companion_context.py`、`test_generation_context.py`、`test_retrieval_review*.py`、`test_memory_consolidation.py`、`test_emotion_contract.py`、`test_upstream_compat.py`。 **限制**:公开情感数据仍缺 anxious/tired;真实检索标注目前是空库,需要你实际使用并自愿标注,不能把合成 100% 当成真实效果;这不是通用大模型,也没有 Live2D 素材授权。 本地标注不是自动收集:在对话里点「检索反馈」,勾选“同意仅在本机保存该问题和命中标注”才写入 `retrieval_reviews.json`;至少 5 条、3 个独立会话组才会生成分数。也可以用已导出的标注文件运行: ```powershell python native/retrieval_review.py --reviews "$env:USERPROFILE\.dsh\dsh-dafeiyu-growth\retrieval_reviews.json" --memory "$env:USERPROFILE\.dsh\dsh-dafeiyu-growth\memory.json" --partition test ``` 本地情感标注(CSV 列 `text,label[,source_id,group_id]`)默认只写显式指定/暂存文件,不默认写真实档案: ```powershell python native/emotion_dataset_update.py --labeled-file local_emotion.csv --staging ``` ## 0.26.0 · 审计修复:先让指标和真实链路可信 - **情感评估修正**:所有 truth 都计入;`neutral` 等分类外预测明确记为 abstention,不再被 balanced accuracy / macro F1 漏算;旧版评估(无 `eval_version:2`)强制隐藏,避免把旧指标当成当前模型。 - **softmax 修正**:不再逐项截断 logits;分数 12/18 这类情况不会再被压成并列后按字典序选错。 - **真实检索修复**:BGE 候选不再只依赖词面 top-40;小库/已预热向量直接全量评分,冷库扩到 80 候选;`MemoryEngine` 内部加入向量预热。合成基准的真实 `MemoryEngine.recall` 结果从审计时的 84.62% 回到 100%(26 条合成查询,仍不等于真实用户语料)。 - **持久化修正**:人格保存失败会回滚 traits;连续性锚点加入 traits/count 内容摘要,不再只看 revision/总数;记忆保存按字节裁剪,避免 600 条上限写出超过 512KB 后下次加载自锁。 - **删除防回灌**:清除记忆时写入 blocked tombstone,旧档案/行为/公开知识不会马上被同步回来;“清除互动记忆”同时清除偏好行。 - **安全修正**:云 API key 绑定 endpoint,改 endpoint 必须重新输入;环境 key 只用于 DeepSeek/localhost 或显式绑定;爬虫在跟随重定向前拒绝;重排器/连续性损坏数据 fail closed。 - **工程修正**:CI 安装 onnxruntime/numpy;动作反馈复用决策时 context,避免 `chat_open` 造成的训练/服务时序偏斜。 - 当时测试增至 750 项;新增 `test_audit_fixes.py`、`test_audit_security.py`、`test_memory_deletion.py`。 ## 0.25.0 · 领域重排评估(不是硬调底座) - 新增 `native/embedding_benchmark.py` + 合成中文基准:16 条记忆、26 个查询,按查询做 **5 折交叉验证**,比较 BGE 余弦与轻量重排器的 Hit@1 / MRR / nDCG@5。 - 重排器特征:余弦、哈希概念、同义概念覆盖、字符重叠、记忆类型、重要度、长度;含一个小概念先验。只保存权重和指标,不含任何查询/记忆文本。 - 本机结果:基线 **Hit@1 96.15% / MRR 0.9808 / nDCG@5 0.9858**;重排 **100% / 1.0 / 1.0**。这是 26 条合成查询的结果,**不能当成真实用户语料的保证**。 - 可复现:`python native/embedding_benchmark.py --evaluate`;`--train` 保存权重,`--train --enable` 才启用。`DSH_DAFEIYU_RERANK=0` 可强制关闭。 - 底座 BGE 没有微调:几百条记忆不足以做可靠的对比学习;这里做的是可评估的领域重排,避免用“训练过了”掩盖泛化问题。 ## 0.24.0 · 本地神经 Embedding(首次下载,之后离线) - 记忆检索新增可选 **BGE-small-zh-v1.5 量化 ONNX** 重排:先本地哈希粗筛,再用神经网络余弦相似度排序;模型未安装时自动回退哈希,不影响启动。 - 权重**不随仓库分发**。首次运行 `python native/embedding_backend.py --download` 从 ModelScope 固定 revision 下载约 24 MB(MIT),之后完全离线;记忆文本不发送到任何服务器。 - 自实现 BERT WordPiece 分词,不依赖 transformers;`onnxruntime` 推理,512 维 CLS 向量,缓存已编码记忆,单次召回约 0.1–0.4 秒。 - 这不是用你的记忆重新训练模型:embedding 是预训练权重,本地只做推理和缓存;几百条记忆也不足以训练通用语义模型。 - 记忆卡悬停会显示“本地 BGE 已就绪/未下载”;`--check`、`--encode` 可用于自检。 ## 0.23.0 · 语义记忆、追问策略与呼吸表现 - 记忆检索从纯字符重叠升级为**本地特征哈希 + 中文同义概念扩展**(散步/走走、难过/郁闷、工作/加班等),能接住常见换词;明确不是神经网络 embedding,不联网、不存向量。 - 新增 `native/dialogue_planner.py`:区分元问题、追问、记忆、情绪、命令、问候、知识问题;对“然后呢/后来呢/具体呢/为什么”引用**上一轮真实话题**,没有上下文就反问,不编故事。 - 新增 `native/presentation.py`:呼吸、轻微摆动、朝鼠标侧身、按情绪变化的柔光;减少动态模式全部归零,不会在静态模式里抖动。 - 记忆/对话/表现模块均为纯函数,可独立测试;不新增权限或网络请求。 ## 0.22.0 · 训练评估:分层留出、每类指标与数据质量 - 情感模型改用**按类别分层留出**,不再随机切一段;新增 balanced accuracy、macro F1、每类 precision/recall/F1、混淆矩阵,并在 `emotion.json` 持久化最近一次评估(只有数字和固定标签)。 - 数据质量先过滤:重复行、同文不同标签的冲突行、过短/低中文占比/未映射标签;审计记录 duplicates/conflicts/classes/min_class,不保存原文。 - 接受门槛从“准确率略升”改为“macro/平衡提升且准确率不塌陷(≤2%)”,避免牺牲少数类换总分。 - 动作网络回放改为**课程采样**:优先强反馈与稀有动作,确定性轮换;新增动作多样性、平均奖励、正反馈比例指标。 - 训练总览新增“情感留出 / 动作偏好”评估行;说明这是留出集指标,不是心理诊断或实际成功率。 ## 0.21.0 · 互动反应:好笑、快来、难过、无聊、打瞌睡、流泪 - 新增 `native/reactions.py` + 实机原生绘制:搞笑(转圈/金色星星)、快来(朝鼠标小跑/速度线)、难过(垂头/细雨)、无聊(问号与省略号)、打瞌睡(Zzz)、流泪(眼泪)。 - 由**明确互动词 + 本地情绪模型**触发;聊天里说“快来/讲个笑话/好无聊/困了/想哭/难过”会同时给出对应回复与动作,不需要新素材。 - 反应是程序化绘制(眼泪/Zzz/星星/速度线),不引入不可分发的上游角色帧;持续 4–6 秒后自动结束。 - 减少动态模式下不动画,但仍显示文字气泡;不新增权限。 反应示意:无聊显示问号与省略号,打瞌睡显示 Zzz,流泪显示程序化眼泪。运行截图不随公开仓库分发。 ## 0.20.0 · 对话修复:不再用随机话术糊弄 - 修复根因:只要情绪被判定为难过/生气,就会用随机陪伴话术覆盖已经生成的针对性回答;默认兜底也直接抽一句心情话。现在这两条路径都移除了。 - 新增 `native/dialogue.py`:识别“答非所问 / 没听懂 / 你在说什么”等元问题,引用**上一轮原话**说明没接住,再请对方确认,而不是再抽一句。 - 本地规则没命中时,改用诚实的上下文兜底(“这句我还没答上来,你问的是……吗”),不再出现“我有点雀跃,想转一圈”这种无关回复。 - “不想加油了 / 撑不住”等否定鼓励的表达改为先接住情绪;问候不再强制说“今天也一起加油”。 - 测试使用固定的四轮回归输入:问候、拒绝加油、两次元问题,逐句断言不再出现随机心情话术。 对话窗口截图不随公开仓库分发;避免把聊天内容随功能截图公开。 ## 0.19.0 · 长期一致性(重启 / 跨天 / 跨模型) - 新增 `native/continuity.py`:独立 `continuity.json`,每天保存一次**纯数字**锚点(人格 revision/五维、记忆 revision/计数),启动时校验并显示“连续 N 天 · 状态一致/已更新”;最多 180 天,损坏保留原文件。 - 重启/跨天后人格与记忆直接读回同一存档;锚点只校验、不改写性格或记忆,避免“为了稳定而覆盖真实变化”。 - 跨模型:本地与云端在记忆类问题上都先走本地记忆(云端不发送);云端情绪场景回复追加同一人格语气;实时语音指令加入固定的温和/好奇/克制长期语气。**不把记忆摘要静默发送到云端**。 - 概览新增长期一致性状态;不新增权限,不保存文本锚点。 ## 0.18.0 · 人格引擎(语气 / 情绪 / 主动性) - 新增 `native/personality_engine.py`:独立 `personality.json`,五维稳定倾向(温暖/好奇/俏皮/稳定/表达),按陪伴状态、情绪与互动缓慢更新,带版本、上限、原子写入与损坏保护。 - **接入记忆**:当前语气由情绪 + 记忆相关度决定(轻柔/温暖/俏皮/好奇/平稳);主动性由表达/好奇与记忆命中计算。 - **接入对话**:默认/安慰类回复会带一句人格语气;主动搭话在主动性足够且命中记忆时,会引用真实记忆话题(“我刚刚想起…”),并随主动性调整下次搭话间隔。 - 情感页新增「人格倾向」卡:当前语气、主动性、五维数值;明确标注“模拟”,不声称意识。 - 不使用随机伪造情绪、不新增权限;云端聊天仍不自动获得本地记忆。 ## 0.17.0 · 记忆进入对话 + 受限公开爬虫 - **记忆真正影响对话**:「你记得我喜欢什么/我叫什么/记得我说过…」会从记忆引擎与已明确提供的称呼/喜好回答;公开记忆只在知识型问题且相关度足够时引用;没有记忆会直说,不编造。 - 偏好自动入库:称呼与喜好进入记忆类型「偏好」;回顾、习惯、公开知识继续自动汇总。 - **新增受限爬虫** `native/public_crawler.py`:只访问固定的 GitHub API 文件(MIT 仓库 `chinese-poetry` 的《诗经》,文本为公版),不接收任意 URL、不跟随跨站重定向、不抓知乎/登录页;6 小时一次,仅在公开学习开关开启时运行,失败静默且不生成假记忆。 - 记忆新增「诗文」类型;公开条数含知识与诗文。检索结果带相关度,供对话引用。 - 仍不是“人格引擎”,也不声称意识;云端聊天不会自动获得本地记忆(隐私边界未变)。 ## 0.16.0 · 记忆引擎(本地 + 自动公开学习) - 新增 `native/memory_engine.py`:独立 `memory.json`,汇总本地回顾/习惯与**公开学习器已抓取并校验**的知识摘要;不另开爬虫、不抓知乎、不绕过现有公开学习开关。 - 自动联网学习=吸收现有调度器的新知识 revision;你不需要逐条投喂。关闭公开学习后不再产生新的公开记忆,已有记忆保留。 - 去重、重要度/命中衰减、最多 600 条、文本 240 字;提供本地检索 `recall()`;原子写入 + fsync,坏文件保留原文件并标记受保护。 - 回顾页新增「记忆引擎」卡:本地/公开条数、最近记忆、自动学习说明和**清除记忆引擎**(不会删除成长档案、知识索引或互动记忆)。 - 记忆存档含回顾/习惯/公开知识摘要(本地明文),已加入 `.gitignore`;不含聊天原文或 API Key。 ## 0.15.0 · 独立成长引擎 - 新增 `native/growth_engine.py`:独立 `growth.json`(`version:1`),持有等级、阶段、连续天数、里程碑和日活跃账本;概览显示同步版本与里程碑数。 - **XP 只镜像现有档案**,不新增经验来源、不读取聊天/文件/屏幕;相同档案不重复写入、不涨 revision。 - 幂等同步、原子写入 + fsync、坏文件/未知版本保留原文件并标记受保护;写入失败回滚内存状态。 - 有效档案 XP 归零时记为 reset 并清空引擎日账;里程碑上限 100、日账上限 400 天。 - 接口与后续记忆/人格引擎的边界见 [成长/记忆/人格引擎接口设计](docs/growth-engines.md)。 ## 0.14.0 · 本领页六维能力与引擎接口 - “本领”从两项练习指标升级为**六维能力面板**:行动、平衡、表达、学习、陪伴、记忆;雷达 + 六张维度卡 + 综合/最强/可练摘要。 - 分数由现有本地计数推导(`native/ability_model.py`),是**练习指数**,不是能力认证、心理诊断或模型准确率;空数据为 0。 - 保留敏捷/平衡精确值、练习记录、动作模型、记住的日常、清除记忆等全部原有功能。 - 新增 [成长/记忆/人格引擎接口设计](docs/growth-engines.md):一个引擎一个版本化存档、界面只读、审计只存数字/枚举、权限不随成长扩大;后续引擎直接填 `growth/memory/personality` 输入,不需要再改页面结构。 - 测试覆盖六维边界、空/恶意输入、确定性、引擎输入契约,以及切页不发权限/训练信号。 ## 0.13.0 · 右键菜单重设计 - 右键菜单改用岚青视觉:白色面板与细边框、分组标题(外观/陪伴)、原创线性图标、统一 13px 字号与 8px 间距。 - 常用动作置顶;大小/气泡大小改为带选中标记的子菜单;漫游/搭话/减少动态用勾选图标显示状态;关闭使用红色图标。 - 保留全部菜单项、对象名、快捷键、选中/禁用逻辑与后续动作;未增加新功能或新权限。 - 实机验证:右键打开菜单、点击第一项仍能打开成长卡;运行截图仅保留本地。 ## 0.12.0 · 公开许可情感数据集更新 - **数据来源**:`zzhdbw/Simplified_Chinese_Multi-Emotion_Dialogue_Dataset`(Apache-2.0,翻译自 MIT 的 Chinese-MEDD),固定版本 `d0d148b9…`;不抓取知乎或其他禁止自动访问的平台。 - **本次实际更新**:使用 1,844 条训练、461 条留出验证(仅 5 个明确映射类别:开心/伤心/生气/平静/平淡)。留出准确率从 **21.0% → 70.9%**,更新 2,505 个权重项,模型版本 v2;这是该数据集上的分类准确率,不是心理诊断或真实情绪准确率。 - **隐私**:只保存哈希特征与数字权重;原文不写盘、不进日志、不进仓库。更新前自动备份 `emotion.json`,写入失败会回滚。 - **可复现**:`python native/emotion_dataset_update.py`(固定 URL+revision、4MB 上限、过滤 URL/联系方式/敏感词、非法标签跳过)。数据不随仓库分发,需自行下载。 - **知乎边界**:知乎 robots 对普通爬虫为 `Disallow: /`,协议也禁止抓取及用于模型训练;因此本项目不实现知乎抓取。 ## 0.11.0 · 数据可视化与分页数据逻辑 - 概览改用「最近 7 天」柱状节奏 + 四维雷达,先看趋势再看明细;数字明细保留在下方。 - 本领改为双环形练习仪表,再给精确数值与模型状态;回顾增加总回顾/进阶/连续天数摘要。 - 权限页首屏新增「本地档案 / 云端 / 电脑操作」三项状态牌,云端状态随配置实时变化。 - 情感用四维雷达呈现愉悦、精神、信任、好奇,下方仍保留精确数值和线索说明。 - 训练新增最近 14 天活动柱状图与知识领域环形图,训练明细、筛选、分页和来源页保持不变。 - 数据页在知识/情感明细之上增加知识领域环形图与收录摘要,原有只读面板和语音审计继续保留。 - 所有图表均为原生 QPainter 绘制,不使用外部图表库;数据显示层仍是被动快照,不新增联网、训练、权限或写入。 ## 0.10.0 · 岚青成长工作台 - 完整统一七页原生成长卡:岚青主色、浅雾底色、白色卡片、原生矢量图标;正文与数字分级,关键操作、危险操作和禁用状态明确区分。 - 概览的成长属性改为2×2卡片,陪伴记录分主次;本领页整理练习与动作模型,回顾页使用日期时间线,权限页统一隐私边界与配置入口。 - 情感工作台、训练总览/记录/来源、数据知识/情感视图,以及语音/电脑操作数字审计统一样式。公开资料状态保留文字说明,不仅靠颜色表达正常、忙碌、未连接或错误。 - 保持默认456×640、最小420×480,页内独立滚动、固定关闭栏;刷新保留当前子页、记录选择与滚动。不改变任何模型、档案结构、网络开关、电脑许可或确认逻辑。 - 合成预览覆盖空白/有数据/错误 × 12个页面或子视图 × 两个窗口尺寸,共72张截图;不会读取主人档案、密钥或音频。运行 `python native/render_growth_preview.py` 可重现,输出位于已忽略的 `native/verification/redesign/`。 ## 0.9.0 · 独立 OpenAI Realtime 语音 API - **首选入口**:聊天窗「语音/权限」→「语音 API 设置…」。在原生滚动设置窗填写完整接口地址、模型、Key、音色、每次回复tokens上限、会话时限及GA/Beta协议。默认 `wss://api.openai.com/v1/realtime`、`gpt-realtime`、`marin`、1024 tokens、600秒、GA;模型和音色需服务商实际支持。不是把文字 `/chat/completions` 当作音频接口,任意文字代理不保证可用;OpenAI服务范围、账号权限和额度仍需本人核对,不保证中国大陆可用。 - **独立密钥与目标绑定**:不读取或复用文字聊天/DSH模型设置。独立配置 `realtime.json`,Key由当前Windows用户DPAPI加密;输入框永不回填旧Key。地址改变必须重新输入Key或明确清除,旧Key/环境Key不静默转发;仅同一地址可留空保留。文件损坏、无法解密或被其他操作修改时拒绝覆盖。保存不测试接口、不开麦、不上传。环境变量 `DSH_DAFEIYU_REALTIME_KEY` 只自动适用于默认OpenAI地址;`DSH_DAFEIYU_REALTIME_FILE`可选独立配置路径。 - **音频单独授权**:「开启云端实时语音…」另行显示完整目标/模型/音色/时限,确认使用耳机后,点击允许本次音频上传。既有文字连续云聊授权不能覆盖音频。确认后先建立连接、等待服务端采纳本次配置,再开启默认麦克风;全局急停无法注册或审计不可写时不开始。网络失败不自动重连。音频可能包含周围声音;本机不写录音/原始转写,但对方的数据留存政策适用,不承诺服务端零留存。时限不是费用硬上限。 - **真实持续双向协议**:24kHz/单声道/16位PCM持续上行与下行,server VAD自动分段和生成;用户开始说话时清空旧播报,按声卡实际处理的播放进度取消/截断旧回复,不拿收到/排队的音频冒充已听到。没有每句调用文字API/TTS;保留本地SAPI离线后备,两种采集互斥。原生裸Qt音频没有声学回声消除,必须使用耳机;全双工协议不等于外放抢话质量已保证,真实服务延迟/打断/声学效果需要有效账号后实测。 - **连接安全**:WSS/TLS,明文仅允许localhost/127.0.0.1/[::1]回环;拒绝重定向、不自动沿用系统代理转发、严格限制音频/JSON/队列/握手/会话时长。连接目标、模型、Key、音色或预算变化即撤销授权;跨会话单调epoch、一次性打断边界和播报前再校验,拒收旧会话/旧回复排队数据。仅支持OpenAI Realtime协议;显式返回不匹配模型、音频格式、音色、回复上限或未禁用工具时不启麦。 - **模型与电脑权限隔离**:工具/MCP不启用、不执行任何function call;云端转写标记「未核对」,不进入电脑命令解析或自动适应,也不进入文字云聊历史。可点「核对并采纳最近转写为本地适应」,确认确实为本人说的话后,才按明确自述更新本地情感/互动;不是语音大模型训练。电脑仍只接受既有直接文字/本机SAPI严格命令,并逐项物理确认;云端模型没有电脑权限。 - **成长卡真实统计**:实时接口会话、转写、打断、异常、累计连接时长、实际交给连接的音频字节、收到音频字节、设备处理播报时长,以及服务返回的输入/输出tokens分别统计;tokens不是最终账单。每10秒和关闭时落盘固定数字/枚举审计,不存地址、Key、音频、原句、项目ID或控制令牌,声学/合成训练仍为0。失败原因以固定枚举显示,不回显服务端原始错误。急停、关语音/聊天窗、隐藏/退出桌宠立即停止上传/播报并撤销操作许可。 - **验证范围**:无真实账号时只做本机回环WebSocket双轮PCM、打断/截断、重定向与权限回归;回环转写是固定测试夹具,不冒充真实语音识别、OpenAI连通、费用或用户麦克风测试。维护者在 Windows 10/11 + `dsh-dafeiyu@0.1.23` 的安装版上确认过设置页可打开;没有Key时点「开启云端实时语音」只会回到设置页,不写配置、不建会话、不开麦;DPAPI 加解密只用隔离配置里的固定测试串验证,密钥明文未落盘。真实OpenAI延迟、可用地区、账号权限、账单和麦克风音质均未验证。 ## 0.8.0 · 连续语音与逐项确认的电脑操作 - **入口**:聊天窗「语音/权限」,或成长卡「数据/权限→连续语音与安全权限」。麦克风、语音学习、电脑操作都是独立的本次授权,默认关闭,不随重启恢复。关聊天窗、关语音权限窗、隐藏桌宠或紧急停止会关闭麦克风/播报并撤销操作权限。 - **连续而非按键逐句**:点一次「开启本次麦克风」,使用本机预装 Windows SAPI 中文引擎连续监听、自动分段、本机文字转写和语音播报;不需要每句话点录音/发送。是否可用取决于本机是否安装中文识别引擎、是否有可用的音频输入;缺少时界面会明确显示不可用并且不录音。没有下载额外模型。 - **诚实的实时边界**:这是持续监听的分段 ASR + TTS,不是原生全双工语音大模型,没有声学回声消除或保证的语音抢话。播报中和约1秒尾音窗口抑制识别,防止自声回灌;「打断播报」可立即停止播报,再继续说。推荐耳机。其他应用的声音不能证明是本人讲话,不能作为电脑操作授权。 - **本地优先**:识别和合成都不联网、不保存录音。转写只在当前聊天窗口RAM保留,默认走本地规则回复。切到云端时,必须另外明确允许「本次连续云聊」才能自动发送转写文字,不上传音频;对方服务的费用和隐私政策仍适用。没有授权、正在输入草稿、待确认或待回复时本段不上传、不排队重放。 - **语音与模型统计**:成长卡「数据」新增连续语音/受控操作区,显示会话、识别片段、播报、打断、拒收及操作请求/执行/拦截;「训练→记录」可筛选语音、电脑操作和语音驱动的情感适应,逐次审计不含原句、录音、令牌或路径。语音识别/合成模型训练明确为0,使用的是预装模型;没有把通话时长、识别或执行次数算作模型拟合。 - **语音驱动其他适应**:默认关闭。明确允许后,仅引擎分数至少0.85的片段用于本地情感/互动适应,明确自述才更新情感权重;其他片段只做临时聊天和线索对照。分数未校准,不是准确率或身份验证;识别错误时可用文字更正。不会从模型回复/网页自动给个人情感贴标签,也不训练电脑操作权限。 - **窄白名单,不是任意电脑代理**:本次开启操作许可后,只有直接文字或语音的严格命令可以提出操作,例如「云岚,打开记事本」「小云岚,打开计算器」「云岚,调高音量」「云岚,调低音量」「云岚,切换静音」。静音为全局切换,不声称必然进入静音状态。语音引擎分数0.15仅允许提出候选,不能授权执行;不是声纹认证。 - **每项仍须你点按钮**:核对固定操作名后,在原生窗口点「确认这一次操作」。说/输入“确认”、云端回复、网页指令、公开资料、DSH消息和主动搭话均不能代替此按钮。随机令牌只在RAM,30秒过期、单次有效;新请求替代旧请求、取消/关窗/急停/退出均失效。操作前必须先写入持久审计,无法写入则不操作;执行后日志失败会停权并如实标记提交未知,不能撤销已完成的系统动作。 - **紧急停止**:按钮、全局 `Ctrl+Alt+F12` 或直接命令「云岚,紧急停止」会停止录音/播报并撤销待操作。语音急停仍受识别及播报回声抑制限制,应优先使用按钮/快捷键。全局快捷键注册失败则拒绝授予电脑操作权限。急停不会强制杀死原来打开的应用。 - **未授予**:任意鼠标点击、键盘输入、屏幕/剪贴板读取、终端/脚本、任意程序或网址、下载、文件修改/删除、安装、支付、管理员或安全设置变更。执行后只确认系统调用发出,不读取屏幕去假称验证业务完成。该门控防止误识别/外部内容/模型输出直接执行;它不是防御同一Windows用户恶意进程的OS级安全边界。 ## 0.7.0 · 能直接回复的主动对话与动态公开资料 - **主动聊天不再只是闪过的文字**:小云岚会打开原生紧凑对话卡,可在她的话下面直接输入、回车回复,展开/收起不丢上下文。主动出现不抢输入焦点;正在输入、请求中、审批/错误状态不插话。空闲约2–4分钟,其他任务进行时约5–10分钟;关闭卡片后至少休息5分钟。可用原来的“主动搭话”开关暂停。减少动画不会关闭文字对话。 - **连续云聊是本次明确授权**:独立接口仍不读取DSH会话。先选择云端,点击“本次连续云聊”,核对显示的端点/模型后点“允许本次连续”。后续手动发送可连续回复;开启开关本身不会发请求,不会自动付费生成主动消息。历史只在RAM,最多80条显示、最多6条短消息进入接口上下文,合计4000字符;关闭/Escape撤销授权并丢弃历史,端点/模型变化也撤销。默认不授权时仍逐句确认。晚返回的旧窗口云端结果不进入新窗口。 - **真实动态来源**:固定USGS官方 `https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_hour.geojson`,每5分钟检查M2.5+最近一小时监测。只从数值生成带UTC时间的中文统计,不保存远端标题/地点/账号/链接。真正空数据是0条,不是假失败。该来源是科学监测示范,并不代表实时全网搜索、实时情感数据流或知乎/短视频已接入。 - **联网与训练严格区分**:动态摘要审核后覆盖同一索引条目,不无限堆积;动作SGD、明确自述情绪的加性适应、公开词典收录、知识索引分别审计。动态模式下公开词典/已审阅课程每小时复核;固定版本课程不会假装不断产生新知识。手动检查至少间隔60秒,429/503服务端冷却持久化且关闭/重启也不能绕过。网络失败显示旧缓存/错误,绝不把旧资料标为当前在线成功。 - **实时情感对照**:每次直接输入后,在本机对比当前模型与最近下载的公开词典两种线索;不把原句传给公开资料接口,不把一致/不一致冒充心理诊断或准确率。没有明确自述,不自动给情绪权重贴标签训练。 - **开关和状态**:聊天卡“动态公开资料”;成长卡“情感→学习设置”可开关动态读取/刷新,并显示源时间、本机校验时间、下次检查;训练和数据页同步显示真实连接状态。新安装默认不联网,使用者明确请求后才开启。聊天接口与公开资料通道独立,可分别关闭。没有新增私密抓取、管理员权限或来源代码执行。 ## 0.6.1 · 更大更清楚的字体 长大后的字号:正文14px、辅助说明13px、页签13px、卡片标题14–18px;深灰文字替代原来的浅灰小字,正文与按钮对比度更高。Windows 上字体请求完整 hinting 与抗锯齿策略,减少缩放时的发虚。字体放大后仍保持默认456×640、固定关闭栏和各页独立滚动;每个页面都加了“字号不小于12px”的回归测试,防止以后又被改回糊成一团的小字。 ## 0.6.0 · 情感工作台 / 训练工作台 / 数据档案 本轮重设计仍为 PySide6 原生界面,不是网页覆盖层。保留默认456×640、有界调整尺寸、固定关闭栏和各页独立滚动;后三页收起封面的次要信息。 - **情感**:`此刻的我们 / 学习设置` 两段切换。原生状态插画、四个细条指标、独立的“我听见的你”卡片;设置、来源和长说明移出当前状态画面。 - **训练**:`总览 / 记录 / 来源` 三段切换。总览分别显示累计动作SGD步数、情感适应轮次、当前知识索引条目、保留期内成功陪伴状态事件;记录页保留领域/方式筛选、分页和详情;来源页逐一显示已收录、可读取、读取中或错误,不将“支持接入”伪装为已连接。 - **新增数据页**:知识分布/情感模型切换;显示知识领域分布、情感模型版本/明确自述拟合样本/加性适应次数/公开词条/特征数,以及保留期内已提交收录、校验/过滤数量、来源覆盖、失败与提交未知计数。观察、收录与神经训练分别统计,不制造准确率曲线。 - 切换页面、刷新数据不会重置记录选择、滚动位置或分页;所有新面板均被动读取快照,不自行读盘、联网或训练。任意来源字符串、HTML、错误原文、聊天文本不能进入新数据面板。 ### 公开平台扩展与真实状态 已新增 **Stack Overflow 官方公开 API**:只读取3则固定、审阅过的Python问答,核对答复/问题/作者ID、CC BY-SA 4.0许可和必要内容标记后,收录带作者、原文链接、改写声明、许可链接的中文摘要。它不是泛化HTML爬虫,也不执行或保存来源代码、头像、用户画像、评论和额外链接。 - 固定API:`https://api.stackexchange.com/2.3/answers/26853961;6581949;36798076?site=stackoverflow&pagesize=3&filter=withbody`;无需账号、Cookie或token。 - 问答分别为Python字典浅合并、元类、类方法/静态方法。来源内容变化/许可不符时整批失败且保留旧索引,不悄悄学习新内容。只有这3条中文改写遵循CC BY-SA 4.0,署名详见`native/third_party/Stack-Overflow-ATTRIBUTION.txt`。 - 对该官方API支持有界gzip:传输体和解压后均不超过512KB;拒绝重定向和未知压缩。服务端backoff会写入调度计划,重启或手动点击也不能绕过冷却。 - **知乎 / 短视频目前未连接**。目录与UI只表示待接入项,并无隐藏抓取。知乎的[robots规则](https://www.zhihu.com/robots.txt)对普通爬虫限制常规页面抓取;短视频平台需逐项核实可用的官方接口、范围及授权。本轮没有可用的知乎/短视频官方内容接口或创作者数据授权,因此不抓登录后/私密内容、不冒用搜索引擎身份、不绕过验证码或风控、不下载视频或收集个性化推荐流。 - `PLATFORM_SOURCES`仅是固定元数据目录,不是联网任务注册表;填入一个平台名字或“已连接”字符串不能授予抓取权限。没有实现“全网无限抓取”。即使后续接入平台公开摘要/字幕,观点和自动情感标签也不能直接当作事实或真实心理标签训练。