dsh-memoir 0.9.3 → 0.9.4
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/README.en.md +20 -14
- package/README.md +20 -14
- package/SESSION_RECOVERY.md +2 -2
- package/lib/client.js +6 -6
- package/lib/client.js.map +1 -1
- package/package.json +22 -22
- package/scripts/repair-session-receipts.mjs +3 -2
package/README.en.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-memoir
|
|
2
2
|
|
|
3
|
-
> **0.9.
|
|
3
|
+
> **0.9.4** moves the development and verification SDK baseline to official npm DSH `0.2.1-rc.5`, retaining `0.2.0-rc.1 / rc.2` and `0.2.1-alpha.1 / alpha.2 / rc.2` support; the #14 recovery CLI allowlist is extended to rc.3 / rc.4 / rc.5 after a byte-for-byte audit. All 0.9.3 fixes (#16 store protection, #17 template-literal protection) are retained. Upgrade and reload the plugin without deleting snapshots or rewriting original memories; #14's affected historical logs still need separate recovery.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/dsh-memoir)
|
|
6
6
|
[](https://www.npmjs.com/package/dsh-memoir)
|
|
@@ -18,23 +18,29 @@ No embeddings, vector database, or cloud memory service. The npm package has zer
|
|
|
18
18
|
> #17's prompt output protection does not repair arbitrary old logs. Recovery CLI support is limited to the reviewed backends and formats listed in the recovery guide; upgrading DSH alone does not repair affected logs either.
|
|
19
19
|
|
|
20
20
|
> [!IMPORTANT]
|
|
21
|
-
> **0.9.
|
|
21
|
+
> **0.9.4 requires DSH `>=0.2.0-rc.1 <0.3.0-0 || >=0.2.1-alpha.1 <0.2.1`**, with development SDKs pinned to `0.2.1-rc.5`; it retains the official `0.2.0-rc.1 / rc.2` and `0.2.1-alpha.1 / alpha.2 / rc.2` compatibility lines, and the rc.3 / rc.4 / rc.5 backend lib is byte-for-byte identical to rc.2. The version range does not mean every included version has been verified; `0.2.2` prereleases have not passed the gates and stay outside the range (see the highlights). Retains the visible guide, native settings, four agent languages, separate distillation turns and frozen snapshots. **The DSH 0.1.7 line is Memoir `0.8.2`, but it remains affected by #14; upgrade the host before installing the fixes in 0.9.4.**
|
|
22
22
|
>
|
|
23
23
|
> `dsh-memoir@0.7.1` fixes lost session snapshots after restart or RAM eviction (#10), supporting DSH **0.1.5-rc.1 / rc.2**. It requires `>=0.1.5-rc.1 <0.1.6-0`; check your host first. Keep `0.6.2` on DSH 0.1.2, or `0.5.6` on DSH 0.1.1-rc.2; those older lines do not include this fix.
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
npm install --global @deepseek-ai/dsh@0.2.1-rc.
|
|
27
|
-
dsh plugin --profile web add dsh-memoir@0.9.
|
|
26
|
+
npm install --global @deepseek-ai/dsh@0.2.1-rc.5
|
|
27
|
+
dsh plugin --profile web add dsh-memoir@0.9.4
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
After upgrading, reload the plugin or restart `dsh web`. #17's protection takes effect on subsequent prompt assembly; no manual deletion of old snapshots is needed. Updating or removing the plugin does not automatically delete memories.
|
|
31
31
|
|
|
32
|
-
## 0.9.
|
|
32
|
+
## 0.9.4 highlights
|
|
33
|
+
|
|
34
|
+
- **DSH rc.5 baseline:** development and verification SDKs are uniformly pinned to `0.2.1-rc.5`. The `session-persistence-jsonl` lib is byte-for-byte identical across rc.2 → rc.3 → rc.4 → rc.5 (audited 2026-11-01) and the full regression suite passes on the rc.5 baseline; host/peer ranges are unchanged, and a stable 0.2.2 will be covered by the first clause automatically.
|
|
35
|
+
- **Recovery CLI extended to rc.3 / rc.4 / rc.5:** the allowlist grows from five to eight official SDK versions with unchanged safety boundaries: audit first, stop every host and back up independently, then apply with `--apply --host-stopped`.
|
|
36
|
+
- **Compatibility-baseline regressions:** new tests prevent three drift classes — the JSONL devDependency must stay inside the recovery allowlist, the engines/peer ranges must admit the compile baseline, and both recovery documents must list every allowlisted version; the repair help test now parses the allowlist from the script.
|
|
37
|
+
- **CI SDK compat matrix:** a new compat job runs the pinned rc.5 baseline as a hard gate and `0.2.2-alpha.2` as an advisory signal; `scripts/compat-swap.mjs` switches baselines locally and in CI.
|
|
38
|
+
- **0.2.2 prerelease reconnaissance (not admitted):** `0.2.2-alpha.2` requires Node `>=24.9.0` (dropping Node 22) and changes public contracts such as a two-argument `ProjectionDefinition` and the `PromptAssembly` split; engine ranges stay unchanged until the gates pass.
|
|
33
39
|
|
|
34
40
|
- **Store protection ([#16](https://github.com/Qinling-Melon-Farmers/dsh-memoir/issues/16)):** future store formats, read errors and failed backups of corrupt files fail closed, refusing further loading or overwriting. A fresh store is allowed only after the damaged original has been preserved. Windows rename failures caused by temporary file contention receive bounded retries and still surface as errors when retries are exhausted.
|
|
35
41
|
- **Hot Memory budgets (#16):** skip candidates that exceed the remaining hard budget and continue looking for smaller entries. If the first entry is oversized, shorten its content and, if necessary, its title against the complete rendered block. Skip it if even the minimum block cannot fit; long titles cannot bypass `hotMemoryMaxTokens`.
|
|
36
42
|
- **Template literals ([#17](https://github.com/Qinling-Melon-Farmers/dsh-memoir/issues/17)):** set the official `PromptSection` option `interpolate: false` to disable variable interpolation for the memory section. Literals such as `{{...}}` enter the system prompt verbatim, preventing evaluation or assembly failures. New memories, cached old snapshots and restored disk snapshots all retain their original output; braces, original memory JSON, `PROJECT_MEMORY.md` and disk snapshots stay unchanged. Thanks to [mikemikimike](https://github.com/mikemikimike) for the report, output-boundary analysis and old-snapshot approach in [PR #18](https://github.com/Qinling-Melon-Farmers/dsh-memoir/pull/18), which helped locate the problem.
|
|
37
|
-
- **
|
|
43
|
+
- **All 0.9.3 fixes are retained:** see [CHANGELOG.md](./CHANGELOG.md) for #16 store protection, Hot Memory budget boundaries and #17 template-literal protection. Project memory remains anchored to the original session project when the execution directory changes. See the [recovery guide](./SESSION_RECOVERY.md#english) for the eight supported official SDK versions and safety boundaries. Runtime compatibility does not imply recovery of arbitrary historical logs.
|
|
38
44
|
|
|
39
45
|
## Why dsh-memoir
|
|
40
46
|
|
|
@@ -194,28 +200,28 @@ Choose German agent-facing copy independently of the English GUI; settings and m
|
|
|
194
200
|
|
|
195
201
|
| Channel | DSH baseline | Installation | Status |
|
|
196
202
|
| --- | --- | --- | --- |
|
|
197
|
-
| pinned npm `0.9.
|
|
203
|
+
| pinned npm `0.9.4` | `>=0.2.0-rc.1 <0.3.0-0 \|\| >=0.2.1-alpha.1 <0.2.1` | `dsh plugin --profile web add dsh-memoir@0.9.4` | SDK 0.2.1-rc.5; compatible with 0.2.0-rc.1 / rc.2 and 0.2.1-alpha.1 / alpha.2 / rc.2 / rc.3 / rc.4 / rc.5 |
|
|
198
204
|
| pinned npm `0.8.2` | `>=0.1.7-rc.1 <0.1.8-0` | `dsh plugin --profile web add dsh-memoir@0.8.2` | Legacy 0.1.7 line; still affected by #14 |
|
|
199
205
|
| pinned npm `0.7.1` | `>=0.1.5-rc.1 <0.1.6-0` | `dsh plugin --profile web add dsh-memoir@0.7.1` | Legacy 0.1.5 line |
|
|
200
206
|
| pinned npm `0.6.2` | `>=0.1.2-alpha.2 <0.1.3` | `dsh plugin --profile web add dsh-memoir@0.6.2` | Legacy 0.1.2 line |
|
|
201
207
|
| pinned npm `0.5.6` | `0.1.1-rc.2` | `dsh plugin --profile web add dsh-memoir@0.5.6` | rc2 compatibility line |
|
|
202
|
-
| Source `v0.9.
|
|
208
|
+
| Source `v0.9.4` | `>=0.2.0-rc.1 <0.3.0-0 \|\| >=0.2.1-alpha.1 <0.2.1` | local build + `link:` | SDK 0.2.1-rc.5; development, not compatible with legacy 0.1.x |
|
|
203
209
|
|
|
204
|
-
Development SDKs are uniformly pinned to `0.2.1-rc.
|
|
210
|
+
Development SDKs are uniformly pinned to `0.2.1-rc.5`. Host compatibility in this table is separate from #14 recovery CLI restrictions on backends, file formats and log generations; see [SESSION_RECOVERY.md](./SESSION_RECOVERY.md#english) for recovery scope.
|
|
205
211
|
|
|
206
212
|
Node.js `^22.19.0 || >=24.0.0` is required. 0.7.1 keeps the native `conversation.view` / `settings.section` slots and `snapshotEvents()`. DSH 0.1.5 uses Session log V3, independent of Memoir store v4 / settings v3. Back up DSH_HOME before upgrading DSH; migrated sessions are not guaranteed readable by older hosts. This Memoir release neither migrates nor resets memory and retains frozen session snapshots without enabling new dynamic-prompt behavior.
|
|
207
213
|
|
|
208
214
|
<details>
|
|
209
215
|
<summary>Install from source</summary>
|
|
210
216
|
|
|
211
|
-
0.9.
|
|
217
|
+
0.9.4 source (development SDKs / example host: DSH 0.2.1-rc.5):
|
|
212
218
|
|
|
213
219
|
```bash
|
|
214
|
-
git clone --branch v0.9.
|
|
220
|
+
git clone --branch v0.9.4 https://github.com/Qinling-Melon-Farmers/dsh-memoir.git
|
|
215
221
|
cd dsh-memoir
|
|
216
222
|
pnpm install --frozen-lockfile
|
|
217
223
|
pnpm run build
|
|
218
|
-
npm install --global @deepseek-ai/dsh@0.2.1-rc.
|
|
224
|
+
npm install --global @deepseek-ai/dsh@0.2.1-rc.5
|
|
219
225
|
dsh plugin --profile web add "link:/absolute/path/dsh-memoir"
|
|
220
226
|
```
|
|
221
227
|
|
|
@@ -240,7 +246,7 @@ dsh plugin --profile web add "link:/absolute/path/dsh-memoir"
|
|
|
240
246
|
|
|
241
247
|
## Offline release highlights
|
|
242
248
|
|
|
243
|
-
The first Memory Conversation opening shows the 0.9.
|
|
249
|
+
The first Memory Conversation opening shows the 0.9.4 highlights without blocking chat: the DSH 0.2.1-rc.5 baseline, the recovery CLI extended to rc.3 / rc.4 / rc.5, and the new compatibility-baseline regressions. It explains that formats are unchanged with no migration needed while #14's affected logs still need separate recovery. Choose “Got it” to stop automatic display for this version in the same browser origin. Reopen anytime from “About & help → View release highlights”. Settings and sidebar panels never open the notice automatically. The image below is explicitly retained as a historical 0.9.0 preview.
|
|
244
250
|
|
|
245
251
|
The Chinese/English notice is offline: no network requests, uploads, memory changes or conversation edits. Only the acknowledged version is stored locally by the UI. If storage is unavailable, acknowledgment lasts for the current page; Web/Desktop and different origins are not guaranteed to share it.
|
|
246
252
|
|
|
@@ -326,6 +332,6 @@ pnpm test
|
|
|
326
332
|
npm run bench
|
|
327
333
|
```
|
|
328
334
|
|
|
329
|
-
Read [CONTRIBUTING.md](./CONTRIBUTING.md) before submitting changes. See [CHANGELOG.md](./CHANGELOG.md) for 0.9.
|
|
335
|
+
Read [CONTRIBUTING.md](./CONTRIBUTING.md) before submitting changes. See [CHANGELOG.md](./CHANGELOG.md) for 0.9.4 changes; the development SDK baseline is DSH 0.2.1-rc.5. See the compatibility table above for older lines and risks. Formal packages are published by the tag workflow through npm OIDC; consult [Releases](https://github.com/Qinling-Melon-Farmers/dsh-memoir/releases) and npm for publication status.
|
|
330
336
|
|
|
331
337
|
Apache-2.0
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-memoir
|
|
2
2
|
|
|
3
|
-
> **0.9.
|
|
3
|
+
> **0.9.4**:开发与验证 SDK 基线升级到官方 npm DSH `0.2.1-rc.5`,保留 `0.2.0-rc.1 / rc.2` 与 `0.2.1-alpha.1 / alpha.2 / rc.2` 支持;#14 恢复 CLI 白名单经零差异审计扩展至 rc.3 / rc.4 / rc.5。0.9.3 的存储保护(#16)与模板字面量防护(#17)全部保留;升级并重新加载插件即可,无需删除快照或改写原始记忆;#14 的旧日志故障仍须单独恢复。
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/dsh-memoir)
|
|
6
6
|
[](https://www.npmjs.com/package/dsh-memoir)
|
|
@@ -17,23 +17,29 @@
|
|
|
17
17
|
> #17 的 prompt 输出防护不修复任意旧日志。恢复 CLI 的后端与格式支持须以恢复说明列出的已审计范围为准;仅升级 DSH 也不会修复已有异常日志。
|
|
18
18
|
|
|
19
19
|
> [!IMPORTANT]
|
|
20
|
-
> **0.9.
|
|
20
|
+
> **0.9.4 要求 DSH `>=0.2.0-rc.1 <0.3.0-0 || >=0.2.1-alpha.1 <0.2.1`**,开发 SDK 基线为 `0.2.1-rc.5`;保留官方 `0.2.0-rc.1 / rc.2` 与 `0.2.1-alpha.1 / alpha.2 / rc.2` 兼容线,rc.3 / rc.4 / rc.5 的后端库与 rc.2 逐字节一致。版本范围不代表其中所有版本均已验证;`0.2.2` 预发布尚未通过门禁、不在放行范围(见更新摘要)。保留首屏导引、原生设置、四种 Agent 语言、独立蒸馏回合与冻结快照。**DSH 0.1.7 兼容线为 `0.8.2`,但仍受 #14 影响;使用本版修复须先升级宿主,再安装 0.9.4。**
|
|
21
21
|
>
|
|
22
22
|
> `dsh-memoir@0.7.1` 修复重启和内存淘汰后旧会话快照丢失(#10),支持 DSH **0.1.5-rc.1 / rc.2**。要求 `>=0.1.5-rc.1 <0.1.6-0`;请先核对宿主版本。旧 DSH 0.1.2 用户固定使用 `0.6.2`,0.1.1-rc.2 用户固定使用 `0.5.6`;这些旧版未包含本次修复。
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
npm install --global @deepseek-ai/dsh@0.2.1-rc.
|
|
26
|
-
dsh plugin --profile web add dsh-memoir@0.9.
|
|
25
|
+
npm install --global @deepseek-ai/dsh@0.2.1-rc.5
|
|
26
|
+
dsh plugin --profile web add dsh-memoir@0.9.4
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
升级后重新加载插件,或重启 `dsh web`。#17 防护会在后续 prompt 组装时生效;无需手工删除旧快照。记忆不会随插件升级或卸载自动删除。
|
|
30
30
|
|
|
31
|
-
## 0.9.
|
|
31
|
+
## 0.9.4 更新摘要
|
|
32
|
+
|
|
33
|
+
- **DSH rc.5 基线**:开发与验证 SDK 统一固定到 `0.2.1-rc.5`。`session-persistence-jsonl` 的库代码在 rc.2 → rc.3 → rc.4 → rc.5 之间逐字节一致(2026-11-01 审计),全量回归在 rc.5 基线通过;宿主/peer 范围保持不变,0.2.2 稳定版发布时将自动被第一条款覆盖。
|
|
34
|
+
- **恢复 CLI 扩展至 rc.3 / rc.4 / rc.5**:白名单从五个官方 SDK 版本扩展到八个,安全边界不变:先只读检查,全部宿主退出并独立备份后,再显式 `--apply --host-stopped`。
|
|
35
|
+
- **兼容基线一致性回归**:新增测试防住三类脱节——JSONL devDependency 必须在恢复白名单内、engines/peer 范围必须放行编译基线、双语恢复文档必须列全白名单版本;恢复 CLI 帮助文本测试改为从脚本动态解析。
|
|
36
|
+
- **CI SDK 兼容矩阵**:新增 compat job,基线 rc.5 为硬门禁,`0.2.2-alpha.2` 为 advisory 预警;新增 `scripts/compat-swap.mjs` 基线切换脚本。
|
|
37
|
+
- **0.2.2 预发布预检(未放行)**:`0.2.2-alpha.2` 要求 Node `>=24.9.0`(移除 Node 22),`ProjectionDefinition` 需要两个类型参数、`PromptAssembly` 拆分等属于公开契约变化;未通过门禁前不扩大 engine 范围。
|
|
32
38
|
|
|
33
39
|
- **存储保护([#16](https://github.com/Qinling-Melon-Farmers/dsh-memoir/issues/16))**:遇到未来 store 格式、读取错误或损坏文件备份失败时,报错并拒绝继续加载或覆盖(fail closed)。只有成功保留损坏原文件后才允许建立空库;Windows 临时占用导致的 rename 失败采用有界重试,耗尽后仍报错。
|
|
34
40
|
- **Hot Memory 预算(#16)**:候选超出剩余硬预算时跳过并继续寻找较小条目;首条过大时按渲染后的完整块缩短正文,必要时缩短标题。连最小块也放不下则跳过,长标题不能突破 `hotMemoryMaxTokens`。
|
|
35
41
|
- **模板字面量([#17](https://github.com/Qinling-Melon-Farmers/dsh-memoir/issues/17))**:通过官方 `PromptSection` 的 `interpolate: false` 关闭记忆 section 的变量插值,使 `{{...}}` 等字面量按原文进入 system prompt,避免被求值或导致组装失败。新记忆、进程内旧快照与磁盘恢复的旧快照均按原文输出;花括号、原始记忆 JSON、`PROJECT_MEMORY.md` 与磁盘快照保持原样。感谢 [mikemikimike](https://github.com/mikemikimike) 在 [PR #18](https://github.com/Qinling-Melon-Farmers/dsh-memoir/pull/18) 中的报告、输出边界分析及旧快照方案对问题定位的帮助。
|
|
36
|
-
- **
|
|
42
|
+
- **0.9.3 的 rc.2 适配与修复全部保留**:#16 存储保护、Hot Memory 预算边界与 #17 模板字面量防护见 [CHANGELOG.md](./CHANGELOG.md);项目记忆仍绑定会话原始项目,切换执行目录不转移归属。恢复 CLI 支持的八个官方 SDK 版本和安全边界见[恢复说明](./SESSION_RECOVERY.md);运行时兼容不等于任意历史日志均可恢复。
|
|
37
43
|
|
|
38
44
|
## 为什么选择 dsh-memoir
|
|
39
45
|
|
|
@@ -193,28 +199,28 @@ memoir_record / memoir_update
|
|
|
193
199
|
|
|
194
200
|
| 渠道 | DSH 基线 | 安装方式 | 状态 |
|
|
195
201
|
| --- | --- | --- | --- |
|
|
196
|
-
| npm 固定版 `0.9.
|
|
202
|
+
| npm 固定版 `0.9.4` | `>=0.2.0-rc.1 <0.3.0-0 \|\| >=0.2.1-alpha.1 <0.2.1` | `dsh plugin --profile web add dsh-memoir@0.9.4` | SDK 0.2.1-rc.5;兼容 0.2.0-rc.1 / rc.2、0.2.1-alpha.1 / alpha.2 / rc.2 / rc.3 / rc.4 / rc.5 |
|
|
197
203
|
| npm 固定版 `0.8.2` | `>=0.1.7-rc.1 <0.1.8-0` | `dsh plugin --profile web add dsh-memoir@0.8.2` | 旧 0.1.7 兼容线,仍受 #14 影响 |
|
|
198
204
|
| npm 固定版 `0.7.1` | `>=0.1.5-rc.1 <0.1.6-0` | `dsh plugin --profile web add dsh-memoir@0.7.1` | 旧 0.1.5 维护线 |
|
|
199
205
|
| npm 固定版 `0.6.2` | `>=0.1.2-alpha.2 <0.1.3` | `dsh plugin --profile web add dsh-memoir@0.6.2` | 旧 0.1.2 兼容线 |
|
|
200
206
|
| npm 固定版 `0.5.6` | `0.1.1-rc.2` | `dsh plugin --profile web add dsh-memoir@0.5.6` | rc2 兼容线 |
|
|
201
|
-
| 源码 `v0.9.
|
|
207
|
+
| 源码 `v0.9.4` | `>=0.2.0-rc.1 <0.3.0-0 \|\| >=0.2.1-alpha.1 <0.2.1` | 本地构建 + `link:` | SDK 0.2.1-rc.5;开发调试,不兼容旧 0.1.x |
|
|
202
208
|
|
|
203
|
-
本版开发 SDK 统一固定为 `0.2.1-rc.
|
|
209
|
+
本版开发 SDK 统一固定为 `0.2.1-rc.5`。兼容矩阵中的宿主支持与 #14 恢复 CLI 的后端、文件格式及 generation 限制是不同边界;恢复范围见 [SESSION_RECOVERY.md](./SESSION_RECOVERY.md)。
|
|
204
210
|
|
|
205
211
|
需要 Node.js `^22.19.0 || >=24.0.0`。0.7.1 继续使用原生 `conversation.view` / `settings.section` 与 `snapshotEvents()`。DSH 0.1.5 的会话日志升级至 V3;其迁移与 Memoir 的 store v4 / settings v3 是独立格式。升级 DSH 前备份 DSH_HOME,迁移后的 DSH 会话不能承诺被旧宿主读取。Memoir 本次不迁移或清空记忆,也不启用新动态提示词行为;既有会话快照语义保持不变。
|
|
206
212
|
|
|
207
213
|
<details>
|
|
208
214
|
<summary>从源码安装</summary>
|
|
209
215
|
|
|
210
|
-
0.9.
|
|
216
|
+
0.9.4 源码(开发 SDK / 示例宿主 DSH 0.2.1-rc.5):
|
|
211
217
|
|
|
212
218
|
```bash
|
|
213
|
-
git clone --branch v0.9.
|
|
219
|
+
git clone --branch v0.9.4 https://github.com/Qinling-Melon-Farmers/dsh-memoir.git
|
|
214
220
|
cd dsh-memoir
|
|
215
221
|
pnpm install --frozen-lockfile
|
|
216
222
|
pnpm run build
|
|
217
|
-
npm install --global @deepseek-ai/dsh@0.2.1-rc.
|
|
223
|
+
npm install --global @deepseek-ai/dsh@0.2.1-rc.5
|
|
218
224
|
dsh plugin --profile web add "link:/absolute/path/dsh-memoir"
|
|
219
225
|
```
|
|
220
226
|
|
|
@@ -239,7 +245,7 @@ dsh plugin --profile web add "link:/absolute/path/dsh-memoir"
|
|
|
239
245
|
|
|
240
246
|
## 离线更新公告
|
|
241
247
|
|
|
242
|
-
首次打开记忆会话页时展示 0.9.
|
|
248
|
+
首次打开记忆会话页时展示 0.9.4 更新摘要,提示 DSH 0.2.1-rc.5 基线、恢复 CLI 扩展至 rc.3 / rc.4 / rc.5、兼容基线一致性回归,以及格式不变无需迁移、#14 旧日志仍须单独恢复的边界,不阻塞对话;点击“知道了”后,同一浏览器 origin 的本版本不再自动展示。“关于与帮助 → 查看本版更新”可随时重看。设置页和右侧栏不会自动弹出公告。下图保留为已标注版本的 0.9.0 历史预览。
|
|
243
249
|
|
|
244
250
|
公告随包内置、中英双语,不联网、不上传信息、不改变记忆或对话。仅在 UI 本地存储记录已确认版本;存储不可用时退化为当前页面去重,Web/桌面端或不同 origin 的确认状态不承诺同步。
|
|
245
251
|
|
|
@@ -325,6 +331,6 @@ pnpm test
|
|
|
325
331
|
npm run bench
|
|
326
332
|
```
|
|
327
333
|
|
|
328
|
-
提交前请阅读 [CONTRIBUTING.md](./CONTRIBUTING.md)。0.9.
|
|
334
|
+
提交前请阅读 [CONTRIBUTING.md](./CONTRIBUTING.md)。0.9.4 版本变化见 [CHANGELOG.md](./CHANGELOG.md),开发 SDK 基线为 DSH 0.2.1-rc.5;旧兼容线与风险见上方兼容性表。正式包由 tag 工作流通过 npm OIDC 发布,发布状态以 [Releases](https://github.com/Qinling-Melon-Farmers/dsh-memoir/releases) 与 npm 为准。
|
|
329
335
|
|
|
330
336
|
Apache-2.0
|
package/SESSION_RECOVERY.md
CHANGED
|
@@ -17,7 +17,7 @@ npm exec --yes --package=dsh-memoir@0.9.3 -- dsh-memoir-repair --dsh-package "/p
|
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
- Windows 全局路径可用 `npm root -g` 查出,再附加 `@deepseek-ai/dsh`;WSL 使用自己的 Linux 安装。桌面内置依赖不可直接供 Node 加载时,使用单独安装的官方 npm DSH 作为校验器,不修改桌面文件。
|
|
20
|
-
- npm 0.9.
|
|
20
|
+
- npm 0.9.4 支持已审计的官方 JSONL backend `0.2.0-rc.1` / `0.2.0-rc.2` / `0.2.1-alpha.1` / `0.2.1-alpha.2` / `0.2.1-rc.2` / `0.2.1-rc.3` / `0.2.1-rc.4` / `0.2.1-rc.5`;rc.3 / rc.4 / rc.5 的后端库与 rc.2 逐字节一致(2026-11-01 审计)。其它版本及混合 SDK 依赖树拒绝执行。只检查符合校验器的原生 v4 旧日志,不运行宿主、不迁移历史格式。
|
|
21
21
|
- 文件必须位于与日志头部匹配的官方项目/会话目录内;请传实际路径,而不是照抄示例占位符或把单个文件复制到任意目录。只读取该会话目录的同级日志代次名称/元数据,拒绝已被更新格式取代的 v4、混合压缩编码、非规范文件名及路径别名;不会扫描其它项目,也不保证整个存储根目录没有其它问题。应用前、取得写锁后及替换前均复核代次状态。
|
|
22
22
|
- 支持 `session.v4.jsonl` / `session.v4.jsonl.zstd`,存储和解压后均最多 128 MiB;Zstandard 每帧必须带校验和。日志截断、损坏、其它未知且不可忽略事件、符号链接/目录联接、硬链接等均拒绝修改。
|
|
23
23
|
- 默认不改文件,不递归扫描用户目录;输出只有路径、计数和固定错误码,不输出正文或密钥。`candidates` 是待修复回执数量。
|
|
@@ -50,7 +50,7 @@ Stop memory writes from affected builds and upgrade to a fixed version supportin
|
|
|
50
50
|
npm exec --yes --package=dsh-memoir@0.9.3 -- dsh-memoir-repair --dsh-package "/path/to/node_modules/@deepseek-ai/dsh" "/storage-root/<project>/<session-id>/session.v4.jsonl.zstd"
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
The official DSH directory supplies the reviewed v4 validators and native lease dependencies. **npm 0.9.
|
|
53
|
+
The official DSH directory supplies the reviewed v4 validators and native lease dependencies. **npm 0.9.4 supports 0.2.0-rc.1 / 0.2.0-rc.2 / 0.2.1-alpha.1 / 0.2.1-alpha.2 / 0.2.1-rc.2 / 0.2.1-rc.3 / 0.2.1-rc.4 / 0.2.1-rc.5** (rc.3 / rc.4 / rc.5 ship the identical backend lib as rc.2, audited 2026-11-01). Other versions and mixed SDK dependency trees are rejected. `npm root -g` locates global packages; Windows and WSL have separate installations. An independently installed official npm DSH can validate desktop logs without editing the desktop installation.
|
|
54
54
|
|
|
55
55
|
The file must remain in the official project/session directory matching its header. Use the actual path, not the example placeholders or an arbitrarily relocated single file. The tool checks sibling generation names/metadata only within that session: newer superseding formats, mixed encodings, noncanonical filenames and path aliases are rejected. It does not scan other projects or certify the whole storage root. Generation state is rechecked after taking the lease and immediately before replacement.
|
|
56
56
|
|
package/lib/client.js
CHANGED
|
@@ -30,7 +30,7 @@ __export(index_exports, {
|
|
|
30
30
|
module.exports = __toCommonJS(index_exports);
|
|
31
31
|
|
|
32
32
|
// <define:__MEMOIR_PACKAGE_INFO__>
|
|
33
|
-
var define_MEMOIR_PACKAGE_INFO_default = { version: "0.9.
|
|
33
|
+
var define_MEMOIR_PACKAGE_INFO_default = { version: "0.9.4", hostRange: ">=0.2.0-rc.1 <0.3.0-0 || >=0.2.1-alpha.1 <0.2.1", sdkBaseline: "0.2.1-rc.5" };
|
|
34
34
|
|
|
35
35
|
// src/client/index.tsx
|
|
36
36
|
var import_react5 = require("react");
|
|
@@ -170,8 +170,8 @@ var dictionaries = {
|
|
|
170
170
|
"notice.title": "\u672C\u7248\u66F4\u65B0",
|
|
171
171
|
"notice.dismiss": "\u77E5\u9053\u4E86",
|
|
172
172
|
"notice.reopen": "\u67E5\u770B\u672C\u7248\u66F4\u65B0",
|
|
173
|
-
"notice.compat": "0.9.
|
|
174
|
-
"notice.features": "\
|
|
173
|
+
"notice.compat": "0.9.4 \u9002\u914D DSH 0.2.1-rc.5\uFF0C\u6062\u590D CLI \u652F\u6301\u6269\u5C55\u81F3 rc.3 / rc.4 / rc.5\uFF1B\u65B0\u589E\u517C\u5BB9\u57FA\u7EBF\u4E00\u81F4\u6027\u56DE\u5F52\uFF0C\u9632\u6B62 SDK \u5347\u7EA7\u4E0E\u6062\u590D\u767D\u540D\u5355\u8131\u8282\u3002",
|
|
174
|
+
"notice.features": "\u672C\u7248\u4E3A\u7EAF\u517C\u5BB9\u8F6E\u6B21\uFF1Astore / settings / \u5FEB\u7167\u683C\u5F0F\u4E0D\u53D8\uFF0C\u5347\u7EA7\u65E0\u9700\u8FC1\u79FB\u6216\u5220\u9664\u6570\u636E\u30020.9.3 \u7684\u4FEE\u590D\u5168\u90E8\u4FDD\u7559\uFF1B\u65E7\u7248\u5F02\u5E38\u56DE\u6267\u5BFC\u81F4\u7684\u5386\u53F2\u65E5\u5FD7\u6545\u969C\u4ECD\u9700\u5355\u72EC\u6062\u590D\uFF1A\u5148\u53EA\u8BFB\u68C0\u67E5\uFF0C\u5168\u90E8\u5BBF\u4E3B\u9000\u51FA\u5E76\u5907\u4EFD\u540E\uFF0C\u518D\u6309\u6062\u590D\u6307\u5357\u6267\u884C\u3002",
|
|
175
175
|
"notice.privacy": "\u516C\u544A\u968F\u5305\u5185\u7F6E\uFF0C\u4E0D\u8054\u7F51\u3001\u4E0D\u6539\u8BB0\u5FC6\u3002\u786E\u8BA4\u540E\u672C\u7248\u672C\u4E0D\u518D\u81EA\u52A8\u663E\u793A\uFF1B\u53EF\u5728\u201C\u5173\u4E8E\u4E0E\u5E2E\u52A9\u201D\u91CD\u770B\u3002",
|
|
176
176
|
"about.host": "\u652F\u6301\u7684 DSH \u8303\u56F4",
|
|
177
177
|
"about.baseline": "\u5F00\u53D1 SDK \u57FA\u7EBF",
|
|
@@ -393,8 +393,8 @@ var dictionaries = {
|
|
|
393
393
|
"notice.title": "What\u2019s new",
|
|
394
394
|
"notice.dismiss": "Got it",
|
|
395
395
|
"notice.reopen": "View release highlights",
|
|
396
|
-
"notice.compat": "0.9.
|
|
397
|
-
"notice.features": "
|
|
396
|
+
"notice.compat": "0.9.4 targets DSH 0.2.1-rc.5 and extends recovery CLI support to rc.3 / rc.4 / rc.5; new compatibility-baseline regressions keep the SDK baseline and the recovery allowlist in sync.",
|
|
397
|
+
"notice.features": "This is a pure compatibility release: store / settings / snapshot formats are unchanged and no migration is needed. All 0.9.3 fixes are retained. Legacy invalid-receipt logs still need separate repair: audit first, stop every host and back up, then follow the recovery guide.",
|
|
398
398
|
"notice.privacy": "Bundled offline; no memory changes. Acknowledge once per version, or reopen from About & help.",
|
|
399
399
|
"about.host": "Supported DSH range",
|
|
400
400
|
"about.baseline": "Development SDK baseline",
|
|
@@ -628,7 +628,7 @@ var import_react2 = require("react");
|
|
|
628
628
|
var import_react = require("react");
|
|
629
629
|
|
|
630
630
|
// src/client/announcement.ts
|
|
631
|
-
var ANNOUNCEMENT_VERSION = "0.9.
|
|
631
|
+
var ANNOUNCEMENT_VERSION = "0.9.4";
|
|
632
632
|
var ANNOUNCEMENT_KEY = "dsh-memoir:announcement:last-acknowledged";
|
|
633
633
|
var EVENT = "dsh-memoir:announcement-acknowledged";
|
|
634
634
|
var acknowledged = /* @__PURE__ */ new WeakMap();
|