Skip to content

Releases: FuRongJun-1999/dsh-memory

灵枢 0.8.1 · 会话隔离修复(issue #65)

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 06 Oct 21:54

灵枢 v0.8.1 · session_recall 会话隔离修复(issue #65)

修一条会静默跨会话污染的缺陷,并把完整身体库的展示位补齐。

本版内容

① issue #65 修复(外部报告,核心)。 session_recall 的「③ 近期事件」段未按会话隔离——多窗口并发时,A 窗口的上下文包会混入 B 窗口刚发出的报文(被模型当成用户新输入处理,还可能被压缩检查点记入)。修复:按 meta.session 严格隔离;显式 session="*" 保留跨会话汇总能力;session 为空退回旧行为。缺 meta.session 的历史事件在指定会话下被丢弃(最坏空窗口,绝不出现错会话内容)。

  • 守卫扩至 42 断言(含 MCP 真实入口端到端、缺 meta 两态、"*"/None 边界)
  • 定点变异自证六腿:删过滤/删星号例外/去 strip/放行缺 meta/去 falsy 守卫/文档反转,红项数各恰等于登记值;ANCHOR-MISS 漂移探针 fail-closed
  • 独立复核 ACCEPT(双树对照 + oracle 直读 _recent.jsonl 对拍 + 多实例形态)

② README 展示完整身体库。 FuRongJun-1999/lingshu(独立公开仓 · MIT)三落点展示:平台全景节、架构节「可以展示什么」八能力面表(身体×脑闭环/世界模型七层闭环/世界推演循环/3D 场景与角色/白箱生成与读回/自研蜂窝神经网络/记忆可视化/理论地基)、文档导航表。

如实登记(不随本修复动):recall(include_recent=True) 的近期尾巴同缺口事实成立——显式开关面且无会话参数可用,已入档。

验证读数

关卡 读数
python 全量 359/359
TS 全量 143 pass / 0 fail / 1 skip
npm run gate 12 腿 PASS(出货冒烟 serverInfo 0.8.1、清单 1593 条目)
容器栈一(rust:bookworm) 49 pass / 0 fail
容器栈二(node:22-bookworm) 141 pass / 0 fail / 3 skip

完整变更与边界声明见 docs/eval/发布15_会话隔离修复与身体库展示_v1.0.md。

灵枢 0.8.0 · 身体×脑组合

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 06 Oct 15:34

灵枢 v0.8.0 · 身体×脑组合

与对外完整身体库 lingshu 组合——端到端可用。

本版四块

① 身体×脑对接(主线)。 身侧适配器 brain_store(MCP stdio 真进程)零改动对接 scene_model:

  • M1 读向:cg(op=read) 取候选 → 适配器侧 tag 过滤 → spatial.coords3d 直存取坐标 → 槽位投影(stg(op=state_chain))取状态 → 世界重建直接可用;
  • M2 写向:身体观测经 mdcg_remember 入脑(含坐标直存);状态写入经垫片翻译为 cg(op=state_event) 记账——事件是源、槽位是投影;
  • 端到端 10/10(隔离库)+断线重连复读通过;组合冒烟进发布门禁第 12 腿。

② 状态追踪链(语义时空图核心能力成型)。 七类状态追踪(人物/地点/时间/事件/因果/物品/情感)→ 状态追踪图(世界书条目+大事记+分幕大纲)→ 多主体常驻件 state_atlas(全角色世界书+酒馆 worldbook JSON 导出)→ 轮写入链(会话每轮保守状态抽取接进 mdcg 写入链;三层同源=认知图+台账投影+原文 evidence 互指)。

③ 退役边界四项裁定批。 基类检索/因果链/rust 内核接线(subgraph 结构面按裁定钉住)+缓存同点失效+ index.lock 有界自清(三闸口径)。

④ issue #64 修复(外部报告)。 replay_check 空集当通行双修——负条件两态拦截(neg_absent/neg_dropped_all 不进 verify、不落盘)+撤销过严一票否决(自否定归 no_conflict 覆盖率口径)+ CLI 角色级 --reflect/--verify-max-tokens、--timeout 系列。

验证

关卡 读数
python 全量 359/359 通过
TS 全量 143 pass / 0 fail / 1 skip
npm run gate 12 腿 PASS(含 cargo 35、rank_parity 逐位 10/10、body_e2e_smoke)
容器栈一(rust:bookworm) 49 pass / 0 fail(python 全量+判别力自证+smoke)
容器栈二(node:22-bookworm) 144 项 141/0/3

完整变更与边界声明见 docs/eval/发布14_身体×脑组合_v1.0.md。

v0.7.5:上下文自管理机制(DSH 端 + zcode 端 + 系统提示词)+ issue #63 修复

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 06 Oct 09:01

本版主题:上下文自管理机制(DSH 端 + zcode 端 + 系统提示词)

把「会话上下文满了会丢记忆」交给机制解决:注入面取近 10 轮、运行态窗口滚 200 条、完整原文全量转写可逐字节回读——从「自觉读纪律」升级为「机制保证」。

四件机制

  • ① DSH 端会话窗口:滑动沉淀 + 续接注入,两轨独立(窗口轨与知识面开关互不替代);真机验收=窗口写入当前会话真实 id。
  • ② zcode 端上下文接管(会话同步器 + 三件钩子):SessionStart 注入「灵枢接续包」/Stop 每轮静默镜像(会话 md 只保留最近 10 条、超长优先遗忘最旧;全量 md 转写增量;运行态窗口增量)/UserPromptSubmit 压缩后重建注入 + 逢十轮间歇归档提醒。库根解析与 zcode MCP 配置同源(修掉缺省根指向遗留库的分叉)。
  • ③ 系统提示词压缩三步重建:读纪律 → 输出声明 → 回取本会话近 10 轮窗口重建上下文;长会话每 10 轮做一次间歇归档(写入 + 读回确认)。纪律真源修订 + 8 端产物重渲染。
  • ④ 工程要件:注入预算 1200→4000(富库下 recent 段会被整段裁空,实测修复);resume 双注入去重(确认位);本机路径出门禁(动态解析,行为逐字等价)。

issue #63 修复

常驻循环 _git 无界等待有界化(timeout=120s + stdin 隔离 + 可区分超时异常);全库 subprocess 加固;活体进度面(current_tick / stale_tick)。

验收读数

面 读数
python 全量 356/356(5 跳过)
TS 套件 143 pass / 0 fail / 1 skip
门禁 npm run gate 11 腿 VERDICT=PASS
出货面冒烟 临时沙箱 pack→install→真握手 PASS(tools == [cg, stg])
Linux 容器双栈 栈一 45 pass / 0 fail;栈二 144 tests / 141 pass / 0 fail / 3 skipped
活体验收 重启后双注入实锤;Stop 三写面刷新(窗口 md 恰 10 轮);第 450 轮逢十提醒真实触发

安装 / 升级

npx @furongjun1999/dsh-memory init

完整变更见 docs/eval/发布13_上下文自管理机制_v1.0.md。

v0.7.4 · 世界模型(语义时空图)功能端

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 06 Oct 05:05

0.7.4——世界模型(语义时空图)功能端落地

「把世界模型的地基打好」:事件是源、槽位是投影。

  • P1 状态事件抽取器 v4:24 条字面锚规则 × 11 槽位;三层消歧(用户侧声明优先/非事实三类/内容实指时点);对拍三率 漏1/误0/错1(分母 25)
  • P2 槽位寄存器投影 + stg(op=state_chain):查询时现算不建第二真源(现值/退役/区间/变迁史);flag MDCG_STG_STATE 默认关
  • P3 写侧记账口 cg(op=state_event) + 《秤》5.1 账本完整性探针:权限双闸、actor 恒取令牌;探针三读数(覆盖缺口/无账可辨/变迁史可查)
  • DSH 会话归因治本:启动脚本去 mtime 猜测 + 插件运行期会话注入写归因面(真机验收=写入归因该会话真实 id)
  • 退役纪律修复(发布前并入,批次116):archived 从 cg 读面/stg 面/会话续接注入面默认剔除(lifecycle.is_archived 判据单点;converged/demoted 不误剔、审计/恢复不受限)——《秤》5.2 探针可复跑(leak 0/2)
  • 真实语料读数:鲸娘 25 事件 → 11 槽位(2 退役);账本探针缺口 3/14、无账可辨 5/5、史可查 11/11

三关全绿:gate 11 腿 PASS | E 盘空沙箱真装真握手 0.7.4 | Linux 容器双栈 45/0 + 135/0。详见 docs/eval/发布12_世界模型功能端_v1.0.md。

v0.7.3 外报六连修与世界模型底座

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 05 Oct 17:17

v0.7.3 · 外报六连修与世界模型底座

  • 六则外部 issue 闭环(#56–#61):hook 过滤面落盘审计(#56)· 保留设备名守卫与 OS 行为解耦(#57)· 守卫嵌套 runner 日志隔离(#58)· README 弱证据段读数对齐(#59)· 睡眠周期物化语义拆分——物化成功即迭代(#60)· 睡眠手动入口 --once / --dry-run / --status last_cycle(#61)
  • 世界模型底座(对齐评估路线 A/B/C):L0 状态事件五元台账+检验强度字段(写链全透传)、幽灵引用检查器(短语层标记)、cg(op=audit) 证据审计面、L4 隔离原型探针(产品化待裁定);《秤》v2.1 多主体世界模型评测规范入库
  • 性能面(第 32 轮):检索体缓存 -47% / freshness 外提 -25% / 写链探针 46.9→31.5ms(逐位对拍 10/10 无位移)
  • 纪律注入面与编译器:用户级 ~/.zcode/AGENTS.md 升为渲染产物(声明出口表内嵌+防漂移守卫);编译器 N270–N272(条件空间脱钩 / 读取面未声明即报错 / 内建名写集拒收)
  • 发布三关全过:npm run gate 11 腿 PASS · Linux 容器双栈(rust 45/0 · node 10/0)· 空目录沙箱真装真握手(serverInfo 0.7.3 / tools=[cg, stg])

详见发布报告:docs/eval/发布11_外报六连修与世界模型底座_v1.0.md。

灵枢 0.7.2 · 读面损坏 UTF-8 家族收口

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 04 Oct 10:14

v0.7.2 —— 读面损坏 UTF-8 家族收口

外部贡献(PR #54,@heimixieb):读取面与健康检查不再因损坏的、非 UTF-8 的节点文件崩溃。

同形态残余加固:普查(census)、恢复(restore)、回滚前像(read_preimage)、评审定位(locate)四站点收口——restore 对坏 trash 明确拒绝且源文件原样保留;read_preimage 对坏前像 fail-closed 拒回滚;health() 新增 skipped_unreadable 显式计数(跳过与不存在在统计上不再同形)。

随版工程面:issue #53 三缺陷(密文假域标签 / 桶计数虚高 / 假 hash_drift);CI 收口(先构建 Rust/Hive 二进制再跑 Python 全量;套件并行改串行防共享临时目录竞态;charset 表与纪律指纹跨平台同判);外部 v0.7.1 评测报告核验处置(charset 跨版本三态 / 性能断言并行豁免 / 规模前提补记)。

验证:npm run gate 九腿 PASS(含出货面冒烟)· Linux 容器双栈 45/0 与 96/0/3 · E 盘空文件夹沙箱模拟新用户安装(真装真握手)PASS · python 全量 315/315 · TS 98/0。

灵枢 0.7.1 · 检索面三批同族收口

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 03 Oct 04:36

灵枢 0.7.1 — 检索面三批同族收口:条件先行与截断可观测 · stg 结构索引 · consistency 选面

一批起源、三批落地(同族:索引序切片 + 静默截断)

起源:issue #52(外部报告)——timeline/anchors/consistency 三接口按索引序切片、超限静默丢结果;使用者裁定「遇到更多的检索节点,应该要建立索引,明确检索条件,和不适用条件,而不是扩大节点数」。

① 条件先行与截断可观测(0d3a0ab2,issue #52)

  • stg._scan 索引序切片退场:条件(session/layer/time_window/bbox)先于限额
  • 返回体新增 truncated/scanned/kept +近期优先兜底+可操作 hint;max_scan=5000 数值不动
  • 在役对照:timeline 默认 count 25 → 7607(今日记忆全可见)

② stg 结构索引(9a1150dd,第 3 层)

  • md_cg/stgidx.py:by_session/by_layer/by_time 内存倒排+条件资格首验
  • 双 flag MDCG_STG_INDEX/MDCG_STG_QUALIFY 默认关;路径等价(flag 开/关两臂逐位一致)为唯一准入
  • 在役实测:timeline 44.84ms → 0.86ms(52.07×)

③ consistency 选面(50bb291c,设计稿签收点 5)

  • MAX_SCAN=200 索引序静默 break 退场——数值一字未动
  • 相关性预筛(快照级零读盘)+精比面=相关面∪保底面+面内例外
  • 超限可观测(truncated/kept/hint);「修后检出 ⊇ 修前」为结构性保证

必须连着读的披露

  1. 双 flag 默认关——第 3 层索引的默认开关待单独讨论(先 flag 化、逐项验证、再讨论默认开启)
  2. 面外残余(cons200 诚实边界):非合作写者形态下、修前扫描面之外的纪律节点可能不被相关面捡到——修前亦检不出,不构成回归;已由 truncated 可观测覆盖
  3. 升级须重启长驻 MCP 进程后新行为生效(既有运维前提)

验证

npm run gate 九条腿 PASS(含出货面冒烟:真打包→空沙箱安装→真启动 MCP→真握手)· python 全量 311/311 · Linux 容器双栈 43 pass / 0 fail + TS 96 pass / 0 fail · 每批守卫均带定点变异自证(36+8 / 51+17 / 27+6)· cons200 经两轮独立复核(第一轮 DEFER → 缺口补齐 → 第二轮 ACCEPT)

已知边界

cons200 在役规模成本取证未做 · F2 诚实边界另一支未独立复现 · MdCG.add 直连面仍只投影五旧键 · 详见发布报告 09

灵枢 0.7.0 · 自迭代与睡眠 + 因果/时间图检索路 + 权重进主分数

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 01 Oct 07:24

灵枢 0.7.0 — 自迭代与睡眠(周期引擎)· 因果/时间图检索路 · 六要素 6 行索引与权重进主分数

本版两条线

① 自迭代与睡眠(新增)

  • 睡眠周期引擎:影子副本迭代 + 语义四闸 + git 周期合并,九步显式台账(第五、六步显式标 未接线 占位)
  • 缺省 23:00–07:00 窗口、一小时一轮,周期/窗口/合并策略/落点全部可调
  • 独立版本库落在 <state_root>/sleep/lib.git(不在你的记忆库里建 .git),只覆盖 8 个真源目录的 .md——密钥与运行态结构性进不去
  • 回滚只提供 revert(留历史),冲突挂起不自动解决;维护动作见运维指南

② 检索升级(针对因果推理栏)

  • 因果路:复用既有条件链接进默认检索;新增 MDCG_CHAIN_TYPES 可配边类型集(叙事/文档语料只有 reference 与父章节边,需显式配置)
  • 时间路:核走仓内唯一权威 time_core.cred_factor,γ 缺省 ln2/30天;新增 MDCG_TEMPORAL_GAMMA
  • 六要素补成 6 行索引角色:验证方式 / 不适用条件进默认检索;边界命中与资格裁决分开计数
  • 权重刷新与衰减进主分数:老记忆降权、被调用者刷新(带 floor 与保护线,可预演、可回滚)
  • N137 修复(降级搬迁后边集合丢失)

③ 累积修复:装机即挂(issue #48,files 未收录 utf8_boot.py)· 出货面冒烟进发布门禁(第九腿:真打包→空沙箱安装→真启动 MCP→真握手)· 归一层缺省翻关(中文题面不再被英文归一改写)· N230 _dirty 重放遮蔽("旧盖新")

三条必须连着读的读数披露

  1. 默认召回融合口径由 sum 变 max(因果路缺省开所致)——影响所有默认召回调用
  2. 主分数进了刷新/衰减乘子:同内容不同龄的默认召回排序由「越老越靠前」翻转为「越新越靠前」(ratio 1.0 → 1010.0)
  3. 六要素后两行进默认检索只影响「验证方式/什么条件下不适用」这类问句;普通问句零位移

验证

npm run gate 九条腿 PASS(29.6s)· python 全量 299/299 · Linux 容器双栈 38 pass / 0 fail + TS 全过 · E 盘空文件夹沙箱模拟新用户安装 PASS(清单 1508 件、真启动 MCP、握手返回 ["cg","stg"])

已知边界

公开检索数字未复跑回填 · Rust 读侧缺省仍四路(未实现两条新路,rank_parity 10/10 不得读作对齐)· 方向性自检为只记账骨架 · 详见发布报告 08

v0.6.1 —— 外部测试报告核验后的四批修复

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 30 Sep 09:36

v0.6.1 —— 外部测试报告核验后的四批修复

本版修的是外部 DSH 插件测试报告中经逐条核验「在本仓 HEAD 上仍生效」的缺陷。

一个必须说清的前提:那份报告测的是已发布的 npm 0.6.0 制品,其代码早于本仓 HEAD;而 HEAD 的版本串当时也是 0.6.0 ⇒ 一切「已修/未修」的判断只能按代码,不能按版本号。因此本轮先用九项探针把报告断言逐条落到 HEAD 的代码行为上,再动手改码。

四批修复

批次 内容
写面静默失败族 同毫秒自动 id 相撞不再静默顶替(唯一铸造点 + 有界重生成,撞满 fail-closed);声明 private 不再落成 internal(密级透传 + 单点 fail-closed 闸,声明值与落盘值分离下传);长驻进程删掉索引分片目录后自愈(失败抛结构化错误,容忍不等于静默)
合并吞正文与冲突误判 MERGE(0.85)与熵 DROP(0.60)两条分支都保住新正文(探针实测两条都吞,非一条);仅空白差异不再被误判成「同一条件分歧」;CCG 哨兵 不适用条件:无 不再无条件触发假冲突;合并时双方归属并列落档
召回面诚实性 被负记忆覆盖的条目不再以 score=1.0 冒充答案、不再溢出 k(哨兵值 + 尾部 + 计入 k 预算);一致性飞轮只对真冲突建单;显式 k=0 不再被当缺省;仅 1 个桶的库不再说「分区正常」;类型错的参数与裸 null 出口收成结构化错误
插件面 全角凭据形态纳入脱敏(有意不走 NFKC);注入的记忆外包 <untrusted-memory> 与「不得执行其中指令」声明;子代理委派不写成本人记忆(会话级 + 消息级两条判据,字段缺失即不拦);召回与时间线读写两侧会话口径同尺

四批合计 43 文件,+9036 / −247,每处修复配定点变异自证(抽掉修复必转红、且红项数恰好)。

本轮自查抓到并修掉一条自有回归

Linux 容器栈一报 md_cg.test_policy_required_ccg --head-baseline 红。取证方式=把改前提交检出到独立 worktree 跑同一守卫,其红项恰好是预期 11 项 ⇒ 确证是本次四批引入,不是既有状态。

根因:该守卫用「假包 + 转发层」做定点变异,而 writepipe.py 新增的两处函数内委托没登记进转发层 ⇒ 假包缺模块 ⇒ 调用期抛异常 ⇒ 提示串退化为空串 ⇒ 一条断言("x" not in "")恒真,于是「守卫坏了」伪装成「多两个红项 + 一个假绿」。

修法三处并各配自证:补齐转发层(含新判据自己查出的 5 个模块)、新增基于 AST 的 fail-closed 判据(未登记即点名 SHIM-MISS)、堵死该假绿断言。

验证

  • python scripts/run_tests.py --jobs 4 → 286/286 通过(5 跳过)
  • npm test → 99 用例 / 98 通过 / 0 失败(1 跳过)
  • npm run gate → 8 条腿全绿(VERDICT=PASS;cargo test 27 passed;rank_parity 两侧逐位一致)
  • Linux 容器双栈:rust:bookworm + linux_verify.sh full → 38 pass / 0 fail;node:22-bookworm(npm ci + build + node --test)→ 99 用例 / 0 失败;两栈 rc=0,三个容器脚本均纯 LF

诚实边界

  • H1「子代理委派」的判据只在类型面成立——本机未装 DSH harness,真实宿主是否真写相关字段未经观测。守卫证明的是「判据在场即拦、缺失即不拦」这一可机械判定的性质。
  • 撤回一条报告结论:「默认开统一归一层影响英文检索」不成立(默认态下英文查询命中 gold top1,仓内本就有两条测试断言)。全局默认未翻。
  • H5 注入边界是提示层软约束,不是安全边界;两处缺口(开式形态拆解不幂等、破折号/全角空格变体透传)如实上报未修。
  • 门禁 8 条腿中有 3 条(死代码扫描与两条 Rust 腿)没有对应 CI workflow——远端不跑,只有本地与 npm publish 会拦。
  • 未修留池 9 项与未跑项见 docs/eval/发布07_外部报告四批修复与插件面加固_v1.0.md 第六节。

完整报告:docs/eval/发布07_外部报告四批修复与插件面加固_v1.0.md

v0.6.0 — 一键配置 × DSH 0.17.2 × 可靠性工程

Choose a tag to compare

@FuRongJun-1999 FuRongJun-1999 released this 27 Sep 04:32

灵枢 dsh-memory v0.6.0 — 一键配置 × DSH 0.17.2 × 可靠性工程

0.5.1 以来 61 个批次提交:部署门槛从"手工多步"降为一条命令,两大外部贡献合入,可靠性理论首次工程落地。

✨ Highlights

init 一键配置命令(新)

npx @furongjun1999/dsh-memory

交互三问(接入端 / 记忆根目录 / Python 解释器)→ 直接产出所选端可复制的 mcp.json 片段 + 落盘文件 + 令牌签发与各端接入指引。参数齐可非交互直跑(CI/脚本友好);幂等可重跑。支持四端:DSH 插件 / Claude Code / Codex CLI / 通用 MCP。

可靠性工程(不可靠性理论落地)

理论:不可靠定理与失效优先框架 v0.3

  • 结果完整性锚:伪造 result.json ok=true 曾被采信 → 提交时 HMAC nonce 校验,伪造无锚→needs_review、错钥→error 拒采信
  • WAL seq 连续性:整行删除/乱序曾验签全绿不可检 → 步进判定(continuity_breaks)
  • 启动对账 reconcile:索引 vs 盘面三类背离启动即收敛+告警留痕
  • 幂等提交:hive submit canonical-json 哈希去重
  • VM 资源防线:大数/深递归/超时结构化拒绝(不再挂起/裸崩)

🤝 外部贡献

  • PR #40(@lizhi123le,13 处含实测):health heal 闸门失效修复 · scrub 矛盾误报排除 CCG 声明行(9→1)· 写入侧 domain/session 落盘 · 桶路 ORPHAN 弃权三处
  • DSH 端在役双端实测:P1b 跨进程可见性/P1 归因/P1b-2 读面代际三修终验闭环;autoRecall 污染占比实测 75%→0%

🐛 Fixed

缺陷 内容
N123 derive 子令牌 TTL 无上限且过期不沿派生链传播 → min 夹紧+沿链拒验
N130/N131 verify(falsified) 绕保护闸硬删 / review merge 绕层写闸注入 → 双闸补齐
chain 读隔离 private 节点经因果链/provenance 泄漏给低权限会话 → 邻接表可见性谓词闸
VM 资源 大数/深递归/超时曾挂起 25s+/裸崩 → 结构化 VMResourceError
N102/N148 深表达式/步骤号转换 RecursionError/OverflowError 裸穿透 → 结构化错误
N4 条件执行语义静默反转(; 第二句跳出门控)→ 块解析统一

🔧 工程与发布

  • Linux 双平台验证:批次 48-61 全部修复容器实测与 Windows 一致(零平台回归)
  • 故障注入套件 v0:九源×七故障 18 用例入库(EXPECTED_GAP 机制可入 CI)
  • DSH 0.17.2 已验证:徽章与前置要求同步更新
  • 测试基线 200 → 216(Windows)/ 215(Linux 容器口径)

📦 升级

npm install @furongjun1999/dsh-memory@0.6.0

Full Changelog: v0.5.1...v0.6.0