跳到主内容

dsh-aionui-panel 使用指南

为 DSH Web GUI 复刻 AionUi 右侧面板:Explorer 文件树与 Git 变更、Preview 多格式预览、按项目隔离的面板宽度持久化。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-aionui-panel

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add @linxin666/dsh-client-ui-aionui-panel

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 可靠 Windows 启动:移除 PowerShell 5.1 -WindowStyle Hidden 与 Electron Node 模式的冲突,隐藏窗口仍由 spawn 的 windowsHide 处理;空旧补丁、状态订阅竞态和 IPC 错误不会再把启动页永久留在 8%。
  • 验证过的 Runtime 组合:内置 @deepseek-ai/dsh 0.1.0-rc.7、dshmarket 1.15.0、Web UI 聚合 0.2.3、兼容 rc.7 的 Codex Connect 与 dsh-live-stats 0.1.20,Stable 继续精确锁定而非追随 latest。
  • 托盘与后台自动化需显式选择:默认关闭仍会退出。选择“最小化到托盘并启用后台自动化”后,关闭主窗口才保留 Runtime 和到期任务;显式退出、更新、安全模式和崩溃路径一律完整停止。
  • Host 持久任务调度:Task Board 保存时区、cron 槽位、租约、misfire/running 策略和确定性运行键;启用后台自动化时通过真实 DSH Session 执行并回写 Task Run,Host 不可用时仍回退浏览器调度。
  • 可审计的扩展边界:扩展坞校验 dsh.compatibility 的版本、Desktop API、能力、Surface 与运行时证据,并在 profile 写入 desktop-plugins.lock.json。browser-safe SDK 不导入 Electron 或私有 DSH 模块;预览的外部打开仅传工作区根和相对路径,Host 验证后才交给系统。

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

这个插件装上后能看到什么?

在 dsh web 打开的项目会话中,聊天区右侧会多出两块面板:Explorer(文件树 + Git 变更 tab)与 Preview(多 tab 文件预览)。文件树拖到聊天输入框即可把相对路径插入草稿光标处,无需手敲路径(src/client/index.ts:84-118、src/index.ts:34)。

文件预览支持哪些格式?

markdown / html / code / diff / csv / pdf / word / excel / ppt / 图片 / 文本 / url 共 10+ 种格式,支持源码/预览切换、分屏编辑、保存(含 mtime 冲突检测)、下载、刷新、dirty 点、中键关闭、右键批量关闭(README.md:31)。

必须用 DSH Web GUI(profile=web)才能看到这个插件吗?

是。cordis.patch.yml 把插件行插入 web profile 名单,dsh.client.platform 字段也是 web;CLI 模式(headless profile)下浏览器半区不会加载(cordis.patch.yml:11-12、packages/dsh-aionui-panel/package.json:46-53)。

数据是真的文件系统还是 mock?

真实。宿主进程经 /aionui-panel/* HTTP 路由提供目录列举、文件读、写、文件名搜索、git status / diff / stage / unstage / discard;递归 fs.watch + 每 30s 一次的 git 轮询组成 SSE 变更流(src/host/routes.ts:37-49、src/host/fs-service.ts:1-49)。

我能在另一台机器上访问 dsh web 来用这个插件吗?

不能。所有 /aionui-panel 路由都强制仅 loopback:非 127.0.0.1/::1 客户端立刻收到 403 forbidden: loopback-only,与 dsh-ssh 同款 fence。LAN 暴露的 dsh web 不会向未配对设备泄露任何 fs/git 操作(src/host/routes.ts:70-96)。

工作区路径不在已注册 workspace 里会被怎么处理?

直接拒绝。所有请求的 project root 都过 workspace gate:realpath 规范化后必须落在 ctx.workspaceRegistry.list() 返回的某个 workspace 内或其子目录;越界返回 workspace-unknown,路径穿越返回 path-outside-root(src/host/gate.ts:55-74、src/host/fs-service.ts:51-80)。

我没装 git 二进制能用吗?

文件树和预览完全可用。git 轮询探测一次后判定不可用即打日志并下发 gitUnavailable 事件,SCM tab 进入友好的"未安装 git"状态而不再每 2 秒重试 spawn(src/host/routes.ts:172-185、src/client/index.ts:113-118)。

面板宽度、折叠状态会保存吗?

按项目隔离保存到 localStorage,键名沿用 AionUi 命名:chat-workspace-width-px / chat-preview-width-px / preview-panel-split-ratio / project-panel-collapse:<root> / explorer-ui:<root> / scm-ui:<root> / preview-ui:<root>;LRU 上限 12 个 scope,超出最久未用被淘汰(README.md:39)。

Agent 会知道这个面板的存在吗?

会。host 半区通过 systemPrompt section(order=210)向所有 agent 公告本插件能力、限制与协作方式;用户提到"右侧面板 / 预览面板 / 文件树 / 变更面板"时模型即知道对应本插件(src/index.ts:34、src/index.ts:44-49)。

卸载 / 出现 bug 时如何排查?

浏览器侧任何 DOM/runtime 接线失败都只 console.error 不会抛,确保 web shell 不被插件拖崩;打开开发者工具的 Console 过滤 dsh-aionui-panel 即可看到失败原因(src/client/index.ts:8-9、src/client/index.ts:151-153)。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 0.1.0-rc.7 ~ <0.2.0
  • Node: ^22.19 || >=24

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则