Bundle
dsh-external-links
DSH 桌面端外部链接修复:点击 http/https 链接自动在系统默认浏览器打开。补上壳层缺失的 webview 链接点击接线,直连已修复的原生桥 shell.open-external(DSH 桌面端 5.3.6+,Windows 版)。
- Source
- Lion-Li-git
- License
- MIT
- Updated
- Updated 53 minutes ago
Readme
# dsh-external-links
DSH 桌面端(Deepseek Harness EAC,Windows WebView2 壳)外部链接修复插件。
点击应用里的 **http/https 外链**时,自动在**系统默认浏览器**中打开,而不是毫无反应。
## 为什么还需要它(v0.2.0)
- DSH 桌面端 **5.3.6 已修复**壳层 `shell.open-external` 桥接(PR #251:`cmd start`
→ `ShellExecuteW`,实测返回 `{ok:true}`)。
- 但壳层**只修好了"被调用时的打开动作"**,webview 里点击 `<a target="_blank">` 外链
仍**没有原生接线**(壳注入的 BRIDGE_JS 与 webui 框架都没有锚点点击拦截)——
实测 5.3.6 停用本插件后点链接依旧打不开。
- 本插件补上这层缺失的"接线":拦截链接点击后**直连已修复的原生桥**。
```
点击链接 / window.open()
↓(客户端拦截器,capture 阶段)
window.dshDesktop.openExternal(url) → 原生 ShellExecuteW → 默认浏览器
window.dshDesktop.openPath(path) → file:// 解码为路径后默认应用打开
```
## 功能
- `http://` / `https://` → 默认浏览器(原生桥,5.3.6+);
- `file://` → 解码为 Windows 绝对路径 → `openPath` 默认应用打开;
- 应用内链(同源、`127.0.0.1`/`localhost`、`#hash`、下载、`javascript:`)**不受影响**;
- 右键复制、中键点击不被破坏;
- 无壳层(普通浏览器直接打开 webui)→ 自动回退 `window.open` 新标签页;
- **v0.2.0 起无宿主路由**:不再依赖 PowerShell / webServer(上游已修复的部分已去掉)。
## 安装
### 方式 A:cordis.patch.yml 直装(推荐 —— 可在「插件管理」里开关)
在 `~/.dsh/profiles/web-desktop/package.json` 的 `dependencies` 中加入:
```json
"dsh-external-links": "github:Lion-Li-git/dsh-external-links"
```
执行 `pnpm install`,并在该目录 `cordis.patch.yml` 末尾追加:
```yaml
- insert:
- id: dsh-external-links
name: 'dsh-external-links'
```
**重启 DSH 桌面端**。之后插件会像内置插件一样出现在设置 → 插件 列表,可直接开关
(停用 = 写入 `disabled: true`,下次启动不再加载)。
### 方式 B:bundle 安装(`dsh plugin add`,快捷但不可在插件管理页开关)
```bash
dsh plugin --profile web-desktop add github:Lion-Li-git/dsh-external-links
```
> 说明:bundle 方式(`dsh.profile.bundles`)安装的第三方插件,当前官方版本
> 在插件管理页**不支持停用/移除**(会提示"请在插件市场卸载")——这是上游对
> 所有市场/bundle 插件的一致限制,不是本插件的特例。想用开关就选方式 A。
## 验证
- 重启后打开任意会话,点击消息里的外链 → 应在默认浏览器打开;
- 应用内导航、设置页、下载等不受影响;
- 停用插件后重启,链接会回到"点了没反应"(说明确实由本插件接线)。
## 版本历史
- **0.1.0**:壳层桥接损坏期方案 —— 自带 PowerShell 宿主路由(`Start-Process`)绕开 `cmd start` bug。
- **0.2.0**:适配 5.3.6 —— 桥接已修复,去掉宿主路由,改为直连 `shell.open-external`。
## 兼容性
- 目标:DSH 桌面端 **≥ 5.3.6** Windows 版(`dsh-eac-shell.exe`);
- 5.3.6 之前的版本请用 0.1.0(原生桥在那之前是坏的);
- 纯客户端实现,无框架依赖、无需 PowerShell;
- 插件装在**用户 profile**(`~/.dsh`),DSH 桌面端版本更新不会覆盖它。
## License
MIT
Install
dsh plugin --profile web add github:Lion-Li-git/dsh-external-links
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-external-links from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.