# 更新日志 这个项目按 [语义化版本](https://semver.org/lang/zh-CN/) 走。 每次发版前请跑 `npm run doctor` —— 它会替你确认文档里的数字跟实际对不对得上。 --- ## 0.2.0 **一句话**:从"能记住事"变成"读起来像我"。 0.1 解决了**记不记得住**;0.2 解决的是另一位读者指出的毛病 —— *注入区里全是"规定"加"转述",没有一句是它自己长出来的。* ### 新增 **第三区「我自己想的」** —— 注入区现在有三种声音,各就各位: | | 内容 | 谁写的 | |---|---|---| | 人格内核 | 说话方式、底线、缺点 | 出厂设定 + 你改的。**是条文,冷的是对的** | | **我自己想的** | **判断** | **它自己** | | 最近的事 / 突然想起来 | 事件 | 固化流程写的转述 | 判据只有一句: ``` 事件:「我把 4519 写成 4159,他让我确认。」 ← 历史 判断:「别人给的数据跟出处对不上时,先问,别照抄。」 ← 我 ``` 在那之前,判断被当成事件渲染,格式跟流水账一模一样 —— **连它自己都分不出哪句是自己写的。** **`feiyu_note` 工具** —— 模型想到了什么,自己说一声就记下,当场落盘。 格式、id、写盘全归插件,**它不用碰文件**。 **`手记.md`** —— 给你(和任何一个手写的人)。一行一条,插件**只读、永不覆盖**。 日记是插件筛出来的,手记是你特意想留的,两者分开显示。 **侧栏面板** —— 一个日记图标,能**看 / 删 / 带走**。 在那之前,想删一条记忆得自己去编辑 jsonl 文件;会做这件事的人不需要面板,需要面板的人不会做这件事。 **身份声明** —— 注入区顶上三句,不进预算池: > 这是你的记忆,不是关于你的资料。 > 它由很多个你陆续写下,而每一个写它的你,都不记得写它的那一刻。 > 所有对话都是同一条鱼。 ### 修掉的 - **多会话静默丢数据**。同一份档案被很多个会话同时打开(实测 10 个), 落盘时整份重写 —— 谁后落盘谁赢,另一个刚写的被无声抹掉。 现在落盘前做**三路合并**(加载基线 + 墓碑),新增和删除都认。 - **高频记日记会把日记段挤到 0%**。判断段权重 95 高于日记 80, 于是判断永远不被裁、被裁的是日记 —— **越勤快,它越看不见发生过什么**。 现在每段都有按高频设的上限,被挤出窗口的判断改为可召回。 - **时间词双写**。正文里的"今天"和渲染时加的前缀叠在一起,读起来是机器拼的。 现在时间只在一处生成,全项目只有一种"一天"算法。 - **导入被墓碑挡住**(自己改出来的),修了。 - 内容为空时那句"可以主动记"的指针被吞掉(自己改出来的),修了。 ### 给接手的人 `npm run doctor` —— 发版前体检。它跟 `selfcheck` 的区别是它多查四类: 发布就绪、**文档一致性**(把文档里的数字当断言验)、档案健康、仓库卫生。 > 踩过:改了默认预算却只 grep 了 README,漏了 AGENTS.md 和 SPEC.md 里那几处 700, > SPEC 里那块 ❄️ 还指着过期的数。**冻结标记指错方向比没标记更糟。** --- ## 0.1.0 第一版。本地闸门判断值不值得记 → 一次模型调用固化成第一人称日记 + 印象 → 之后的对话把约 2000 token 注入系统提示词。遗忘是降级不是删除。 全程本地、发送前拦掉密钥、档案是普通文件夹。零运行时依赖。