dsh-modellix 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/CHANGELOG.md CHANGED
@@ -6,6 +6,23 @@ The format follows Keep a Changelog.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.1] - 2026-09-02
10
+
11
+ ### Changed
12
+
13
+ - Limited the Web switch to the explicit `modellix_web_search` and `modellix_web_fetch` capability and its Agent routing context. The plugin no longer overrides, enables, disables, or selects Harness native `web_search` / `web_fetch` tools and providers.
14
+ - Updated the authoring baseline and public Client/Host integration to DeepSeek Harness `0.1.2-alpha.4`, including the current Connection RPC, Settings namespace, Client renderer, and Tool JSON type surfaces, while retaining `0.1.1-rc.2` runtime compatibility.
15
+
16
+ ### Fixed
17
+
18
+ - Disabling Web now unregisters both explicit Modellix Web tools immediately, so a new Agent session falls back to the Harness-native Web capabilities configured by the active profile instead of spending a turn on a disabled Modellix tool.
19
+ - Re-enabling Web restores both explicit tools and their Modellix-first routing without changing the independent Design or LLM service state.
20
+
21
+ ### Verification
22
+
23
+ - Added Host lifecycle regression coverage for enabled → disabled → enabled Web transitions, including preservation of native Search/Fetch tools and providers, continued Design registration, unchanged LLM materialization, and omission of Modellix Web routing while disabled.
24
+ - Added tarball cold-install and declaration-consumer verification against both Harness `0.1.2-alpha.4` and `0.1.1-rc.2`.
25
+
9
26
  ## [0.2.0] - 2026-08-31
10
27
 
11
28
  ### Added
package/README.md CHANGED
@@ -8,6 +8,11 @@
8
8
 
9
9
  ![A real English Harness conversation showing a completed Modellix image result](docs/assets/chat-media-generation-en.webp)
10
10
 
11
+ ## What changed in 0.2.1
12
+
13
+ - The Web switch now unregisters only `modellix_web_search` and `modellix_web_fetch`. Harness-native Web tools and providers remain available, so turning Modellix Web off falls back to the active profile's defaults.
14
+ - Updated the authoring and runtime integration for Harness `0.1.2-alpha.4`, while retaining `0.1.1-rc.2` compatibility.
15
+
11
16
  ## What changed in 0.2.0
12
17
 
13
18
  - Removed the standalone Design tab. Chat is now the primary media workflow.
@@ -30,7 +35,7 @@
30
35
 
31
36
  ## Requirements
32
37
 
33
- - DeepSeek Harness `0.1.1-rc.2`
38
+ - DeepSeek Harness `0.1.2-alpha.4` (latest supported); `0.1.1-rc.2` remains supported
34
39
  - Published-package runtime: Node.js `^22.19.0 || >=24.0.0`
35
40
  - Source development and release verification: Node.js `24.18.1`, pnpm `11.24.0`
36
41
  - A valid [Modellix API Key](https://docs.modellix.ai/get-started)
@@ -55,7 +60,7 @@ To install a trusted local build:
55
60
  pnpm install --frozen-lockfile
56
61
  pnpm run verify:release:static
57
62
  pnpm pack
58
- dsh plugin --profile web add ./dsh-modellix-0.2.0.tgz
63
+ dsh plugin --profile web add ./dsh-modellix-0.2.1.tgz
59
64
  ```
60
65
 
61
66
  See [local usage](docs/en-US/LOCAL_USAGE.md) for the complete Windows-first workflow.
@@ -105,7 +110,7 @@ The **Modellix Design** button sits at the far right of the conversation header,
105
110
  - The entire Results list is expanded by default and can be collapsed.
106
111
  - Every result card is expanded by default and can be collapsed by selecting its header.
107
112
  - The close button returns focus to the launcher.
108
- - The advanced exact-parameter editor remains implemented but its entry is hidden in `0.2.0`; ordinary users work through chat.
113
+ - The advanced exact-parameter editor remains implemented but its entry is hidden in `0.2.1`; ordinary users work through chat.
109
114
  - At 560 px and below, the panel uses the available viewport width. At 360 px and below, the launcher becomes a reachable compact control.
110
115
 
111
116
  ## LLM models
@@ -118,7 +123,7 @@ When LLM is enabled, the plugin reads the live Modellix catalog and adds those m
118
123
 
119
124
  Users do not need to name a tool. For current, changing, external, or source-verification questions, the Agent is instructed to use `modellix_web_search`. When the user provides a public URL or a search result needs full-page reading, it uses `modellix_web_fetch`.
120
125
 
121
- The explicit Modellix tools and the native Harness providers share the same underlying service, but the routing instruction prevents both tool families from being called for the same operation. Failed or unknown Web requests are not repeated automatically.
126
+ While Web is enabled, the plugin registers only the two explicit Modellix tools and asks the Agent to prefer them for matching work. Disabling Web unregisters those tools and removes the Modellix Web routing context; Harness-native `web_search` / `web_fetch` tools and their configured providers remain untouched and can be selected automatically. Failed or unknown Modellix Web requests are not repeated automatically.
122
127
 
123
128
  ![A real English Agent turn automatically using Modellix Search and Fetch](docs/assets/web-tools-auto-en.webp)
124
129
 
@@ -128,7 +133,7 @@ The Modellix settings section shows:
128
133
 
129
134
  - Credential configured/verification status and source;
130
135
  - replacement and removal actions for a writable local Credential;
131
- - independent Design, LLM, and Web switches;
136
+ - independent Design, LLM, and Web switches; each switch changes only its own Modellix capability;
132
137
  - live LLM catalog health, count, refresh time, and manual refresh.
133
138
 
134
139
  Only HTTP 401 marks a Credential invalid. HTTP 402, 429, network failures, and 5xx retain their own recovery states. Concurrent 401 responses are coalesced into one Credential dialog.
package/README.zh-CN.md CHANGED
@@ -8,6 +8,11 @@
8
8
 
9
9
  ![真实中文 Harness 会话中已完成的 Modellix 图片结果](docs/assets/chat-media-generation-zh.webp)
10
10
 
11
+ ## 0.2.1 的主要变化
12
+
13
+ - Web 开关现在只注销 `modellix_web_search` 与 `modellix_web_fetch`。Harness 原生 Web 工具和 Provider 保持可用,关闭 Modellix Web 后会回退到当前 Profile 的默认能力。
14
+ - 开发与运行时集成已适配 Harness `0.1.2-alpha.4`,并继续兼容 `0.1.1-rc.2`。
15
+
11
16
  ## 0.2.0 的主要变化
12
17
 
13
18
  - 删除独立 Design Tab,对话成为媒体创作主界面。
@@ -30,7 +35,7 @@
30
35
 
31
36
  ## 环境要求
32
37
 
33
- - DeepSeek Harness `0.1.1-rc.2`
38
+ - DeepSeek Harness `0.1.2-alpha.4`(最新支持版本);继续兼容 `0.1.1-rc.2`
34
39
  - 已发布包运行时:Node.js `^22.19.0 || >=24.0.0`
35
40
  - 源码开发与发布校验:Node.js `24.18.1`、pnpm `11.24.0`
36
41
  - 有效的 [Modellix API Key](https://docs.modellix.ai/get-started)
@@ -55,7 +60,7 @@ dsh --profile web
55
60
  pnpm install --frozen-lockfile
56
61
  pnpm run verify:release:static
57
62
  pnpm pack
58
- dsh plugin --profile web add ./dsh-modellix-0.2.0.tgz
63
+ dsh plugin --profile web add ./dsh-modellix-0.2.1.tgz
59
64
  ```
60
65
 
61
66
  完整 Windows 本地流程见[本地使用指南](docs/zh-CN/LOCAL_USAGE.md)。
@@ -105,7 +110,7 @@ Agent 会按实际情况:
105
110
  - 整个结果列表默认展开,可点击收起。
106
111
  - 每张结果卡默认展开,可点击卡片头部收起。
107
112
  - 点击 X 关闭后,焦点会回到入口按钮。
108
- - 高级精准参数编辑器已保留,但 `0.2.0` 暂不显示入口;普通用户通过 Chat 使用。
113
+ - 高级精准参数编辑器已保留,但 `0.2.1` 暂不显示入口;普通用户通过 Chat 使用。
109
114
  - 560px 及以下使用可用视口全宽;360px 及以下入口变为可触达的紧凑按钮。
110
115
 
111
116
  ## LLM 模型
@@ -118,7 +123,7 @@ Agent 会按实际情况:
118
123
 
119
124
  用户不需要说出工具名。遇到实时、变化中、外部或需要来源核验的问题,Agent 会使用 `modellix_web_search`;用户提供公开 URL,或搜索结果需要阅读全文时,会使用 `modellix_web_fetch`。
120
125
 
121
- 明确的 Modellix 工具与 Harness 原生 Provider 共用底层服务,但路由规则会阻止同一操作同时调用两套工具。失败或结果未知的 Web 请求不会自动重复。
126
+ Web 开启时,插件只注册两个明确的 Modellix 工具,并要求 Agent 在适用任务中优先使用它们。关闭 Web 会注销这两个工具并移除 Modellix Web 路由上下文;Harness 原生 `web_search` / `web_fetch` 及其已配置 Provider 不受影响,仍可被 Agent 自动选择。失败或结果未知的 Modellix Web 请求不会自动重复。
122
127
 
123
128
  ![真实中文 Agent 回合自动使用 Modellix Search 与 Fetch](docs/assets/web-tools-auto-zh.webp)
124
129
 
@@ -128,7 +133,7 @@ Modellix 设置页包括:
128
133
 
129
134
  - Credential 是否已配置、验证状态和来源;
130
135
  - 本地可写 Credential 的更换与移除;
131
- - Design、LLM、Web 独立开关;
136
+ - Design、LLM、Web 独立开关,每个开关只改变自身的 Modellix 能力;
132
137
  - LLM 实时目录健康、数量、刷新时间和手动刷新。
133
138
 
134
139
  只有 HTTP 401 会把 Credential 标记为无效。HTTP 402、429、网络错误和 5xx 使用各自恢复状态。并发 401 会合并为一个 Credential 弹窗。
package/cordis.patch.yml CHANGED
@@ -1,16 +1,3 @@
1
- - id: web
2
- config:
3
- searchProvider: modellix
4
- fetchProvider: modellix
5
-
6
- - id: tool-web
7
- config:
8
- search: true
9
- fetch: true
10
- searchTimeoutMs: 60000
11
- fetchTimeoutMs: 60000
12
- disabled: false
13
-
14
1
  - insert:
15
2
  - id: modellix
16
3
  name: dsh-modellix
@@ -8,7 +8,7 @@ This guide shows how to build `dsh-modellix` from the current source checkout on
8
8
 
9
9
  You need:
10
10
 
11
- - DeepSeek Harness `0.1.1-rc.2`
11
+ - DeepSeek Harness `0.1.2-alpha.4` (latest supported); `0.1.1-rc.2` remains supported
12
12
  - Node.js `24.18.1`; the published runtime also supports `^22.19.0`
13
13
  - pnpm `11.24.0`
14
14
  - A valid Modellix API Key
@@ -42,7 +42,7 @@ pnpm run verify:pack
42
42
  pnpm pack
43
43
  ```
44
44
 
45
- The repository root will contain a file such as `dsh-modellix-0.2.0.tgz`. Do not ask DSH to install the unbuilt TypeScript checkout directly.
45
+ The repository root will contain a file such as `dsh-modellix-0.2.1.tgz`. Do not ask DSH to install the unbuilt TypeScript checkout directly.
46
46
 
47
47
  ## 3. Create an isolated local Harness environment
48
48
 
@@ -60,7 +60,7 @@ This affects only the current PowerShell process and its children. Omit this ste
60
60
  Install the tarball into the `web` profile and inspect the merged configuration:
61
61
 
62
62
  ```powershell
63
- dsh plugin --profile web add .\dsh-modellix-0.2.0.tgz
63
+ dsh plugin --profile web add .\dsh-modellix-0.2.1.tgz
64
64
  dsh --profile web --dump-config
65
65
  ```
66
66
 
@@ -109,7 +109,7 @@ A fresh profile may first show Harness's own DeepSeek initialization dialog. Com
109
109
  6. Select **Modellix Design** at the far right of the session header to see all current-session results.
110
110
  7. Use Preview/JSON on successful cards, image enlargement, native video/audio players, **Add URL to chat**, and **Download**.
111
111
 
112
- The advanced exact-parameter editor remains internal but its entry is hidden in `0.2.0`. Routine UI flows do not display payment prompts; usage and details remain available in Modellix.
112
+ The advanced exact-parameter editor remains internal but its entry is hidden in `0.2.1`. Routine UI flows do not display payment prompts; usage and details remain available in Modellix.
113
113
 
114
114
  ## 8. Use Modellix LLM models
115
115
 
@@ -123,6 +123,8 @@ The catalog is live. The plugin does not invent fallback models when it cannot l
123
123
 
124
124
  With Web enabled, ask a current, external, URL, or source-verification question normally. The Agent automatically uses explicit `modellix_web_search` and `modellix_web_fetch` tools when needed; users do not need to name either tool.
125
125
 
126
+ With Web disabled, those two explicit tools are unregistered. The plugin does not alter the profile's native `web_search` / `web_fetch` tools or provider selection, so native automatic Web behavior remains available.
127
+
126
128
  ## 10. Update the local plugin
127
129
 
128
130
  After source changes:
@@ -135,7 +137,7 @@ After source changes:
135
137
  Set-Location 'D:\work\maas\githup\dsh-modellix'
136
138
  pnpm run verify:pack
137
139
  pnpm pack
138
- dsh plugin --profile web add .\dsh-modellix-0.2.0.tgz
140
+ dsh plugin --profile web add .\dsh-modellix-0.2.1.tgz
139
141
  dsh --profile web --dump-config
140
142
  dsh --profile web --no-open
141
143
  ```
@@ -147,8 +149,8 @@ dsh --profile web --no-open
147
149
  | A DeepSeek API Key dialog appears first | This is the fresh Harness profile's base initialization, not the Modellix dialog; complete it before configuring Modellix |
148
150
  | The CLI is logged in but the plugin still requests a Key | The CLI Keychain and Harness Credential service are separate; save it in the plugin UI or inject `MODELLIX_API_KEY` into the Harness process |
149
151
  | Modellix Design is missing | Inspect `--dump-config`, confirm Design is enabled, and fully restart the running profile after an update |
150
- | A task remains stale in assistant prose | Current status belongs to the live card and right panel; `0.2.0` updates the card in the background and avoids nonterminal status wording in ordinary prose |
151
- | One task shows two cards | This is not expected in `0.2.0`; record the job/tool call ids without Secrets and report a duplicate-card defect |
152
+ | A task remains stale in assistant prose | Current status belongs to the live card and right panel; `0.2.1` updates the card in the background and avoids nonterminal status wording in ordinary prose |
153
+ | One task shows two cards | This is not expected in `0.2.1`; record the job/tool call ids without Secrets and report a duplicate-card defect |
152
154
  | The UI reports an invalid Key | Only an explicit Modellix 401 enters this state; replace a local Credential in settings, or update an environment source and restart |
153
155
  | Balance is insufficient | A 402 is not treated as an invalid Key; fund the account or change the task before retrying manually |
154
156
  | Requests are rate-limited | Wait for the 429 window to end before retrying manually |
@@ -1,6 +1,6 @@
1
1
  [English](RELEASE_CHECKLIST.md) | [简体中文](../zh-CN/RELEASE_CHECKLIST.md)
2
2
 
3
- # dsh-modellix 0.2.0 Release and Acceptance Checklist
3
+ # dsh-modellix 0.2.1 Release and Acceptance Checklist
4
4
 
5
5
  Use this document for manual product acceptance and for the final release gate. Check each item against the exact package/commit being released.
6
6
 
@@ -23,8 +23,8 @@ Record before testing:
23
23
 
24
24
  | Item | Expected |
25
25
  | --- | --- |
26
- | Package | `dsh-modellix@0.2.0` |
27
- | Harness | `0.1.1-rc.2` |
26
+ | Package | `dsh-modellix@0.2.1` |
27
+ | Harness | `0.1.2-alpha.4` latest matrix plus `0.1.1-rc.2` compatibility matrix |
28
28
  | Development Node | `24.18.1` |
29
29
  | pnpm | `11.24.0` |
30
30
  | Browser capture viewport | `1920×1080`, DPR 1 |
@@ -219,7 +219,7 @@ Create Secret-free files outside the repository:
219
219
 
220
220
  Both files must:
221
221
 
222
- - target `dsh-modellix@0.2.0`;
222
+ - target `dsh-modellix@0.2.1`;
223
223
  - contain the exact lowercase 40-character Git HEAD;
224
224
  - use a canonical UTC ISO-8601 completion time no older than 72 hours;
225
225
  - have status `passed` for every required check;
@@ -244,16 +244,16 @@ After all checks pass:
244
244
  5. Read back:
245
245
 
246
246
  ```sh
247
- npm view dsh-modellix@0.2.0 version dist.integrity dist.shasum --json --registry=https://registry.npmjs.org/ --prefer-online
247
+ npm view dsh-modellix@0.2.1 version dist.integrity dist.shasum --json --registry=https://registry.npmjs.org/ --prefer-online
248
248
  ```
249
249
 
250
- 6. From an empty external directory and fresh npm cache, install `dsh-modellix@0.2.0`.
250
+ 6. From an empty external directory and fresh npm cache, install `dsh-modellix@0.2.1`.
251
251
  7. Verify the installed version and `dsh --profile <isolated> --dump-config`.
252
252
  8. Remove temporary npm config, cache, tarball, profile, evidence intermediates, and process variables.
253
253
 
254
254
  Do not create a Git tag or GitHub Release unless explicitly requested.
255
255
 
256
- ## 17. 0.2.0 verification record
256
+ ## 17. 0.2.1 verification record
257
257
 
258
258
  The release candidate was exercised on 2026-08-31 with:
259
259
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  # dsh-modellix User Guide
4
4
 
5
- This guide describes the current `0.2.0` experience. Media creation is chat-first; there is no standalone Design tab. The right-side **Modellix Design** panel is a session-scoped result workspace.
5
+ This guide describes the current `0.2.1` experience. Media creation is chat-first; there is no standalone Design tab. The right-side **Modellix Design** panel is a session-scoped result workspace.
6
6
 
7
7
  ## 1. Install and verify
8
8
 
9
9
  ### Requirements
10
10
 
11
- - DeepSeek Harness `0.1.1-rc.2`
11
+ - DeepSeek Harness `0.1.2-alpha.4` (latest supported); `0.1.1-rc.2` remains supported
12
12
  - Node.js `^22.19.0 || >=24.0.0`
13
13
  - A valid Modellix API Key
14
14
 
@@ -28,7 +28,7 @@ To use a local package artifact:
28
28
  pnpm install --frozen-lockfile
29
29
  pnpm run verify:release:static
30
30
  pnpm pack
31
- dsh plugin --profile web add ./dsh-modellix-0.2.0.tgz
31
+ dsh plugin --profile web add ./dsh-modellix-0.2.1.tgz
32
32
  ```
33
33
 
34
34
  See [LOCAL_USAGE.md](LOCAL_USAGE.md) for isolated-profile setup and update commands.
@@ -80,7 +80,7 @@ It does not add a standalone Design tab.
80
80
  - Results and every card are expanded by default.
81
81
  - Select **Results** to collapse the whole list; select a card header to collapse only that card.
82
82
  - Select X to close. Keyboard focus returns to the launcher.
83
- - The advanced exact-parameter editor remains in the implementation but its entry is hidden for `0.2.0`.
83
+ - The advanced exact-parameter editor remains in the implementation but its entry is hidden for `0.2.1`.
84
84
 
85
85
  ## 4. Create media by chatting
86
86
 
@@ -223,7 +223,7 @@ Expected flow:
223
223
  2. When full-page content is needed, Agent calls `modellix_web_fetch`.
224
224
  3. The answer cites the fetched/source pages.
225
225
 
226
- The user should not need to say “use search” or “use fetch.” If the user explicitly says not to browse, the Agent does not call them. The routing context also prevents duplicate calls to both the explicit tools and native provider tools for the same operation.
226
+ The user should not need to say “use search” or “use fetch.” If the user explicitly says not to browse, the Agent does not call them. When Modellix Web is enabled, its routing context prevents duplicate calls to both tool families for the same operation. When it is disabled, the two explicit Modellix tools and that routing context are removed; the profile's native `web_search` / `web_fetch` tools and providers remain available for automatic fallback.
227
227
 
228
228
  ## 11. Settings and errors
229
229
 
@@ -231,7 +231,9 @@ The user should not need to say “use search” or “use fetch.” If the user
231
231
 
232
232
  - **Design:** controls media tools, chat result views, and the result panel.
233
233
  - **LLM:** controls live Modellix model materialization.
234
- - **Web:** controls Modellix Search/Fetch providers and explicit tools.
234
+ - **Web:** controls only the explicit Modellix Search/Fetch tools and Modellix-first routing. It does not change Harness-native Web tools or providers.
235
+
236
+ The three switches are independent. Saving one service change does not register, unregister, or reconfigure either of the other two services.
235
237
 
236
238
  ### Credential status
237
239
 
@@ -269,6 +271,8 @@ Confirm Design is enabled, inspect `dsh --profile web --dump-config`, and fully
269
271
 
270
272
  Confirm Web is enabled and the current Agent session contains the `Web routing` context. The explicit tools should appear as `modellix_web_search` and `modellix_web_fetch`.
271
273
 
274
+ If Web is intentionally disabled, neither explicit tool should appear and the session should not contain Modellix `Web routing`; native `web_search` / `web_fetch` behavior continues according to the active Harness profile.
275
+
272
276
  ### A model Schema is reported as unavailable
273
277
 
274
278
  Refresh the live media catalog, verify the exact model slug returned by `modellix_media_list`, and read `modellix_media_schema` again. The parser supports documented OpenAPI layouts and bounded shared references; it blocks unsafe or unsupported contracts instead of guessing.
@@ -279,11 +283,11 @@ Keep the conversation open long enough for the Client watcher, verify the Creden
279
283
 
280
284
  ### Two cards represent one task
281
285
 
282
- This is not expected in `0.2.0`. Capture the two job ids and tool call ids without Secrets. The generation card should win the per-session task claim, and the matching result-query card should be suppressed.
286
+ This is not expected in `0.2.1`. Capture the two job ids and tool call ids without Secrets. The generation card should win the per-session task claim, and the matching result-query card should be suppressed.
283
287
 
284
288
  ### Results from another conversation appear
285
289
 
286
- This is not expected for new `0.2.0` tasks. Record the affected session/task ids and report it as a session-isolation defect.
290
+ This is not expected for new `0.2.1` tasks. Record the affected session/task ids and report it as a session-isolation defect.
287
291
 
288
292
  ### Media cannot play
289
293
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  需要:
10
10
 
11
- - DeepSeek Harness `0.1.1-rc.2`
11
+ - DeepSeek Harness `0.1.2-alpha.4`(最新支持版本);继续兼容 `0.1.1-rc.2`
12
12
  - Node.js `24.18.1`;运行已发布包也支持 `^22.19.0`
13
13
  - pnpm `11.24.0`
14
14
  - 有效的 Modellix API Key
@@ -42,7 +42,7 @@ pnpm run verify:pack
42
42
  pnpm pack
43
43
  ```
44
44
 
45
- 完成后,仓库根目录会生成类似 `dsh-modellix-0.2.0.tgz` 的文件。不要直接把未构建的 TypeScript 源码交给 DSH 安装。
45
+ 完成后,仓库根目录会生成类似 `dsh-modellix-0.2.1.tgz` 的文件。不要直接把未构建的 TypeScript 源码交给 DSH 安装。
46
46
 
47
47
  ## 3. 创建独立的本地 Harness 环境
48
48
 
@@ -60,7 +60,7 @@ New-Item -ItemType Directory -Force -Path $env:DSH_HOME | Out-Null
60
60
  把刚生成的 tarball 安装到 `web` Profile:
61
61
 
62
62
  ```powershell
63
- dsh plugin --profile web add .\dsh-modellix-0.2.0.tgz
63
+ dsh plugin --profile web add .\dsh-modellix-0.2.1.tgz
64
64
  dsh --profile web --dump-config
65
65
  ```
66
66
 
@@ -109,7 +109,7 @@ dsh --profile web --no-open
109
109
  6. 点击会话头部最右侧 **Modellix Design**,查看当前会话全部结果。
110
110
  7. 成功卡可用预览/JSON、图片放大、原生视频/音频播放器、**添加 URL 到对话框** 和 **下载**。
111
111
 
112
- 高级精准参数编辑器继续保留,但 `0.2.0` 暂不显示入口。常规 UI 不显示付费提示;消耗与明细在 Modellix 查看。
112
+ 高级精准参数编辑器继续保留,但 `0.2.1` 暂不显示入口。常规 UI 不显示付费提示;消耗与明细在 Modellix 查看。
113
113
 
114
114
  ## 8. 使用 Modellix LLM
115
115
 
@@ -123,6 +123,8 @@ dsh --profile web --no-open
123
123
 
124
124
  确认 Web 开关开启后,正常提出实时、外部、URL 或来源核验问题。Agent 会按需自动使用明确的 `modellix_web_search` 与 `modellix_web_fetch`,用户不需要说出工具名。
125
125
 
126
+ 关闭 Web 后,这两个明确工具会被注销。插件不会更改当前 Profile 的原生 `web_search` / `web_fetch` 或 Provider 选择,因此原生自动联网能力仍可使用。
127
+
126
128
  ## 10. 更新本地插件
127
129
 
128
130
  源码变化后:
@@ -135,7 +137,7 @@ dsh --profile web --no-open
135
137
  Set-Location 'D:\work\maas\githup\dsh-modellix'
136
138
  pnpm run verify:pack
137
139
  pnpm pack
138
- dsh plugin --profile web add .\dsh-modellix-0.2.0.tgz
140
+ dsh plugin --profile web add .\dsh-modellix-0.2.1.tgz
139
141
  dsh --profile web --dump-config
140
142
  dsh --profile web --no-open
141
143
  ```
@@ -147,8 +149,8 @@ dsh --profile web --no-open
147
149
  | 先出现 DeepSeek API Key 弹窗 | 这是全新 Harness Profile 的基础初始化,不是 Modellix 弹窗;完成后继续配置 Modellix |
148
150
  | `modellix-cli` 已登录但插件仍要求 Key | CLI Keychain 与 Harness Credential 相互独立;在插件 UI 保存,或给 Harness 启动进程设置 `MODELLIX_API_KEY` |
149
151
  | 看不到 Modellix Design | 检查 `--dump-config`、确认 Design 已开启,并在更新后完整重启运行中的 Profile |
150
- | 助手正文里的状态看起来旧 | 当前状态属于实时卡片与右侧面板;`0.2.0` 后台更新卡片,并避免在普通正文写非终态 |
151
- | 一个任务显示两张卡 | `0.2.0` 不应出现;在不包含 Secret 的情况下记录 job/tool call id 并报告重复卡缺陷 |
152
+ | 助手正文里的状态看起来旧 | 当前状态属于实时卡片与右侧面板;`0.2.1` 后台更新卡片,并避免在普通正文写非终态 |
153
+ | 一个任务显示两张卡 | `0.2.1` 不应出现;在不包含 Secret 的情况下记录 job/tool call id 并报告重复卡缺陷 |
152
154
  | 页面提示 Key 无效 | 只有 Modellix 明确返回 401 才会进入该状态;本地 Credential 可在设置中更换,环境来源需在外部更新并重启 |
153
155
  | 余额不足 | 402 不会被误报为 Key 无效;充值或调整任务后手动重试 |
154
156
  | 请求过多 | 等待 429 限流窗口结束后再手动重试 |
@@ -1,6 +1,6 @@
1
1
  [English](../en-US/RELEASE_CHECKLIST.md) | [简体中文](RELEASE_CHECKLIST.md)
2
2
 
3
- # dsh-modellix 0.2.0 发布与验收清单
3
+ # dsh-modellix 0.2.1 发布与验收清单
4
4
 
5
5
  本文用于人工产品验收和最终发布门禁。每一项都必须针对即将发布的准确包版本与 commit 检查。
6
6
 
@@ -23,8 +23,8 @@
23
23
 
24
24
  | 项目 | 预期 |
25
25
  | --- | --- |
26
- | 包 | `dsh-modellix@0.2.0` |
27
- | Harness | `0.1.1-rc.2` |
26
+ | 包 | `dsh-modellix@0.2.1` |
27
+ | Harness | `0.1.2-alpha.4` 最新矩阵,并兼容验证 `0.1.1-rc.2` |
28
28
  | 开发 Node | `24.18.1` |
29
29
  | pnpm | `11.24.0` |
30
30
  | 浏览器截图视口 | `1920×1080`、DPR 1 |
@@ -219,7 +219,7 @@ pnpm run test:real:modellix
219
219
 
220
220
  两个文件必须:
221
221
 
222
- - 指向 `dsh-modellix@0.2.0`;
222
+ - 指向 `dsh-modellix@0.2.1`;
223
223
  - 包含准确的 40 位小写 Git HEAD;
224
224
  - 使用不早于 72 小时的规范 UTC ISO-8601 时间;
225
225
  - 所有必填 check 均为 `passed`;
@@ -244,16 +244,16 @@ pnpm run verify:release
244
244
  5. 回读:
245
245
 
246
246
  ```sh
247
- npm view dsh-modellix@0.2.0 version dist.integrity dist.shasum --json --registry=https://registry.npmjs.org/ --prefer-online
247
+ npm view dsh-modellix@0.2.1 version dist.integrity dist.shasum --json --registry=https://registry.npmjs.org/ --prefer-online
248
248
  ```
249
249
 
250
- 6. 在仓库外空目录和全新 npm cache 中安装 `dsh-modellix@0.2.0`。
250
+ 6. 在仓库外空目录和全新 npm cache 中安装 `dsh-modellix@0.2.1`。
251
251
  7. 检查实际落盘版本和 `dsh --profile <isolated> --dump-config`。
252
252
  8. 删除临时 npm 配置、cache、tarball、profile、Evidence 中间文件和进程变量。
253
253
 
254
254
  未经明确要求,不创建 Git Tag 或 GitHub Release。
255
255
 
256
- ## 17. 0.2.0 验证记录
256
+ ## 17. 0.2.1 验证记录
257
257
 
258
258
  2026-08-31 对候选版本执行了:
259
259
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  # dsh-modellix 用户指南
4
4
 
5
- 本文说明 `0.2.0` 的当前体验。媒体创作以对话为主,不再存在独立 Design Tab;右侧 **Modellix Design** 是按会话隔离的结果工作区。
5
+ 本文说明 `0.2.1` 的当前体验。媒体创作以对话为主,不再存在独立 Design Tab;右侧 **Modellix Design** 是按会话隔离的结果工作区。
6
6
 
7
7
  ## 1. 安装与检查
8
8
 
9
9
  ### 环境要求
10
10
 
11
- - DeepSeek Harness `0.1.1-rc.2`
11
+ - DeepSeek Harness `0.1.2-alpha.4`(最新支持版本);继续兼容 `0.1.1-rc.2`
12
12
  - Node.js `^22.19.0 || >=24.0.0`
13
13
  - 有效的 Modellix API Key
14
14
 
@@ -28,7 +28,7 @@ dsh --profile web
28
28
  pnpm install --frozen-lockfile
29
29
  pnpm run verify:release:static
30
30
  pnpm pack
31
- dsh plugin --profile web add ./dsh-modellix-0.2.0.tgz
31
+ dsh plugin --profile web add ./dsh-modellix-0.2.1.tgz
32
32
  ```
33
33
 
34
34
  独立 Profile 与更新命令见 [LOCAL_USAGE.md](LOCAL_USAGE.md)。
@@ -80,7 +80,7 @@ dsh plugin --profile web add ./dsh-modellix-0.2.0.tgz
80
80
  - 结果列表和每张卡片默认展开。
81
81
  - 点击 **结果** 收起整个列表;点击卡片头部只收起该卡片。
82
82
  - 点击 X 关闭,键盘焦点回到入口。
83
- - 高级精准参数编辑器保留在实现中,但 `0.2.0` 隐藏入口。
83
+ - 高级精准参数编辑器保留在实现中,但 `0.2.1` 隐藏入口。
84
84
 
85
85
  ## 4. 通过对话创建媒体
86
86
 
@@ -223,7 +223,7 @@ Provider 使用 OpenAI 兼容接口,重试次数为 `0`;目录不可用时
223
223
  2. 需要页面全文时自动调用 `modellix_web_fetch`。
224
224
  3. 回答引用搜索/抓取来源。
225
225
 
226
- 用户不需要说“使用 search/fetch”。若用户明确说不要浏览,Agent 不调用。路由上下文也会避免同一操作同时调用明确工具和原生 Provider 工具。
226
+ 用户不需要说“使用 search/fetch”。若用户明确说不要浏览,Agent 不调用。Modellix Web 开启时,路由上下文会避免同一操作同时调用两套工具;关闭时会移除两个明确工具及该路由上下文,当前 Profile 的原生 `web_search` / `web_fetch` 与 Provider 保持可用,Agent 可自动回退。
227
227
 
228
228
  ## 11. 设置与错误
229
229
 
@@ -231,7 +231,9 @@ Provider 使用 OpenAI 兼容接口,重试次数为 `0`;目录不可用时
231
231
 
232
232
  - **Design:** 控制媒体工具、对话结果卡和结果面板。
233
233
  - **LLM:** 控制 Modellix 实时模型物化。
234
- - **Web:** 控制 Modellix Search/Fetch Provider 与明确工具。
234
+ - **Web:** 只控制明确的 Modellix Search/Fetch 工具及 Modellix 优先路由,不改变 Harness 原生 Web 工具或 Provider。
235
+
236
+ 三个开关彼此独立。保存一个服务的变化,不会注册、注销或重配另外两个服务。
235
237
 
236
238
  ### Credential 状态
237
239
 
@@ -269,6 +271,8 @@ Provider 使用 OpenAI 兼容接口,重试次数为 `0`;目录不可用时
269
271
 
270
272
  确认 Web 已开启,并检查当前 Agent 会话包含 `Web routing` 上下文。明确工具应显示为 `modellix_web_search` 与 `modellix_web_fetch`。
271
273
 
274
+ 若 Web 是有意关闭,两个明确工具与 Modellix `Web routing` 都不应出现;原生 `web_search` / `web_fetch` 按当前 Harness Profile 的配置继续工作。
275
+
272
276
  ### 提示模型 Schema 不可用
273
277
 
274
278
  刷新实时媒体目录,确认 `modellix_media_list` 返回的准确 slug,再调用 `modellix_media_schema`。解析器支持公开 OpenAPI 布局和受限共享引用;遇到不安全或不支持的结构时会阻止使用,而不是猜测。
@@ -279,11 +283,11 @@ Provider 使用 OpenAI 兼容接口,重试次数为 `0`;目录不可用时
279
283
 
280
284
  ### 同一任务出现两张卡
281
285
 
282
- `0.2.0` 不应出现。请在不包含 Secret 的情况下记录两张卡的 job id 和 tool call id。生成卡应赢得当前会话的任务展示权,匹配的结果查询卡应被抑制。
286
+ `0.2.1` 不应出现。请在不包含 Secret 的情况下记录两张卡的 job id 和 tool call id。生成卡应赢得当前会话的任务展示权,匹配的结果查询卡应被抑制。
283
287
 
284
288
  ### 显示其他会话结果
285
289
 
286
- 新建 `0.2.0` 任务不应出现。请记录受影响的 session/task id,并按会话隔离缺陷报告。
290
+ 新建 `0.2.1` 任务不应出现。请记录受影响的 session/task id,并按会话隔离缺陷报告。
287
291
 
288
292
  ### 媒体不能播放
289
293
 
package/lib/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- import { ClientContext } from "@deepseek-ai/dsh-client-runtime/client";
2
+ import { Context } from "@deepseek-ai/cordis";
3
3
 
4
4
  //#region src/shared/design-presentation-codes.d.ts
5
5
  declare const DESIGN_NOTICE_CODES: readonly ["schema-unavailable", "schema-invalid", "catalog-stale", "catalog-unavailable", "credential-reloaded"];
@@ -221,7 +221,7 @@ type ModellixClientSlotDefinition = (typeof MODELLIX_CLIENT_SLOTS)[number];
221
221
  //#endregion
222
222
  //#region src/client/index.d.ts
223
223
  declare const inject: string[];
224
- declare function apply(ctx: ClientContext): void;
224
+ declare function apply(ctx: Context): void;
225
225
  //#endregion
226
226
  export { AckWire, ClientJsonValue, CredentialDescriptorWire, CredentialVerificationWire, DesignDiagnosticWire, DesignDraftWire, DesignEnumOptionWire, DesignFieldWire, DesignJobWire, DesignModelWire, DesignMutationWire, DesignProposalChangeWire, DesignProposalWire, DesignResourceWire, DesignSnapshotWire, MODELLIX_CLIENT_SLOTS, MODELLIX_CLIENT_WIRE_VERSION, MODELLIX_RPC_CHANNEL, MODELLIX_RPC_ENDPOINTS, ModellixClientContractError, ModellixClientSlotDefinition, ModellixRpcEndpoint, ServiceTogglesWire, SettingsMutationWire, SettingsSnapshotWire, apply, inject, parseAck, parseDesignMutation, parseDesignSnapshot, parseSettingsMutation, parseSettingsSnapshot, safeResourceHref, sanitizeParameters };
227
227
 
package/lib/client.js CHANGED
@@ -2835,7 +2835,6 @@ function ResultResource({ resource, dateLocale, dialogCoordinator, dialog, onAdd
2835
2835
  }), resource.kind === "image" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
2836
2836
  open: imageSurfaceOpen,
2837
2837
  title: t("imageViewerTitle"),
2838
- closeLabel: t("close"),
2839
2838
  onClose: closeImage,
2840
2839
  headless: true,
2841
2840
  className: "mdlx-modal mdlx-image-modal",
@@ -3457,7 +3456,6 @@ function ModellixMediaToolView({ block, drawer, inputActions, sessionId, t, useI
3457
3456
  }), succeeded && current?.kind === "image" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
3458
3457
  open: imageSurfaceOpen,
3459
3458
  title: t("imageViewerTitle"),
3460
- closeLabel: t("close"),
3461
3459
  onClose: closeImage,
3462
3460
  headless: true,
3463
3461
  className: "mdlx-modal mdlx-image-modal",
@@ -4241,7 +4239,6 @@ function RemoveCredentialDialog({ open, busy, errorCode, onClose, onConfirm, t,
4241
4239
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
4242
4240
  open: surfaceOpen,
4243
4241
  title: t("removeTitle"),
4244
- closeLabel: t("cancel"),
4245
4242
  onClose,
4246
4243
  headless: true,
4247
4244
  className: "mdlx-modal mdlx-modal-confirm",