Repository navigation
Releases: qikairo7/dsh-web-search-fetch
Release list
v0.2.20
0.2.20 收紧调用范围、增加私网地址守卫,并把输出结构做成页面级预算。装配方式不变:仍是 searchProvider: aggregated / fetchProvider: aggregated。
主要改动
- 新增
single/multi预设,决策模型改为可选。 调用范围由本地规则二分决定(查询命中「对比 / 综述 / 最新」一类意图才多通道),不再依赖模型判断;decisionRouting默认off,设为model时模型故障会回落到本地规则并写一条降级说明,整段调用不再因此失败。balanced/deep保留,已保存配置照常可用。 - 新增私网地址守卫。
src/address-guard.ts(ipaddr.js@2.5.0)在 AIHOT 判定、URL 适配器与分流之前运行,字面量地址直接判定、主机名先解析、任一答案非公网即拒绝,返回WEB_BLOCKED_URL且第三方引擎零调用。fetch.staticDomains列出的主机豁免,fetch.blockPrivateAddresses: false可关闭。 - 提取改为两段式。 自动预设 +
mode: organize时先派发第一路,2xx、同目标、非挑战页、正文够用就直接返回原文且不加任何标记;否则升级为多路整理,已取得的这一路并入候选、不重复请求。这是本版默认行为变化:抓取从「多路整理」改为「单路优先、不足再升级」。 - 输出治理。
controls.maxOutputChars默认值从 100,000 改为 15,000(页面级,范围仍是 1,000–1,000,000,长文部署可调高);清单类表格裁到前 20 行 / 最多 4,000 字符并说明裁剪了多少张;补充片段单条 1,200、整节 4,000 字符(含标题与标签、同原因去重);尾注压缩为F1: firecrawl 200一行一路,块级标记只在来源 ≥ 2 时内联。 - 搜索相关性过滤。 查询含至少两个有效词时剔除与查询无词元交集的候选;只有一个有效词但该词是连字符/下划线复合 token 时,按候选命中该 token 过半段元过滤。全部被剔除时返回空
sources并说明「未找到与查询相关的结果」,单个普通词查询不做过滤。
同步更新 lib/ 编译产物、锁文件与文档,新增 docs/verification/v0.2.20-acceptance-20261017.md。
已知限制(本版仍未闭合)
以下问题仍可复现,请不要把它们当作已解决。完整量纲与复现证据见 docs/verification/v0.2.20-acceptance-20261017.md 的「已知限制」与「下一轮待修」两节。
- 导航外壳被当作正文返回。 两段式的「够用」判据是整篇段落字数(400),而视频页、列表页的页面外壳本身就能超过这个数。实测一个视频页返回 2,071 字符、导航占 69.7%、文章导语不在输出里,
probeVerdict仍判够用;合成探针(外壳 3,742 / 正文 743 字符)复现自动预设只派发第一路、把外壳原样返回、有正文的第二路调用数为 0。修法方向是补「最长单段落 ≥ 300 字符」的结构条件,而不是继续调高阈值。 - 补充片段预算绝对化。
SUPPLEMENT_TOTAL_BUDGET_CHARS = 4,000不随maxOutputChars伸缩,同一份抓取在 15,000 / 30,000 / 100,000 三档上限下输出完全相同。参照正文选得偏小时补充片段会占输出大头:实测机械内容 37.2%,自动预设 59.5%;参照选为大正文时同页 10.8%。 - 两列全为链接的数据表仍被裁。 清单判定要求「每行非空单元格全部是纯链接」,因此 API 端点表这类真实数据表只要两列都是链接,仍会被裁到 20 行,调高
maxOutputChars也拿不回来(实测 30 行裁掉 10 行)。 - AnySearch 对部分页面返回乱码。 澎湃文章的多路结果正文是
澎湃这类 UTF-8 被当单字节重编码的文本,直连其/v1/extract拿到的content本身即如此,属上游数据问题、不是插件解码;Tavily 同页正常。多路整理会选中它当参照,导致该页正文不可读。 - 内置 HTTP 路径下空正文的 4xx 仍算成功。 走内置 HTTP 的 404/403 在无正文时仍返回
(HTTP 404)加空正文,不是显式失败。 - 全引擎失败的分组口径不完整。 真实 404/403 目前全部归入「引擎不可用」,没有进入「目标被拒绝」组。
设置页(重启宿主后已验证)
重启后核对:~/.dsh/profiles/web/node_modules/dsh-web-search-fetch 与发布的 lib/ 40 个 .js 文件逐一字节一致,插件卡片显示 v0.2.20。设置页已渲染出新的调用预设(自动 / 单通道 / 多通道 / 免费接口 / 均衡 / 深度 / 自定义)、默认选中「本地规则」的判断方式控件,以及「整理输出上限(字符)」字段。
一处界面缺口:fetch.blockPrivateAddresses、fetch.probeTimeoutMs、controls.singleChannelEscalate 三个配置项在运行时已实现并生效,但设置页尚无对应控件,只能写配置文件(默认 true / 15000 / false,正常使用无需改动),已列入下一轮待修。
宿主配置里残留的 search.decisionModel 不生效:decisionRouting 默认 off,判断在第一步即返回本地规则。
未验证
设置页的保存与刷新持久化(本轮只读验证渲染与默认值,未提交设置变更);其他操作系统与其他 DSH 版本。Firecrawl 免费额度在验收期间耗尽(HTTP 402,已直连复现为账号额度问题),凡需要它作答的格子标记为环境不可用,未取得数字。
v0.2.19:适配 DeepSeek Search / Fetch 与 DSH rc.2
适配 DSH 0.2.1-rc.2,新增默认关闭的 DeepSeek Search / Fetch 直连来源。
- 新增可选
deepseek来源:POST /v1/tools/search与/v1/tools/fetch,共用DEEPSEEK_API_KEY。 - 搜索发送
query、count、need_content: false,上限 50;提取返回 Markdown。 - 插件仍注册两个
aggregatedprovider,与宿主内置deepseek-search-api/deepseek-fetch-api相互独立。 - rc.2 设置页改经
plugins.bundle.config注册,同时保留旧settings.plugins.tab兼容。 - 服务数 15、凭证位 14;搜索上限 13、提取上限 11。DeepSeek 默认关闭。
- 依赖树对齐 rc.2 的正式
cordis 4.0.5、schemastery 3.18.5、cosmokit 1.8.6。
验证:30 个测试文件 / 528 项测试、构建、类型、仓库与分发检查、peer 检查、npm pack --dry-run、git diff --check、PR CI 8/8 通过。正式 web profile 安装 0.2.19 后重启,原生 web_search 返回 6 条来源,原生 web_fetch 读取 https://example.com 返回 HTTP 200 和非空正文。GUI 已确认插件详情与 DeepSeek 服务出现;设置保存/刷新未完成,因为插件清单停滞在“正在读取插件…”。DeepSeek 新来源真实调用未执行:正式 profile 没有 DEEPSEEK_API_KEY,本轮未读取或写入该凭证。
安装或升级:
dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.19/dsh-web-search-fetch-0.2.19.tgz来源提交:912d081d73776535d653f9cbd1f65704be520ab3。
安装包 SHA-256:f9ead723d49d4d5b8b6394bbe583bd8b5c18de9a5f35507d3c875aa34f921d62。附 SHA256SUMS 供核验。
v0.2.18:移除智谱服务
清理不再支持的智谱服务。
- 移除智谱搜索引擎、Anthropic 兼容流式通道与
tools-api备用通道。 - 移除
ZHIPU_API_KEY、根apiKeyEnv、search.zhipuApiKeyEnv、zhipuTransport及相关端点配置。 - 设置页移除智谱服务、凭证位和传输通道选择器;服务数收敛为 14 项,凭证位为 13 个。
- 默认搜索参与列表移除智谱,搜索服务上限调整为 12 路。
- 删除智谱客户端、协议映射、SSE 解析、测试、夹具、编译产物与第三方致谢条目。
- 沿用 0.2.16 的 DSH
0.2.1-alpha.5兼容声明,不改变直接运行依赖。
验证:30 个测试文件 / 523 项测试、构建、类型检查、仓库与分发检查、npm pack --dry-run、git diff --check 及 PR CI(Windows/Ubuntu × Node.js 22.19/24)通过。
安装或升级:
dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.18/dsh-web-search-fetch-0.2.18.tgz来源提交:4ad9245184b52fd3ee1961c0ff4979143954ec2b。
安装包 SHA-256:552ae86f1ffbb05f4681094285e92702f8ad5aa3dff1b3b7910cf7800a386c37。附 SHA256SUMS 供核验。此发布为 GitHub Release 安装包,不发布至 npm registry。
边界:本轮发布执行仓库、离线分发与 CI 验证;未重测正式 DSH profile 升级、真实 web_search / web_fetch 调用或其他宿主机行为。已停止支持服务的旧配置键与凭证值不会被本插件读取,是否清理宿主凭证由用户另行决定。
v0.2.17:清理不再支持的旧服务
清理不再支持的旧服务。
- 移除知乎引擎、每日额度探测、
ZHIHU_ACCESS_SECRET凭证位、相关测试与文档。 - 移除百度千帆 AI 搜索适配与
QIANFAN_API_KEY凭证位。 - 移除豆包 Custom 搜索 / 提取适配与
DOUBAO_SEARCH_API_KEY、DOUBAO_FETCH_API_KEY凭证位。 - 设置页收敛为 15 项服务 / 14 个凭证位;搜索上限调整为 13 路,普通动态提取上限调整为 9 路。
- 删除对应历史验证文档与豆包 HTTPS 追查材料;保留通用额度熔断管线供未来引擎使用。
- 基础兼容性沿用 0.2.16 的 DSH
0.2.1-alpha.5声明,不改变直接运行依赖。
验证:37 个测试文件 / 671 项测试、构建、类型检查、仓库与分发检查、npm pack --dry-run、git diff --check 及 PR CI(Windows/Ubuntu × Node.js 22.19/24)通过。
安装或升级:
dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.17/dsh-web-search-fetch-0.2.17.tgz来源提交:cf96d7cd9ece0a9a4a44ef3f6949b9b54dd2d8ff。
安装包 SHA-256:d6a7e09a77de283abc286a232c4cd90467430208f701c620d45b8ac49ed4e7d9。附 SHA256SUMS 供核验。此发布为 GitHub Release 安装包,不发布至 npm registry。
边界:本轮发布仅执行仓库、离线分发与 CI 验证;未重测正式 DSH profile 升级、真实 web_search / web_fetch 调用或 0.2.16 已记录的实机行为。已停止支持服务的旧配置键与凭证值不会被本插件读取,是否清理宿主凭证由用户另行决定。
v0.2.16:DSH alpha.5 兼容
DSH alpha.5 兼容版。
- 适配 DSH
0.2.1-alpha.5:兼容矩阵加入 alpha.5,10 个 DSH 开发运行包升级到 alpha.5。 - 对照 npm alpha.5 包,确认
@deepseek-ai/dsh-webprovider 接口在 alpha.3 至 alpha.5 间保持一致;插件运行代码无需修改。 - alpha.5 新增
conversation.input.model.labelSlot;该 Slot 与本插件设置面无关,未新增 client inject。 - 保持原生
web_search/web_fetch双工具面,不新增 MCP、常驻浏览器或外部 CLI。
验证:41 个测试文件 / 771 项测试、构建、类型检查、仓库与 106 项必要分发文件检查、npm pack --dry-run 与 git diff --check 通过;PR CI(Windows/Ubuntu × Node.js 22.19/24)通过。
安装或升级:
dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.16/dsh-web-search-fetch-0.2.16.tgz来源提交:20678bb6f6a934eb48817bb6961a30e55bfb9289。
安装包 SHA-256:4d1dc7d210695b651fb70825492d5c6b840c92acb4cb22c6d17a1e6561511f3e。附 SHA256SUMS 供核验。此发布为 GitHub Release 安装包,不发布至 npm registry。
发布后检查:已重新下载 Release 资产并核对 SHA-256;正式 Web profile 已从 0.2.15 升级到 0.2.16,宿主停止后重新启动。DSH CLI 为 0.2.1-alpha.5,profile 内安装包版本为 0.2.16,lib/index.js / client/index.js 与 v0.2.16 标签对象一致,--dump-config 显示两个 provider 均为 aggregated 且未出现本插件兼容警告。真实 alpha.5 DSH 会话调用原生 web_fetch 读取 https://example.com:轮次 completed;Firecrawl / AnySearch / Tavily 三路均 HTTP 200 且返回地址一致;自动决策 jev-1.13.0 判定 fast(置信度 91%),实际派发 3 路、未派发 7 路、插件 HTTP 请求 4 次;正文带 F#:B# 来源标记。
v0.2.15:文档梳理与 DSH alpha.4 兼容
正式文档与 DSH alpha.4 兼容版。
- 梳理项目定位、架构状态、生命周期、历史验证记录和依赖审阅边界,避免文档停留在旧版本时点。
- 适配 DSH
0.2.1-alpha.4:engines.dsh声明>=0.2.1-alpha.2,兼容矩阵加入 alpha.4,开发运行包升级到 alpha.4。 - 对照 npm alpha.4 包确认
@deepseek-ai/dsh-webprovider 接口与 alpha.3 一致;插件运行代码无需因 provider API 变更修改。 - 保持原生
web_search/web_fetch双工具面,不新增 MCP、常驻浏览器或外部 CLI。
验证:41 个测试文件 / 771 项测试、构建、类型检查、仓库与 106 项必要分发文件检查、npm pack --dry-run 与 git diff --check 通过;PR 与主线 CI(Windows/Ubuntu × Node.js 22.19/24)通过。
安装或升级:
dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.15/dsh-web-search-fetch-0.2.15.tgz来源提交:75c83bbbe93e8b939aa97dd6cf3d6f6c4bf12c23。
安装包 SHA-256:60c73dc41c1dd36e375919e7f320e86211f3ebab9eb793d4974f12e8178f83ce。附 SHA256SUMS 供核验。此发布为 GitHub Release 安装包,不发布至 npm registry。
发布后检查:已重新下载 Release 资产并核对 SHA-256;正式 Web profile 已从 0.2.14 升级到 0.2.15,宿主停止后重新启动。DSH CLI 为 0.2.1-alpha.4,profile 内安装包版本为 0.2.15,lib/index.js / client/index.js 与 v0.2.15 标签对象一致,--dump-config 显示两个 provider 均为 aggregated 且未出现本插件兼容警告。
真实 alpha.4 DSH 会话调用原生 web_fetch 读取 https://example.com:轮次 completed;Firecrawl / AnySearch / Tavily 三路均 HTTP 200 且返回地址一致;自动决策 jev-1.13.0 判定 fast(置信度 89%),实际派发 3 路、未派发 7 路、插件 HTTP 请求 4 次;正文带 F#:B# 来源标记。
边界:alpha.4 宿主拒绝装载两个与本插件无关的第三方插件(@michengai/dsh-skills-manager@1.1.23、@michengai/dsh-archive-manager@1.0.20),因其 peer 范围未包含 alpha.4。本插件通过 engines.dsh 与 alpha.4 兼容机制正常装载。本轮未授予这些第三方插件的 exact-version exemption。web_search 未在本轮重复调用,既有正式搜索证据见 0.2.13 实战验收。
- 完整 alpha.4 适配与正式 profile 验收记录见 0.2.15 alpha.4 适配验收。
v0.2.14:正式 DSH 会话实战验收
正式交付文档版:补齐 0.2.13 正式 DSH 会话实战验收记录,并将安装入口提升到 0.2.14。运行代码与 0.2.13 保持一致。 - 新增正式 DSH 会话实战验收:记录用户导出的 session.v4.jsonl,验证模型自主调用原生 web_search / web_fetch、四轮完成、deep / fast 自动范围切换,以及「不读取网页」约束遵守情况。 - 证据身份绑定 0.2.13 正式 Web profile:会话 ZIP SHA-256 为 8c561fc1f7844377dce11f94a0d850f0ff3b09b979fd6e579ef8671313cb521e;正式 profile 中 lib/index.js 与 client/index.js 的 Git 对象哈希均与 v0.2.13 标签一致。 - 记录明确边界:不逐服务归因,不证明 issue #3 的历史 HTTPS 故障根因消失,也不复核模型答案事实质量。 - 版本提升到 0.2.14,README 安装命令指向本 Release 资产;不改变运行代码。 验证:41 个测试文件 / 771 项测试、构建、类型检查、仓库检查、106 项必要分发文件检查、npm pack --dry-run 清单与 git diff --check 均通过;发布 PR 的 Windows/Ubuntu × Node.js 22.19/24 主线 CI 8 项全部通过。 安装或升级: sh dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.14/dsh-web-search-fetch-0.2.14.tgz 来源提交:bce6711e2689d64d7c1b58b6e54ec9d8eb7b2b20。 安装包 SHA-256:5e0f7834845f9f13aea9acd61be3a93b0f584993ed78b1bc7c3f5267c7422f06。附 SHA256SUMS 供核验。此发布为 GitHub Release 安装包,不发布至 npm registry。 发布后检查:发布资产已重新下载并核对 SHA-256。本版本运行代码与 0.2.13 一致,沿用 0.2.13 的安装、入口加载、CLI 启动、认证页面/资源与正式会话验证;本次未调用外部搜索、提取或决策接口。
- 后续已在正式 web profile 完成安装、宿主重启与原生 web_fetch 三路提取验证,见0.2.14 正式 profile 安装验证。
v0.2.13:首次使用选择、窄屏与键盘体验及提取修复
让新用户明确选择自动决策或匿名体验,并修复网页提取的已确认问题。
- 设置页顶部提供「配置自动决策」和「直接体验匿名服务」。默认自动预设仍需决策模型凭证;匿名入口选择固定预设,仅使用官方端点且未配密钥的推荐服务与直接 HTTP 抓取。配置暂存后保存生效,已有密钥与自定义端点保留。
- 自动入口直接聚焦模型选择框。修复手机宽度下宿主侧栏挤压表单的问题;桌面及 520/390/320 像素视口、键盘操作、保存刷新、筛选空状态与撤销已实测。
- 修复 GitHub 仓库根页 README 的正文归属和 blob Markdown 路由,以及同资源 HTTP → HTTPS 升级被正文整理拒绝的问题。跨目标、HTTPS 降级和挑战页保护继续生效。
- 扩展中文、新闻、长文、挑战页与慢渠道质量评测。保留率、相关性代理、请求次数和金额证据分别记录;取消已发慢请求不代表免计费,缺少日期的新闻新鲜度仍为未知。
验证:771 项测试、构建、类型/仓库与 106 项必要分发文件检查通过;发布提交的 Windows/Ubuntu × Node.js 22.19/24 主线 CI 全部通过。安装包客户端 SHA-256 与实际 GUI 验收记录一致。
原 HTTPS 输入的历史失败仍未归因,按当前决定暂停,等待新反馈:issue #3。本版本不把 HTTP 升级修复当作该历史问题已修复的证明。既有完整生命周期和逐服务报告仍绑定各自记录的版本/候选包,不声称对 0.2.13 重跑了这些外部调用。
安装或升级:
dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.13/dsh-web-search-fetch-0.2.13.tgz来源提交:46a3b4d31565df1dd03adff77607391a03805cf1。
安装包 SHA-256:89087d78c1f7bbd7aca3cd57a98e2e59b0abc0fe475fe832f73570f905352343。附 SHA256SUMS 供核验。此发布为 GitHub Release 安装包,不发布至 npm registry。
发布后检查:已下载发布资产并核对 SHA-256;禁用安装脚本的新隔离 profile 安装、入口模块加载、CLI 启动和认证页面/资源检查通过,临时服务已停止。本次没有搜索、提取或决策接口调用。详见 发布核验记录。
v0.2.12:官方文档优先、正文降噪与并发等待优化
改善技术资料检索和多路正文整理,保持原生 web_search / web_fetch 与多渠道并发。
- 支持的官方文档意图最多追加两次限定域名检索,相关官方来源在重排前后优先;补充查询共用请求预算,不重复计算服务票数。
- 合并已核实的文档 URL 别名及具有相同标题、长摘要的尾斜杠变体;正文跨章节的相同长块合并来源,保留原文内部重复和文本差异。
- 清理明确的导航、面包屑与主题控件,保留代码、表格及有效链接;同步中文文档和离线演示。
- 自动预设在至少三路充分结果后宽限等待,再取消慢渠道,并标记可能不完整;固定预设继续使用原等待预算。
- 保留主分支新增的固定提交安装文件和依赖清单。
验证:38 个测试文件、741 项测试通过;构建、类型、文档和 106 项必要发布文件检查通过。五组真实接口对比及正式 DSH 原生搜索、提取调用完成,官方管理器热加载无需重启。
提前结束不能保证未返回渠道没有独有内容;长文仍受输出预算约束。真实网络存在波动,本版本不承诺固定延迟。
安装:
dsh plugin --profile web add https://github.com/qikairo7/dsh-web-search-fetch/releases/download/v0.2.12/dsh-web-search-fetch-0.2.12.tgzSHA256: D61D465C4B8FADD6F95D849367D9887EFA3210F34276818067C6C8BC67BDD243
v0.2.10 · 自动决策设置与代理修复
自动预设现在提供五款决策模型选择,并按所选平台显示凭证填写位。模型与密钥保存后用于下一次请求;搜索、提取和重排服务保持独立开关。窄屏下使用下拉选择,避免预设按钮溢出。
修复 TypeSafe 代理传输与 Undici 版本不匹配的问题,决策默认预算调整为 2 秒,并覆盖凭证读取和响应正文。自动预设需要有效的外部模型决策;失败时返回具体原因,本次不派发服务。
验证:725 项离线测试、类型检查和仓库检查通过;五款模型真实 API 冒烟请求成功。正式 DSH 已通过热加载验证原生搜索和多来源网页正文整理,未重启宿主。早期 1 秒预算下出现过决策失败,调整后网页提取一次成功;这不代表长期稳定性或模型质量排名。