Repository navigation
Releases: crane-you/dsh-task-plugin-scout
Release list
v1.0.5 — 适配 DSH 预发布线 / engine range for the prerelease line
变更 · Changed
适配 DSH 0.2.1-rc.3:代码零改动,只收紧依赖声明。
engines.dsh:>=0.2.0→>=0.2.1-rc.2。宿主门禁(@deepseek-ai/dsh-app-boot的
evaluatePluginCompatibility)用includePrerelease: true,>=0.2.0其实也能过;但按 npm 默认的 SemVer
规则,预发布版本只有在范围里出现同一个[major, minor, patch]元组且带预发布标签时才可能满足,>=0.2.0
匹配不了任何0.2.1-rc.x运行时。改成预发布下界后两套规则都成立。代价:0.2.0-rc.*与0.2.1-rc.1被明确排除。- 版本
1.0.4→1.0.5;README(中英)新增「兼容性记录 / Compatibility record」。
0.2.1-rc.3 是怎么复验的:
- API 面逐字节比对 —— 本插件用到的宿主包(
dsh-tools、dsh-system-prompt、dsh-plugin-manager、
dsh-plugin-market、dsh-plugin-market-index、dsh-app-boot)在rc.2与rc.3之间发布 JS 完全相同,
只差package.json里的版本号引用;触点与签名照旧。 - 宿主自己的门禁 —— 把 manifest 交给
rc.3真实的evaluatePluginCompatibility(),判定 compatible。 - 真实加载路径 —— 自带
test/harness.mjs全绿;并用rc.3真实的loadProfileDirectory()跑过本机
desktop profile,本 bundle 正常加载(此前它因源码目录被删而bundle package is not installed)。
| 宿主版本 | 宿主门禁(includePrerelease) | npm 默认语义 |
|---|---|---|
0.2.1-rc.2(开发版本) |
✅ | ✅ |
0.2.1-rc.3(复验版本) |
✅ | ✅ |
0.2.1 / 0.3.0 |
✅ | ✅ |
0.2.1-rc.1 / 0.2.0-rc.2 |
❌(有意排除,从未测试) | ❌ |
What changed
Engine declaration only — no code change. engines.dsh moves from >=0.2.0 to >=0.2.1-rc.2 so that the
declaration is true both under the host's includePrerelease semantics and under npm's default SemVer rules, where a
prerelease version satisfies nothing but a range naming a prerelease of the same [major, minor, patch] tuple.
Re-verified against DSH 0.2.1-rc.3: every host package this plugin touches ships byte-identical JavaScript in rc.2
and rc.3 (only version references in package.json differ), rc.3's real evaluatePluginCompatibility() returns
compatible, the bundled harness passes, and a real loadProfileDirectory() run over the desktop profile loads this
bundle (it previously failed with bundle package is not installed because its checkout had been deleted).
安装 · Install:
v1.0.4 — 依赖声明 / engines.dsh
新增 · Added
声明依赖范围:package.json 增加 "engines": { "dsh": ">=0.2.0" }。
宿主和市场都用它判断「这个插件需要哪个 DSH 版本」—— dshmarket 的市场卡片会展示这条要求,并可据此按主机版本过滤。已用 dshmarket 自己的检查器实测(satisfiesRange,宿主语义 includePrerelease: true):
| 宿主版本 | 判定 |
|---|---|
0.2.1-rc.2(当前运行) |
✅ |
0.2.0 / 0.2.1 / 0.3.0 |
✅ |
0.1.9(未测试过) |
❌ 正确拒绝 |
这里有个容易踩的坑:
0.2.1-rc.2这类预发布宿主在普通 semver 语义下不满足>=0.2.0。dshmarket 的检查器(discovery-compatibility.js)显式使用includePrerelease: true,注释写明这是「宿主自身的语义」,所以普通范围写法才是正确的。
README(中英)的安装章节同步写明了这条要求。
What changed
package.json now declares "engines": { "dsh": ">=0.2.0" } — the field the host and the market read to
decide whether a plugin fits the running DSH. dshmarket's cards show it and can filter by host version.
Verified with dshmarket's own checker (satisfiesRange, host semantics includePrerelease: true):
accepted on 0.2.1-rc.2, 0.2.0, 0.2.1, 0.3.0; correctly rejected on 0.1.9.
A pre-release host like 0.2.1-rc.2 does not satisfy >=0.2.0 under plain semver, which is why that
checker's includePrerelease: true (documented as the host's own semantics) matters here.
The README (both languages) states the requirement as well.
安装 · Install:
{ "action": "install_bundle", "target": "dsh-task-plugin-scout" }v1.0.3 — 市场冷读修复 / market cold-read fix
修复 · Fixes
市场冷读不再过早放弃 —— 单个索引的等待从 10 秒提到 20 秒。
市场服务的“冷读”不只是下载:dshmarket 社区目录约 2.2 MiB(本机实测 6–8 秒),拿到后还要校验并构建内存里的文本索引。旧的 10 秒上限会在本可以成功的读取上先超时,表现就是「发现页 / plugin_scout 拿不到任何市场结果」。服务自身还会缓存该文档一个 TTL,所以这份开销每个索引只付一次。
文档同步 —— README 的插件市场章节改为说明如何加入 dshmarket 社区目录的 format-1 索引(与它界面里同一份数据),并如实记录其体积、市场给单个索引源的 15 秒上限、以及「按版本固定到 unpkg 会快得多、但版本号随目录每日重建而变化」的取舍。
What changed
A cold market read is no longer cut off too early — the per-index wait went from 10 s to 20 s.
A cold read is not just a download: dshmarket's community catalog is ~2.2 MiB (6–8 s here), and the
market service then validates it and builds its in-memory text index. The old 10 s cap timed out reads
that would have succeeded, which shows up as an empty market; the service caches the document for its TTL,
so the cost is paid once per index.
Docs — the README market section now explains how to add dshmarket's community catalog as a
format-1 index (the same data its own UI shows), including its size, the market's 15-second per-source
budget, and the version-pinned unpkg alternative (unpkg redirects every non-exact form, and the catalog
is rebuilt daily).
安装 · Install:
{ "action": "install_bundle", "target": "dsh-task-plugin-scout" }v1.0.2 — 描述对齐 / description alignment
包描述对齐 · description alignment
- npm 上的包描述改为与仓库 About 一致的中英双语表述,去掉已废弃的显示名。
- 代码与行 id、市场条目、GitHub 仓库名保持一致:
dsh-task-plugin-scout。
What changed
- The npm package description now matches the repository About text (bilingual), and the retired
Chinese display name is gone. - The package, loader row, market entry and repository name all read
dsh-task-plugin-scout.
安装 · Install:
{ "action": "install_bundle", "target": "dsh-task-plugin-scout" }v1.0.1 — dsh-task-plugin-scout
首次公开发布 · dsh-task-plugin-scout v1.0.1
一个 DeepSeek Harness(DSH)插件:在动手之前,先帮智能体找出能让当前任务更省力的插件。
这一版有什么
- 模型工具
plugin_scout—— 给它一行任务描述,它按相关度排序本 profile 的插件:已启用、已安装但未启用、以及已配置的插件市场索引里可安装的,并给出每个候选的确切下一步(启用 / 安装 / 无需操作)。 - 系统提示段落
plugin-scout:discovery—— 提醒智能体在非平凡任务开始前先做一次侦察。 - 双语能力概念表(约 35 组)—— 中文任务能命中英文描述的插件,反之亦然;英文按词边界匹配,所以
transcription不会误触发script。 - 零依赖、零构建 —— 纯 ESM,所有资源都通过
ctx.effect注册,卸载即回收。 - 诚实降级 —— 市场没挂载 / 没有索引 / 单次抓取失败,都会在结果里注明并退回纯本地结果,不会报错。
安装
// 从 npm(推荐)
{ "action": "install_bundle", "target": "dsh-task-plugin-scout" }也可以从 Git 仓库或本地目录安装,见 README。npm 页面:https://www.npmjs.com/package/dsh-task-plugin-scout
名字统一
本版起,npm 包名、装载行 id、插件界面显示名、市场条目标题统一为 dsh-task-plugin-scout(此前的中英显示名「任务插件参谋 / Task Plugin Scout」不再使用)。
隐私
不收集、不上报;唯一可能出网的路径是插件市场索引的普通 GET,任务描述只用于本地过滤已下载的文档,不会进入任何请求。详见 README 的「隐私」章节。
First public release
A DeepSeek Harness (DSH) plugin that answers one question before work starts: which plugins already available to this profile would make the task at hand easier?
- Model tool
plugin_scout— hand it a one-line task; it ranks this profile's plugins (already active, installed but disabled, and installable from the configured market indexes) and prints the exact next step for each candidate (enable, install, or nothing). - Prompt section
plugin-scout:discovery— reminds the agent to scout before starting non-trivial work. - Bilingual concept table (~35 groups) — a Chinese task finds English-described plugins and vice versa; ASCII forms are word-boundary aware, so
transcriptionno longer triggersscript. - No dependencies, no build step — plain ESM; every resource is registered through
ctx.effectand released on unload. - Honest degradation — a missing market service, no configured index, or a failed fetch is reported in the result and falls back to local-only, never an error.
Install:
// from npm (recommended)
{ "action": "install_bundle", "target": "dsh-task-plugin-scout" }Git and local-path installs are documented in the README. npm page: https://www.npmjs.com/package/dsh-task-plugin-scout
Names are unified on dsh-task-plugin-scout across the npm package, the loader row, the plugin UI and the market listing.
Privacy — nothing is collected or reported; the only outbound path is a plain GET of the configured market index, and the task text is used locally only. See the privacy section of the README.
附件 dsh-task-plugin-scout-1.0.1.tgz 是从 npm registry 下载的同一份制品,可用于离线安装或校验完整性。
{ "action": "install_bundle", "target": "dsh-task-plugin-scout" }