jipika/dsh-lan-loopback-compat ↗★ 0

dsh-lan-loopback-compat

Treat connections that arrive through a LAN proxy as loopback, so a DeepSeek Harness instance reached over a LAN/tunnel keeps its browser connection working. 适合通过局域网或隧道访问 DSH 实例,需要解决浏览器连接异常或被拒问题的用户。

Package
dsh-lan-loopback-compat
Compatibility
Unverified
Version
0.1.0
License
MIT
Last updated
Sep 24, 2026

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

dsh-lan-loopback-compat

Treat connections that arrive through a LAN proxy as loopback, so a DeepSeek Harness instance reached over a LAN or a tunnel keeps its browser connection working.

把经 LAN 代理进来的连接当成 loopback,让通过局域网 / 隧道访问的 DSH 实例保持浏览器连接可用。

license


它解决什么

DSH 的 client 会按 connection.isLoopback 判断「我是不是在本机打开」。当实例是通过反向代理或 LAN 转发访问时,这个判断为假,连接层的一些本机假定就不成立(表现为连接异常/被拒)。

本插件在客户端把该标志置为真 —— 前提是宿主显式声明了它确实处在 LAN 代理之下。

它做什么

// client.js 全部逻辑
if (globalThis.__DSH_LAN_PROXY__ !== true || ctx.connection === undefined) return;
ctx.connection.isLoopback = true;
globalThis.__DSH_LAN_COMPAT_PLUGIN__ = true;
  • 只有 globalThis.__DSH_LAN_PROXY__ === true 时才动手;条件不满足则完全不碰任何东西。
  • 监听 connection/reset 事件,连接重建后重新打标(否则重连会丢)。
  • 打上 globalThis.__DSH_LAN_COMPAT_PLUGIN__ = true 自证已生效。
  • host 半边(index.js)是空 apply() —— 它存在只为了让 cordis 行能挂载 client bundle。

安装

两种装法任选其一(都会往 profile 的 dependencies 加一项,再配一行 insert):

# ① npm(快,走 registry)
dsh plugin --profile 
 add dsh-lan-loopback-compat

# ② GitHub(源码直装,跟随 main 分支)
dsh plugin --profile 
 add github:jipika/dsh-lan-loopback-compat
# ~/.dsh/profiles/
/cordis.patch.yml
- insert:
    - id: dsh-lan-loopback-compat
      name: dsh-lan-loopback-compat

__DSH_LAN_PROXY__ 由外部(代理页面 / 启动脚本)注入;本插件不设置它。

desktop profile 被 Electron 独占(CLI 子命令会被拒),需手改 package.json + pnpm install; 改 client 半边必须重启应用。

已知限制

  • 直接改写 client 服务对象上的属性,依赖 isLoopback 这个内部约定;官方若改成 getter 或受保护属性,写法即失效(会静默不生效,因为整段逻辑只做赋值)。
  • 依赖 connection/reset 事件名。
  • 安全性说明:它不会自己把实例暴露到 LAN —— 只有外部已声明处于 LAN 代理时才生效, 真正的访问控制仍由 DSH 的鉴权负责。

License

MIT © 2026 jipika