Skip to content
Discussion options

You must be logged in to vote

你的根因分析完全正确,我把两处确切位置给你

1. 代码(HEAD = dsh-v0.2.1-alpha.1)

packages/host/open-in-app/src/resolver.ts
:9   * adapters spawn detached with a credential-scrubbed environment and their …
:22  import { scrubbedParentEnv } from '@deepseek-ai/dsh-subprocess'
:60  * credential-scrubbed environment (never the harness's `*KEY*`/`*SECRET*` …
:80    env: { ...scrubbedParentEnv(), ...options.env },

⇒ :80 把父进程环境整体铺开,而"清洗"只针对凭据(*KEY* / *SECRET*,:60 逐字写着)⇒ 运行模式变量不在清洗范围内 ⇒ ELECTRON_RUN_AS_NODE 原样传给编辑器必然发生。

另有一处更直接::584 在某个分支里显式设了 env: { ELECTRON_RUN_AS_NODE: '1' } ⇒ 所以这条链上有两处要处理(一处置"泄漏",一处置"主动设置")。

2. 你写的"只做凭据清洗"是关键——建议作为诉求的着力点

你把清洗范围的语义点出来了:凭据清洗 ≠ 环境隔离。⇒ 建议诉求写成:

启动外部应用时不应整体继承宿主环境,而应采用允许清单(只传启动 GUI 应用所需的最小变量…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by HAHAide
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants