# Changelog 按 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 组织,版本号遵循语义化版本。 每条只写「改了什么、对使用者意味着什么、要不要动配置」。 ## [0.2.11] - 2026-11-04 记忆星云可视化重做:现在更能一眼读懂记忆结构。 ### 新增 - **记忆星云按记忆类别分云团**:知识 / 决策 / 踩坑 / 偏好 / 目标 / 特质 / 事件 / 事实各用一色星云聚成一团并标类别名,再也不用在一团散点里找同类。 - **星球亮度由记忆强度决定**:越强越亮、越弱越暗(短期记忆整体压暗一档),配合半径区分,强弱一眼可分。 - **点击星球看具体信息**:单击任意星球弹出信息卡,显示全文标题、类别、层、状态、来源、强度条、标签、创建日期与关联数。 ### 变更 - 安装说明与 npm 包内 README 的依赖口径统一为准确表述:运行时仅依赖 DSH 自家的 `@deepseek-ai/schemastery`,无外部服务 / embedding API / 遥测(不再写「零运行时依赖」)。 ### 对使用者的影响 - 星云优化是纯界面增强,无需改任何配置,更新即生效。 - 依赖口径只是描述更准确,运行行为不变。 ## [0.2.10] - 2026-11-03 文档补全:变更日志改为面向使用者描述,README 补上上手示例与求助入口,并新增贡献指南。插件功能没有变化。 ### 新增 - README 新增**上手示例**:从「聊两句 → 审核中心放行 → 召回验证 → 备份带走 → 回收站找回」的完整链路,带命令与界面路径。 - README 新增**获取帮助**与**参与贡献**两节。 - 新增 `CONTRIBUTING.md`:开发环境、改完要做什么(每一步对应哪条要求)、代码约定与目录速查。 ### 变更 - 变更日志的条目改为面向使用者描述(改了什么、对使用者意味着什么),不再记录内部开发过程。 ## [0.2.9] - 2026-11-03 跨机同步的入口补上;「已知未做」两条改成与现状相符。 ### 新增 - 导入 / 迁移面板新增**「从备份目录导入…」**:列出备份目录里的自家备份文件(时间 + 大小),选一份即可预览并导入。 配合「自动定时备份」把备份目录放在同步盘目录,就得到**单向跨机同步**:A 机备份文件自动同步出去,B 机在这里挑最新一份导进来。 - `GET /backup` 现在返回备份目录路径与文件列表(只认自家命名的 `memory-lattice-backup-*.json`)。 ### 变更 - README「已知未做」现在写清三条召回通道各自解决什么(BM25 字面 / 本地共现向量 / LLM 查询扩写),以及真正缺的只是「真 embedding」。 - README「已知未做」补上生态现状:`dsh-backup-sync`(带基线的三方合并)与 `dsh-webdav-sync`(WebDAV 多机一致)已覆盖换机与多机,但同步的是 DSH profile 目录,而本插件的库在 `$DSH_HOME/memory-lattice/`(profile 之外),覆盖不到;并写明**别用同步盘直接搬 `.db`**(`-wal` / `-shm` 会被独立同步,会损坏库)。 ## [0.2.8] - 2026-11-03 回收站从「记忆页的一个筛选条件」升成独立选项卡。 ### 新增 - 标签栏新增 **回收站** 选项卡(带条目数),只列被软删除的记忆,每条都能直接「恢复」。 - 回收站里的卡片显示**删除时间**;面板顶部说明「还没被真正删掉」以及彻底清除的入口在哪(配置页「清空记忆库」)。 ### 变更 - 「记忆」页的状态筛选里**去掉了「回收站」**选项 —— 它现在是独立选项卡,两处入口重复会让用户以为有两个不同的删除堆。 ## [0.2.7] - 2026-11-03 删除改成「先确认 → 进回收站 → 可恢复」。 ### 新增 - 删除前的二次确认:卡片上的「删除」与夜巡队列的「删除」都会先弹确认框,说明是「移到回收站,可恢复」; 确认框文案与整库清除的硬删除区分开,避免把「可回滚」和「不可恢复」混为一谈。 ### 修复 - **回收站原先恢复不了**:README 写「软删除、可回滚」,但实际删除后没有任何恢复路径,只能手工改数据库。 现在从回收站可以恢复到**删除前的状态**(沉睡过的回沉睡,否则回生效),恢复后记忆重新参与召回。 - 审计日志新增 `restore` 动作(原先删除后恢复会被记成「批准」,看不出是恢复)。 ## [0.2.6] - 2026-11-03 发布流程补齐,插件功能没有变化。 - 每个版本都会附带**预构建的安装包**(tarball)下载,可直接安装,不必自行构建。 ## [0.2.5] - 2026-11-03 插件功能没有变化。 ## [0.2.4] - 2026-11-03 插件功能没有变化。发布前会校验版本标签与包内版本是否一致,避免标签指向名不副实的版本。 ## [0.2.3] - 2026-11-03 发布方式改为自动签名发布。 - 此后发布的 npm 包附带 **provenance**,可验证这个包确实来自本仓库的某次构建。 - 发布不再依赖任何个人账号凭据。 ## [0.2.2] - 2026-11-02 补上自动定时备份(此前只能手动点,或自己把 CLI 挂到系统计划任务)。 ### 新增 - 自动定时备份:默认关,开启后按 `backupIntervalHours`(默认 24h)自动跑增量备份写到库内目录,只保留最近 `backupKeep` 份(默认 7)。复用现有的加密信封 + 增量水位机制。 - 备份面板显示自动备份状态(开关 / 间隔 / 保留 / 加密 / 上次时间 / 目录),并提供「立即备份一次」手动触发 —— 走的是与定时任务完全相同的 `runAutoBackup`,所以「手动能加密成功」就等于「定时也能」。 ### 三条边界 - **默认关闭**:与蒸馏、人格合成、语义扩写等闸门一致 —— 有副作用的功能一律显式开启。 - **口令不落盘**:加密口令只从环境变量 `MEMORY_LATTICE_BACKUP_PASSPHRASE` 读取,配置里不存在任何口令字段;环境变量缺失时**跳过本次且不写任何文件**,绝不静默降级成明文。 - **目录锁在库内**:`backupDir` 越界(`../` / 绝对路径)回落到 `/backups`;清理旧备份时只删 `memory-lattice-backup-*.json`,目录里用户自己的其他文件一个都不碰。 ### 变更 - README「已知未做」移除「备份没有自动定时任务」一条。 - 修正「已知未做」第 1 条关于 embedding 的表述:本地 embedding 模型(如 bge-small-zh,约 23MB)下载后完全离线推理、**记忆内容不出站**,真正冲突的是「零第三方依赖」而非「零出站」。原文笼统写成「属于出站」,会低估本地方案的可行性。 ## [0.2.1] - 2026-11-02 本次只调整仓库与发布相关配置,插件功能没有变化。 - `.gitignore` 补上隐私文件模式(`.env*` / `*.pem` / `*.key` / `*.db` / `*.sqlite` / `*.wal` / `*.shm`),防止库文件与密钥被误提交。 - 发布到 npm 的包只含运行所需文件,预览产物与截图不再进包。 ## [0.2.0] - 2026-11-02 补齐导入 / 迁移、加密与增量备份、保留条数上限,并公开发布。 ### 新增 - **加密备份**:scrypt 派生 + AES-256-GCM,导出成 JSON 信封(`memory-lattice-export/v2`);口令只走 POST body,不落盘、不进日志、不进 URL。 - **增量备份**:按水位只导出「上次之后变过的条目」,并带一份 `deletions` 清单;恢复时同步删除,不会越恢复越多。增量恢复按 `id + updated_at` upsert,内容没变就跳过。 - **按类型条数上限** `retentionCounts`:与天数策略正交,核心层豁免;淘汰顺序为「命中次数 → 强度 → 最后更新」,从最弱、最久没用的开始。 - 保留策略在配置页改成「类型 / 期限 / 条数上限」三列表格输入。 - `tools/import-export.mjs`:不依赖 DSH 的命令行导出/导入(`--dry-run` 预览)。 ### 安全 - 本机 API 全部路由(含只读 `/export`、`/list`、`/persona`)要求**进程内会话令牌**;握手本身也要来源证明 + 限流。 - 人格 LLM 合成改为默认本地兜底:必须显式 `personaAutoSynth` + `personaProvider` 才会出站。 - 删除 `/config/audit-mode` 影子接口与手写的 SQLite 镜像,审核模式以宿主设置为唯一真源。 - README 增加「威胁模型(适用 / 不适用)」,明确不做 OS 级隔离。 ### 改进 - 本地向量语义召回:滑窗局部语境 + PPMI + 随机投影;索引后台构建(不阻塞提示组装),余弦做单调标定后与 BM25 融合(只加不减)。 - 检索分数夹到 [0,1]:修复极短文档上 `sqrt(bm25/IDF和)` 超过 1 导致融合反而降分的问题。 - 导入支持四种模式(skip/merge/new/replace),外部字段一律夹紧。 ### 修复 - 增量备份的时间水位与库内 `datetime('now')` 格式不一致导致「看起来没有变化」;现在统一经 SQLite `datetime()` 归一,并正确处理本地时区解析陷阱。 - 云图双层容器导致弹窗画布被内层固定高度卡死。 ### 许可与打包 - 加入 `LICENSE`(MIT)、`.gitignore`、`.gitattributes`(全仓 LF,`.ps1` 走 CRLF)、`SECURITY.md`。 - 权限清单 `commands` 由 `node` 改为 `[]`:插件运行时从不启子进程,原来属于过度声明。 - 发布到 npm 的包只含运行所需文件,体积约 160 KB。 - lockfile 补齐 `resolved` 与 `integrity`,干净环境下 `npm ci` 可复现安装。 ## [0.1.0] - 2026-11-01 首个可用版本。 - 短期记忆(48h)→ 长期记忆(SM-2 调度)→ 沉睡区(可唤醒)三层生命周期。 - 审核中心:LTM 写入与 STM 晋升都停在待审;systemPrompt 注入「禁止自行批准」红线。 - 工具 `memory_recall` / `memory_write` / `memory_about`;命中即完成一次复习强化。 - 自动召回注入:每轮按当前消息检索,只取「长期层 + 已生效」,带数据边界声明。 - 人格画像:低频合成、版本化快照、证据链与一键否定。 - 工作记忆(待办/承诺)、夜巡报告与可执行队列。 - 记忆星云(3D 透视 + 分簇 + 自转 + 聚焦)、遗忘曲线、概览/记忆/审核/人格/配置页。 - 零第三方运行时依赖(`node:sqlite` + 自研 BM25)。