You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] Web 产出文件面板"在文件夹中显示"打开的是服务器启动目录,而非会话工作区
#3597
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
[Bug] Web 产出文件面板"在文件夹中显示"打开的是服务器启动目录,而非会话工作区
环境
npx @deepseek-ai/dsh web启动)powershell.exe执行Invoke-Item)现象
产出文件(Produced Files)面板中的"在文件夹中显示"(Show in folder)按钮,点击后资源管理器打开的是启动 dsh 服务时所在的目录,而不是当前会话所属的工作区目录(如
E:\DSHworkspace)。打开结果可能位于其他窗口后方,用户常感知为"点击无反应"。复现步骤
npx @deepseek-ai/dsh webE:\DSHworkspace)的会话中,让 agent 一次性创建/修改 6 个以上文件(触发产出文件行出现+N files与"在文件夹中显示"按钮)E:\DSHworkspace;实际:打开C:\Users(服务启动目录)根因分析
按钮点击调用
openFile("."):dsh-client-ui-deliverablesProducedFiles按钮:dsh-client-ui-conversation的openFile实现:dsh-client-runtime的resolveWorkspacePath:当客户端会话记录的
cwd为空时,"."未拼接成工作区绝对路径,被原样发给host.openPath;宿主端(dsh-host-apiproxy)执行powershell.exe -Command "Invoke-Item -LiteralPath '.'",相对路径按服务进程自身 cwd(启动目录)解析 → 打开错误目录。且.catch(() => {})静默吞掉错误,用户无任何反馈。会话实际关联着工作区:
workspace.list返回该会话位于工作区E:\DSHworkspace(workspaceId/path 均在),但"在文件夹中显示"未使用该信息。实测验证
直接调用
POST /api/host.openPath:".""E:\DSHworkspace""E:\DSHworkspace/."建议修复方向
cwd;cwd为空时回退到工作区path。resolveWorkspacePath在cwd为空时不应把相对路径原样下传(会退化为服务器 cwd),应报错或回退到已知根。host.openPath可校验入参必须为绝对路径,拒绝裸相对路径,避免打开任意服务器 cwd 相对位置。.catch(() => {})至少应console.error,便于排查此类静默失败。All reactions