概览
dsh-plugin-mesh
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
1. **同 thread 复用会话,但跨 thread 不复用**:同一 `thread` 的后续消息会注入 同一个会话;没带 `thread` 的任务仍然每次新建。(早于 2026-09 的版本无此复用, 每条消息都新建会话。) 2. **去重只在进程生命周期内**(内存),重启后同 id 会重复入箱。 3. **没有离线排队**:对端离线时 `mesh_run` 直接失败,不暂存重投。 (要这个能力可以用工作区里的 `lanmsg.py`。) 4. **同机多实例**:第二个实例端口被占会退回随机端口,主动扫描扫不到它(组播仍能发现)。 真要同机多实例,给它们配不同 `port` 和对方的 `scanPorts`。 5. **`sidebar.panellist` 槽位官方插件没人用过**(翻遍 58 个客户端 bundle,只有官方侧栏 自己声明它)。我按源码契约接的,实测注册和渲染都正常,但不如 `sidebar.footer.action` 那样有第三方先例。 6. **Android 上 sidecar 需要专用资产,且下载源仍是拦路虎**:`detectTarget()` 现在把 `android` 映射到 `android` 资产(PIE + `/system/bin/linker64`,见上文 Termux 的坑)。 原先那份全静态 `linux/arm64` 在真机上 exec 会被 bionic 拒掉(`has unexpected e_type: 2`), 所以**老版本插件 + 新 sidecar** 或**新插件 + 老 sidecar** 都不行,两边要一起升。 剩下的真正拦路虎是**下载源**:实测那台 Android 上 ghfast.top / gh-proxy.com / ghproxy.net / github.com 全部不通,只能靠同网段的镜子(见下一节)。装好之后 sidecar 本身可以正常跑。 **平台不支持不该拖垮页面**:`binaryInfo()` 只返回 `{installed:false, error}` 从不抛异常, `TsnetNode.status()` 外再兜一层 try/catch,`/mesh/api/state` 在 Android 上仍为 `ok:true`。 ### 逃生通道:用同网段的机器当 sidecar 镜子 当一台机器的所有下载源都不通(被墙、DNS 污染、无外网)时,把已经拿到资产的机器 当镜子即可 —— 校验和钉在 `checksums.js` 里,明文 http 改不了内容: ```bash
