DeepSeek Harness 插件

dsh_ux_enhance

DSH plugin: session color + layout optimization + sound alerts (slot/store based)(英文原文)

跳到安装方式

来源信息

GitHub 仓库
XQ-quadrant/dsh_ux_enhance
最近更新
2026年8月17日
分类
插件市场与管理
GitHub stars
2
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/XQ-quadrant/dsh_ux_enhance
插件名:dsh_ux_enhance
作者:XQ-quadrant

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh_ux_enhance

![CI](https://github.com/XQ-quadrant/dsh_ux_enhance/actions) ![MIT License](LICENSE)

DSH 会话界面增强插件,不改 DSH 核心:浏览器半走官方槽位/服务扩展界面, 宿主半提供同源工作区文件树路由。

---

五大核心功能

1. PC 版布局优化

  • 加宽消息列(748px → 900px)
  • 改为左右两栏布局:左侧消息流,右侧输入框 + 统计区
  • 悬浮「跳到底部」按钮(shell.overlay 浮层槽),不丢上下文
  • 工作区文件目录面板(conversation.input.dock 槽,右栏顶部)

![PC效果](PC效果.png)

2. 手机版界面适配

  • ≤767px 自动回退为原生单栏布局
  • 通过 --dshsc-mobile-* CSS 变量缩小字号、收紧间距
  • 保证手机端核心操作流畅
  • 文件树以会话头部「文件」tab 提供(见功能 5)

![手机效果1](手机效果1.png) ![手机效果2](手机效果2.png) ![手机效果3](手机效果3.png)

3. 会话颜色

  • 侧边栏会话行「⋯」菜单注入「设置颜色」入口,10 种预设色 + 清除
  • 颜色存入框架根作用域 defineStore({ persist }) 全局色表(会话 id → 颜色),

自动迁移 0.1.0 时代的 dsh.sessionColor.v1 旧色

  • 侧边栏行按颜色上浅底色,选中行带彩色左描边

4. 音效提示

  • 完成音running true → false(每轮对话跑完),上行双音「叮-咚」
  • 提问音pendingInteraction 变为 question / plan-review,两声短促「叮-叮」
  • Web Audio 合成,无需外部音频文件
  • 可通过 localStorage 开关或调节音量(dsh.soundAlert.v1

5. 工作区文件目录面板

  • 桌面两栏:conversation.input.dock 槽组件,位于右栏顶部(输入框上方,

随右栏高度伸展);数据优先来自插件宿主半的同源路由 /ux-enhance/tree含文件、限深 5 层、跳过重目录),路由不可用时回退官方 ctx.workspaces.listDirectory(仅目录)

  • 手机版(≤767px):以会话头部 tab「文件」形式出现(与「对话/轨迹」同级的

conversation.view 视图),全区域显示文件树;桌面不显示该 tab

  • 单击:目录展开/收起 + 复制相对路径(手机端轻点同样生效),行尾闪现

「✓ 已复制」

  • 双击:在系统文件管理器 / 默认应用中打开
  • 右键:复制相对路径
  • 行内「打开」按钮:在系统文件管理器中打开该文件/目录
  • 注:原生 listDirectory 只返回目录;「含文件」目前靠宿主半 shim 实现,

上游方案见 docs/upstream-proposals.md PR 2

---

工作原理

  • 宿主半 lib/index.js:在 DSH webserver 上注册同源只读路由

GET /ux-enhance/tree?path=<cwd>,递归列出工作区(含文件、有界), 供浏览器半的文件树取数。

  • 浏览器半 lib/client.js:注册为懒加载工厂包。会话颜色在侧边栏行「⋯」菜单注入

「设置颜色」(弹层为自绘 React 色板),颜色存于框架根作用域 defineStore({ persist }) 色表;行染色读取色表 + ctx.sessions.list 做 文本反查(DSH 侧边栏暂无 per-row 槽,见「已知限制」)。

  • 音效模块订阅 ctx.sessions.list,对每个会话做状态 diff,只对状态跳变发声;

开关/音量由框架 store 持久化(dsh.soundAlert.v1)。

  • 跳底按钮注册进 shell.overlay(浮层槽),工作区目录树注册进

conversation.input.dock(数据优先走宿主半 /ux-enhance/tree 路由, 失败回退 ctx.workspaces.listDirectory;手机端另注册「文件」视图 tab)。

  • 两栏布局/手机适配仍为样式层注入(依赖构建期哈希类名,见「已知限制」)。

目录结构

dsh_ux_enhance/
├── lib/
│   ├── index.js          # 宿主半(同源路由 /ux-enhance/tree:含文件的工作区树)
│   ├── client.js         # 浏览器半 bundle(由 scripts/build.mjs 生成)
│   ├── entry.js          # 浏览器端入口,组合各功能模块
│   ├── session-color.js  # 功能1:会话颜色(侧边栏行菜单 + 根作用域框架 store)
│   ├── workspace-tree.js # 功能2:工作区目录树(dock 面板 + 手机「文件」tab,宿主路由取数)
│   ├── layout-ui.js      # 功能3:两栏/手机 CSS 皮肤 + 跳底按钮(shell.overlay)
│   └── sound-alert.js    # 功能4:音效提示
├── scripts/
│   └── build.mjs         # node scripts/build.mjs 生成 lib/client.js
├── docs/
│   └── upstream-proposals.md  # 上游 PR 提案
└── package.json

> 修改源码后运行 node scripts/build.mjs 重新生成 lib/client.js,再提交。

安装(web profile)

以 Windows、插件放在 D:\workspace\DSH\dsh_ux_enhance 为例:

1. 把插件链接进 profile(~/.dsh/profiles/web/package.jsondependencies):

``json { "dependencies": { "dsh_ux_enhance": "link:D:/workspace/DSH/dsh_ux_enhance" } } ``

2. 在 profile 的补丁层插入该插件(~/.dsh/profiles/web/cordis.patch.yml):

``yaml - insert: - id: ux-enhance name: 'dsh_ux_enhance' ``

3. 在 profile 目录安装:

``powershell cd $env:USERPROFILE\.dsh\profiles\web pnpm install ``

4. 重启 DSH web(插件集合的变化在重启后生效)。

> 可选:Windows 上目录选择器默认走系统对话框(native),listDirectory > 回退路径不可用(文件树主路径走宿主路由,不受影响)。如需应用内目录浏览, > 在 cordis.patch.yml 追加并禁用 auto 行: > ``yaml > - id: directory-picker > disabled: true > - insert: > - id: directory-picker-browse > name: '@deepseek-ai/dsh-host-directory-picker-browse' > - id: ui-directory-picker-browse > name: '@deepseek-ai/dsh-client-ui-directory-picker-browse' > ``

音效配置(可选)

声音开关/音量由框架 store 持久化在 localStoragedsh.soundAlert.v1 (默认 { enabled: true, volume: 0.15 })。控制台直接写该键仍有效, 但 store 只在页面加载时重新读取,改动需刷新页面后生效:

// 完全静音(刷新后生效)
localStorage.setItem('dsh.soundAlert.v1', JSON.stringify({ enabled: false }));

// 调小音量(0 ~ 1,默认 0.15;刷新后生效)
localStorage.setItem('dsh.soundAlert.v1', JSON.stringify({ volume: 0.08 }));

// 恢复默认(删除该键,下次加载回到默认)
localStorage.removeItem('dsh.soundAlert.v1');

已知限制

  • 布局优化依赖构建期哈希类名(wSkVaW_* 等),DSH 升级后可能需要更新
  • 会话颜色的侧边栏行 UI 是受控 DOM 缝合层(菜单注入 + 行文本 ↔ displayTitle

最长匹配反查会话 id):DSH 侧边栏没有公开的 per-row 槽、行上也没有 data-session-id;标题重复时可能串行。彻底根治需上游在 dsh-client-ui-workspace 暴露(见 [docs/upstream-proposals.md](docs/upstream-proposals.md) PR 1)

  • 工作区文件树依赖插件宿主半的同源路由取数(含文件);宿主原生

listDirectory 仍不返回文件,上游扩展见 PR 2

  • 颜色和音效设置存于浏览器 localStorage,不跨设备同步

> 上述「需上游」的两点已整理成具体的 PR 提案,见 > [docs/upstream-proposals.md](docs/upstream-proposals.md)。

License

MIT © XQ-quadrant