概览
dsh-moli
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
- **Linux 与 macOS 的路径由贡献者编写,维护者手上一台这样的机器都没有。** 维护者是一名**没有 macOS / Linux 电脑**的大学生,所以 POSIX 位置的引擎探测与 `sh` 安装器路径都来自 [@nd002723](https://github.com/nd002723)。Linux 由他在 Ubuntu 24.04 上验证通过;macOS 现在由 CI 覆盖——装官方 darwin 构建、在 `macos-latest`(Apple Silicon / arm64)上跑页面级测试,具体跑了什么见 [平台支持](#平台支持)。**但 CI 的虚拟机不等于用户的桌面**,任一平台出问题,都请带上报错信息开 [issue](https://github.com/27painter/dsh-moli/issues)——那仍是这些路径被真正打通的唯一途径。 - **不包含 Moli 本体。** 需自行安装,或让 `moli_probe action=install` 替你拉取。 - **只封装了 `fetch`。** `moli serve`(CDP/WebDriver 服务器)与 `moli import`(会话导入)尚未做成工具。 - **抓取不支持单次取消。** 引擎对抓取是同步执行的,被中断的回合无法中途终止;已在进行的调用会跑完并 写出产物。`moli_probe action=install` 是例外——它是异步的,被中断的回合会立刻终止子进程。 - **HTTP 错误码只在 `dump: json` 下可见。** 那是唯一携带状态字段的格式;用 `markdown` 或 `html` 时错误页会作为内容返回。 - **`writeTo` 调用被串行化。** 它们声明为不可并行,因此两次产物写入不会交错。 - **`insecureTls` 默认为 `true`。** 在过滤代理后面,证书吊销响应者常常不可达,Schannel 于是在 GitHub 这类站点上报 `CRYPT_E_REVOCATION_OFFLINE (0x80092013)`。默认传 moli 的 `--insecure-disable-tls-host-verification`;在吊销检查可用的网络里改成 `insecureTls: false`, 或按次传 `insecureTls: false`。 - **与沙箱的交互。** DSH 默认文件沙箱下子进程是低完整性,Schannel 拿不到客户端凭证,HTTPS 会报 `SEC_E_NO_CREDENTIALS`。纯 HTTP 仍可用,且失败会被结构化上报(`sandboxTlsBlock: true`)并给出 重试方式;该次调用带 `sandbox_permissions: "danger-full-access"` 即可通过。 - **部分网络下主机可达性会波动。** 开发机上观察到的现象:同一时刻,基于 curl 的客户端(moli)访问 `github.com` 超时,而 `git` over HTTPS 与系统浏览器几秒内就能通;`api.github.com` 正常而 `github.com` 不通。所以超时可能是暂时性的——重试,或设置 `proxy`。正因裸超时含义不唯一,它被 上报为 `possiblyUnreachable` 而不当作定论。安装动作的多路径回退与上面的手动命令正是为这种情况准备的。
