From 86a8689bdd3cea05a330ecf34133db8d1f74b4e9 Mon Sep 17 00:00:00 2001 From: modusensus Date: Thu, 1 Oct 2026 05:43:15 +0000 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20v0.8.12=20=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E5=87=86=E5=A4=87=EF=BC=88=E7=89=88=E6=9C=AC=E5=8F=B7=20+=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=BE=BD=E7=AB=A0=20+=20CHANGELOG/=E8=B7=AF?= =?UTF-8?q?=E7=BA=BF=E5=9B=BE=E5=8D=A0=E4=BD=8D=E8=A1=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 请在 CHANGELOG 与两个 README 的占位行补描述后再合并。 --- README.md | 6 +++--- dsh-mneme/CHANGELOG.md | 6 ++++++ dsh-mneme/README.md | 6 +++--- dsh-mneme/package-lock.json | 4 ++-- dsh-mneme/package.json | 2 +- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 45e53e7..d2c1485 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ license CI node - tests + tests coverage Awesome

@@ -183,7 +183,7 @@ dsh web ```bash cd dsh-mneme && npm install -npm test # 1450 个测试 +npm test # 1479 个测试 npm run stress # 三轴线压测 npm run sync # src → lib 同步 ``` @@ -366,7 +366,7 @@ The plugin ships a zero-dependency stdio MCP server (standalone npm package **`m ```bash cd dsh-mneme && npm install -npm test # 1450 tests +npm test # 1479 tests npm run stress # three-axis stress test npm run sync # src → lib sync ``` diff --git a/dsh-mneme/CHANGELOG.md b/dsh-mneme/CHANGELOG.md index d51d4a7..216ef1a 100644 --- a/dsh-mneme/CHANGELOG.md +++ b/dsh-mneme/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.8.12] - 2026-10-01 + +## 🐛 修复 + +- (待填) + ## [Unreleased] ## 🐛 修复 diff --git a/dsh-mneme/README.md b/dsh-mneme/README.md index b09acc3..042fe83 100644 --- a/dsh-mneme/README.md +++ b/dsh-mneme/README.md @@ -5,7 +5,7 @@ [![npm version](https://img.shields.io/npm/v/@modusensus/dsh-mneme?color=blue&label=npm)](https://www.npmjs.com/package/@modusensus/dsh-mneme) [![license](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![Awesome](https://awesome-dsh-plugin.com/badge.svg)](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) -[![tests](https://img.shields.io/badge/tests-1450%20passed-success)](https://github.com/slow-stack/mneme) +[![tests](https://img.shields.io/badge/tests-1479%20passed-success)](https://github.com/slow-stack/mneme) [![CI](https://img.shields.io/github/actions/workflow/status/slow-stack/mneme/ci.yml)](https://github.com/slow-stack/mneme/actions) [![node](https://img.shields.io/badge/node-22%2B-blue)](https://nodejs.org) [![npm downloads](https://img.shields.io/npm/d18m/@modusensus/dsh-mneme.svg?color=blue&label=downloads)](https://www.npmjs.com/package/@modusensus/dsh-mneme) @@ -584,7 +584,7 @@ src/ ├── api.js # HTTP 路由(Web 面板数据通道,含 /conflicts 冲突队列) └── index.js # 插件接线 lib/ # src 的同步分发产物(npm run sync;发布前由 root prepack 的 check-sync.js 校验一致性;唯一手写例外 lib/client.js——Web 面板 bundle,sync 不覆盖) -test/ # 1450 个 node:test 测试(审计与三轴线压测不变量;src↔lib 一致性由 scripts/check-sync.js 发布闸门校验) +test/ # 1479 个 node:test 测试(审计与三轴线压测不变量;src↔lib 一致性由 scripts/check-sync.js 发布闸门校验) scripts/ # e2e-dsh.js 端到端演示 · stress-dsh.js 三轴线压测 · sync-lib.js 同步 · check-sync.js 发布闸门 · benchmark-recall.js / benchmark-embed.js / benchmark-rerank.js 基准 · sync-test-badge.mjs 测试徽章 · build-runtime-manifest.mjs 运行时清单 ``` @@ -593,7 +593,7 @@ scripts/ # e2e-dsh.js 端到端演示 · stress-dsh.js 三轴线压 ```bash cd dsh-mneme npm install # 安装 peer 依赖(以 devDependencies 形式,用于本地测试) -npm test # 运行 1450 个测试 +npm test # 运行 1479 个测试 npm run stress # 三轴线压测:长会话检索 / 冲突仲裁 / 多 Agent 并发(离线 mock LLM) npm run sync # 把 src/ 同步到 lib/(发布时由 prepack 钩子自动执行) ``` diff --git a/dsh-mneme/package-lock.json b/dsh-mneme/package-lock.json index 3c1ca35..004cfc7 100644 --- a/dsh-mneme/package-lock.json +++ b/dsh-mneme/package-lock.json @@ -1,12 +1,12 @@ { "name": "@modusensus/dsh-mneme", - "version": "0.8.11", + "version": "0.8.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@modusensus/dsh-mneme", - "version": "0.8.11", + "version": "0.8.12", "license": "MIT", "dependencies": { "morphicons": "^1.7.1" diff --git a/dsh-mneme/package.json b/dsh-mneme/package.json index b535cb3..3f10237 100644 --- a/dsh-mneme/package.json +++ b/dsh-mneme/package.json @@ -1,7 +1,7 @@ { "name": "@modusensus/dsh-mneme", "description": "Cross-session memory plugin for DeepSeek Harness with autoDream consolidation: SQLite store, Markdown mirrors, 9 model tools, automatic injection, session summarization, user profile/rules, custom slash commands, vector (semantic) search, and a Web GUI panel", - "version": "0.8.11", + "version": "0.8.12", "license": "MIT", "repository": { "type": "git", From 96ac97bd1c882fa611a2f2838805d8091d0745d8 Mon Sep 17 00:00:00 2001 From: modusensus Date: Thu, 1 Oct 2026 13:46:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(changelog):=20v0.8.12=20=E5=8F=91?= =?UTF-8?q?=E7=89=88=E8=8A=82=E6=89=BF=E6=8E=A5=E6=9C=AC=E8=BD=AE=209=20?= =?UTF-8?q?=E4=B8=AA=20PR=E2=80=94=E2=80=94#341=E2=80=93#347=20=E5=9B=BE?= =?UTF-8?q?=E8=B0=B1=E5=9B=9B=E5=9D=97=20+=20#344=20=E5=AE=BF=E4=B8=BB=200?= =?UTF-8?q?.2=20=E4=BE=9D=E8=B5=96=E5=AF=B9=E9=BD=90=20/=20#345=20CVE=20?= =?UTF-8?q?=E6=B8=85=E9=9B=B6=20/=20#346=20=E6=B5=8B=E8=AF=95=E6=95=B0?= =?UTF-8?q?=E5=8F=A3=E5=BE=84=20/=20#348=20CI=20=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E8=85=BF=20/=20#349=20=E5=B7=A9=E5=9B=BA=E9=98=88=E5=80=BC?= =?UTF-8?q?=E5=9F=BA=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dsh-mneme/CHANGELOG.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/dsh-mneme/CHANGELOG.md b/dsh-mneme/CHANGELOG.md index 216ef1a..b84476e 100644 --- a/dsh-mneme/CHANGELOG.md +++ b/dsh-mneme/CHANGELOG.md @@ -4,12 +4,6 @@ ## 🐛 修复 -- (待填) - -## [Unreleased] - -## 🐛 修复 - - **巩固阈值基线跨重启持久化(issue #89 基线半边)**:#291 只把时间闸门 `lastRunAt` 从 `dream_runs` 恢复了回来,阈值基线 `baseline{count,chars}` 仍是调度器闭包里的内存变量,进程重启归零。库里记忆远多于阈值(默认 10 条 / 5000 字符)时,重启后第一条写入(`notifyWrite` → `dreamHook` → `maybeSchedule`,更新类写入同样计入)就让 `overBase` 成立——**阈值被整个绕过**,直接开跑一整轮巩固。0.8.11 实测一天四次重启,其后第一轮巩固发生时窗口内只新增 6 / 7 / 0 / 8 条记忆(1427 / 1488 / 0 / 1509 字符),每轮约 16 万 tokens(consolidate ≈7.5 万 + 总览 ≈8.8 万,`llm_audit_logs` 实测)。现在成功轮把「本轮结束后的活跃库规模」写进 `dream_runs.store_count` / `store_chars`(新增两列,幂等迁移,两列同时有值或同时为 NULL),调度器构造时按 `run_type='auto'` 播种;认不出行(新库、升级后还没跑过成功轮、老行两列为 NULL)就退回零基线——**不假装知道基线**,行为与升级前逐字节一致。阈值口径抽成 `activeStoreSize()` 单一实现,`shouldTrigger` 与落库共用:两处各写一份过滤条件的话,重启播种读到的基线会与运行期判定漂移(一个把 document 算进去、一个不算),而这种漂移只在重启后才显形。run 自报的基线与审计行是同一份数字,进程内刷新改用它,两条路径不再各算一次。 ## 🆕 新增 @@ -24,6 +18,11 @@ - **基线持久化回归集 9 条,全量测试 1441 → 1450**:无种子对照组与播种组同库同写入(一个仍触发、一个被拦下——锁的正是这个差异,否则播种被忽略时两条断言同真同假)、阈值照常累积(+10 条仍触发)、run 自报基线优先于现场计算(运行后再长 15 条仍不触发)、成功轮落库 / 失败轮不落、sleep 行不进 auto 基线、半个基线被拒、老库补列幂等、非法种子(半个 / 负数 / 非整数 / 非对象)一律按「没有基线」处理、收尾取证失败既不反噬审计行也不写假基线、`index.js` 接线源码锁。**变异检验**:把播种改成忽略种子(`toBaseline(baselineSeed)` 恒为空)→ 2 条变红;把「成功轮落基线」分支短路 → 1 条变红。 +- **宿主开发依赖对齐 0.2 线(PR #344)**:`peerDependencies` 自 #121 起就声明覆盖 0.2.x,`devDependencies` 却停在 `^0.1.0-rc.6`(0.x 语义 = `>=0.1.0-rc.6 <0.2.0`,永远装不到 0.2 线)——**声明支持 0.2、CI 却从没跑过 0.2**,而桌面端 DSH NEXT 内置内核已是 0.2.0-rc.1。开发依赖对齐 0.2.0-rc.1,lockfile 与 CI 真落在声明覆盖的版本上。 +- **brace-expansion 钉到 5.0.12(PR #345,CVE-2026-102276/102277/102278)**:osv-scanner 三条告警(两条 high 栈耗尽 DoS + 一条 medium 二次时间 DoS)全落在 devDependency 链的同一包上——实际打不着(不被仓库自身 import),但 lock 合规仍要清;overrides 抬 pin 号即清零,`npm audit` 双口径 0 vulnerabilities。 +- **测试数口径收拢到共用模块(PR #346)**:双 README 的测试数以五种形状重复(1 徽章 + 4 条命令注释),而两条写入路径各存一份替换规则——release-prep 只覆盖徽章 URL、`badge:sync` 才覆盖全部,**自动路径反倒成了漂移来源**(v0.8.11 发版后徽章 1437、注释停在 1431);替换规则收进共用模块,两条路径单一实现,下次发版不再各改一半。 +- **CI 加宿主版本兼容腿(PR #348)**:新增 `test-host-legacy` 作业,把 `peerDependencies` 声明的 0.1.x 两段(0.1.0-rc.8 / 0.1.7-rc.2)各真跑一遍全量测试——此前这两段一直「声明支持却没人验证」,与 #344 是同一类缺口的两侧。 + ## [0.8.11] - 2026-09-30 ## 🐛 修复