dsh-mcp-panel 0.6.12 → 0.6.14

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
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project are documented in this file.
4
4
 
5
+ ## [0.6.14] - 2026-09-12
6
+
7
+ ### Changed
8
+
9
+ - Rename the four translated READMEs to `README-<lang>.md`. npm selects the package-page readme as the first markdown file matching its `{README,README.*}` glob (`@npmcli/package-json`, publish path), and that glob order puts `README.<lang>.md` ahead of `README.md` — so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively.
10
+ - Pin the `@deepseek-ai/dsh-*` dev/test dependencies to the published `0.1.5-rc.2` line and record `0.1.5-rc.2` in `dshWorkshop.compatibility.dshVersions`; the monthly Compat workflow now runs against `0.1.5-rc.2`. 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.
11
+
12
+ ## [0.6.13] - 2026-09-10
13
+
14
+ ### Changed
15
+
16
+ - Bump the runtime `zod` range from `^4.4.3` to `^4.5.4` (dependabot #19), which had been merged without a release.
17
+ - Bump the build toolchain to `tsdown@0.23` (dependabot #24) and the test toolchain to `vitest@5` together with its matching `@vitest/coverage-v8@5` (#25). `vitest` and `@vitest/coverage-v8` must move in lockstep: vitest 5 changed the coverage payload contract, so leaving the provider at `4.1.10` crashed `pnpm run test:coverage` with `Expected string coverage payload, received object`.
18
+
5
19
  ## [0.6.12] - 2026-09-10
6
20
 
7
21
  ### Changed
@@ -16,7 +16,7 @@
16
16
  [![npm version](https://img.shields.io/npm/v/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
17
17
  [![npm downloads](https://img.shields.io/npm/dm/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
18
18
 
19
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
19
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
20
20
 
21
21
  </div>
22
22
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  | Superficie | Estado |
28
28
  |---|---|
29
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (tag de GitHub, verificado el 2026-09-10) (adaptado el 2026-09-09): 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-10 contra el checkout master dsh-v0.1.5-rc.1 (cadena completa de puertas + smoke de instalación de perfil). |
29
+ | Harness | DeepSeek Harness `dsh-v0.1.5-rc.2` (tag de GitHub, verificado el 2026-09-11) (adaptado el 2026-09-09): 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-11 contra el checkout master dsh-v0.1.5-rc.2 (cadena completa de puertas + smoke de instalación de perfil). |
30
30
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
31
  | Plataformas | Web GUI (doble cara: host + navegador) |
32
32
  | Modelo | Cualquiera (el panel es de solo lectura; solo la salida de `/mcp` es legible por el modelo) |
@@ -16,7 +16,7 @@
16
16
  [![npm version](https://img.shields.io/npm/v/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
17
17
  [![npm downloads](https://img.shields.io/npm/dm/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
18
18
 
19
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
19
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
20
20
 
21
21
  </div>
22
22
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  | सतह | स्थिति |
28
28
  |---|---|
29
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (GitHub tag, 2026-09-10 को सत्यापित) (2026-09-09 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। 2026-09-10 को dsh-v0.1.5-rc.1 master checkout के विरुद्ध सत्यापित (पूर्ण गेट शृंखला + प्रोफ़ाइल इंस्टॉल स्मोक)। |
29
+ | Harness | DeepSeek Harness `dsh-v0.1.5-rc.2` (GitHub tag, 2026-09-11 को सत्यापित) (2026-09-09 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। 2026-09-11 को dsh-v0.1.5-rc.2 master checkout के विरुद्ध सत्यापित (पूर्ण गेट शृंखला + प्रोफ़ाइल इंस्टॉल स्मोक)। |
30
30
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
31
  | प्लेटफ़ॉर्म | Web GUI (दोहरा चेहरा: host + browser) |
32
32
  | मॉडल | कोई भी (पैनल रीड-ओनली है; केवल `/mcp` आउटपुट मॉडल-पठनीय है) |
@@ -16,7 +16,7 @@
16
16
  [![npm version](https://img.shields.io/npm/v/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
17
17
  [![npm downloads](https://img.shields.io/npm/dm/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
18
18
 
19
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
19
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
20
20
 
21
21
  </div>
22
22
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  | Superfície | Status |
28
28
  |---|---|
29
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (tag do GitHub, verificado em 2026-09-10) (adaptado em 2026-09-09): 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-10 contra o checkout master dsh-v0.1.5-rc.1 (cadeia completa de portas + smoke de instalação de perfil). |
29
+ | Harness | DeepSeek Harness `dsh-v0.1.5-rc.2` (tag do GitHub, verificado em 2026-09-11) (adaptado em 2026-09-09): 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-11 contra o checkout master dsh-v0.1.5-rc.2 (cadeia completa de portas + smoke de instalação de perfil). |
30
30
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
31
  | Plataformas | Web GUI (duas faces: host + navegador) |
32
32
  | Modelo | Qualquer (o painel é somente leitura; só a saída de `/mcp` é legível pelo modelo) |
@@ -18,7 +18,7 @@
18
18
  [![npm version](https://img.shields.io/npm/v/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
19
19
  [![npm downloads](https://img.shields.io/npm/dm/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
20
20
 
21
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
21
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
22
22
 
23
23
  </div>
24
24
 
@@ -28,7 +28,7 @@
28
28
 
29
29
  | 维度 | 状态 |
30
30
  |---|---|
31
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1`(GitHub tag,2026-09-10 已核验)(2026-09-09 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。已于 2026-09-10 对照 dsh-v0.1.5-rc.1 master checkout 核验(全量门禁链 + profile 安装冒烟)。 |
31
+ | Harness | DeepSeek Harness `dsh-v0.1.5-rc.2`(GitHub tag,2026-09-11 已核验)(2026-09-09 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。已于 2026-09-11 对照 dsh-v0.1.5-rc.2 master checkout 核验(全量门禁链 + profile 安装冒烟)。 |
32
32
  | Node | `^22.19.0 \|\| >=24.0.0` |
33
33
  | 平台 | Web GUI(双面:Host + 浏览器) |
34
34
  | 模型 | 任意(面板只读;仅 `/mcp` 输出对模型可见) |
package/README.md CHANGED
@@ -19,7 +19,7 @@
19
19
  [![npm version](https://img.shields.io/npm/v/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
20
20
  [![npm downloads](https://img.shields.io/npm/dm/dsh-mcp-panel)](https://www.npmjs.com/package/dsh-mcp-panel)
21
21
 
22
- [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
22
+ [English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
23
23
 
24
24
  </div>
25
25
 
@@ -29,7 +29,7 @@
29
29
 
30
30
  | Surface | Status |
31
31
  |---|---|
32
- | Harness | DeepSeek Harness `dsh-v0.1.5-rc.1` (GitHub tag, verified 2026-09-10) (adapted 2026-09-09): 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-10 against the dsh-v0.1.5-rc.1 master checkout (full gate chain + profile install smoke). |
32
+ | Harness | DeepSeek Harness `dsh-v0.1.5-rc.2` (GitHub tag, verified 2026-09-11) (adapted 2026-09-09): 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-11 against the dsh-v0.1.5-rc.2 master checkout (full gate chain + profile install smoke). |
33
33
  | Node | `^22.19.0 \|\| >=24.0.0` |
34
34
  | Platforms | Web GUI (dual-face: host + browser) |
35
35
  | Model | Any (the panel is read-only; only `/mcp` output is model-readable) |
@@ -8,7 +8,7 @@
8
8
 
9
9
  1. **当前工作区是红灯状态**:上一版 Phase 2 功能(面板轮询、探测按钮、被动探测、/mcp i18n、探测上限、事件陈旧度)已写入源码但**未收口**——`pnpm run typecheck` 有 7 个错误、`pnpm test` 84 例中 1 例失败、15 个文件未提交、文档(5 语言 README / cordis.patch.yml / CHANGELOG / AGENTS.md)未同步。**第一优先级是完成收口并提交**(§2),而不是叠加新功能。
10
10
  2. **CI typecheck 可恢复**:上一版 A6 以"npm 类型包过旧"为由否决 CI typecheck;实测证据表明该前提已不成立——`@deepseek-ai/dsh-*` 全套 `0.1.0-rc.6` 已发布到 npm(`next` 标签),独立 spike 用纯 npm 类型闭包编译本仓库源码,错误输出与 checkout 版本**完全一致**(仅本仓库自身 7 错,无任何模块解析/类型闭包错误)。恢复 CI typecheck 可直接堵住当前这类"改一半"的回归(§3)。
11
- 3. **上游 `mcp/status` seam 仍未落地**:grep 本地 harness checkout 全部 `packages/` 与 `docs/`,`mcp/status` 事件、`McpStatusService` 均不存在,`docs/upstream-proposal.md` 也未出现在 harness 仓库。插件当前全部连接字段仍走 `unknown + statusSource: derived` 降级。提案文档已完备(本仓库 `docs/upstream-proposal.md`,含 PR contents 清单),**提交上游 PR 是让插件核心价值完整化的最高杠杆动作**(§6)。
11
+ 3. **上游 `mcp/status` seam 仍未落地**:grep 本地 harness checkout 全部 `packages/` 与 `docs/`,`mcp/status` 事件、`McpStatusService` 均不存在,`docs/upstream-proposal.md` 也未出现在 harness 仓库。插件当前全部连接字段仍走 `unknown + statusSource: derived` 降级。提案文档已完备(本仓库 `docs/upstream-proposal.md`,含 PR contents 清单),但**上游不开放外部 PR 通道**——2026-09-10 复核 `GET /repos/deepseek-ai/deepseek-harness/pulls` 仍为 HTTP 404,与 §11 的 2026-08-14 证据一致。故当前最高杠杆动作是**维持 `src/upstream.ts` tripwire + 跟随锚点 Discussion [#1300](https://github.com/deepseek-ai/deepseek-harness/discussions/1300)**,而非提交 PR(详见 §11)。
12
12
  4. **新增产品与工程机会**已逐项核查(§4/§5),均不触碰只读契约与诚实性约束。
13
13
 
14
14
  ### 可行性总览
@@ -33,7 +33,7 @@
33
33
  | P2-7 | sanitizeUrl 补 URL fragment 凭据键脱敏 | ✅ | 无 | XS |
34
34
  | P2-8 | 配置事实展示(failOnStartupError / reconnect 策略,derived 标注) | ✅ | 需 locale 文案 | S |
35
35
  | P3-1 | 面板/命令扩展到 es/pt/hi(对齐 5 语言 README) | ✅ | 翻译 + 校对 | M–L |
36
- | P4-1 | 向 deepseek-harness 提交 mcp/status 上游 PR | ✅ 提案完备 | harness 仓库门禁(测试/Agent Note/双语) | L |
36
+ | P4-1 | 上游 `mcp/status` seam 落地(PR 通道关闭 → 锚点 Discussion [#1300](https://github.com/deepseek-ai/deepseek-harness/discussions/1300)) | ⛔ 外部受阻(2026-09-10 复核仍 404) | 上游重开 PR 通道或采纳提案 | L |
37
37
  | P4-2 | 上游落地后回归 + tripwire 清理 | ✅ | 依赖 P4-1 合入 | S |
38
38
 
39
39
  ---
@@ -48,7 +48,7 @@
48
48
  |---|---|---|
49
49
  | C1 entryId 修正 | ✅ 已做 | `src/service.ts:147` 用 `entry.options.id`;`tests/command.spec.ts:121` nestedMcpRow 用例 |
50
50
  | C2 提案入库 | ✅ 已做 | `docs/upstream-proposal.md`(随包分发);README 已改相对链接 |
51
- | C3 README 五章×5 语言 | ✅ 已做 | README.md 含 Compatibility/Quick start/Uninstall/Honest by contract/Configuration/Permissions & data/Troubleshooting/Security;`README.zh.md` 章节结构一致 |
51
+ | C3 README 五章×5 语言 | ✅ 已做 | README.md 含 Compatibility/Quick start/Uninstall/Honest by contract/Configuration/Permissions & data/Troubleshooting/Security;`README-zh.md` 章节结构一致 |
52
52
  | A3 v0.1.0 发布 | ⚠️ 部分 | CHANGELOG 有 0.1.0 条目、README 引 `#v0.1.0`;但本机 clone **无 remote**,tag/Release 无法本地验证(见 §1.5) |
53
53
  | A1 CI / A2 产物冒烟 / A4 probe 单测 / A5 客户端接线 / A7 dependabot | ✅ 已做 | `.github/workflows/ci.yml`、`scripts/verify-artifacts.mjs`、`tests/probe.spec.ts`(9 例)、`tests/client-registration.spec.ts`(6 例)、`.github/dependabot.yml` |
54
54
  | B1 轮询 / B3 探测按钮 / B5 过滤框 / B4 命令 i18n / B6 探测上限 / B7 陈旧度 / B2 被动探测 | ⚠️ 已写未收口 | 源码全部就位(`refreshIntervalMs`、`mcpPanel/probe` 描述符、`toolQuery`、`outputLanguage`、`maxProbes`、`observedAt`、`passiveProbe*`),但见 §1.2 红灯 |
@@ -226,7 +226,7 @@ tests/aggregate.spec.ts > projects upstream status facts
226
226
 
227
227
  ## 6. Phase 4 —— 上游联动(可选,价值最高)
228
228
 
229
- ### P4-1 · 向 deepseek-harness 提交 mcp/status PR
229
+ ### P4-1 · 上游 `mcp/status` seam:提案与通道状态
230
230
 
231
231
  - 现状:提案完备(本仓库 `docs/upstream-proposal.md` 含动机、面定义、6 个发射点、PR contents 清单、非目标);harness 侧零落地。
232
232
  - 动作(在 harness 仓库执行,非本仓库):
@@ -271,7 +271,7 @@ Phase 3 / Phase 4(可选,各自独立可插队)
271
271
 
272
272
  ## 9. 总结
273
273
 
274
- 17 项全部可实施,无一受阻。**最关键的是 P0**:当前工作区处于"功能已写、门禁红灯、文档滞后"的半完成状态,先把 7 个类型错误与 1 个失败测试修掉、把 Phase 2 收口提交并同步五语言文档,再谈提升。之后 P1-1(CI typecheck 恢复,有 spike 证据背书)能永久堵住同类回归;P2 八项把面板/命令打磨到与功能集相称的完整度;P4-1 上游 PR 则决定插件的终极价值上限。
274
+ 17 项全部可实施,无一受阻。**最关键的是 P0**:当前工作区处于"功能已写、门禁红灯、文档滞后"的半完成状态,先把 7 个类型错误与 1 个失败测试修掉、把 Phase 2 收口提交并同步五语言文档,再谈提升。之后 P1-1(CI typecheck 恢复,有 spike 证据背书)能永久堵住同类回归;P2 八项把面板/命令打磨到与功能集相称的完整度;P4-1 受上游 PR 通道关闭所限,本轮只能停在「提案 + tripwire」(§11)。
275
275
 
276
276
  ---
277
277
 
@@ -310,6 +310,8 @@ Phase 3 / Phase 4(可选,各自独立可插队)
310
310
 
311
311
  结论:上游仓库当前不向外部账号开放 Pull Requests 通道。手头交付物已就绪:fork 分支 + PR 正文(`Project/Plugins/pr-body-mcp-status-seam.md`)+ 交接说明(`Project/Plugins/pr-handoff.md`,含对比链接 `https://github.com/deepseek-ai/deepseek-harness/compare/master...PerryLink:feat/mcp-client-status-observability-seam`)——具备权限者可从网页一键开 PR;上游恢复 PR 通道后重跑 `gh pr create --repo deepseek-ai/deepseek-harness --head PerryLink:feat/mcp-client-status-observability-seam --base master`。**已获授权并完成 Discussions 移交**:https://github.com/deepseek-ai/deepseek-harness/discussions/1300(Show and tell 分类,含完整实现清单与一键 PR 链接)。
312
312
 
313
+ **2026-09-10 复核(本轮)**:`GET /repos/deepseek-ai/deepseek-harness/pulls` 仍返回 HTTP 404;上游 `CONTRIBUTING.md` 现行文本为 "we cannot accept external pull requests at the moment",并把开放通道收敛为「Discussions 报 bug / 提提案」+「生态插件」。因此 P4-1 的终局口径固定为:**提案(本仓库 `docs/upstream-proposal.md`)+ 消费侧 tripwire(`src/upstream.ts`)+ 锚点 Discussion #1300**;PR 通道恢复前不再重试创建。另按工作区现行纪律,上游 PR 只在「标准件 E」专用会话提交,且同时 open 的上游 PR ≤1。
314
+
313
315
  ## 12. v0.3.0 实施记录(2026-08-15)
314
316
 
315
317
  | 项 | 状态 | 证据 |