@wenaixi/dsh-prompt-history 2.0.1 → 2.0.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.md ADDED
@@ -0,0 +1,268 @@
1
+ # Changelog
2
+
3
+ 本仓库的版本历史。格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [2.0.2] - 2026-10-06
8
+
9
+ ### 修复
10
+
11
+ - **设置界面迁移到官方 SettingsForm 体系**:`plugins.bundle.config` 配置卡改用官方 `SettingsForm` 外壳(不可用提示、只读横幅、保存失败提示、Save/Saving、离开即丢弃草稿),保存语义改为 staged 草稿 + 一次保存。新增 `SettingsCardController`(仿官方 `dsh-client-ui-settings-subagent` 控制器):用快照 `revision` 做冲突栅栏、保存后回读逐字段比对确认落盘、代际计数抑制卸载后的迟到回执。文案键对齐官方模板句式。
12
+ - **修复 2.0.1 客户端从未加载成功**:tsdown 产物注册 id 仍是旧名 `dsh-prompt-history`,与改名后的包名 `@wenaixi/dsh-prompt-history` 不一致,client-modules 报 `loaded without registering`,整条 client bundle 无法激活。产物 id 与 `plugins.bundle.config` 插槽 key 一并修正为包名(plugin-manager 按 `entry.options.key` 与 `pkg.name` 比对决定是否渲染配置区)。
13
+ - **设置写入文档对齐**:`cordis.patch.yml` 与 schema 默认值逐字段一致(config-editor 深比较判定)。
14
+
15
+ ### 新增
16
+
17
+ - `prefs-model.ts` 新增 `prefsEqual` / `draftDiffOps` 纯函数并补单测(23 项全绿)。
18
+
19
+ ## [2.0.1] - 2026-10-05
20
+
21
+ ### 修复
22
+
23
+ - scoped 包名在 YAML 里加引号:裸 `@` 开头导致 `dsh add` 解析失败。
24
+
25
+ ## [2.0.0] - 2026-10-05
26
+
27
+ ### 变更
28
+
29
+ - 包名改为 scoped:`@wenaixi/dsh-prompt-history`。
30
+ - 配置界面迁移到 DSH 官方插件配置组合(`plugins.bundle.config` + Host `Config` schema + volatile 字段),设置由 DSH 宿主持久化;旧版浏览器 localStorage 设置在首次打开时自动迁移。
31
+
32
+ ### 其他
33
+
34
+ - 配置 CI(`pnpm install --frozen-lockfile` + typecheck + 单测 + build)与发布流水线(tag 触发 npm publish + GitHub Release)。
35
+
36
+ ## [1.2.15] - 2026-10-04
37
+
38
+ ### 修复
39
+
40
+ - 依赖对齐当前 DSH 客户端 API 与兼容矩阵。
41
+
42
+ ## [1.2.14] - 2026-10-03
43
+
44
+ ### 修复
45
+
46
+ - 跨 DSH 代际规范化会话节点读取。
47
+
48
+ ## [1.2.13] - 2026-10-02
49
+
50
+ ### 修复
51
+
52
+ - rc.1 会话快照的 chat nodes 是 store 不是数组。
53
+
54
+ ## [1.2.12] - 2026-10-01
55
+
56
+ ### 修复
57
+
58
+ - 兼容 DSH 0.1.2(Lexical 编辑器 + chat-view nodes)。
59
+
60
+ ## [1.2.11] - 2026-09-30
61
+
62
+ ### 修复
63
+
64
+ - 全量历史拉宽真正执行;收紧行距;提示气泡点击即关。
65
+
66
+ ## [1.2.10] - 2026-09-29
67
+
68
+ ### 新增
69
+
70
+ - 会话目录(Chat TOC)显示全量历史。
71
+
72
+ ## [1.2.9] - 2026-09-28
73
+
74
+ ### 修复
75
+
76
+ - TOC 点击总是跳到正确的消息;收紧行距。
77
+
78
+ ## [1.2.8] - 2026-09-27
79
+
80
+ ### 新增
81
+
82
+ - TOC 行编号统一;悬停显示全文气泡。
83
+
84
+ ## [1.2.7] - 2026-09-26
85
+
86
+ ### 修复
87
+
88
+ - TOC 条目显示全文;移除坏掉的 line-clamp。
89
+
90
+ ## [1.2.6] - 2026-09-25
91
+
92
+ ### 新增
93
+
94
+ - TOC 面板右下角拖拽调整大小。
95
+
96
+ ## [1.2.5] - 2026-09-24
97
+
98
+ ### 修复
99
+
100
+ - TOC 条目不被压缩;头部固定、列表滚动。
101
+
102
+ ## [1.2.4] - 2026-09-23
103
+
104
+ ### 修复
105
+
106
+ - TOC 条目多行可读;面板加宽。
107
+
108
+ ## [1.2.3] - 2026-09-22
109
+
110
+ ### 修复
111
+
112
+ - 长列表下 TOC 可靠滚动。
113
+
114
+ ## [1.2.2] - 2026-09-21
115
+
116
+ ### 新增
117
+
118
+ - TOC 面板像上下文菜单一样吸附在 grip 上。
119
+
120
+ ## [1.2.1] - 2026-09-20
121
+
122
+ ### 修复
123
+
124
+ - TOC 面板跟随 grip 且始终在视口内。
125
+
126
+ ## [1.2.0] - 2026-09-19
127
+
128
+ ### 变更
129
+
130
+ - 移除「off」复制模式与代码工具栏按钮。
131
+
132
+ ## [1.1.0] - 2026-09-18
133
+
134
+ ### 新增
135
+
136
+ - 可开关的会话目录(Chat TOC);终端字形替换齿轮导航图标。
137
+
138
+ ## [1.0.0] - 2026-09-17
139
+
140
+ ### 新增
141
+
142
+ - 界面国际化(zh/en),终端式输入的设置标签。
143
+
144
+ ## [0.17.0] - 2026-09-16
145
+
146
+ ### 新增
147
+
148
+ - 复制为代码的工具栏动作;可选跨会话历史环(默认关)。
149
+
150
+ ## [0.16.0] - 2026-09-15
151
+
152
+ ### 新增
153
+
154
+ - TOC grip 可拖拽;位置存 localStorage。
155
+
156
+ ## [0.15.0] - 2026-09-13
157
+
158
+ ### 新增
159
+
160
+ - 会话目录(Chat TOC)grip 雏形:列出用户消息、点击跳转。
161
+
162
+ ## [0.14.0] - 2026-09-12
163
+
164
+ ### 新增
165
+
166
+ - bash 风格前缀历史搜索(带前缀按 ↑);Ctrl+R 增量反向搜索。
167
+
168
+ ## [0.13.0] - 2026-09-11
169
+
170
+ ### 变更
171
+
172
+ - 引用改为干净的 markdown 引用块(`>` 前缀)。
173
+
174
+ ## [0.12.0] - 2026-09-10
175
+
176
+ ### 新增
177
+
178
+ - 引用在输入框渲染为卡片式盒子,下一行继续输入。
179
+
180
+ ## [0.11.0] - 2026-09-09
181
+
182
+ ### 变更
183
+
184
+ - 引用把选中文本的完整内容以 `>` 引用块插入输入框。
185
+
186
+ ## [0.10.0] - 2026-09-08
187
+
188
+ ### 新增
189
+
190
+ - 输入框上方全文引用预览条;chip 气泡显示完整引用。
191
+
192
+ ## [0.9.0] - 2026-09-07
193
+
194
+ ### 新增
195
+
196
+ - 引用插入引用 chip(视觉可区分),发送时展开为 `>` 引用块,chip 后换行。
197
+
198
+ ## [0.8.0] - 2026-09-06
199
+
200
+ ### 新增
201
+
202
+ - 选区工具栏增加「引用」动作:把选中文本以 `>` 引用块插入输入框。
203
+
204
+ ## [0.7.0] - 2026-09-05
205
+
206
+ ### 变更
207
+
208
+ - 选区复制工具栏(显式点击复制)成为默认;选中即自动复制改为可选。
209
+
210
+ ## [0.6.1] - 2026-09-04
211
+
212
+ ### 变更
213
+
214
+ - 设置区块改名「终端式输入」便于查找。
215
+
216
+ ## [0.6.0] - 2026-09-03
217
+
218
+ ### 新增
219
+
220
+ - 设置区块:选中即复制与右键粘贴开关。
221
+
222
+ ## [0.5.1] - 2026-09-02
223
+
224
+ ### 新增
225
+
226
+ - 全页选中即复制,带可见的已复制气泡。
227
+
228
+ ## [0.5.0] - 2026-09-01
229
+
230
+ ### 新增
231
+
232
+ - 选中即复制(任意选中方式)。
233
+
234
+ [Unreleased]: https://github.com/Wenaixi/dsh-prompt-history/compare/v2.0.2...HEAD
235
+ [2.0.2]: https://github.com/Wenaixi/dsh-prompt-history/compare/v2.0.1...v2.0.2
236
+ [2.0.1]: https://github.com/Wenaixi/dsh-prompt-history/compare/v2.0.0...v2.0.1
237
+ [2.0.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.15...v2.0.0
238
+ [1.2.15]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.14...v1.2.15
239
+ [1.2.14]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.13...v1.2.14
240
+ [1.2.13]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.12...v1.2.13
241
+ [1.2.12]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.11...v1.2.12
242
+ [1.2.11]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.10...v1.2.11
243
+ [1.2.10]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.9...v1.2.10
244
+ [1.2.9]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.8...v1.2.9
245
+ [1.2.8]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.7...v1.2.8
246
+ [1.2.7]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.6...v1.2.7
247
+ [1.2.6]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.5...v1.2.6
248
+ [1.2.5]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.4...v1.2.5
249
+ [1.2.4]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.3...v1.2.4
250
+ [1.2.3]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.2...v1.2.3
251
+ [1.2.2]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.1...v1.2.2
252
+ [1.2.1]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.2.0...v1.2.1
253
+ [1.2.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.1.0...v1.2.0
254
+ [1.1.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v1.0.0...v1.1.0
255
+ [1.0.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.17.0...v1.0.0
256
+ [0.17.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.16.0...v0.17.0
257
+ [0.16.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.15.0...v0.16.0
258
+ [0.15.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.14.0...v0.15.0
259
+ [0.14.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.13.0...v0.14.0
260
+ [0.13.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.12.0...v0.13.0
261
+ [0.12.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.11.0...v0.12.0
262
+ [0.11.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.10.0...v0.11.0
263
+ [0.10.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.9.0...v0.10.0
264
+ [0.9.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.8.0...v0.9.0
265
+ [0.8.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.7.0...v0.8.0
266
+ [0.7.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.6.0...v0.7.0
267
+ [0.6.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.5.0...v0.6.0
268
+ [0.5.0]: https://github.com/Wenaixi/dsh-prompt-history/compare/v0.4.1...v0.5.0
package/README.en.md CHANGED
@@ -22,8 +22,8 @@
22
22
 
23
23
  | Surface | Status |
24
24
  |---|---|
25
- | DSH versions | Verified on **0.1.1-rc.2 / 0.1.2-rc.1 / 0.1.5-rc.1** (web profile); node reading is normalized across generations (old `session.nodes` / 0.1.2 `legacy.nodes` / desktop 2.0.x `order`+store with `data.content`), so desktop 2.0.x is covered too |
26
- | Platform | Web GUI only (client plugin; browser-local state; no network, no native code) |
25
+ | DSH versions | Targets **0.2.0-rc.2**; the configuration card uses `plugins.bundle.config` with the Host `Config` schema and the official `SettingsForm` shell |
26
+ | Platform | Web GUI only (client plugin; settings are persisted by the DSH Host, cross-session history stays in browser local storage) |
27
27
  | Node | `>=20` |
28
28
  | Model | Any (no model requests — pure UI behavior) |
29
29
  | UI language | 中文 / English (follows the DSH app locale, switchable in Settings) |
@@ -60,16 +60,16 @@ dsh plugin --profile web add @wenaixi/dsh-prompt-history
60
60
 
61
61
  ## Configuration
62
62
 
63
- Open **Settings → `>_ Terminal Input`** (stored in browser localStorage, effective immediately):
63
+ Open **Plugins → `@wenaixi/dsh-prompt-history` → configuration** (persisted by the DSH Host into `cordis.patch.yml`; legacy browser settings migrate on first open). The card is the official `SettingsForm`: edits stay a staged draft until you click Save, which writes the Host in one revision-fenced mutation.
64
64
 
65
65
  | Option | Default | Meaning |
66
66
  |---|---|---|
67
- | Copy mode (on selection) | `Toolbar copy` | `Toolbar` (recommended; writes the clipboard only on click) / `Auto copy on select` (terminal-style) |
68
- | Cross-session history | Off | Up/Down history persists across sessions in browser localStorage (cap 200) |
67
+ | After selecting text | `Show a toolbar` | `Nothing` / `Show a toolbar` (writes the clipboard only on click) / `Copy immediately` (terminal-style) |
68
+ | Open history list | `Both` | `Ctrl+R only` / `Double Escape only` / `Both` |
69
+ | Up/Down history | On | Off hands ↑/↓, Ctrl+R and double Escape back to the Host |
70
+ | Cross-session memory | Off | Up/Down history persists across sessions in browser local storage (cap 200) |
69
71
  | Right-click paste | On | Off restores the browser's native context menu |
70
72
 
71
- Up/Down history is always on, independent of these switches.
72
-
73
73
  ## Features
74
74
 
75
75
  - **History comes from the session's own message log**: reads the conversation snapshot's user nodes (`user` / `steering`) and appends as they land — strictly consistent with the transcript, persisted with the session, survives page reloads, and needs no configuration or extra storage.
@@ -89,7 +89,7 @@ pnpm run typecheck # tsc --noEmit
89
89
  pnpm run build # tsc (lib/types) + tsdown (lib/index.js / lib/invariant.js / lib/client.js)
90
90
  ```
91
91
 
92
- The browser half (`src/client/`) registers into the `conversation.input.right` slot; the build emits the DSH `__ModuleLoader__` closure format with `react` as the only external (everything else comes from the browser module table). Copy dictionaries live in `src/client/locales.ts` (`zh` authoritative, `en` key-parity) and register via `ctx.locale.register`.
92
+ The browser half (`src/client/`) registers into the `conversation.input.right` slot and the plugin-detail configuration card (`plugins.bundle.config`); the build emits the DSH `__ModuleLoader__` closure format with `react` and the official `@deepseek-ai/*` peer packages as externals (everything else comes from the browser module table). The card uses the official `SettingsForm` shell with `SettingsCardController` for staged drafts and revision fencing. Copy dictionaries live in `src/client/locales.ts` (`zh` authoritative, `en` key-parity) and register via `ctx.locale.register`.
93
93
 
94
94
  ## How it works
95
95
 
package/README.es.md CHANGED
@@ -22,7 +22,8 @@
22
22
 
23
23
  | Superficie | Estado |
24
24
  |---|---|
25
- | Plataforma | Solo Web GUI (plugin de cliente; estado local del navegador; sin red, sin código nativo) |
25
+ | Versiones de DSH | Apunta a **0.2.0-rc.2**; la tarjeta de configuración usa `plugins.bundle.config` con el schema `Config` del Host y el armazón oficial `SettingsForm` |
26
+ | Plataforma | Solo Web GUI (plugin de cliente; ajustes persistidos por el Host de DSH; el historial entre sesiones queda en el almacenamiento local del navegador) |
26
27
  | Node | `>=20` |
27
28
  | Modelo | Cualquiera (no hace peticiones al modelo — comportamiento de UI puro) |
28
29
  | Idioma de la interfaz | 中文 / English (sigue el idioma de la app de DSH, se cambia en Ajustes) |
@@ -59,16 +60,16 @@ dsh plugin --profile web add @wenaixi/dsh-prompt-history
59
60
 
60
61
  ## Configuración
61
62
 
62
- Abre **Ajustes → `>_ Terminal Input`** (almacenado en localStorage del navegador, efectivo al instante):
63
+ Abre **Plugins → `@wenaixi/dsh-prompt-history` → configuración** (persistido por el Host de DSH en `cordis.patch.yml`; los ajustes antiguos del navegador se migran en la primera apertura). La tarjeta es el `SettingsForm` oficial: los cambios quedan en un borrador hasta que pulsas Guardar, que escribe al Host en una sola mutación con bloqueo de revisión.
63
64
 
64
65
  | Opción | Predeterminado | Significado |
65
66
  |---|---|---|
66
- | Modo de copia (al seleccionar) | `Barra de herramientas` | `Barra` (recomendado; escribe en el portapapeles solo al hacer clic) / `Copiar automático al seleccionar` (estilo terminal) |
67
- | Historial entre sesiones | Apagado | El historial de ↑/↓ persiste entre sesiones en localStorage (límite 200) |
67
+ | Al seleccionar texto | `Mostrar barra` | `Nada` / `Mostrar barra` (escribe en el portapapeles solo al hacer clic) / `Copiar al instante` (estilo terminal) |
68
+ | Abrir lista de historial | `Ambas` | `Solo Ctrl+R` / `Solo doble Esc` / `Ambas` |
69
+ | Historial ↑/↓ | Activado | Apagado devuelve ↑/↓, Ctrl+R y doble Esc al Host |
70
+ | Memoria entre sesiones | Apagado | El historial de ↑/↓ persiste entre sesiones en el almacenamiento local (límite 200) |
68
71
  | Pegar con clic derecho | Activado | Apagado restaura el menú contextual nativo del navegador |
69
72
 
70
- El historial de ↑/↓ siempre está activo, independientemente de estos interruptores.
71
-
72
73
  ## Características
73
74
 
74
75
  - **El historial proviene del registro de mensajes de la propia sesión**: lee los nodos de usuario (`user` / `steering`) de la instantánea de la conversación y los añade según llegan — estrictamente consistente con la transcripción, persistido con la sesión, sobrevive a recargas de página y no necesita configuración ni almacenamiento extra.
@@ -88,7 +89,7 @@ pnpm run typecheck # tsc --noEmit
88
89
  pnpm run build # tsc (lib/types) + tsdown (lib/index.js / lib/invariant.js / lib/client.js)
89
90
  ```
90
91
 
91
- La mitad del navegador (`src/client/`) se registra en el slot `conversation.input.right`; el build emite el formato de cierre `__ModuleLoader__` de DSH con `react` como única dependencia externa (todo lo demás viene de la tabla de módulos del navegador). Los diccionarios viven en `src/client/locales.ts` (`zh` autoritativo, `en` con paridad de claves) y se registran con `ctx.locale.register`.
92
+ La mitad del navegador (`src/client/`) se registra en el slot `conversation.input.right` y en la tarjeta de configuración del detalle del plugin (`plugins.bundle.config`); el build emite el formato de cierre `__ModuleLoader__` de DSH con `react` y los paquetes peer oficiales `@deepseek-ai/*` como externos. La tarjeta usa el armazón `SettingsForm` oficial con `SettingsCardController` para borradores y bloqueo de revisión. Los diccionarios viven en `src/client/locales.ts` (`zh` autoritativo, `en` con paridad de claves) y se registran con `ctx.locale.register`.
92
93
 
93
94
  ## Cómo funciona
94
95
 
package/README.md CHANGED
@@ -22,8 +22,8 @@
22
22
 
23
23
  | 表面 | 状态 |
24
24
  |---|---|
25
- | DSH 版本 | 目标为 **0.2.0-rc.2**;客户端配置卡片使用 `plugins.bundle.config` 与 Host `Config` schema |
26
- | 平台 | Web GUI(客户端插件;设置由 DSH Host 配置持久化;历史数据仍按功能需要使用浏览器本地存储) |
25
+ | DSH 版本 | 目标为 **0.2.0-rc.2**;客户端配置卡片使用 `plugins.bundle.config` 与 Host `Config` schema,UI 走官方 `SettingsForm` 体系 |
26
+ | 平台 | Web GUI(客户端插件;设置由 DSH Host 配置持久化;跨会话历史存浏览器本地) |
27
27
  | Node | `>=20` |
28
28
  | 模型 | 任意(不发起模型请求 —— 纯 UI 行为) |
29
29
  | 界面语言 | 中文 / English(跟随 DSH 应用语言,设置页可切换) |
@@ -61,16 +61,16 @@ dsh plugin --profile web add @wenaixi/dsh-prompt-history
61
61
 
62
62
  ## 配置
63
63
 
64
- 打开 **插件 → `@wenaixi/dsh-prompt-history` → 配置**(由 DSH 宿主配置持久化;旧版浏览器设置会在首次打开时自动迁移):
64
+ 打开 **插件 → `@wenaixi/dsh-prompt-history` → 配置**(由 DSH 宿主配置持久化到 `cordis.patch.yml`;旧版浏览器设置会在首次打开时自动迁移)。配置卡是官方 `SettingsForm`:改动只进草稿,点「保存」才一次写入宿主:
65
65
 
66
66
  | 选项 | 默认 | 说明 |
67
67
  |---|---|---|
68
- | 复制方式(选中文字时) | `工具栏复制` | `工具栏`(推荐,点击才写剪贴板)/ `选中即自动复制`(终端风格) |
69
- | 跨会话历史记忆 | 关 | ↑/↓ 历史在会话间保持,历史数据存于浏览器本地,上限 200 条 |
68
+ | 选中文本后 | `弹出工具栏` | `什么都不做` / `弹出工具栏`(点击才写剪贴板)/ `选中即复制`(终端风格) |
69
+ | 打开历史列表 | `两者都要` | `只用 Ctrl+R` / `只用双击 Esc` / `两者都要` |
70
+ | 上下键历史 | 开 | 关闭后 ↑/↓、Ctrl+R 与双击 Esc 全部交还宿主 |
71
+ | 跨会话记忆 | 关 | ↑/↓ 历史在会话间保持,存浏览器本地,上限 200 条 |
70
72
  | 右键直接粘贴 | 开 | 关闭后右键恢复浏览器原生菜单 |
71
73
 
72
- ↑/↓ 历史始终开启,不随以上开关变化。
73
-
74
74
  ## 特性
75
75
 
76
76
  - **历史来自会话自身的消息记录**:直接读取会话快照中的用户消息节点(`user` / `steering`),随消息落地实时追加——与聊天记录严格一致,随会话持久化,刷新页面后依然可用,不需要任何配置或额外存储。
@@ -91,7 +91,7 @@ pnpm run typecheck # tsc --noEmit
91
91
  pnpm run build # tsc(lib/types)+ tsdown(lib/index.js / lib/invariant.js / lib/client.js)
92
92
  ```
93
93
 
94
- 浏览器半区(`src/client/`)注册在 `conversation.input.right` 槽位,构建产物为 DSH `__ModuleLoader__` 闭包格式,外部依赖仅 `react`(其余由浏览器模块表提供)。文案字典在 `src/client/locales.ts`(`zh` 为准、`en` 键位对齐),通过 `ctx.locale.register` 注册。
94
+ 浏览器半区(`src/client/`)注册在 `conversation.input.right` 槽位与插件详情页配置卡(`plugins.bundle.config`),构建产物为 DSH `__ModuleLoader__` 闭包格式,外部依赖仅 `react` 与官方 `@deepseek-ai/*` peer 包(其余由浏览器模块表提供)。配置卡走官方 `SettingsForm` 体系(`SettingsCardController` 做 staged 草稿与冲突栅栏)。文案字典在 `src/client/locales.ts`(`zh` 为准、`en` 键位对齐),通过 `ctx.locale.register` 注册。
95
95
 
96
96
  ## 原理
97
97
 
package/README.pt.md CHANGED
@@ -22,7 +22,8 @@
22
22
 
23
23
  | Superfície | Estado |
24
24
  |---|---|
25
- | Plataforma | Somente Web GUI (plugin de cliente; estado local do navegador; sem rede, sem código nativo) |
25
+ | Versões do DSH | Direcionado à **0.2.0-rc.2**; o cartão de configuração usa `plugins.bundle.config` com o schema `Config` do Host e o invólucro oficial `SettingsForm` |
26
+ | Plataforma | Somente Web GUI (plugin de cliente; ajustes persistidos pelo Host do DSH; histórico entre sessões permanece no armazenamento local do navegador) |
26
27
  | Node | `>=20` |
27
28
  | Modelo | Qualquer (não faz requisições ao modelo — comportamento puro de UI) |
28
29
  | Idioma da interface | 中文 / English (segue o idioma do app DSH, alterável em Configurações) |
@@ -59,16 +60,16 @@ dsh plugin --profile web add @wenaixi/dsh-prompt-history
59
60
 
60
61
  ## Configuração
61
62
 
62
- Abra **Configurações → `>_ Terminal Input`** (armazenado em localStorage do navegador, efeito imediato):
63
+ Abra **Plugins → `@wenaixi/dsh-prompt-history` → configuração** (persistido pelo Host do DSH em `cordis.patch.yml`; os ajustes antigos do navegador migram na primeira abertura). O cartão é o `SettingsForm` oficial: as alterações ficam em um rascunho até você clicar em Salvar, que grava no Host em uma única mutação com trava de revisão.
63
64
 
64
65
  | Opção | Padrão | Significado |
65
66
  |---|---|---|
66
- | Modo de cópia (ao selecionar) | `Barra de ferramentas` | `Barra` (recomendado; grava na área de transferência só ao clicar) / `Copiar automaticamente ao selecionar` (estilo terminal) |
67
- | Histórico entre sessões | Desligado | O histórico de ↑/↓ persiste entre sessões em localStorage (limite 200) |
67
+ | Ao selecionar texto | `Mostrar barra` | `Nada` / `Mostrar barra` (grava na área de transferência só ao clicar) / `Copiar imediatamente` (estilo terminal) |
68
+ | Abrir lista de histórico | `Ambas` | `Somente Ctrl+R` / `Somente Esc duplo` / `Ambas` |
69
+ | Histórico ↑/↓ | Ligado | Desligado devolve ↑/↓, Ctrl+R e Esc duplo ao Host |
70
+ | Memória entre sessões | Desligado | O histórico de ↑/↓ persiste entre sessões no armazenamento local (limite 200) |
68
71
  | Colar com botão direito | Ligado | Desligado restaura o menu de contexto nativo do navegador |
69
72
 
70
- O histórico de ↑/↓ está sempre ligado, independentemente dessas alternâncias.
71
-
72
73
  ## Recursos
73
74
 
74
75
  - **O histórico vem do registro de mensagens da própria sessão**: lê os nós de usuário (`user` / `steering`) do snapshot da conversa e os anexa conforme chegam — estritamente consistente com a transcrição, persistido com a sessão, sobrevive a recarregamentos de página e não precisa de configuração nem armazenamento extra.
@@ -88,7 +89,7 @@ pnpm run typecheck # tsc --noEmit
88
89
  pnpm run build # tsc (lib/types) + tsdown (lib/index.js / lib/invariant.js / lib/client.js)
89
90
  ```
90
91
 
91
- A metade do navegador (`src/client/`) se registra no slot `conversation.input.right`; o build emite o formato de closure `__ModuleLoader__` do DSH com `react` como único externo (o resto vem da tabela de módulos do navegador). Os dicionários vivem em `src/client/locales.ts` (`zh` autoritativo, `en` com paridade de chaves) e se registram via `ctx.locale.register`.
92
+ A metade do navegador (`src/client/`) se registra no slot `conversation.input.right` e no cartão de configuração do detalhe do plugin (`plugins.bundle.config`); o build emite o formato de closure `__ModuleLoader__` do DSH com `react` e os pacotes peer oficiais `@deepseek-ai/*` como externos. O cartão usa o invólucro `SettingsForm` oficial com `SettingsCardController` para rascunhos e trava de revisão. Os dicionários vivem em `src/client/locales.ts` (`zh` autoritativo, `en` com paridade de chaves) e se registram via `ctx.locale.register`.
92
93
 
93
94
  ## Como funciona
94
95