dsh-scout 0.9.3 → 0.9.4
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 +39 -1
- package/README.en.md +18 -14
- package/README.md +18 -14
- package/dist/i18n.d.ts +157 -1
- package/dist/i18n.js +354 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +339 -88
- package/dist/model.d.ts +62 -9
- package/dist/model.js +655 -134
- package/docs/dsh-scout-product-contract.md +5 -3
- package/package.json +4 -1
- package/scripts/acceptance-report.mjs +622 -0
- package/scripts/profile-smoke.mjs +12 -15
- package/scripts/smoke-tool-call.mjs +43 -0
- package/tests/acceptance.test.mjs +57 -41
- package/tests/model.test.mjs +301 -69
- package/tests/package.test.mjs +6 -6
- package/tests/tools.test.mjs +382 -16
|
@@ -24,7 +24,9 @@
|
|
|
24
24
|
- **F4 · 依赖对齐**:`@deepseek-ai/schemastery` 由 `^3.18.2` 改为 `~3.18.4`,与宿主系列一致;`peerDependencies` 与 `engines.dsh` 范围不变。
|
|
25
25
|
- **已知边界 G1(有意不修,推迟 0.10.0)**:冷启动惰性回填会把决策理由措辞由初始文案换成 `decisionReasons.identity`(并补 `decisionReasonCode`),`decision` 不变;详见 [0.9.2 门禁发现](dsh-scout-0.9.2-gate-findings.md)(仓库文档,不在 npm 包内)。
|
|
26
26
|
|
|
27
|
-
**v0.9.
|
|
27
|
+
**v0.9.4(当前版本)**的主题是**真实宿主可用 + 报告可读**:修复桌面 App 下导出写不进会话工作区的 P0(受限 fs 后端需要 per-call 沙箱策略),`identityStatus` 增加 `corroborated` 档并记录逐字段 provenance,`report.md` 重构为按决策阶段组织的可读结构(正文不再出现 E0–E3 与 source id)。安装模型、分发源取舍与兼容性豁免仍见 §5.3;桌面路径的手工验收见 [安装验收 checklist](install-verification.md)(仓库文档,不在 npm 包内)。本版本**不新增工具、命令或 Skill 条目**。
|
|
28
|
+
|
|
29
|
+
**v0.9.3** 不改运行时契约,主题是**安装体验**:此前 README 的三条「已验证路径」全是 `dsh plugin --profile <name> add …`,而桌面 App 的 `desktop` profile 被 Electron 应用独占,桌面用户第一步就撞墙——0.9.3 把「App 内安装」写成主路径,并给安装补上可执行判据。安装模型、分发源取舍与兼容性豁免见 §5.3;桌面路径的手工验收见 [安装验收 checklist](install-verification.md)(仓库文档,不在 npm 包内);评审原件见 [安装评审](dsh-scout-install-ux-review.md)(同上)。本版本**不新增工具、命令或 Skill 条目**。
|
|
28
30
|
|
|
29
31
|
## 1. 产品承诺
|
|
30
32
|
|
|
@@ -136,10 +138,10 @@ scout-cases/<case-id>/
|
|
|
136
138
|
|
|
137
139
|
- **`desktop` 由应用独占**:CLI 对它的**所有** `dsh plugin` 子命令都在参数解析层按 profile 名拒绝(`rejectElectronProfile`,`error: profile "desktop" is managed exclusively by the Electron application`),连兼容性逃生门 `allow-version` 一起拒绝。所以桌面场景既没有 CLI 判据,也没有可脚本化的自动化门禁——这正是 0.9.2 及以前的门禁盲区。
|
|
138
140
|
- **spec 一律写精确版本**:pnpm ≥ 11 默认启用最小发布年龄(minimum release age)供应链保护,裸包名会把刚发布的版本静默跳过、回退到旧版;写精确版本后 pnpm 会把它记入 profile 的 `minimumReleaseAgeExclude`。
|
|
139
|
-
- **分发源与代价**:npm(自带 `dist/`,不跑安装脚本,**推荐**)、本地 tarball(离线 / 自测)、git(仓库不含 `dist/`,`prepare` 会跑 `tsc` 并安装 devDependencies——**不推荐**,只在需要未发布提交时使用,ref 写真实 tag 如 `#v0.9.
|
|
141
|
+
- **分发源与代价**:npm(自带 `dist/`,不跑安装脚本,**推荐**)、本地 tarball(离线 / 自测)、git(仓库不含 `dist/`,`prepare` 会跑 `tsc` 并安装 devDependencies——**不推荐**,只在需要未发布提交时使用,ref 写真实 tag 如 `#v0.9.4`)。git 是唯一会执行代码的路径。
|
|
140
142
|
- **Node 适用范围**:`engines.node >= 22.19` 只对 CLI / 门禁路径成立;桌面 App 自带运行时(实测 node 24.21.0 + pnpm 11.7.0),无需安装 Node。
|
|
141
143
|
- **成功判据与排障面(两个 GUI 面,别混)**:**侧边栏 → 插件页**是**管理面**,回答「装的是哪版」——`dsh-scout` 在「已安装」里,**详情页**标题旁带 `v{version}`(`BundleInfo.version`),安装 / 启用 / 停用 / 移除都在这里;**设置 → 内置插件 → 插件列表**是**只读检查面**,回答「装没装 / 为什么没生效」——该行**已启用 + 运行中**(不是**已停用** / **启动失败** / **条件启用**),按「会话插件 / 全局插件」分组,**不显示版本号**(wire 行只有 `{ entryId, moduleName, meta?, enabled, fiberPhase }`)。再加上新开一轮对话是否出现 12 个 `scout_*` 工具、`/scout status <caseId>` 是否命中且输出末尾带 `· dsh-scout <version>`。CLI 的 `--dump-config` 只证明「组合进去了」,**不等于**运行时挂上了——不匹配时插件行被置为 disabled,且**这一行只对 CLI 用户可见**(stderr 打 `dsh: disabling profile plugin <row>: <reason>`)。桌面 App 没有可见 stderr、没有运行日志(实测 Electron 主进程的 fd0/fd1/fd2 指向 `/dev/null`,日志目录为空),插件被 disabled 时它自己不可能输出任何东西——但**答案就在 GUI 里**:启动时被禁用的行会被投影成插件列表里的「已停用」(宿主侧 `enabled: !entry.disabled`,`dsh-host-plugin-inventory/lib/index.js:131`),所以插件列表是桌面唯一的排障入口。
|
|
142
|
-
- **版本豁免(桌面手动路径)**:桌面用户用不了 `allow-version`,需要在 `~/.dsh/profiles/desktop/compatibility.json` 手写豁免——平铺 JSON:精确 `package@version` → 允许的精确 DSH 版本数组,例如 `{ "dsh-scout@0.9.
|
|
144
|
+
- **版本豁免(桌面手动路径)**:桌面用户用不了 `allow-version`,需要在 `~/.dsh/profiles/desktop/compatibility.json` 手写豁免——平铺 JSON:精确 `package@version` → 允许的精确 DSH 版本数组,例如 `{ "dsh-scout@0.9.4": ["0.2.1-rc.5"] }`。与工具 / CLI 写入的是同一组边界:只接受精确版本、只授权「这一个包版本 + 这一个 DSH 版本」这一对、不随升级继承、不授权依赖安装脚本、下一次组合生效;手写绕过 `acceptRisk` 风险确认,写法不合规的记录会被忽略并告警(不会让 profile 不可用)。
|
|
143
145
|
- **验收**:桌面路径由发版前手工 checklist 覆盖(`docs/install-verification.md`:Lane D 桌面 App / Lane C CLI,含两条 lane 的差异与触发时机,仓库文档、不在 npm 包内);CLI 自动化仍是 `npm run test:profile` 的六步链与 `npm run check:release` 的四版本矩阵。
|
|
144
146
|
|
|
145
147
|
## 6. 明确非目标
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-scout",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"description": "Evidence-driven company and job intelligence plugin for DeepSeek Harness.",
|
|
5
5
|
"icon": "./assets/icon.svg",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
"cordis.patch.yml",
|
|
23
23
|
"locale",
|
|
24
24
|
"assets",
|
|
25
|
+
"scripts/acceptance-report.mjs",
|
|
25
26
|
"scripts/check-release.mjs",
|
|
26
27
|
"scripts/profile-smoke.mjs",
|
|
28
|
+
"scripts/smoke-tool-call.mjs",
|
|
27
29
|
"README.md",
|
|
28
30
|
"LICENSE",
|
|
29
31
|
"docs/dsh-scout-product-contract.md",
|
|
@@ -40,6 +42,7 @@
|
|
|
40
42
|
"test": "npm run build && node --test tests/*.test.mjs",
|
|
41
43
|
"check": "npm test",
|
|
42
44
|
"test:profile": "node scripts/profile-smoke.mjs",
|
|
45
|
+
"test:acceptance": "npm run build && node scripts/acceptance-report.mjs",
|
|
43
46
|
"check:release": "node scripts/check-release.mjs",
|
|
44
47
|
"prepare": "npm run build"
|
|
45
48
|
},
|