dsh-memento 0.5.3 → 0.5.5

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/ARCHITECTURE.md CHANGED
@@ -79,7 +79,7 @@ memory 工具(add)
79
79
  4. **memory/* 会话事件:词汇已声明,运行时自适应派发(rc.6 约束)**。
80
80
  - `types.d.ts` 声明合并了 `memory/added|updated|removed|recalled|snapshot` 的 SessionEventMap 词汇与载荷形状;
81
81
  - rc.6 无插件事件注册面:`KNOWN_SESSION_EVENT_TYPES` 不含 memory/*,且 `Session.append` 无法标记 `ignorable`——append 未注册类型会让该会话下次加载被持久化层整体拒绝(read 路径 enforce,见 session-persistence coordinator);
82
- - 因此运行时只在 `KNOWN_SESSION_EVENT_TYPES.has(type)` 时才 append(未来 harness 收录后自动开启);当前审计链 = approval/asked+decided(已知类型,reason 携带完整写载荷)+ 插件审计表 audit。这是与官方机制对齐后的必然选择,不是偷工减料。
82
+ - 因此运行时只在 `KNOWN_SESSION_EVENT_TYPES.has(type)` 时才 append(未来 harness 收录后自动开启);当前审计链 = approval/asked+decided(已知类型,reason 携带完整写载荷)+ 插件审计表 audit。这是与官方机制对齐后的必然选择,不是偷工减料。rc.1 / 0.1.3-alpha.1 复核(2026-09-04):append 第三参仍为 surface-only SurfaceIntent、仍无 ignorable 写入通道,本决策不变。
83
83
 
84
84
  5. **审计 = 审批对 + 审计表 + 快照三条链**。
85
85
  - 每次写:approval/asked(reason 全文载荷)→ approval/decided(结果)→ audit 行(outcome 含 policy 来源、entry id、会话 id);
@@ -139,6 +139,8 @@ memory 工具(add)
139
139
 
140
140
  全部字段可 cordis.yml 覆盖,schema 见 `index.mjs` 的 `Config`;完整字段表(`enabled` / `dbPath` / `budgets` / `writePolicy` / `writePolicies` / `language` / `snapshotOrder` / `maxEntriesPerQuery` / `commandListLimit` / `commandAuditLimit` / `recall.*` / `panelEntriesLimit` / `panelAuditLimit` / `auditRetentionDays` / `proposals.*`)以 README 配置表为准,本文件不再逐项复制以免漂移。非法值加载期响亮失败。
141
141
  - **harness 主目录回退(0.3.1)**:`dbPath` 为空或相对路径时,基准目录取 `$DSH_HOME`;`dsh web` 启动不会把官方 `resolveDshHome()` 解析出的主目录写回 `process.env.DSH_HOME`,因此未导出时回退 `~/.dsh`(与官方回退同语义)——否则默认 Windows 配置会在真实 boot 时整体崩溃(issue #1)。`lib/` 零 DSH 依赖的红线不允许 import `@deepseek-ai/dsh-home-paths`,用 `os.homedir()` 复刻同一回退。
142
+ - **宿主设置面板接入(settings namespace)**:settings 服务挂载时经 `installSection` 注册 `dsh-memento` namespace(`SettingsSchema` = `Config` 去 `enabled` 加 `panel`,base = 组合配置,validate 复用同一业务校验)。真 cordis 下 `ctx.inject` 回调恒为异步 fiber——apply 同步段先按组合值开库,回调(启动早期或运行期变更)再应用差异:热字段(writePolicy(s)/language/budgets/各 limit/proposals/panel)即时生效(answerer 与命令门每次读 live 容器,service 实例属性同步更新);`dbPath`/`auditRetentionDays` 差异重开 store 并关旧库;`retrieval.vector` 差异拆旧装新检索器(`live.retriever` 供 recall 工具按调用读取);`snapshotOrder` 因 section 注册期固定无法热改,响亮写 `settings-startup-fields` 审计并要求重载。`enabled` 不进 namespace:false 时插件整体卸载、卡片随 namespace 消失,从 UI 上无法恢复。settings 缺失(headless)时 live 保持组合值,行为与未接入前一致。
143
+ - **设置一级项(零构建)**:`client/client.js` 同时注册第二个客户端模块 `dsh-memento/settings-section`(factory 经宿主模块系统 require 平台内置 react,无构建步骤),向 `settings.section` slot 注册 id 为 `dsh-memento` 的一级设置项(宿主设置弹窗左侧菜单即该 slot 账本渲染,无白名单;`label` 即插件名,`order` 用普通值不抢内置位置)。页面内容走统一暂存—保存/放弃/单字段重置语义(对齐宿主 CardForm);保存落盘后若涉及 `panel.enabled` 则同帧切换本页悬浮按钮显隐(无需刷新);界面语言跟随所选(含草稿)语言。写入按顶层字段聚合(`scope.set(top, 合并值)`),不依赖点路径写入面。悬浮窗开关经 `/api/memento/entries` 响应的 `panel` 字段贯通到面板启动探测——host 与面板同源,不依赖浏览器读 settings。
142
144
 
143
145
  ## 协议 v1(0.4.0:dsh-memory-protocol 社区预演)
144
146
 
package/CHANGELOG.md CHANGED
@@ -1,10 +1,27 @@
1
- # Changelog
1
+ # Changelog
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.5] - 2026-09-04
9
+
10
+ ### Changed
11
+
12
+ - Align the devDependency pins to the published dsh `0.1.2-rc.1` line, move the compat CI probes from `0.1.2-alpha.5` to `0.1.2-rc.1`, and refresh the version notes (the adaptive session-event gate keeps staying closed on rc.1); no behavior change.
13
+
14
+ ## [0.5.4] - 2026-09-03
15
+
16
+ ### Added
17
+
18
+ - **Host settings panel integration** 鈥?when the DSH settings service is mounted, the plugin registers the `dsh-memento` settings namespace (every `Config` field except `enabled`, plus a new `panel.enabled`), and its browser half contributes a **top-level `dsh-memento` entry to the DSH settings sidebar** (via the public `settings.section` slot, like the built-in sections). Edits persist to the settings user layer (`settings.yaml`) with staged-draft save/discard/per-field reset semantics. Nearly everything applies live: write policies, language, budgets, limits, proposals, panel; `dbPath` / `auditRetentionDays` apply by reopening the store (old one closed safely); `retrieval.vector` swaps the retriever in place; only `snapshotOrder` needs a DSH reload (changes are recorded as a `settings-startup-fields` audit row). Without the settings service the plugin behaves exactly as composed.
19
+ - **Hideable floating panel button** 鈥?new `panel.enabled` config (default `true`); `false` stops the web panel from rendering its 馃 entry button (addresses upstream issue #7). The panel probes its own `/api/memento/entries` response at startup and falls back to showing the button when the probe fails.
20
+
21
+ ### Changed
22
+
23
+ - Dev pins `@deepseek-ai/cordis-plugin-loader ^1.0.3` / `@deepseek-ai/cordis-plugin-include ^1.0.7` aligned with the `cordis 4.0.2` peer ranges.
24
+
8
25
  ## [0.5.3] - 2026-09-02
9
26
 
10
27
  ### Docs
@@ -27,9 +44,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
27
44
 
28
45
  ### Added
29
46
 
30
- - **Embedding Provider seam (`ctx.memoryEmbedding`)** — new `lib/embedding.mjs` registry ships a deterministic fake-hash provider by default, so third-party plugins can register real embedding backends behind the same Service Definition.
31
- - **Retrieval Provider seam (`ctx.memoryRetrieval`)** — new `lib/retrieval.mjs` registry keeps the built-in substring retriever as the zero-dependency main path and adds an optional `VectorRetriever` for semantic recall, enabled when `config.retrieval.vector` is `true` and an embedding provider is detected (graceful fallback to substring otherwise).
32
- - **stdio MCP server export** — new `bin/mcp-server.mjs` and `lib/mcp.mjs` expose the memory seam as an MCP server through the `dsh-memento-mcp` bin.
47
+ - **Embedding Provider seam (`ctx.memoryEmbedding`)** 鈥?new `lib/embedding.mjs` registry ships a deterministic fake-hash provider by default, so third-party plugins can register real embedding backends behind the same Service Definition.
48
+ - **Retrieval Provider seam (`ctx.memoryRetrieval`)** 鈥?new `lib/retrieval.mjs` registry keeps the built-in substring retriever as the zero-dependency main path and adds an optional `VectorRetriever` for semantic recall, enabled when `config.retrieval.vector` is `true` and an embedding provider is detected (graceful fallback to substring otherwise).
49
+ - **stdio MCP server export** 鈥?new `bin/mcp-server.mjs` and `lib/mcp.mjs` expose the memory seam as an MCP server through the `dsh-memento-mcp` bin.
33
50
 
34
51
  ## [0.4.5] - 2026-08-23
35
52
 
@@ -55,7 +72,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
55
72
 
56
73
  ### Changed
57
74
 
58
- - `package.json#dshWorkshop.lifecycle.activation` upgraded from `restart-profile` to `hot-reload`: with the panel routes riding the plugin fiber since 0.4.1, dispose-and-reactivate is fully clean. Proven by a Loader-level hot-reload composition test that drives `Include.refresh()` — the same transaction the HMR watcher triggers — through a `language` en → zh → en cycle against a duplicate-strict mock `webServer`, asserting the memory seam, the re-applied config, and the routes re-registering without a duplicate route.
75
+ - `package.json#dshWorkshop.lifecycle.activation` upgraded from `restart-profile` to `hot-reload`: with the panel routes riding the plugin fiber since 0.4.1, dispose-and-reactivate is fully clean. Proven by a Loader-level hot-reload composition test that drives `Include.refresh()` 鈥?the same transaction the HMR watcher triggers 鈥?through a `language` en 鈫?zh 鈫?en cycle against a duplicate-strict mock `webServer`, asserting the memory seam, the re-applied config, and the routes re-registering without a duplicate route.
59
76
 
60
77
  ## [0.4.1] - 2026-08-19
61
78
 
@@ -67,33 +84,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
67
84
 
68
85
  ### Added
69
86
 
70
- - **dsh-memory-protocol v1** — the community rehearsal of the DSH memory protocol: normative spec in `docs/protocol-v1.md` (+ 中文), machine-readable JSON Schema in `docs/schemas/dsh-memory-protocol-v1.schema.json`, entry spec extended with `tags` (≤16 × ≤32 chars) and a per-entry `version` that increments on every `replace` (store schema v4, forward-migrated).
71
- - **Protocol/implementation separation** — write semantics moved into `lib/protocol.mjs` (`MemoryProtocolCore`, zero DSH dependencies); `MemoryService` is now a thin subclass that only injects the approval transport and the session-event emission gate. Behavior is unchanged.
72
- - **Adapter registry `ctx.memoryAdapters`** — reversible `register()`/`list()`/`adapt()`/`export()` plus three built-in reference adapters: `mem0`, `hermes-memory-md`, `claude-code-memory-md` (pure data converters — never model extraction). New command verbs: `/memory adapters`, `export --adapter=<id>` (read-only), `import --adapter=<id> <path|inline>` (rides the approval-gated `seed`, per-entry audit). Onboarding guide in `docs/adapters-guide.md` (+ 中文).
73
- - **Protocol conformance suite** — `test/protocol-conformance/`: 22 distributable cases (entry model, write semantics, budget model, audit reconstruction, export envelope) with a `--provider` CLI for third parties; CI runs them against dsh-memento's own provider as the golden reference (`npm run test:conformance`).
74
- - **Upstream proposal material** — `docs/upstream-proposal.md` (+ 中文): why the official `ctx.memory` seam should adopt the protocol, differences from the current seam, and the migration path.
87
+ - **dsh-memory-protocol v1** 鈥?the community rehearsal of the DSH memory protocol: normative spec in `docs/protocol-v1.md` (+ 涓枃), machine-readable JSON Schema in `docs/schemas/dsh-memory-protocol-v1.schema.json`, entry spec extended with `tags` (鈮?6 脳 鈮?2 chars) and a per-entry `version` that increments on every `replace` (store schema v4, forward-migrated).
88
+ - **Protocol/implementation separation** 鈥?write semantics moved into `lib/protocol.mjs` (`MemoryProtocolCore`, zero DSH dependencies); `MemoryService` is now a thin subclass that only injects the approval transport and the session-event emission gate. Behavior is unchanged.
89
+ - **Adapter registry `ctx.memoryAdapters`** 鈥?reversible `register()`/`list()`/`adapt()`/`export()` plus three built-in reference adapters: `mem0`, `hermes-memory-md`, `claude-code-memory-md` (pure data converters 鈥?never model extraction). New command verbs: `/memory adapters`, `export --adapter=<id>` (read-only), `import --adapter=<id> <path|inline>` (rides the approval-gated `seed`, per-entry audit). Onboarding guide in `docs/adapters-guide.md` (+ 涓枃).
90
+ - **Protocol conformance suite** 鈥?`test/protocol-conformance/`: 22 distributable cases (entry model, write semantics, budget model, audit reconstruction, export envelope) with a `--provider` CLI for third parties; CI runs them against dsh-memento's own provider as the golden reference (`npm run test:conformance`).
91
+ - **Upstream proposal material** 鈥?`docs/upstream-proposal.md` (+ 涓枃): why the official `ctx.memory` seam should adopt the protocol, differences from the current seam, and the migration path.
75
92
  - `memory` tool accepts optional `tags` on add/replace/consolidate; tool results and `/memory export` documents carry `tags`/`version`.
76
93
 
77
94
  ### Changed
78
95
 
79
96
  - Five-language READMEs: protocol section, adapter matrix, conformance suite, new command verbs, and the development gate list (now 133 tests).
80
- - ARCHITECTURE: decisions 13–15 (protocol separation, schema v4, adapter registry + conformance suite).
97
+ - ARCHITECTURE: decisions 13鈥?5 (protocol separation, schema v4, adapter registry + conformance suite).
81
98
  - npm package now ships the protocol docs and the conformance suite (`files` whitelist).
82
99
 
83
100
  ## [0.3.1] - 2026-08-15
84
101
 
85
102
  ### Fixed
86
103
 
87
- - Boot crash on default Windows setups (reported in [issue #1](https://github.com/PerryLink/dsh-memento/issues/1)): `dsh web` does not write the harness's resolved home back to `process.env.DSH_HOME`, so `resolveDbPath` threw `MISSING_DSH_HOME` and failed the whole profile load. It now falls back to `~/.dsh` — the same documented fallback as the official harness (`resolveDshHome()`), replicated with `os.homedir()` to keep `lib/` zero-DSH-dependency. Relative `dbPath` values resolve against the same fallback home.
104
+ - Boot crash on default Windows setups (reported in [issue #1](https://github.com/PerryLink/dsh-memento/issues/1)): `dsh web` does not write the harness's resolved home back to `process.env.DSH_HOME`, so `resolveDbPath` threw `MISSING_DSH_HOME` and failed the whole profile load. It now falls back to `~/.dsh` 鈥?the same documented fallback as the official harness (`resolveDshHome()`), replicated with `os.homedir()` to keep `lib/` zero-DSH-dependency. Relative `dbPath` values resolve against the same fallback home.
88
105
  - Removed the now-unreachable `MISSING_DSH_HOME` error code.
89
106
 
90
107
  ## [0.3.0] - 2026-08-15
91
108
 
92
109
  ### Added
93
110
 
94
- - `/memory import` subcommand: restores entries from a `/memory export` document (file path or inline JSON starting with `{`). Validates the `dsh-memento` / `memory-export-v1` markers and entry shapes (unknown schema versions fail loudly), caps one import at 1000 entries, then rides `seed` — single approval, full budget pre-check, one atomic transaction. `source`/`workspaceKey`/`agentKey` survive the round-trip; entries get fresh ids/timestamps and reset recall counts. This completes the backup/migration story.
95
- - Approve-what-you-see approval payloads: `replace` carries `from:` (full previous entry) + `to:` (new text), `remove` carries the full text of the entry being deleted (no more bare substrings), and `consolidate` carries each target's resolved text (300-char excerpt cap per target) — the approval reason now holds the complete change being authorized.
96
- - `*-denied` audit rows: every rejected/cancelled/unavailable write (including the turn-outside `/memory` gate path, which has no approval audit pair) lands a denied row with the real decision source — denials now have their own evidence chain.
111
+ - `/memory import` subcommand: restores entries from a `/memory export` document (file path or inline JSON starting with `{`). Validates the `dsh-memento` / `memory-export-v1` markers and entry shapes (unknown schema versions fail loudly), caps one import at 1000 entries, then rides `seed` 鈥?single approval, full budget pre-check, one atomic transaction. `source`/`workspaceKey`/`agentKey` survive the round-trip; entries get fresh ids/timestamps and reset recall counts. This completes the backup/migration story.
112
+ - Approve-what-you-see approval payloads: `replace` carries `from:` (full previous entry) + `to:` (new text), `remove` carries the full text of the entry being deleted (no more bare substrings), and `consolidate` carries each target's resolved text (300-char excerpt cap per target) 鈥?the approval reason now holds the complete change being authorized.
113
+ - `*-denied` audit rows: every rejected/cancelled/unavailable write (including the turn-outside `/memory` gate path, which has no approval audit pair) lands a denied row with the real decision source 鈥?denials now have their own evidence chain.
97
114
  - Session-visibility isolation for reads and write targeting: `memory` / `memory_recall` queries filter by the session's `agentPreset` (shared + own agent), and `replace`/`remove`/`consolidate` can only target entries visible to the session (shared + own agent, workspace entries only for the session cwd). Management surfaces (`/memory`, the panel) keep the full cross-agent view and now render non-shared entries' agent keys.
98
115
  - `query` accepts an explicit `agentKey` option (`service.query(filter, { agentKey })`); without it, behavior is unchanged (full view, backward compatible).
99
116
 
@@ -102,7 +119,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
102
119
  - `proposalDecide` now resolves and updates inside one transaction: concurrent approve/dismiss races settle first-writer-wins instead of double-deciding.
103
120
  - `/memory proposals approve` no longer masks a successful write when the proposal was concurrently decided elsewhere.
104
121
  - Release workflow is now idempotent: it skips `npm publish` when the tag's version is already on npm, so re-pushing an old tag cannot fail a run.
105
- - Cross-platform test fix: the `resolveDbPath` absolute-path sample now matches the platform's `path.isAbsolute` semantics (a Windows drive path is relative on POSIX) — CI is green on all three platforms instead of red on Linux/macOS.
122
+ - Cross-platform test fix: the `resolveDbPath` absolute-path sample now matches the platform's `path.isAbsolute` semantics (a Windows drive path is relative on POSIX) 鈥?CI is green on all three platforms instead of red on Linux/macOS.
106
123
 
107
124
  ### Changed
108
125
 
@@ -119,7 +136,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
119
136
  - Bilingual `memory_recall` tool description, parameter descriptions, and result renderer.
120
137
  - New README section "What we learned from the terminal memories" (Claude Code / Codex / Hermes), mirrored across all five languages.
121
138
  - `commandListLimit` (default 50) and `commandAuditLimit` (default 10) config fields for the `/memory` command surface.
122
- - Coverage gate (`npm run check:coverage`: lib ≥90%, index.mjs ≥85%, all files ≥90%) and a weekly `next`-rc compatibility probe workflow.
139
+ - Coverage gate (`npm run check:coverage`: lib 鈮?0%, index.mjs 鈮?5%, all files 鈮?0%) and a weekly `next`-rc compatibility probe workflow.
123
140
  - Peer dependency ranges widened to `>=0.1.0-rc.6` so later harness rc releases resolve without a coordinated release.
124
141
  - Package metadata (`repository`/`homepage`/`bugs`), `types` conditions on the `exports` map, and this changelog.
125
142
 
@@ -129,7 +146,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
129
146
  - `/memory list` / `query` render at most `commandListLimit` entries and label truncation instead of silently dropping rows.
130
147
  - `seed` inserts run in one SQLite transaction: any mid-batch failure rolls back the whole batch (the documented all-or-nothing promise now holds).
131
148
  - `replace` re-resolves the target and recomputes the net budget delta after approval, closing the stale-previous race during the approval wait.
132
- - Audit rows record the real decision source (`via approval, writePolicy …` vs `via write gate`) instead of always labeling the configured policy.
149
+ - Audit rows record the real decision source (`via approval, writePolicy 鈥 vs `via write gate`) instead of always labeling the configured policy.
133
150
  - `memory_recall` description now states the true case semantics (case-sensitive for memory entries, case-insensitive for session history).
134
151
  - `maxEntriesPerQuery` is documented and enforced as the default result cap; explicit `limit` values are hard-capped at 1000 by the provider.
135
152
 
@@ -146,5 +163,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
146
163
  - `/memory` command (`list` / `query` / `add` / `remove` / `budgets` / `audit`) with an out-of-turn write gate sharing the same waterfall and policy.
147
164
  - Read-only web panel (`dsh.client` drawer): browse entries, search, budget bars, audit tail.
148
165
  - Session-event vocabulary (`memory/added|updated|removed|recalled|snapshot`) merge-declared in `types.d.ts` with rc.6-adaptive dispatch.
149
- - Hard per-track/per-layer character budgets with structured `BUDGET_EXCEEDED` errors — never truncate, never auto-compact.
150
- - CI matrix (three platforms × Node 22.19/24), typecheck gate, and five-language README consistency gate.
166
+ - Hard per-track/per-layer character budgets with structured `BUDGET_EXCEEDED` errors 鈥?never truncate, never auto-compact.
167
+ - CI matrix (three platforms 脳 Node 22.19/24), typecheck gate, and five-language README consistency gate.
package/README.es.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | Surface | Status |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.5` (adaptado el 2026-09-02): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia. |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (adaptado el 2026-09-02): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia. |
29
29
  | Node | `^22.19.0 || >=24.0.0` |
30
30
  | Platforms | Windows / macOS / Linux (solo host; sin código nativo, sin red) |
31
31
  | Model | Cualquiera |
@@ -64,9 +64,12 @@ dsh --profile web --dump-config | grep -A3 'id: memento'
64
64
 
65
65
  Todos los parámetros son campos Schemastery `Config` (modificables desde cordis.yml). Los valores inválidos fallan de forma ruidosa al cargar. Se sobrescriben bajo la fila `memento`.
66
66
 
67
+ **Panel de ajustes.** Con el servicio de ajustes de DSH montado, todos los campos siguientes (salvo `enabled`) se editan desde la **entrada `dsh-memento` en la barra lateral de ajustes de DSH** (una sección de primer nivel, como General o Plugins); los cambios se guardan en la capa de usuario de ajustes (`settings.yaml`) sin tocar archivos. Casi todo se aplica en vivo (políticas de escritura, idioma, presupuestos, topes, propuestas, panel; `dbPath` / `auditRetentionDays` reabriendo el almacén; `retrieval.vector` cambiando el recuperador) — solo `snapshotOrder` requiere recargar DSH. Sin el servicio de ajustes todo vuelve a la configuración compuesta, igual que antes. El botón flotante del panel puede ocultarse desde la misma página (`panel.enabled`).
68
+
67
69
  | Key | Default | Meaning |
68
70
  |---|---|---|
69
- | `enabled` | `true` | Interruptor maestro; `false` elimina servicio, herramientas, instantánea, comando, panel y answerer |
71
+ | `enabled` | `true` | Interruptor maestro; `false` elimina servicio, herramientas, instantánea, comando, panel y answerer (no editable desde la página de ajustes: un plugin deshabilitado no tiene entrada de ajustes) |
72
+ | `panel.enabled` | `true` | Mostrar el botón flotante del panel web; al guardar `false` desde la página de ajustes, la entrada 🧠 se oculta al instante, sin recargar (la página de ajustes no se ve afectada) |
70
73
  | `dbPath` | `''` → `$DSH_HOME/dsh-memento/memory.db` | Absoluto, o relativo a `$DSH_HOME` (en Windows cae a `~/.dsh`) |
71
74
  | `budgets.user.userGlobal` | `2000` | Presupuesto estricto de caracteres de la capa user-global de la pista user |
72
75
  | `budgets.user.workspace` | `2000` | Presupuesto estricto de caracteres de la capa workspace de la pista user |
@@ -98,7 +101,8 @@ Todos los parámetros son campos Schemastery `Config` (modificables desde cordis
98
101
  | `memory` | tool | add/replace/remove/consolidate/query con guía Save/Skip; las escrituras pasan por la puerta de aprobación |
99
102
  | `memory_recall` | tool | Coincidencias acotadas de memoria más coincidencias recientes del historial de sesión |
100
103
  | `/memory` | command | `list` · `query` · `add` · `remove` · `consolidate` · `proposals` · `budgets` · `audit` · `export` · `import <path>` · `adapters` |
101
- | web panel | client drawer | Solo lectura: explorar entradas, buscar, barras de presupuesto, cola de auditoría |
104
+ | web panel | client drawer | Solo lectura: explorar entradas, buscar, barras de presupuesto, cola de auditoría; el botón flotante puede ocultarse (`panel.enabled`) |
105
+ | settings section | Barra lateral de ajustes de DSH → `dsh-memento` | Edita todos los campos de configuración (salvo `enabled`) sin tocar archivos; el momento de aplicación (en vivo o tras recarga) se indica en la página |
102
106
 
103
107
  ## MCP server
104
108
 
@@ -275,3 +279,7 @@ Este proyecto es uno de los [33 complementos de DeepSeek Harness](https://github
275
279
  ## License
276
280
 
277
281
  [Apache License 2.0](LICENSE) © 2026 dsh-memento contributors
282
+
283
+ ### Instalar desde el mercado de DSH Desktop
284
+
285
+ Todos los plugins de PerryLink pueden explorarse en el mercado integrado de DSH Desktop: **Market → Sources → add source → pegar** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ seleccionarlo**. La instalación sigue pasando por la verificación de identidad npm del mercado y tu confirmación.
package/README.hi.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | Surface | Status |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.5` (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। |
29
29
  | Node | `^22.19.0 || >=24.0.0` |
30
30
  | Platforms | Windows / macOS / Linux (केवल host; कोई नेटिव कोड नहीं, कोई नेटवर्क नहीं) |
31
31
  | Model | कोई भी |
@@ -64,9 +64,12 @@ dsh --profile web --dump-config | grep -A3 'id: memento'
64
64
 
65
65
  सभी ट्यूनेबल Schemastery `Config` फ़ील्ड हैं (cordis.yml से बदले जा सकते हैं)। अमान्य मान लोड पर ज़ोर से विफल होते हैं। `memento` पंक्ति के अंतर्गत ओवरराइड करें।
66
66
 
67
+ **सेटिंग्स पैनल।** DSH सेटिंग्स सेवा माउंट होने पर नीचे के सभी फ़ील्ड (`enabled` को छोड़कर) DSH सेटिंग्स साइडबार की प्लगइन **`dsh-memento` प्रविष्टि** से संपादित होते हैं (General या Plugins जैसा एक शीर्ष-स्तरीय खंड); बदलाव सेटिंग्स यूज़र लेयर (`settings.yaml`) में जाते हैं, फ़ाइल छूने की ज़रूरत नहीं। लगभग सब लाइव लागू होते हैं (राइट पॉलिसी, भाषा, बजट, सीमाएँ, प्रस्ताव, पैनल; `dbPath` / `auditRetentionDays` स्टोर पुनः खोलकर; `retrieval.vector` रिट्रीवर बदलकर) — केवल `snapshotOrder` को DSH रीलोड चाहिए। सेटिंग्स सेवा के अभाव में सब कुछ संयुक्त cordis कॉन्फ़िग पर लौटता है, पहले जैसा। फ़्लोटिंग पैनल बटन उसी पृष्ठ से छिपाया जा सकता है (`panel.enabled`)।
68
+
67
69
  | Key | Default | Meaning |
68
70
  |---|---|---|
69
- | `enabled` | `true` | मुख्य स्विच; `false` सेवा, टूल, स्नैपशॉट, कमांड, पैनल और answerer हटा देता है |
71
+ | `enabled` | `true` | मुख्य स्विच; `false` सेवा, टूल, स्नैपशॉट, कमांड, पैनल और answerer हटा देता है (सेटिंग्स पृष्ठ से संपादन योग्य नहीं — अक्षम प्लगइन की कोई सेटिंग्स प्रविष्टि नहीं) |
72
+ | `panel.enabled` | `true` | वेब पैनल का फ़्लोटिंग बटन दिखाएँ; सेटिंग्स पृष्ठ से `false` सेव करने पर 🧠 प्रविष्टि तुरंत छिप जाती है, रीलोड की ज़रूरत नहीं (सेटिंग्स पृष्ठ अप्रभावित) |
70
73
  | `dbPath` | `''` → `$DSH_HOME/dsh-memento/memory.db` | निरपेक्ष, या `$DSH_HOME` के सापेक्ष (Windows पर `~/.dsh` पर फ़ॉलबैक) |
71
74
  | `budgets.user.userGlobal` | `2000` | user ट्रैक की user-global परत का कठोर अक्षर बजट |
72
75
  | `budgets.user.workspace` | `2000` | user ट्रैक की workspace परत का कठोर अक्षर बजट |
@@ -98,7 +101,8 @@ dsh --profile web --dump-config | grep -A3 'id: memento'
98
101
  | `memory` | tool | Save/Skip मार्गदर्शन के साथ add/replace/remove/consolidate/query; लेखन अनुमोदन द्वार से गुज़रता है |
99
102
  | `memory_recall` | tool | परिबद्ध मेमोरी मिलान + हाल के सत्र-इतिहास मिलान |
100
103
  | `/memory` | command | `list` · `query` · `add` · `remove` · `consolidate` · `proposals` · `budgets` · `audit` · `export` · `import <path>` · `adapters` |
101
- | web panel | client drawer | केवल-पठन: प्रविष्टियाँ ब्राउज़ करें, खोजें, बजट बार, ऑडिट पूँछ |
104
+ | web panel | client drawer | केवल-पठन: प्रविष्टियाँ ब्राउज़ करें, खोजें, बजट बार, ऑडिट पूँछ; फ़्लोटिंग बटन छिपाया जा सकता है (`panel.enabled`) |
105
+ | settings section | DSH सेटिंग्स साइडबार → `dsh-memento` | फ़ाइल छुए सभी कॉन्फ़िग फ़ील्ड संपादित करें (`enabled` को छोड़कर); लाइव/रीलोड समय पृष्ठ पर अंकित |
102
106
 
103
107
  ## MCP server
104
108
 
@@ -275,3 +279,7 @@ npm run verify:artifacts # artifact presence + syntax + import
275
279
  ## License
276
280
 
277
281
  [Apache License 2.0](LICENSE) © 2026 dsh-memento contributors
282
+
283
+ ### DSH Desktop मार्केट से इंस्टॉल करें
284
+
285
+ सभी PerryLink प्लगइन DSH Desktop के बिल्ट-इन मार्केट में देखे जा सकते हैं: **Market → Sources → add source → पेस्ट करें** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ चुनें**। इंस्टॉलेशन मार्केट के npm-identity सत्यापन और आपकी पुष्टि से ही होता है।
package/README.md CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  | Surface | Status |
28
28
  |---|---|
29
- | Harness | DeepSeek Harness `0.1.2-alpha.5` (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. |
29
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. |
30
30
  | Node | `^22.19.0 || >=24.0.0` |
31
31
  | Platforms | Windows / macOS / Linux (pure host; no native code, no network) |
32
32
  | Model | Any |
@@ -65,9 +65,12 @@ dsh --profile web --dump-config | grep -A3 'id: memento'
65
65
 
66
66
  All tunables are Schemastery `Config` fields (changeable from cordis.yml). Invalid values fail loudly at load. Override under the `memento` row.
67
67
 
68
+ **Settings panel.** When the DSH settings service is mounted, every field below (except `enabled`) is editable from the plugin's own **`dsh-memento` entry in the DSH settings sidebar** (a top-level section, like General or Plugins); edits land in the settings user layer (`settings.yaml`) and need no file editing. Nearly everything applies live (write policies, language, budgets, limits, proposals, panel, `dbPath` / `auditRetentionDays` via a store reopen, `retrieval.vector` via a retriever swap) — only `snapshotOrder` needs a DSH reload. Without the settings service everything falls back to the composed cordis config, exactly as before. The floating panel button can be hidden from the same page (`panel.enabled`).
69
+
68
70
  | Key | Default | Meaning |
69
71
  |---|---|---|
70
- | `enabled` | `true` | Master switch; `false` removes the service, tools, snapshot, command, panel, and answerer |
72
+ | `enabled` | `true` | Master switch; `false` removes the service, tools, snapshot, command, panel, and answerer (not editable from the settings page — a disabled plugin has no settings entry) |
73
+ | `panel.enabled` | `true` | Show the web panel's floating button; saving `false` from the settings page hides the 🧠 entry immediately, no reload needed (the settings page itself stays reachable) |
71
74
  | `dbPath` | `''` → `$DSH_HOME/dsh-memento/memory.db` | Absolute, or relative to `$DSH_HOME` (falls back to `~/.dsh` on Windows) |
72
75
  | `budgets.user.userGlobal` | `2000` | Hard character budget for the user track's user-global layer |
73
76
  | `budgets.user.workspace` | `2000` | Hard character budget for the user track's workspace layer |
@@ -99,7 +102,8 @@ All tunables are Schemastery `Config` fields (changeable from cordis.yml). Inval
99
102
  | `memory` | tool | add/replace/remove/consolidate/query with Save/Skip guidance; writes ride the approval gate |
100
103
  | `memory_recall` | tool | Bounded memory matches plus recent session-history matches |
101
104
  | `/memory` | command | `list` · `query` · `add` · `remove` · `consolidate` · `proposals` · `budgets` · `audit` · `export` · `import <path>` · `adapters` |
102
- | web panel | client drawer | Read-only: browse entries, search, budget bars, audit tail |
105
+ | web panel | client drawer | Read-only: browse entries, search, budget bars, audit tail; the floating entry button can be hidden (`panel.enabled`) |
106
+ | settings section | DSH settings sidebar → `dsh-memento` | Edit every config field (except `enabled`) without touching files; live vs reload-required timing is marked on the page |
103
107
 
104
108
  ## MCP server
105
109
 
@@ -273,6 +277,10 @@ This project is one of the [33 DeepSeek Harness plugins](https://github.com/Perr
273
277
  | **[dsh-dsh-test-drive](https://github.com/PerryLink/dsh-dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
274
278
  | **[dsh-dsh-translate](https://github.com/PerryLink/dsh-dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
275
279
 
280
+ ### Install from the DSH Desktop Market
281
+
282
+ All PerryLink plugins are browsable in the built-in DSH Desktop Market: **Market → Sources → add source → paste** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ select it**. Installation still goes through the Market's npm-identity verification and your confirmation.
283
+
276
284
  ## License
277
285
 
278
286
  [Apache License 2.0](LICENSE) © 2026 dsh-memento contributors
package/README.pt.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | Surface | Status |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.5` (adaptado em 2026-09-02): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda. |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (adaptado em 2026-09-02): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda. |
29
29
  | Node | `^22.19.0 || >=24.0.0` |
30
30
  | Platforms | Windows / macOS / Linux (somente host; sem código nativo, sem rede) |
31
31
  | Model | Qualquer |
@@ -64,9 +64,12 @@ dsh --profile web --dump-config | grep -A3 'id: memento'
64
64
 
65
65
  Todos os parâmetros são campos Schemastery `Config` (alteráveis pelo cordis.yml). Valores inválidos falham ruidosamente ao carregar. Sobrescreva na linha `memento`.
66
66
 
67
+ **Painel de configurações.** Com o serviço de configurações do DSH montado, todos os campos abaixo (exceto `enabled`) são editáveis na **entrada `dsh-memento` na barra lateral de configurações do DSH** (uma seção de primeiro nível, como General ou Plugins); as alterações vão para a camada de usuário das configurações (`settings.yaml`) sem editar arquivos. Quase tudo se aplica ao vivo (políticas de escrita, idioma, orçamentos, limites, propostas, painel; `dbPath` / `auditRetentionDays` reabrindo o armazém; `retrieval.vector` trocando o recuperador) — só `snapshotOrder` exige recarregar o DSH. Sem o serviço de configurações, tudo volta à configuração composta, exatamente como antes. O botão flutuante do painel pode ser ocultado na mesma página (`panel.enabled`).
68
+
67
69
  | Key | Default | Meaning |
68
70
  |---|---|---|
69
- | `enabled` | `true` | Interruptor mestre; `false` remove serviço, ferramentas, snapshot, comando, painel e answerer |
71
+ | `enabled` | `true` | Interruptor mestre; `false` remove serviço, ferramentas, snapshot, comando, painel e answerer (não editável na página de configurações: um plugin desabilitado não tem entrada de configurações) |
72
+ | `panel.enabled` | `true` | Mostrar o botão flutuante do painel web; ao salvar `false` na página de configurações, a entrada 🧠 é ocultada imediatamente, sem recarregar (a página de configurações não é afetada) |
70
73
  | `dbPath` | `''` → `$DSH_HOME/dsh-memento/memory.db` | Absoluto, ou relativo a `$DSH_HOME` (no Windows cai para `~/.dsh`) |
71
74
  | `budgets.user.userGlobal` | `2000` | Orçamento rígido de caracteres da camada user-global da trilha user |
72
75
  | `budgets.user.workspace` | `2000` | Orçamento rígido de caracteres da camada workspace da trilha user |
@@ -98,7 +101,8 @@ Todos os parâmetros são campos Schemastery `Config` (alteráveis pelo cordis.y
98
101
  | `memory` | tool | add/replace/remove/consolidate/query com orientação Save/Skip; escritas passam pela porta de aprovação |
99
102
  | `memory_recall` | tool | Correspondências limitadas de memória mais correspondências recentes do histórico de sessão |
100
103
  | `/memory` | command | `list` · `query` · `add` · `remove` · `consolidate` · `proposals` · `budgets` · `audit` · `export` · `import <path>` · `adapters` |
101
- | web panel | client drawer | Somente leitura: navegar entradas, buscar, barras de orçamento, cauda de auditoria |
104
+ | web panel | client drawer | Somente leitura: navegar entradas, buscar, barras de orçamento, cauda de auditoria; o botão flutuante pode ser ocultado (`panel.enabled`) |
105
+ | settings section | Barra lateral de configurações do DSH → `dsh-memento` | Edita todos os campos de configuração (exceto `enabled`) sem tocar em arquivos; o momento de aplicação (ao vivo ou após recarga) é indicado na página |
102
106
 
103
107
  ## MCP server
104
108
 
@@ -275,3 +279,7 @@ Este projeto é um dos [33 plugins de DeepSeek Harness](https://github.com/Perry
275
279
  ## License
276
280
 
277
281
  [Apache License 2.0](LICENSE) © 2026 dsh-memento contributors
282
+
283
+ ### Instalar a partir do mercado do DSH Desktop
284
+
285
+ Todos os plugins PerryLink podem ser explorados no mercado integrado do DSH Desktop: **Market → Sources → add source → colar** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ selecionar**. A instalação continua passando pela verificação de identidade npm do mercado e pela sua confirmação.
package/README.zh.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | Surface | Status |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.5`(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1`(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 |
29
29
  | Node | `^22.19.0 || >=24.0.0` |
30
30
  | Platforms | Windows / macOS / Linux(纯 host;无原生代码、无网络) |
31
31
  | Model | 任意 |
@@ -64,9 +64,12 @@ dsh --profile web --dump-config | grep -A3 'id: memento'
64
64
 
65
65
  所有可调项均为 Schemastery `Config` 字段(可在 cordis.yml 中修改)。非法值在加载期响亮失败。在 `memento` 行下覆盖。
66
66
 
67
+ **设置面板。** DSH 设置服务挂载时,下表除 `enabled` 外的全部字段可在 DSH 设置侧栏的插件一级项 **`dsh-memento`**(与通用设置、插件等并列)中编辑;修改写入设置用户层(`settings.yaml`),无需改文件。几乎全部即时生效(写策略、语言、预算、各上限、提案、面板;`dbPath` / `auditRetentionDays` 经重开 store 生效;`retrieval.vector` 经重装检索器生效)——只有 `snapshotOrder` 需要 DSH 重载。设置服务缺失时一切回退组合配置,与从前完全一致。悬浮窗按钮可在同一页面隐藏(`panel.enabled`)。
68
+
67
69
  | Key | Default | Meaning |
68
70
  |---|---|---|
69
- | `enabled` | `true` | 总开关;`false` 移除服务、工具、快照、命令、面板与 answerer |
71
+ | `enabled` | `true` | 总开关;`false` 移除服务、工具、快照、命令、面板与 answerer(设置页不可编辑——禁用的插件没有设置项) |
72
+ | `panel.enabled` | `true` | 显示 Web 面板悬浮按钮;在设置页保存 `false` 后立即隐藏 🧠 入口,无需刷新(设置页本身不受影响) |
70
73
  | `dbPath` | `''` → `$DSH_HOME/dsh-memento/memory.db` | 绝对路径,或相对 `$DSH_HOME`(Windows 上回退到 `~/.dsh`) |
71
74
  | `budgets.user.userGlobal` | `2000` | user 轨 user-global 层的硬字符预算 |
72
75
  | `budgets.user.workspace` | `2000` | user 轨 workspace 层的硬字符预算 |
@@ -98,7 +101,8 @@ dsh --profile web --dump-config | grep -A3 'id: memento'
98
101
  | `memory` | tool | 带 Save/Skip 指引的 add/replace/remove/consolidate/query;写入走审批门 |
99
102
  | `memory_recall` | tool | 有界的记忆匹配 + 近期会话历史匹配 |
100
103
  | `/memory` | command | `list` · `query` · `add` · `remove` · `consolidate` · `proposals` · `budgets` · `audit` · `export` · `import <path>` · `adapters` |
101
- | web panel | client drawer | 只读:浏览条目、搜索、预算条、审计尾部 |
104
+ | web panel | client drawer | 只读:浏览条目、搜索、预算条、审计尾部;悬浮入口按钮可隐藏(`panel.enabled`) |
105
+ | settings section | DSH 设置侧栏 → `dsh-memento` | 免改文件编辑除 `enabled` 外的全部配置字段;即时/重载生效时机在页面内标注 |
102
106
 
103
107
  ## MCP server
104
108
 
@@ -275,3 +279,7 @@ npm run verify:artifacts # artifact presence + syntax + import
275
279
  ## License
276
280
 
277
281
  [Apache License 2.0](LICENSE) © 2026 dsh-memento contributors
282
+
283
+ ### 从 DSH Desktop 市场安装
284
+
285
+ 所有 PerryLink 插件均可在 DSH Desktop 内置市场中浏览:**市场 → 来源 → 添加来源 → 粘贴** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ 选中**。安装仍需通过市场的 npm 身份校验与你的确认。