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/dsh0.1.0-rc.7、dshmarket1.15.0、Web UI 聚合0.2.3、兼容 rc.7 的 Codex Connect 与dsh-live-stats0.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
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则