dsh-draw 0.2.17 → 0.2.18

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 CHANGED
@@ -6,6 +6,14 @@ 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
8
 
9
+ ## [Unreleased]
10
+
11
+ ## [0.2.18] - 2026-09-25
12
+
13
+ ### Changed
14
+
15
+ - Host pins move to `0.1.7-rc.2`; re-verified against that host line. Every `@deepseek-ai/dsh-*` dev/test dependency now pins `0.1.7-rc.2`, the `dshWorkshop.compatibility.dshVersions` timeline appends `0.1.7-rc.2`, and the compatibility baseline in every README records the `dsh-v0.1.7-rc.2` host. The declared host ranges (`engines.dsh` and the `peerDependencies` union) are deliberately **unchanged** — they already admit `0.1.7-rc.2`, and a range is what the manifest accepts, not what has been tested.
16
+
9
17
  ## [0.2.17] - 2026-09-23
10
18
 
11
19
  ### Fixed
package/README-es.md CHANGED
@@ -25,11 +25,18 @@
25
25
 
26
26
  ---
27
27
 
28
+
29
+ <!-- star-cta -->
30
+ ## ⭐ 如果它帮到了你
31
+
32
+ Este plugin forma parte de la [familia de plugins DSH](https://github.com/PerryLink) (más de 40, todos Apache-2.0). Si te resulta útil, **dale una estrella**: no desbloquea nada, pero ayuda a que la siguiente persona lo encuentre antes.
33
+
34
+ *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
28
35
  ## Compatibilidad
29
36
 
30
37
  | Superficie | Estado |
31
38
  |---|---|
32
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (compatibilidad declarada para `0.1.5-rc.2`) |
39
+ | Harness | DeepSeek Harness `dsh-v0.1.7-rc.2` (compatibilidad declarada para `0.1.5-rc.2`) |
33
40
  | Node | `^22.19.0 \|\| >=24.0.0` |
34
41
  | Motores | Cualquier endpoint de imágenes compatible con OpenAI; presets para OpenAI Images (`gpt-image-1`) y Zhipu CogView (`cogview-3-flash`) |
35
42
  | Superficies | Herramienta host `image_generate` + tarjeta de resultado web + pestaña de ajustes de Plugins |
@@ -37,7 +44,7 @@
37
44
  La mitad de navegador se apoya en el `Context` de cordis y en los paquetes de cliente publicados (`dsh-client-ui-slots`, `dsh-client-ui-settings`, `dsh-client-ui-tool`, `dsh-client-locale`, `dsh-client-connection`); ya no depende del paquete eliminado `dsh-client-runtime` (el bloque de llamada de herramienta se lee mediante un contrato estructural local), por lo que la superficie de cliente también encaja con hosts `0.1.2-rc.1`.
38
45
  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. Verificado el 2026-09-06 contra el master checkout dsh-v0.1.7-alpha.1 (cadena completa de puertas + smoke de instalación de perfil).
39
46
  0.1.6-alpha.2 (adaptado el 2026-09-18): el tercer parámetro de `Session.append` existe solo para tipos de superficie y es un `SurfaceIntent`, nunca un sobre `ignorable`, así que el tipo no-superficie `draw/generated` tampoco se escribe en esta línea — la cuota se cuenta en memoria por sesión y se reinicia al reiniciar la sesión (véase la nota de durabilidad de cuota). Verificado el 2026-09-18 (doble typecheck + suite completa + puertas self-contained/artifacts/readme).
40
- 0.1.7-rc.1 (adaptado el 2026-09-23): el contrato de cliente `tool.call.toolview` dividió su owner en tres etapas (`preparing` / `start` / `result`), y una tarjeta con clave ahora se despacha mientras los argumentos aún llegan en streaming. Por eso la tarjeta de resultado también dibuja su fila en curso para esas etapas previas: una celda keyed ocupada nunca alcanza la fila genérica del host, así que responder a una etapa preparada con nada dejaba la línea en blanco durante toda la ventana de streaming. Nada más cambia: la tarjeta liquidada, la línea de contabilidad y regenerar se comportan igual que antes. Verificado el 2026-09-23 (doble typecheck + suite completa + la nueva puerta host-contract).
47
+ 0.1.7-rc.2 (adaptado el 2026-09-23): el contrato de cliente `tool.call.toolview` dividió su owner en tres etapas (`preparing` / `start` / `result`), y una tarjeta con clave ahora se despacha mientras los argumentos aún llegan en streaming. Por eso la tarjeta de resultado también dibuja su fila en curso para esas etapas previas: una celda keyed ocupada nunca alcanza la fila genérica del host, así que responder a una etapa preparada con nada dejaba la línea en blanco durante toda la ventana de streaming. Nada más cambia: la tarjeta liquidada, la línea de contabilidad y regenerar se comportan igual que antes. Verificado el 2026-09-23 (doble typecheck + suite completa + la nueva puerta host-contract).
41
48
 
42
49
  ## Qué obtienes
43
50
 
@@ -148,7 +155,7 @@ Ejemplo de sobrescritura en el parche de tu perfil:
148
155
  ```sh
149
156
  pnpm install # node ^22.19 || >=24
150
157
  pnpm run typecheck # tsc: src + tests contra el checkout local del harness
151
- pnpm run typecheck:ci # tsc contra las caras publicadas 0.1.7-rc.1 (sin paths)
158
+ pnpm run typecheck:ci # tsc contra las caras publicadas 0.1.7-rc.2 (sin paths)
152
159
  pnpm test # vitest: 19 archivos spec (transporte guionado, Context/Session/ToolRuntime reales)
153
160
  pnpm run build # declaraciones tsc + bundles tsdown (lib/)
154
161
  pnpm run verify:self-contained # las especificaciones de dependencias resuelven desde el registry
package/README-hi.md CHANGED
@@ -25,11 +25,18 @@
25
25
 
26
26
  ---
27
27
 
28
+
29
+ <!-- star-cta -->
30
+ ## ⭐ 如果它帮到了你
31
+
32
+ यह प्लगइन [DSH प्लगइन परिवार](https://github.com/PerryLink) का हिस्सा है (40+ प्लगइन, सभी Apache-2.0)। अगर यह उपयोगी लगे, तो **एक स्टार दें** — इससे कोई सुविधा अनलॉक नहीं होती, पर अगला व्यक्ति इसे खोज में आसानी से पा लेता है।
33
+
34
+ *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
28
35
  ## संगतता
29
36
 
30
37
  | सतह | स्थिति |
31
38
  |---|---|
32
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (`0.1.5-rc.2` के लिए घोषित संगतता) |
39
+ | Harness | DeepSeek Harness `dsh-v0.1.7-rc.2` (`0.1.5-rc.2` के लिए घोषित संगतता) |
33
40
  | Node | `^22.19.0 \|\| >=24.0.0` |
34
41
  | इंजन | कोई भी OpenAI-संगत images एंडपॉइंट; OpenAI Images (`gpt-image-1`) और Zhipu CogView (`cogview-3-flash`) प्रीसेट |
35
42
  | सतहें | Host `image_generate` टूल + वेब परिणाम कार्ड + Plugins सेटिंग टैब |
@@ -37,7 +44,7 @@
37
44
  ब्राउज़र हिस्सा cordis `Context` और प्रकाशित क्लाइंट पैकेजों (`dsh-client-ui-slots`, `dsh-client-ui-settings`, `dsh-client-ui-tool`, `dsh-client-locale`, `dsh-client-connection`) पर चलता है; यह अब हटाए गए `dsh-client-runtime` पैकेज पर निर्भर नहीं करता (टूल-कॉल ब्लॉक स्थानीय संरचनात्मक अनुबंध से पढ़ा जाता है), इसलिए क्लाइंट सतह `0.1.2-rc.1` होस्ट के साथ भी मेल खाती है।
38
45
  0.1.2-rc.1 (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। 2026-09-06 को dsh-v0.1.7-alpha.1 master checkout के विरुद्ध सत्यापित (पूर्ण गेट श्रृंखला + प्रोफ़ाइल इंस्टॉल स्मोक)।
39
46
  0.1.6-alpha.2 (2026-09-18 को अनुकूलित): `Session.append` का तीसरा पैरामीटर केवल सरफ़ेस-योग्य प्रकारों के लिए होता है और वह `SurfaceIntent` है, कभी `ignorable` एनवेलप नहीं, इसलिए गैर-सरफ़ेस `draw/generated` इस लाइन पर अब भी नहीं लिखा जाता — कोटा प्रति-सत्र स्मृति में गिना जाता है और सत्र पुनः आरंभ पर रीसेट होता है। 2026-09-18 को सत्यापित (दोहरा typecheck + पूरी सूट + self-contained/artifacts/readme गेट)।
40
- 0.1.7-rc.1 (2026-09-23 को अनुकूलित): क्लाइंट `tool.call.toolview` अनुबंध ने अपने owner को तीन चरणों (`preparing` / `start` / `result`) में बाँट दिया, और अब keyed कार्ड तब भी भेजा जाता है जब आर्ग्युमेंट अभी स्ट्रीम हो रहे हों। इसलिए परिणाम कार्ड उन पूर्व चरणों के लिए अपनी इन-फ़्लाइट पंक्ति भी दिखाता है: भरा हुआ keyed सेल कभी होस्ट की सामान्य पंक्ति तक नहीं पहुँचता, इसलिए तैयारी के चरण को खाली उत्तर देने से पूरी स्ट्रीमिंग अवधि में वह पंक्ति खाली रह जाती थी। और कुछ नहीं बदला: तय हो चुका कार्ड, लेखा पंक्ति और पुनः-उत्पादन पहले जैसे ही व्यवहार करते हैं। 2026-09-23 को सत्यापित (दोहरा typecheck + पूरी सूट + नया host-contract गेट)।
47
+ 0.1.7-rc.2 (2026-09-23 को अनुकूलित): क्लाइंट `tool.call.toolview` अनुबंध ने अपने owner को तीन चरणों (`preparing` / `start` / `result`) में बाँट दिया, और अब keyed कार्ड तब भी भेजा जाता है जब आर्ग्युमेंट अभी स्ट्रीम हो रहे हों। इसलिए परिणाम कार्ड उन पूर्व चरणों के लिए अपनी इन-फ़्लाइट पंक्ति भी दिखाता है: भरा हुआ keyed सेल कभी होस्ट की सामान्य पंक्ति तक नहीं पहुँचता, इसलिए तैयारी के चरण को खाली उत्तर देने से पूरी स्ट्रीमिंग अवधि में वह पंक्ति खाली रह जाती थी। और कुछ नहीं बदला: तय हो चुका कार्ड, लेखा पंक्ति और पुनः-उत्पादन पहले जैसे ही व्यवहार करते हैं। 2026-09-23 को सत्यापित (दोहरा typecheck + पूरी सूट + नया host-contract गेट)।
41
48
 
42
49
  ## आपको क्या मिलता है
43
50
 
@@ -148,7 +155,7 @@ dsh --profile web --dump-config | grep -A2 'id: dsh-draw'
148
155
  ```sh
149
156
  pnpm install # node ^22.19 || >=24
150
157
  pnpm run typecheck # tsc: src + tests स्थानीय हार्नेस चेकआउट के विरुद्ध
151
- pnpm run typecheck:ci # tsc प्रकाशित 0.1.7-rc.1 फ़ेस के विरुद्ध (बिना paths)
158
+ pnpm run typecheck:ci # tsc प्रकाशित 0.1.7-rc.2 फ़ेस के विरुद्ध (बिना paths)
152
159
  pnpm test # vitest: 19 spec फ़ाइलें (स्क्रिप्टेड ट्रांसपोर्ट, वास्तविक Context/Session/ToolRuntime)
153
160
  pnpm run build # tsc घोषणाएँ + tsdown बंडल (lib/)
154
161
  pnpm run verify:self-contained # निर्भरता स्पेक registry से हल होती हैं
package/README-pt.md CHANGED
@@ -25,11 +25,18 @@
25
25
 
26
26
  ---
27
27
 
28
+
29
+ <!-- star-cta -->
30
+ ## ⭐ 如果它帮到了你
31
+
32
+ Este plugin faz parte da [família de plugins DSH](https://github.com/PerryLink) (mais de 40, todos Apache-2.0). Se for útil, **deixe uma estrela**: não desbloqueia nada, mas ajuda a próxima pessoa a encontrá-lo.
33
+
34
+ *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
28
35
  ## Compatibilidade
29
36
 
30
37
  | Superfície | Status |
31
38
  |---|---|
32
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (compatibilidade declarada para `0.1.5-rc.2`) |
39
+ | Harness | DeepSeek Harness `dsh-v0.1.7-rc.2` (compatibilidade declarada para `0.1.5-rc.2`) |
33
40
  | Node | `^22.19.0 \|\| >=24.0.0` |
34
41
  | Motores | Qualquer endpoint de imagens compatível com OpenAI; presets para OpenAI Images (`gpt-image-1`) e Zhipu CogView (`cogview-3-flash`) |
35
42
  | Superfícies | Ferramenta host `image_generate` + cartão de resultado web + aba de ajustes de Plugins |
@@ -37,7 +44,7 @@
37
44
  A metade de navegador usa o `Context` do cordis e os pacotes de cliente publicados (`dsh-client-ui-slots`, `dsh-client-ui-settings`, `dsh-client-ui-tool`, `dsh-client-locale`, `dsh-client-connection`); ela não depende mais do pacote removido `dsh-client-runtime` (o bloco de chamada de ferramenta é lido por um contrato estrutural local), então a superfície de cliente também se alinha com hosts `0.1.2-rc.1`.
38
45
  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. Verificado em 2026-09-06 contra o checkout master dsh-v0.1.7-alpha.1 (cadeia completa de portas + smoke de instalação de perfil).
39
46
  0.1.6-alpha.2 (adaptado em 2026-09-18): o terceiro parâmetro de `Session.append` existe apenas para tipos de superfície e é um `SurfaceIntent`, nunca um envelope `ignorable`, então o tipo não-superfície `draw/generated` também não é gravado nesta linha — a cota é contada em memória por sessão e zera ao reiniciar a sessão (ver a nota de durabilidade de cota). Verificado em 2026-09-18 (typecheck duplo + suíte completa + portas self-contained/artifacts/readme).
40
- 0.1.7-rc.1 (adaptado em 2026-09-23): o contrato de cliente `tool.call.toolview` dividiu seu owner em três estágios (`preparing` / `start` / `result`), e um cartão com chave agora é despachado enquanto os argumentos ainda chegam em streaming. Por isso o cartão de resultado também desenha sua linha em andamento para esses estágios anteriores: uma célula keyed ocupada nunca alcança a linha genérica do host, então responder a um estágio de preparação com nada deixava a linha em branco durante toda a janela de streaming. Nada mais muda: o cartão liquidado, a linha de contabilidade e o regenerar se comportam como antes. Verificado em 2026-09-23 (typecheck duplo + suíte completa + a nova porta host-contract).
47
+ 0.1.7-rc.2 (adaptado em 2026-09-23): o contrato de cliente `tool.call.toolview` dividiu seu owner em três estágios (`preparing` / `start` / `result`), e um cartão com chave agora é despachado enquanto os argumentos ainda chegam em streaming. Por isso o cartão de resultado também desenha sua linha em andamento para esses estágios anteriores: uma célula keyed ocupada nunca alcança a linha genérica do host, então responder a um estágio de preparação com nada deixava a linha em branco durante toda a janela de streaming. Nada mais muda: o cartão liquidado, a linha de contabilidade e o regenerar se comportam como antes. Verificado em 2026-09-23 (typecheck duplo + suíte completa + a nova porta host-contract).
41
48
 
42
49
  ## O que você ganha
43
50
 
@@ -148,7 +155,7 @@ Exemplo de sobrescrita no patch do seu perfil:
148
155
  ```sh
149
156
  pnpm install # node ^22.19 || >=24
150
157
  pnpm run typecheck # tsc: src + tests contra o checkout local do harness
151
- pnpm run typecheck:ci # tsc contra as faces publicadas 0.1.7-rc.1 (sem paths)
158
+ pnpm run typecheck:ci # tsc contra as faces publicadas 0.1.7-rc.2 (sem paths)
152
159
  pnpm test # vitest: 19 arquivos spec (transporte roteirizado, Context/Session/ToolRuntime reais)
153
160
  pnpm run build # declarações tsc + bundles tsdown (lib/)
154
161
  pnpm run verify:self-contained # as especificações de dependências resolvem pelo registry
package/README-zh.md CHANGED
@@ -25,11 +25,18 @@
25
25
 
26
26
  ---
27
27
 
28
+
29
+ <!-- star-cta -->
30
+ ## ⭐ 如果它帮到了你
31
+
32
+ 这个插件是 [DSH 插件家族](https://github.com/PerryLink)的一员(40+ 个,全部 Apache-2.0)。如果你在用,**给个 star** —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
33
+
34
+ *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
28
35
  ## 兼容性
29
36
 
30
37
  | 方面 | 状态 |
31
38
  |---|---|
32
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1`(声明兼容 `0.1.5-rc.2`) |
39
+ | Harness | DeepSeek Harness `dsh-v0.1.7-rc.2`(声明兼容 `0.1.5-rc.2`) |
33
40
  | Node | `^22.19.0 \|\| >=24.0.0` |
34
41
  | 引擎 | 任意 OpenAI 兼容图像端点;内置 OpenAI Images(`gpt-image-1`)与智谱 CogView(`cogview-3-flash`)预设 |
35
42
  | 界面 | Host `image_generate` 工具 + Web 结果卡片 + Plugins 设置页签 |
@@ -37,7 +44,7 @@
37
44
  浏览器半边基于 cordis `Context` 与已发布的客户端包(`dsh-client-ui-slots`、`dsh-client-ui-settings`、`dsh-client-ui-tool`、`dsh-client-locale`、`dsh-client-connection`);它不再依赖已移除的 `dsh-client-runtime` 包(工具调用块经本地结构契约读取),因此客户端接口面同样对齐 `0.1.2-rc.1` 宿主。
38
45
  0.1.2-rc.1(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。已于 2026-09-06 对照 dsh-v0.1.7-alpha.1 master 检出核验(完整门禁链 + profile 安装冒烟)。
39
46
  0.1.6-alpha.2(2026-09-18 已适配):`Session.append` 的第三参仅对表面事件类型存在且为 `SurfaceIntent`,绝非 `ignorable` 信封,因此非表面的 `draw/generated` 在该线上仍不落盘——配额按会话内存计数、会话重启归零(与下方「配额持久性」一致)。已于 2026-09-18 核验(双 typecheck 尺子 + 全量测试 + self-contained/artifacts/readme 门)。
40
- 0.1.7-rc.1(2026-09-23 已适配):客户端 `tool.call.toolview` 契约把 owner 拆成三个阶段(`preparing` / `start` / `result`),且参数仍在流式到达时就会派发带 key 的卡片。因此结果卡片现在也为这些更早的阶段渲染「进行中」行——已占用的 keyed 槽位永远不会落到宿主自带的通用行,所以对准备阶段不作回应会让整行在整个流式窗口内空白。其余行为不变:结算后的卡片、账目行与重新生成与之前完全一致。已于 2026-09-23 核验(双 typecheck 尺子 + 全量测试 + 新增 host-contract 门)。
47
+ 0.1.7-rc.2(2026-09-23 已适配):客户端 `tool.call.toolview` 契约把 owner 拆成三个阶段(`preparing` / `start` / `result`),且参数仍在流式到达时就会派发带 key 的卡片。因此结果卡片现在也为这些更早的阶段渲染「进行中」行——已占用的 keyed 槽位永远不会落到宿主自带的通用行,所以对准备阶段不作回应会让整行在整个流式窗口内空白。其余行为不变:结算后的卡片、账目行与重新生成与之前完全一致。已于 2026-09-23 核验(双 typecheck 尺子 + 全量测试 + 新增 host-contract 门)。
41
48
 
42
49
  ## 你能得到什么
43
50
 
@@ -148,7 +155,7 @@ profile patch 中的覆盖示例:
148
155
  ```sh
149
156
  pnpm install # node ^22.19 || >=24
150
157
  pnpm run typecheck # tsc:src + tests,对照本地 harness checkout
151
- pnpm run typecheck:ci # tsc:对照已发布的 0.1.7-rc.1 类型(无 paths)
158
+ pnpm run typecheck:ci # tsc:对照已发布的 0.1.7-rc.2 类型(无 paths)
152
159
  pnpm test # vitest:19 个 spec 文件(scripted 传输、真实 Context/Session/ToolRuntime)
153
160
  pnpm run build # tsc 声明 + tsdown 打包(lib/)
154
161
  pnpm run verify:self-contained # 依赖声明全部来自 registry
package/README.md CHANGED
@@ -26,11 +26,19 @@
26
26
 
27
27
  ---
28
28
 
29
+ <!-- star-cta -->
30
+ ## ⭐ 如果它帮到了你
31
+
32
+ 这个插件是 [DSH 插件家族](https://github.com/PerryLink)的一员(40+ 个,全部 Apache-2.0)。如果你在用,**给个 star** —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
33
+
34
+ *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
35
+
36
+
29
37
  ## Compatibility
30
38
 
31
39
  | Surface | Status |
32
40
  |---|---|
33
- | Harness | DeepSeek Harness `dsh-v0.1.7-rc.1` (compat declared for `0.1.5-rc.2`) |
41
+ | Harness | DeepSeek Harness `dsh-v0.1.7-rc.2` (compat declared for `0.1.5-rc.2`) |
34
42
  | Node | `^22.19.0 \|\| >=24.0.0` |
35
43
  | Engines | Any OpenAI-compatible images endpoint; presets for OpenAI Images (`gpt-image-1`) and Zhipu CogView (`cogview-3-flash`) |
36
44
  | Surfaces | Host `image_generate` tool + web result card + Plugins settings tab |
@@ -38,7 +46,7 @@
38
46
  The browser half rides the cordis `Context` and the published client packages (`dsh-client-ui-slots`, `dsh-client-ui-settings`, `dsh-client-ui-tool`, `dsh-client-locale`, `dsh-client-connection`); it no longer depends on the removed `dsh-client-runtime` package (the tool-call block is read through a local structural contract), so the client surface also lines up with `0.1.2-rc.1` hosts.
39
47
  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. Verified 2026-09-06 against the dsh-v0.1.7-alpha.1 master checkout (full gate chain + profile install smoke).
40
48
  0.1.6-alpha.2 (adapted 2026-09-18): `Session.append`'s third parameter exists only for surface-eligible event types and is a `SurfaceIntent`, never an `ignorable` envelope, so `draw/generated` (a non-surface type) is still not written on this line — quota is counted in memory per session and resets when the session restarts, exactly as the "Quota durability" note below describes. Verified 2026-09-18 (dual typecheck rulers + the full suite + self-contained/artifacts/readme gates).
41
- 0.1.7-rc.1 (adapted 2026-09-23): the client `tool.call.toolview` contract split its owner into three stages (`preparing` / `start` / `result`), and a keyed card is now dispatched while the arguments are still streaming. The result card therefore also renders the in-flight row for those earlier stages — an occupied keyed slot never reaches the host's own generic row, so answering a prepared stage with nothing blanked the line for the whole streaming window. Nothing else changed: the settled card, the accounting line, and regenerate behave exactly as before. Verified 2026-09-23 (dual typecheck rulers + the full suite + the new host-contract gate).
49
+ 0.1.7-rc.2 (adapted 2026-09-23): the client `tool.call.toolview` contract split its owner into three stages (`preparing` / `start` / `result`), and a keyed card is now dispatched while the arguments are still streaming. The result card therefore also renders the in-flight row for those earlier stages — an occupied keyed slot never reaches the host's own generic row, so answering a prepared stage with nothing blanked the line for the whole streaming window. Nothing else changed: the settled card, the accounting line, and regenerate behave exactly as before. Verified 2026-09-23 (dual typecheck rulers + the full suite + the new host-contract gate).
42
50
 
43
51
  ## What you get
44
52
 
@@ -149,7 +157,7 @@ Example override in your profile patch:
149
157
  ```sh
150
158
  pnpm install # node ^22.19 || >=24
151
159
  pnpm run typecheck # tsc: src + tests against the local harness checkout
152
- pnpm run typecheck:ci # tsc against the published 0.1.7-rc.1 faces (no paths)
160
+ pnpm run typecheck:ci # tsc against the published 0.1.7-rc.2 faces (no paths)
153
161
  pnpm test # vitest: 19 spec files (scripted transport, real Context/Session/ToolRuntime)
154
162
  pnpm run build # tsc declarations + tsdown bundles (lib/)
155
163
  pnpm run verify:self-contained # dependency specs resolve from the registry
package/lib/index.js CHANGED
@@ -1391,7 +1391,7 @@ var EngineRouter = class {
1391
1391
  * @module dsh-draw/version
1392
1392
  */
1393
1393
  /** Plugin version; must equal the `version` field in `package.json`. */
1394
- const PLUGIN_VERSION = "0.2.17";
1394
+ const PLUGIN_VERSION = "0.2.18";
1395
1395
  //#endregion
1396
1396
  //#region src/service.ts
1397
1397
  /**
@@ -7,5 +7,5 @@
7
7
  * @module dsh-draw/version
8
8
  */
9
9
  /** Plugin version; must equal the `version` field in `package.json`. */
10
- export declare const PLUGIN_VERSION = "0.2.17";
10
+ export declare const PLUGIN_VERSION = "0.2.18";
11
11
  //# sourceMappingURL=version.d.ts.map
@@ -7,4 +7,4 @@
7
7
  * @module dsh-draw/version
8
8
  */
9
9
  /** Plugin version; must equal the `version` field in `package.json`. */
10
- export const PLUGIN_VERSION = '0.2.17';
10
+ export const PLUGIN_VERSION = '0.2.18';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-draw",
3
- "version": "0.2.17",
3
+ "version": "0.2.18",
4
4
  "description": "Unified static-image generation router for DeepSeek Harness: one image_generate tool with standard parameters, config-driven OpenAI-compatible engine routing (OpenAI Images, Zhipu CogView, and any compatible endpoint) with health-aware fallback, durable workspace attachment results, per-session quota accounting, an in-conversation result card, and a Plugins settings panel that stores API keys as credential references.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -89,7 +89,7 @@
89
89
  "attachments:write"
90
90
  ],
91
91
  "compatibility": {
92
- "dshVersions": ["0.1.2-rc.1","0.1.5-rc.2","0.1.7-alpha.2","0.1.7-rc.1"]
92
+ "dshVersions": ["0.1.2-rc.1","0.1.5-rc.2","0.1.7-alpha.2","0.1.7-rc.1", "0.1.7-rc.2"]
93
93
  },
94
94
  "capability": {
95
95
  "id": "image-generate-tool",
@@ -160,26 +160,26 @@
160
160
  "zod": "^4.4.3"
161
161
  },
162
162
  "devDependencies": {
163
- "@deepseek-ai/dsh-util-values": "0.1.7-rc.1",
163
+ "@deepseek-ai/dsh-util-values": "0.1.7-rc.2",
164
164
  "@deepseek-ai/cordis": "^4.0.4",
165
165
  "@deepseek-ai/cordis-plugin-include": "^1.0.7",
166
166
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
167
- "@deepseek-ai/dsh-agent": "0.1.7-rc.1",
168
- "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.1",
169
- "@deepseek-ai/dsh-attachment": "0.1.7-rc.1",
170
- "@deepseek-ai/dsh-attachment-local": "0.1.7-rc.1",
171
- "@deepseek-ai/dsh-brand": "0.1.7-rc.1",
172
- "@deepseek-ai/dsh-client-connection": "0.1.7-rc.1",
173
- "@deepseek-ai/dsh-client-locale": "0.1.7-rc.1",
174
- "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.1",
175
- "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.1",
176
- "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.1",
177
- "@deepseek-ai/dsh-credentials": "0.1.7-rc.1",
178
- "@deepseek-ai/dsh-credentials-local": "0.1.7-rc.1",
179
- "@deepseek-ai/dsh-llm": "0.1.7-rc.1",
180
- "@deepseek-ai/dsh-session": "0.1.7-rc.1",
181
- "@deepseek-ai/dsh-tools": "0.1.7-rc.1",
182
- "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.1",
167
+ "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
168
+ "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
169
+ "@deepseek-ai/dsh-attachment": "0.1.7-rc.2",
170
+ "@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
171
+ "@deepseek-ai/dsh-brand": "0.1.7-rc.2",
172
+ "@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
173
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
174
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
175
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
176
+ "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
177
+ "@deepseek-ai/dsh-credentials": "0.1.7-rc.2",
178
+ "@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2",
179
+ "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
180
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
181
+ "@deepseek-ai/dsh-tools": "0.1.7-rc.2",
182
+ "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2",
183
183
  "@deepseek-ai/schemastery": "^3.18.3",
184
184
  "@types/node": "^22.19.0",
185
185
  "@types/react": "18.3.31",
package/src/version.ts CHANGED
@@ -8,4 +8,4 @@
8
8
  */
9
9
 
10
10
  /** Plugin version; must equal the `version` field in `package.json`. */
11
- export const PLUGIN_VERSION = '0.2.17'
11
+ export const PLUGIN_VERSION = '0.2.18'