dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
DSH 插件更新检查与一键更新工具(设置页插件)。
🛡️ 启动即自检,错误自动修复
每次启动 DSH(桌面客户端或终端都一样),本插件加载后约 0.6 秒会自动运行错误自检修复系统, 先修复、再检查更新,全程无需任何手动操作:
- 配置文件写一半崩溃(断电/杀进程)→ 自动从
.tmp/.bak副本恢复- 插件更新被打断、入口文件缺失 → 自动从更新备份完整还原该插件
- 配置残留 / 重复块 / 损坏缓存 → 自动清理、去重、重建
- 本插件自身激活行丢失 → 自动补回(自保)
做了什么修复会在设置页顶部醒目展示;无提示即代表一切完好。
在 设置 → 插件 → 插件更新 里集中管理已安装插件的新旧:一眼看到谁有新版本,一键完成更新, 不用挨个跑命令。支持 npm registry 插件和 GitHub 源码插件,更新前自动备份、失败自动回滚。
与 DSH 内置「插件市场」的分工:市场负责搜索与安装新插件;本插件负责已安装插件的 版本对比、更新检查、一键更新,以及启用/停用和卸载。
pnpm add <pkg>@latest 更新.git/config / README),
从国内镜像(ghfast.top 等,自动回退 GitHub 直连)下载新版源码覆盖更新| 标签 / 状态 | 含义 |
|---|---|
GitHub |
识别出 GitHub 仓库的本地源码插件,可自动更新 |
本地源码 |
link 安装的本地插件,未识别出 GitHub 来源,需手动更新 |
Git 源 |
github: / git URL 方式安装的依赖,需到源码仓库手动更新 |
bundle |
声明了 dsh.bundle 的插件(安装/更新后自动校对 bundles 数组) |
开发者 |
GitHub owner 匹配 DSH_PLUGIN_DEV_GITHUB 环境变量的插件(可选) |
已停用 |
通过本页停用(写 cordis.patch.yml disable 块),重启后生效 |
| 有更新 / 已是最新 | 与 npm 最新版或 GitHub 最新 release/tag 比较(semver) |
unzip,如 sudo apt install unzip)Windows(PowerShell):下载/克隆本仓库后进入插件目录:
cd dsh-plugin-updates # 进入仓库目录
.\install.ps1 # 默认安装到 web profile
.\install.ps1 -Profile cc-tui # 指定其他 profile
macOS / Linux(终端):
cd dsh-plugin-updates # 进入仓库目录
chmod +x install.sh
./install.sh # 默认安装到 web profile
./install.sh cc-tui # 指定其他 profile
安装脚本会自动:备份旧版本 → 复制源码并安装依赖 → 注册到 profile → 补激活行;失败自动回滚。
安装后:重启 DSH 服务(否则页面仍显示旧缓存),打开 设置 → 插件 → 插件更新。
以下为 PowerShell 示例,macOS / Linux 同理(路径改为 ~/.dsh/...)。
把插件目录复制到 DSH 插件源码目录:
$src = (Get-Location).Path
$dst = Join-Path $HOME '.dsh\plugin-src\dsh-plugin-updates'
Copy-Item $src $dst -Recurse -Exclude node_modules
安装依赖并加入 profile:
Set-Location $dst
pnpm install
dsh plugin --profile web add "link:$dst"
给 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加激活行:
- insert:
- id: plugin-updates
name: 'dsh-plugin-updates'
config: {}
重启 DSH 服务。
推荐直接在设置页的插件更新页里点「卸载」(自动清理激活行和 bundle 记录);或用命令行:
dsh plugin --profile web remove dsh-plugin-updates
然后删除 ~/.dsh/profiles/web/cordis.patch.yml 里的 plugin-updates 块,重启 DSH 服务。
dsh-plugin-updates/
├─ lib/
│ ├─ index.js # 宿主端:Remote 服务 + 版本检查/镜像下载/备份回滚
│ ├─ client.js # 浏览器端:设置页 Tab UI(React)
│ └─ typert.js # Typert 严格声明(必需,否则设置页 RPC 404)
├─ install.ps1 # 一键安装(Windows)
├─ install.sh # 一键安装(macOS / Linux)
├─ publish.ps1 # 维护者发布脚本
├─ PUBLISH.md # 维护者发布说明
└─ LICENSE # MIT
.git/config。补上 repository 字段,或用 git clone 方式安装,就能自动识别 GitHub 最新版本。<profile>/.plugin-updates-backups/,失败自动回滚,回滚失败时会保留备份并提示路径。如需保留本地改动请先手动备份。sudo apt install unzip。dsh.profile.bundles 移除,导致核心服务无法激活、DSH Desktop 打不开。已彻底移除该清理逻辑,并加固 reconcileBundles(包信息读不到时跳过,不做增删判断)git: 源插件现在也显示 GitHub 最新版本和链接(更新仍手动);无桌面桥接(终端模式)时重启提示给出明确的手动重启指引;.npmrc 的 registry 值兼容带引号.npmrc(不再每次启动 spawn npm config get registry,约省 0.5-1s);npm 版本查询改为 curl --parallel 批量(单进程并发 + 连接复用,旧 curl 自动回退单发)。「全部更新」纳入客户端插件(assets/plugins),按钮计数同步包含MIT License,详见 LICENSE。维护者发布说明见 PUBLISH.md。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。