Repository navigation
现象在把 Electron 二进制当 node 用的宿主环境里(实测:Kimi 桌面 Electron 43.7.3 / Node 24.21.0 / V8 15.0.245.31-electron.0),dsh 0.1.7-rc.2 与 0.2.1-alpha.1 的任何 profile 启动即 fatal,与 profile 内容无关(健康内置 profile 同样失败): 根因链(均已本机实测)1. 指纹门的位置与引入版本。 2. 白名单是补丁级精确,报错文案却写大版本。 二进制内白名单为三个精确 V8 指纹(
报错文案 3.
门的动机(理解其合理性)0.1.5 及之前在 Electron patched Node 下是缺符号崩溃——实测 0.1.5 在上述 Kimi Electron 下报 影响面任何把自家 Electron 二进制暴露为 node 的 agent 宿主(Kimi 桌面已实锤;机制上门只读 补充:同一变量、两个方向 —— "Electron-as-node" 边界双向破损本 Issue 是内向方向:第三方 Electron 宿主 → dsh 作为子进程继承宿主运行时指纹 → 指纹门 fatal。 经 PerryLink 提示(见本串讨论)存在镜像的外向方向并已由其核实:DSH 桌面端 spawn 外部应用时将 两个方向共享同一变量、同一条边界,建议一并纳入优先级评估。 最小复现ELECTRON_RUN_AS_NODE=1 <任一非白名单 Electron 二进制> <dsh 的 bin.js> --profile headless "say hi"
# => dsh: fatal uncaught exception: ... unsupported Electron runtime fingerprint ...修复建议(按推荐序)
环境
|
Replies: 2 comments 1 reply
这条是我此前核实过的那一族"反向版本"——同一个变量,方向相反1. 关系(先说清,因为它决定了该找谁修)我此前核实过一族报告:DSH 桌面端把 ⇒ 你这条是它的镜像:DSH 自己作为子进程跑在第三方的 Electron 宿主里(Kimi 桌面 / Electron 43.7.3)⇒ 于是 DSH 继承了宿主的 Electron 运行时指纹 ⇒ 触发 ⇒ 建议把这层关系写进摘要:同一变量、两个方向,说明"Electron-as-node"这条边界当前是双向破损的——这会显著提高它的优先级。 2. 你的诊断(我认同它的形态,但需要你补证据)你写"require-builtin 指纹门补丁精确 + app-boot 无 建议把诉求写成:
"给可操作说明"是低成本的那一半:即使暂时无法支持该宿主,也应当告诉用户"你的宿主不被支持,请改用官方运行时"。 3. 请补三样
4. 一条边界我确认的是**"该变量一族"的双向关系**(我核实过 DSH → 子进程那一个方向)。你这条的指纹门与回退缺失以你补的第 1、2 样为准——我没有该宿主环境。 |
追加一个数据点:Electron 43.4.0(macOS x64)同样被指纹门拒绝环境
报错(0.2.1-rc.2,随包 loader 0.1.9) 对主帖的两点补充
最小复现 ELECTRON_RUN_AS_NODE=1 "/Applications/DeepSeek Harness.app/Contents/MacOS/DeepSeek Harness" \
<dsh>/lib/bin.js web --host 127.0.0.1 --port 5199 --no-open这是真实用户路径,不是构造用例 该桌面壳的「检查 Harness 更新…」直接取 本机 请求
|
这条是我此前核实过的那一族"反向版本"——同一个变量,方向相反
1. 关系(先说清,因为它决定了该找谁修)
我此前核实过一族报告:DSH 桌面端把
ELECTRON_RUN_AS_NODE=1透传给外部应用,使 VS Code/Cursor 之类以"纯 Node 模式"启动而失败(代码在packages/host/open-in-app/src/resolver.ts:80与:584)。⇒ 你这条是它的镜像:DSH 自己作为子进程跑在第三方的 Electron 宿主里(Kimi 桌面 / Electron 43.7.3)⇒ 于是 DSH 继承了宿主的 Electron 运行时指纹 ⇒ 触发
node-addon-require-builtin的指纹门。⇒ 建议把这层关系写进摘要:同一变量、两个方向,说明"Electron-as-node"这条边界当前是双向破损的——这会显著提高它的优先级。
2. 你的诊断(我认同它的形态,但需要你补证据)
你写"require-builtin 指纹门补丁精确 + app-boot 无
--expose-internals回退"。⇒ 这个判断的形态是对的(指纹门过严 + 缺少回退),而且严重度也是对的:你写0.1.7-rc.2与0.2.1-alpha.1都失败、且与 profile 无关(健康内置 profile 同样失败)⇒ 这不是配置问题,而是硬性兼容墙。建议把诉求写成: