Repository navigation
Releases
Releases · ExplorerZYzhou/DSH-freeweb
v0.2.1 — 插件页开关即接管开关
插件页开关 = 接管开关
启用/停用本插件,就是"用免费搜索 / 回官方搜索"的开关:
- 启用:
apply把web.searchProvider写成freeweb,覆盖官方设置页里选的那个 - 停用:不做任何清理 —— 接管写入的
freeweb恰好等于本 bundle 的 patch 默认值,
DSH 会把它规范化成"清除覆盖";插件停用后 bundle patch 消失,配置自然回落到官方默认 - 官方设置页再改也会被抢回:插件监听
settings/document-updated
主要变更
- 新增:启用即接管(此前需要手动改配置或在设置页里选)
- 精简:267 → 184 行,删除全部"时间设计"(dispose 让位 / 延迟重试 / 代际计数 / settings 缓存)
- 修复:去重从普通对象改为
Set,避免constructor、toString这类 URL 被误判成重复 - 文档:README 新增「插件页开关 = 接管开关」一节 + 已知限制
- 版本:
0.2.0→0.2.1
为什么删掉那些时间设计
实测结论:它们全部无效,而且互相打架——
dispose发生在 HMR 事务内部,写入被拒(HMR transactions cannot be nested)- 延迟到事务之外时,插件的 fiber 已经销毁,写入同样失败
- "避开事务"和"fiber 还活着"在时间上不可兼得
最终发现一个更简单的性质:接管写入的值等于 bundle 默认值 → DSH 自动"清除覆盖" → 插件停用后配置自然回落。既然不需要清理动作,就不需要那些代码。
已知限制
| 项 | 说明 |
|---|---|
| 回落版本不保证 | 停用后回的是 DSH 默认搜索(当前 deepseek-official),不保证是你设置页里选的那一版 |
| 3 秒窗口 | apply 时 settings 服务尚未挂载,接管延迟 3 秒;极慢的机器上可能静默跳过 |
| 官方淘汰旧搜索 | 届时再做适配 |
兼容性
- DSH
0.2.0-rc.2实测通过(组合包形态) - 零依赖:无
require/import - 手动挂载方式仍受支持
v0.2.0
DSH freeweb v0.2.0 — 组合包化
这是一个形态变更版本:从「裸单文件 + 手动 patch」升级为官方组合包(bundle)。
新增
package.json:声明官方规范字段dsh.bundle.patch(manifestVersion: 1),以及engines/repository/homepage/bugscordis.patch.yml:组合包层 patch(web行覆盖 + 注册freeweb-search).gitattributes:统一 LF 行尾
安装方式(三选一)
- 插件页(推荐,DSH 0.2.0+):侧栏 插件 → 添加插件 → 输入本目录绝对路径
- CLI:
npx @deepseek-ai/dsh plugin --profile web add "<本目录绝对路径>" - 手动挂载(不需要 pnpm):把
freeweb-search.js放进 profile,按example-cordis.patch.yml追加两行 patch
装上后可在插件页「已安装」分组看到 dsh-freeweb,支持整包启停/卸载,以及单独启停 freeweb-search 行。
适配核对
- seam 接口(
registerSearchProvider/WebSearchProvider/ 请求与结果字段)字段级完全兼容,插件逻辑零改动 freeweb-search.js本次仅新增说明性注释(available()恒真之理由、maxResults/truncated与 seam 的权威关系)- profile 侧完整往返实测通过:卸载 → 搜索回落官方 → 重装 → 恢复免费后端
- 全新 profile 从零安装、层级优先级(profile patch 可覆盖 bundle patch)均已验证
已知限制
见 README「已知限制与设计权衡」:免费层限速、索引偏英文、fetchProvider: http 被本包固定等。
0.1.0 用户请注意:请改用上述任一新方式安装;旧的手动 patch 与新组合包不要并存(会触发
WEB_DUPLICATE_PROVIDER)。
v0.1.0
DSH freeweb v0.1.0
DSH 免费网页搜索 provider 首个版本:把 DeepSeek 官方按量计费的 web_search 切换成 Parallel 免费搜索后端(匿名免 key,永久免费层)。
✨ 特性
- 🆓 真·零依赖:纯全局
fetch+ 标准 JS,无任何 import - 🔒 匿名免 key:Parallel 免费后端,无需账号、无需 API key
- 🧹 干净可逆:安装 = 1 个文件 + 2 行 patch,装删两行之间
- 🧯 故障透明:所有异常返回诊断信息或留日志,不静默失败
- 🌐 中文可用:Parallel 索引支持中文查询
📦 安装
- 把
freeweb-search.js放进~/.dsh/profiles/web/ cordis.patch.yml加两行(见 README)- 重启 DSH
详细说明见 README
⚠️ 限制
- 免费层有速率限制(个人日常使用足够)
- 功能不强——定位为"快速无负担的免费联网补丁"(详见 README「定位与取舍」)
🤝 Credits
设计协作:DeepSeek V4 Flash 0731(AI 协作者)
📄 License
MIT