dsh-autotier 0.2.0 → 0.2.1

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/AGENTS.md CHANGED
@@ -38,7 +38,7 @@ records repo-local decisions.
38
38
  (`present.ts`), inline scoped stylesheet (`styles.ts`), and en/zh dictionaries
39
39
  (`locales.ts`). The slot registry is read through a local structural
40
40
  `SlotsFace` (its owning package differs across host lines).
41
- - `tests/` — vitest over the REAL published `0.1.2-rc.1` host packages
41
+ - `tests/` — vitest over the REAL published `0.1.5-rc.1` host packages
42
42
  (`Context`, `SessionStore`, `SystemPrompt`, `ToolRuntime`, `CommandRuntime`,
43
43
  in-memory `SettingsProvider`) plus one real Loader composition. The browser
44
44
  half is covered through its pure units (wire codecs, presenter, dictionaries)
@@ -95,7 +95,7 @@ with the shell's platform modules (`react`, `react/jsx-runtime`, the
95
95
  pnpm run verify:self-contained && pnpm run verify:artifacts && pnpm pack`. The
96
96
  plain `typecheck` resolves the local harness checkout's type faces through
97
97
  tsconfig `paths` (four levels up to `D:\deepseek-harness`); `typecheck:ci`
98
- resolves the npm-published `0.1.2-rc.1` faces (no paths) and is what CI runs —
98
+ resolves the npm-published `0.1.5-rc.1` faces (no paths) and is what CI runs —
99
99
  keep both green.
100
100
 
101
101
  ## Release
package/CHANGELOG.md CHANGED
@@ -5,6 +5,18 @@ All notable changes to this project are documented in this file.
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
+ ## [Unreleased]
9
+
10
+ ## [0.2.1] - 2026-09-10
11
+
12
+ ### Changed
13
+
14
+ - Pin the `@deepseek-ai/dsh-*` dev/test dependencies to the published `0.1.5-rc.1` line and record `0.1.5-rc.1` in `dshWorkshop.compatibility.dshVersions`; the monthly Compat workflow now runs against `0.1.5-rc.1`. The peer range `>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0` is unchanged, so no supported host line is dropped.
15
+
16
+ ### Docs
17
+
18
+ - Refresh the five-language README compatibility baseline to `dsh-v0.1.5-rc.1` (verified 2026-09-10).
19
+
8
20
  ## [0.2.0] - 2026-09-09
9
21
 
10
22
  ### Added
package/README.es.md CHANGED
@@ -20,7 +20,7 @@ strong con un TTL de retorno.
20
20
  | Harness | Estado |
21
21
  |---|---|
22
22
  | `@deepseek-ai/dsh` `0.1.2-rc.1` | compatible; el flujo compat instala esta línea de extremo a extremo |
23
- | `@deepseek-ai/dsh` `0.1.5-alpha.1` | compatible; verificada de extremo a extremo (perfil real, fila en `--dump-config`, smoke keyless) y en la matriz compat |
23
+ | `@deepseek-ai/dsh` `0.1.5-rc.1` | compatible; verificada de extremo a extremo (perfil real, fila en `--dump-config`, smoke keyless) y en la matriz compat |
24
24
  | `@deepseek-ai/cordis` `^4.0.2`, `@deepseek-ai/schemastery` `^3.18.2` | base de peers |
25
25
 
26
26
  Los rangos de peers nombran ambas líneas publicadas (`>=0.1.2-rc.1 <0.2.0 ||
@@ -207,10 +207,9 @@ cruzado se rechaza al guardar y la última política válida sigue vigente.
207
207
  el nivel cheap si quieres el mismo perfil de coste (`docs/supporting-lanes.md`).
208
208
  - `followSession: true` en el nivel cheap significa que una elección explícita de
209
209
  modelo en la sesión gana; en ese caso el nivel cheap no puede imponer el suyo.
210
- - **Aún no hay tarjeta de Settings ni píldora del compositor.** El enrutamiento es
211
- totalmente automático y la superficie host (`ctx.autotier.status()` /
212
- `catalog()`, `/tier`, `tier_status`, `tier_route`) está completa; la mitad de
213
- navegador está prevista para v0.2.
210
+ - **La tarjeta de Settings y la píldora del compositor llegaron en 0.2.0.** La
211
+ tarjeta (modo de enrutamiento, aterrizajes de nivel, catálogo de modelos) vive en
212
+ la sección Plugins y la píldora cicla el modo de la sesión desde el compositor.
214
213
  - **Un modelo elegido en la GUI no se detecta automáticamente.** Usa
215
214
  `routingMode: delegated` o `/tier off` para detener el enrutamiento.
216
215
  - **Las posteriores por huella viven en memoria** y se reinician al reiniciar.
@@ -222,7 +221,7 @@ cruzado se rechaza al guardar y la última política válida sigue vigente.
222
221
  ```bash
223
222
  pnpm install
224
223
  pnpm run typecheck # contra las caras de tipo del checkout local del harness
225
- pnpm run typecheck:ci # contra las caras publicadas 0.1.2-rc.1 (lo que ejecuta CI)
224
+ pnpm run typecheck:ci # contra las caras publicadas 0.1.5-rc.1 (lo que ejecuta CI)
226
225
  pnpm test
227
226
  pnpm run build
228
227
  pnpm run verify:self-contained
package/README.hi.md CHANGED
@@ -18,7 +18,7 @@ DeepSeek Harness के लिए स्वचालित मॉडल-स्
18
18
  | Harness | स्थिति |
19
19
  |---|---|
20
20
  | `@deepseek-ai/dsh` `0.1.2-rc.1` | संगत; compat वर्कफ़्लो इस लाइन को end-to-end इंस्टॉल करता है |
21
- | `@deepseek-ai/dsh` `0.1.5-alpha.1` | संगत; end-to-end सत्यापित (वास्तविक profile, `--dump-config` पंक्ति, keyless smoke) और compat मैट्रिक्स में |
21
+ | `@deepseek-ai/dsh` `0.1.5-rc.1` | संगत; end-to-end सत्यापित (वास्तविक profile, `--dump-config` पंक्ति, keyless smoke) और compat मैट्रिक्स में |
22
22
  | `@deepseek-ai/cordis` `^4.0.2`, `@deepseek-ai/schemastery` `^3.18.2` | peer आधार |
23
23
 
24
24
  peer ranges दोनों प्रकाशित लाइनें स्पष्ट रूप से लिखती हैं (`>=0.1.2-rc.1 <0.2.0
@@ -203,9 +203,9 @@ dsh plugin --profile web remove dsh-autotier
203
203
  संरेखित करें (`docs/supporting-lanes.md`)।
204
204
  - cheap स्तर पर `followSession: true` का अर्थ है कि सत्र का स्पष्ट मॉडल चयन
205
205
  जीतता है; उस स्थिति में cheap स्तर अपना मॉडल नहीं थोप सकता।
206
- - **अभी Settings कार्ड या composer पिल नहीं है।** रूटिंग पूरी तरह स्वचालित है और
207
- host सतह (`ctx.autotier.status()` / `catalog()`, `/tier`, `tier_status`,
208
- `tier_route`) पूरी है; ब्राउज़र आधा v0.2 में नियोजित है।
206
+ - **Settings कार्ड और composer पिल 0.2.0 में आ गए हैं।** कार्ड (रूटिंग मोड, लाइव
207
+ स्तर लैंडिंग, मॉडल कैटलॉग) Plugins सेटिंग्स अनुभाग में है और पिल composer से सत्र
208
+ मोड बदलता है।
209
209
  - **GUI में चुना गया मॉडल स्वचालित रूप से नहीं पहचाना जाता।** रूटिंग रोकने के लिए
210
210
  `routingMode: delegated` या `/tier off` इस्तेमाल करें।
211
211
  - **फिंगरप्रिंट posteriors केवल स्मृति में रहते हैं** और पुनः आरंभ पर रीसेट होते हैं।
@@ -217,7 +217,7 @@ dsh plugin --profile web remove dsh-autotier
217
217
  ```bash
218
218
  pnpm install
219
219
  pnpm run typecheck # स्थानीय harness checkout के type faces के विरुद्ध
220
- pnpm run typecheck:ci # प्रकाशित 0.1.2-rc.1 faces के विरुद्ध (CI यही चलाता है)
220
+ pnpm run typecheck:ci # प्रकाशित 0.1.5-rc.1 faces के विरुद्ध (CI यही चलाता है)
221
221
  pnpm test
222
222
  pnpm run build
223
223
  pnpm run verify:self-contained
package/README.md CHANGED
@@ -18,7 +18,7 @@ escalate to the strong tier with a TTL fallback.
18
18
  | Harness | Status |
19
19
  |---|---|
20
20
  | `@deepseek-ai/dsh` `0.1.2-rc.1` | compatible; the compat workflow installs this line end-to-end |
21
- | `@deepseek-ai/dsh` `0.1.5-alpha.1` | compatible; verified end-to-end (real profile install, `--dump-config` row, keyless headless smoke) and in the compat matrix |
21
+ | `@deepseek-ai/dsh` `0.1.5-rc.1` | compatible; verified end-to-end (real profile install, `--dump-config` row, keyless headless smoke) and in the compat matrix |
22
22
  | `@deepseek-ai/cordis` `^4.0.2`, `@deepseek-ai/schemastery` `^3.18.2` | peer baseline |
23
23
 
24
24
  Peer ranges name both published lines explicitly (`>=0.1.2-rc.1 <0.2.0 ||
@@ -203,10 +203,9 @@ refused at save time and the last good policy stays in effect.
203
203
  want the same cost profile (`docs/supporting-lanes.md`).
204
204
  - `followSession: true` on the cheap tier means an explicit session model choice
205
205
  wins; in that case the cheap tier cannot force its own model.
206
- - **No Settings card or composer pill yet.** Routing is fully automatic and the
207
- host surface (`ctx.autotier.status()` / `catalog()`, `/tier`, `tier_status`,
208
- `tier_route`) is complete; the browser half that renders a Settings tab and a
209
- composer tier pill is planned for v0.2.
206
+ - **The Settings card and composer tier pill shipped in 0.2.0.** The card
207
+ (routing mode, live tier landings, model catalog) lives in the Plugins settings
208
+ section and the pill cycles the session mode from the composer.
210
209
  - **A model picked in the GUI is not detected automatically.** The router does
211
210
  not watch the `agent-default-model` document, so switching models there does
212
211
  not by itself stop routing — use `routingMode: delegated` or `/tier off`.
@@ -221,7 +220,7 @@ refused at save time and the last good policy stays in effect.
221
220
  ```bash
222
221
  pnpm install
223
222
  pnpm run typecheck # against the local harness checkout type faces
224
- pnpm run typecheck:ci # against the published 0.1.2-rc.1 faces (what CI runs)
223
+ pnpm run typecheck:ci # against the published 0.1.5-rc.1 faces (what CI runs)
225
224
  pnpm test
226
225
  pnpm run build
227
226
  pnpm run verify:self-contained
package/README.pt.md CHANGED
@@ -19,7 +19,7 @@ retorno.
19
19
  | Harness | Estado |
20
20
  |---|---|
21
21
  | `@deepseek-ai/dsh` `0.1.2-rc.1` | compatível; o fluxo compat instala esta linha ponta a ponta |
22
- | `@deepseek-ai/dsh` `0.1.5-alpha.1` | compatível; verificada ponta a ponta (perfil real, linha no `--dump-config`, smoke keyless) e na matriz compat |
22
+ | `@deepseek-ai/dsh` `0.1.5-rc.1` | compatível; verificada ponta a ponta (perfil real, linha no `--dump-config`, smoke keyless) e na matriz compat |
23
23
  | `@deepseek-ai/cordis` `^4.0.2`, `@deepseek-ai/schemastery` `^3.18.2` | base de peers |
24
24
 
25
25
  Os ranges de peers nomeiam as duas linhas publicadas (`>=0.1.2-rc.1 <0.2.0 ||
@@ -205,10 +205,9 @@ cruzado é recusada ao salvar e a última política válida continua em vigor.
205
205
  cheap para o mesmo perfil de custo (`docs/supporting-lanes.md`).
206
206
  - `followSession: true` no nível cheap significa que uma escolha explícita de
207
207
  modelo na sessão vence; nesse caso o nível cheap não pode impor o seu.
208
- - **Ainda não há cartão de Settings nem pílula do compositor.** O roteamento é
209
- totalmente automático e a superfície host (`ctx.autotier.status()` /
210
- `catalog()`, `/tier`, `tier_status`, `tier_route`) está completa; a metade do
211
- navegador está planejada para v0.2.
208
+ - **O cartão de Settings e a pílula do compositor chegaram na 0.2.0.** O cartão
209
+ (modo de roteamento, aterrissagens de nível, catálogo de modelos) fica na seção
210
+ Plugins e a pílula cicla o modo da sessão pelo compositor.
212
211
  - **Um modelo escolhido na GUI não é detectado automaticamente.** Use
213
212
  `routingMode: delegated` ou `/tier off` para interromper o roteamento.
214
213
  - **As posteriores por impressão digital ficam em memória** e reiniciam a cada
@@ -221,7 +220,7 @@ cruzado é recusada ao salvar e a última política válida continua em vigor.
221
220
  ```bash
222
221
  pnpm install
223
222
  pnpm run typecheck # contra as faces de tipo do checkout local do harness
224
- pnpm run typecheck:ci # contra as faces publicadas 0.1.2-rc.1 (o que a CI executa)
223
+ pnpm run typecheck:ci # contra as faces publicadas 0.1.5-rc.1 (o que a CI executa)
225
224
  pnpm test
226
225
  pnpm run build
227
226
  pnpm run verify:self-contained
package/README.zh.md CHANGED
@@ -15,7 +15,7 @@ DeepSeek Harness 的自动模型分档路由:一条用户指令进来,一个
15
15
  | Harness | 状态 |
16
16
  |---|---|
17
17
  | `@deepseek-ai/dsh` `0.1.2-rc.1` | 兼容;compat 工作流对该线做端到端安装验证 |
18
- | `@deepseek-ai/dsh` `0.1.5-alpha.1` | 兼容;已端到端实测(真实 profile 安装、`--dump-config` 行、keyless headless 冒烟)并纳入 compat 矩阵 |
18
+ | `@deepseek-ai/dsh` `0.1.5-rc.1` | 兼容;已端到端实测(真实 profile 安装、`--dump-config` 行、keyless headless 冒烟)并纳入 compat 矩阵 |
19
19
  | `@deepseek-ai/cordis` `^4.0.2`、`@deepseek-ai/schemastery` `^3.18.2` | peer 基线 |
20
20
 
21
21
  peer 范围显式列出两条已发布线(`>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1
@@ -184,9 +184,8 @@ dsh plugin --profile web remove dsh-autotier
184
184
  画像,请把它们各自的模型设置对齐到弱档(`docs/supporting-lanes.md`)。
185
185
  - 弱档 `followSession: true` 意味着会话中显式选择的模型优先;此时弱档无法强制
186
186
  使用自己的模型。
187
- - **暂无 Settings 卡片与 composer 胶囊**。路由已完全自动,host 面
188
- (`ctx.autotier.status()` / `catalog()`、`/tier`、`tier_status`、
189
- `tier_route`)已完整;浏览器半计划于 v0.2。
187
+ - **Settings 卡片与 composer 胶囊已于 0.2.0 交付**。卡片(路由模式、实时档位落点、
188
+ 模型目录)位于 Plugins 设置区,胶囊在输入区循环切换会话档位。
190
189
  - **GUI 里改选模型不会被自动识别**。请用 `routingMode: delegated` 或
191
190
  `/tier off` 关闭路由。
192
191
  - **指纹后验仅存于内存**,重启后重新学习。
@@ -197,7 +196,7 @@ dsh plugin --profile web remove dsh-autotier
197
196
  ```bash
198
197
  pnpm install
199
198
  pnpm run typecheck # 对照本地 harness checkout 的类型面
200
- pnpm run typecheck:ci # 对照已发布的 0.1.2-rc.1 类型面(CI 实际执行)
199
+ pnpm run typecheck:ci # 对照已发布的 0.1.5-rc.1 类型面(CI 实际执行)
201
200
  pnpm test
202
201
  pnpm run build
203
202
  pnpm run verify:self-contained
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-autotier",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Automatic strong/cheap model-tier routing for DeepSeek Harness: intent-gated tier landing on the agent/request waterfall, plan-mode handoff (strong plans, cheap implements), deterministic high-risk guards on tools/pre-execute, failure escalation with TTL fallback, a /tier command, and tier status tools",
5
5
  "repository": {
6
6
  "type": "git",
@@ -62,7 +62,7 @@
62
62
  "compatibility": {
63
63
  "dshReleases": {
64
64
  "0.1.2-rc.1": "compatible",
65
- "0.1.5-alpha.1": "compatible"
65
+ "0.1.5-rc.1": "compatible"
66
66
  }
67
67
  }
68
68
  },
@@ -90,7 +90,7 @@
90
90
  "compatibility": {
91
91
  "dshVersions": [
92
92
  "0.1.2-rc.1"
93
- ]
93
+ , "0.1.5-rc.1"]
94
94
  },
95
95
  "capability": {
96
96
  "id": "autotier",
@@ -174,32 +174,32 @@
174
174
  "@deepseek-ai/cordis": "^4.0.2",
175
175
  "@deepseek-ai/cordis-plugin-include": "^1.0.7",
176
176
  "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
177
- "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
178
- "@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
179
- "@deepseek-ai/dsh-agent-loop": "0.1.2-rc.1",
180
- "@deepseek-ai/dsh-agent-loop-testkit": "0.1.2-rc.1",
181
- "@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1",
182
- "@deepseek-ai/dsh-atomic-write": "0.1.2-rc.1",
183
- "@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
184
- "@deepseek-ai/dsh-client-connection": "0.1.2-rc.1",
185
- "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1",
186
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1",
187
- "@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1",
188
- "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1",
189
- "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
190
- "@deepseek-ai/dsh-home-paths": "0.1.2-rc.1",
191
- "@deepseek-ai/dsh-llm": "0.1.2-rc.1",
192
- "@deepseek-ai/dsh-plan-mode": "0.1.2-rc.1",
193
- "@deepseek-ai/dsh-sandbox-policy": "0.1.2-rc.1",
194
- "@deepseek-ai/dsh-session": "0.1.2-rc.1",
195
- "@deepseek-ai/dsh-session-persistence": "0.1.2-rc.1",
196
- "@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
197
- "@deepseek-ai/dsh-settings": "0.1.2-rc.1",
198
- "@deepseek-ai/dsh-settings-file": "0.1.2-rc.1",
199
- "@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
200
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
201
- "@deepseek-ai/dsh-typert-protocol": "0.1.2-rc.1",
202
- "@deepseek-ai/dsh-util-values": "0.1.2-rc.1",
177
+ "@deepseek-ai/dsh-agent": "0.1.5-rc.1",
178
+ "@deepseek-ai/dsh-agent-default-model": "0.1.5-rc.1",
179
+ "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.1",
180
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.1.5-rc.1",
181
+ "@deepseek-ai/dsh-api-remotes": "0.1.5-rc.1",
182
+ "@deepseek-ai/dsh-atomic-write": "0.1.5-rc.1",
183
+ "@deepseek-ai/dsh-attachment": "0.1.5-rc.1",
184
+ "@deepseek-ai/dsh-client-connection": "0.1.5-rc.1",
185
+ "@deepseek-ai/dsh-client-locale": "0.1.5-rc.1",
186
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.5-rc.1",
187
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.1",
188
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.5-rc.1",
189
+ "@deepseek-ai/dsh-commands": "0.1.5-rc.1",
190
+ "@deepseek-ai/dsh-home-paths": "0.1.5-rc.1",
191
+ "@deepseek-ai/dsh-llm": "0.1.5-rc.1",
192
+ "@deepseek-ai/dsh-plan-mode": "0.1.5-rc.1",
193
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.1",
194
+ "@deepseek-ai/dsh-session": "0.1.5-rc.1",
195
+ "@deepseek-ai/dsh-session-persistence": "0.1.5-rc.1",
196
+ "@deepseek-ai/dsh-session-projection": "0.1.5-rc.1",
197
+ "@deepseek-ai/dsh-settings": "0.1.5-rc.1",
198
+ "@deepseek-ai/dsh-settings-file": "0.1.5-rc.1",
199
+ "@deepseek-ai/dsh-system-prompt": "0.1.5-rc.1",
200
+ "@deepseek-ai/dsh-tools": "0.1.5-rc.1",
201
+ "@deepseek-ai/dsh-typert-protocol": "0.1.5-rc.1",
202
+ "@deepseek-ai/dsh-util-values": "0.1.5-rc.1",
203
203
  "@deepseek-ai/schemastery": "^3.18.2",
204
204
  "@types/node": "^22.19.0",
205
205
  "@types/react": "18.3.31",