Skip to content

refactor: 复用内置查看器与 workspaceFiles,只保留保存端点 - #6

Merged
better-er merged 1 commit into
mainfrom
refactor/reuse-builtin-workspace-files
Sep 29, 2026
Merged

better-er merged 1 commit into
mainfrom
refactor/reuse-builtin-workspace-files

Conversation

@better-er

Copy link
Copy Markdown
Owner

refactor: 复用内置查看器与 workspaceFiles,只保留保存端点

背景

旧版在 DSH 右侧滑出一个自建的覆盖层面板,带自己的文件树与 describe / listDir / readFile 三个 RPC 端点,资源由插件自动认领。dsh 0.1.7-rc.2 的右侧栏已经提供 tab 类型注册表与文档动作席位,内置 @deepseek-ai/dsh-api-workspace-files 也提供文件读取,再自建一套属于重复实现。

改动

  • 文件默认交还 dsh 内置查看器,插件不再自动认领资源,Markdown、图片、PDF 与代码预览全部保持原样
  • 正文经 dsh-resource://file/session/<会话>/<路径> 地址调 remote.workspaceFiles.readBytes 读取内容
  • 删除自建的覆盖层面板、文件树与 describe / listDir / readFile 三个端点
  • UI 收敛到两个席位:内置文档预览头部的铅笔图标注册到 sidebar.right.tab.document.actions,Monaco 正文按类型 id 注册到 sidebar.right.pane.tab
  • 保存仍走自注册的 /classic-coding writeFile 端点,改用 Node 原生 fs.writeFile,不经 ctx.fs 的 agent 沙箱
  • 修三处接线错误:replaceTab 传布尔值导致布局层抛 layout: tab true has no pane、inject 缺 remote.workspaceFiles 导致正文一读文件就崩、readBytes 返回的 RemoteResult 未解包导致编辑器空白且不报错
  • 版本升到 0.2.3,README 同步新交互,release workflow 把 Smoke 步骤挪到 Build 之后

验证

  • pnpm typecheck 通过
  • pnpm build 通过,产物为 lib/index.js、lib/index.d.ts、lib/client.js 与 lib/client.js.map
  • pnpm smoke 全部通过
  • 浏览器实测:内置 JSON 预览点铅笔进入 Monaco 并显示完整高亮内容,点「查看」切回内置预览,再点铅笔可再次进入,全程控制台无错误
  • 保存端点实测返回 ok,文件确实落盘

行为变化

  • 旧的侧栏「⌨️ 古法编程」按钮与消息流文件按钮后缀一并移除,入口改为内置文档预览头部的铅笔图标
  • 不再自建文件树,改用内置 files 类型
  • README 的截图一节删除,docs/screenshots 下三张图录制于旧面板时期,暂留在仓库里未清

文件默认交还 dsh 内置查看器,插件不再自动认领资源。正文经 dsh-resource://file/session 地址调 remote.workspaceFiles.readBytes 读取,文件树与 tab 复用内置能力,删掉自建的 describe、listDir、readFile 三个端点、覆盖层面板与文件树。UI 只留两个席位:内置文档预览头部的铅笔图标,以及 sidebar.right.pane.tab 上按类型 id 注册的 Monaco 正文。

写入仍走自注册的 /classic-coding writeFile,改用 Node 原生 fs.writeFile,不经 ctx.fs 的 agent 沙箱。

同时修三处接线错误:replaceTab 传布尔值让布局层抛 layout: tab true has no pane,改为传活动 tab 的 id;inject 缺 remote.workspaceFiles,正文一读文件就崩在 without inject;readBytes 返回的 RemoteResult 没解包,编辑器拿到空内容且完全不报错。

版本升到 0.2.3,README 同步新交互,release workflow 把 Smoke 挪到 Build 之后,冒烟脚本的 inject 期望一并更新。
@better-er
better-er merged commit 55e1caa into main Sep 29, 2026
1 check passed
@better-er
better-er deleted the refactor/reuse-builtin-workspace-files branch September 29, 2026 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant