dsh-prime-memory 0.16.2 → 0.17.0-dsh0.1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.en.md CHANGED
@@ -7,6 +7,21 @@
7
7
 
8
8
  This file covers the **0.12.0** release notes and the current **unreleased** changes in English. For the full history, see [CHANGELOG.md](./CHANGELOG.md) (Chinese).
9
9
 
10
+ ## [0.17.0-dsh0.1.7.1] — 2026-09-25
11
+
12
+ > First release of the **host 0.1.7** compatibility line (dist-tag `dsh-0.1.7`, based on main @ 85d9b05). **Requires host ≥0.1.7-rc.1**; hosts 0.1.5 / 0.1.6 should stay on the `dsh-0.1.5` tag. Contains everything from main plus the adaptation below.
13
+
14
+ ### Changed
15
+
16
+ - **Runtime toggles moved into a Config volatile section (0.1.7 declarative settings).** Host 0.1.7 removed both generations of imperative registration APIs (`settings.register` / `installSection`). The runtime toggles (master/capture/distill/recall, distill route chains, remote-embedding overrides, write-delete gate — 20 keys) are now carried by a whole-section `.volatile()` on `memorySchema.live`: the host projects volatile fields into a settings form automatically, and runtime changes flow through `ctx.settings.update` → configEditor → profile patch → loader volatile-only commit (no plugin remount). The `LiveSettingsHandle` contract is unchanged; RPC and all consumers untouched. The plugin ships its own custom settings page, so the host's auto-generated form page is suppressed (`suppressAutoSettingsForm`).
17
+ - **⚠️ Old setting values do not migrate automatically**: the legacy `dsh-memory` section in `settings.yaml` holds flat top-level keys that do not match the new `live.*` paths (and its boolean `conflictFreeze` collides with the same-named object section in the new Config), so the host importer rejects the whole section. After upgrading, hand-write the old values into the profile patch as `- id: dsh-memory / config: { live: {…} }` (key names are identical to the old namespace, just one `live.` level deeper).
18
+ - devDeps bumped to the 0.1.7 stack (cordis 4.0.4 / schemastery 3.18.4 / cordis-plugin-loader 1.0.5); not shipped to consumers.
19
+
20
+ ### Fixed
21
+
22
+ - **Silent first-write loss regression**: lock files are created before the write; when the target's parent directory did not exist yet, `open('wx')` failed with ENOENT and stores swallowed it as a warn. `rmwJson` now `ensureDir`s before acquiring the lock (included from the main line).
23
+ - Also includes everything from the main line: file-layer hardening (atomic writes / read-side classification / version fail-closed / file locking / path safety — see [Unreleased] entries).
24
+
10
25
  ## [Unreleased]
11
26
 
12
27
  ### Added
package/CHANGELOG.md CHANGED
@@ -56,6 +56,22 @@
56
56
  - **`dsh-memory/embedding-reindex` 声明了却恒返 404。** 端点写在契约里,但既缺席 `MEMORY_ENDPOINTS` 白名单、也没有分发 `case`;同时 `startReindex()` 是**死代码**,设置页「向量索引」区块因此只有"取消"没有"开始"。补白名单 + `case` + 用例。
57
57
  - **`UiRecord.sourceMessageIds` 是死字段。** 它读的是 `l1_records` **从不存在的列**,永远回退 `[]`,于是记录面板的来源行**从未渲染过**。已替换为读真实数据的 `sourceAnchors`。
58
58
 
59
+ ## [0.17.0-dsh0.1.7.1] — 2026-09-25
60
+
61
+ > 宿主 **0.1.7** 兼容线首发(dist-tag `dsh-0.1.7`,基于 main @ 85d9b05)。**仅适用于宿主 ≥0.1.7-rc.1**;
62
+ > 0.1.5 / 0.1.6 宿主请继续使用 `dsh-0.1.5` tag 的版本线。内容 = main 全量 + 以下适配。
63
+
64
+ ### 变更
65
+
66
+ - **运行时开关迁入 Config volatile 节(0.1.7 声明式设置面)。** 宿主 0.1.7 删除了 `settings.register` / `installSection` 两代命令式注册 API,运行时开关(总/捕获/蒸馏/召回、蒸馏路由链、远程嵌入覆盖、写删门等 20 键)改为 `memorySchema.live` 整节 `.volatile()` 承载:宿主把 volatile 字段自动投影成设置表单,运行时变更经 `ctx.settings.update` → configEditor 落 profile patch → loader volatile-only 提交(不 remount 插件)。`LiveSettingsHandle` 契约不变,RPC 与消费方零改动。**自带自定义设置页 → 已关掉宿主自动表单页**(`suppressAutoSettingsForm`)。
67
+ - **⚠️ 旧设置值不自动迁移**:旧 `settings.yaml` 的 `dsh-memory` section 是顶层扁平键,与新 `live.*` 路径不匹配(且 `conflictFreeze` 布尔与新 Config 同名对象节冲突),宿主导入器会整段拒收——升级后请把旧值手工写进 profile patch 的 `- id: dsh-memory / config: { live: {…} }`(键名与旧 namespace 完全一致,仅多一层 `live.` 前缀)。
68
+ - devDeps 升 0.1.7 系(cordis 4.0.4 / schemastery 3.18.4 / cordis-plugin-loader 1.0.5),不随包发布。
69
+
70
+ ### 修复
71
+
72
+ - **首写静默丢失回归**:锁文件先于写入创建,目标父目录未建时 `open('wx')` ENOENT 被各 store `persist()` 吞成 warn → 首写静默丢失。`rmwJson` 拿锁前 `ensureDir`(随 main 线修复一并包含)。
73
+ - 另含 main 线全部内容:文件层工程加固(原子写/读侧分类/版本 fail-closed/文件锁/路径安全,详见 [0.16.1] 与 Unreleased 各条)。
74
+
59
75
  ## [0.16.1] — 2026-09-24
60
76
 
61
77
  ### 新增