在使用 DeepSeek Harness 或处理 dsh-ui 表格时,经常会遇到渲染问题:长内容的内联代码块会溢出到下一列,或者为了容纳长文本,表格被迫变宽,导致必须横向滚动才能查看。adamcjm/dsh-genui-bugfix 插件旨在修复这些特定的渲染问题,使表格布局更符合预期。
核心功能¶
该插件是一个客户端插件,主要用于修复 dsh-ui 的表格渲染缺陷:
- 修复渲染问题:解决
dsh-ui表格渲染异常。 - 防止文字溢出:阻止包含内联代码的单元格文字溢出到下一列。
- 自动换行:让长内容在单元格内自动换行,而不是强制表格变宽并要求横向滚动。
安装与启用¶
该插件是 DSH 的一个普通 bundle,需要手动配置 profile 的依赖和 bundle 列表。
- 编辑
~/.dsh/profiles/<profile>/package.json,在dependencies中添加该包:
{
"dependencies": {
"@adamcjm/dsh-genui-bugfix": "^0.1.0"
},
"dsh": {
"profile": {
"bundles": ["…", "@adamcjm/dsh-genui-bugfix"]
}
}
}
- 安装依赖:
cd ~/.dsh/profiles/<profile> && pnpm install
- 重启 DSH 应用。DSH 在启动时加载插件树,运行中的实例不会自动感知新安装的 bundle。
技术原理¶
插件通过注入 CSS 规则来覆盖上游默认行为。它针对特定的 CSS Modules 类名前缀(如 tableWrap, inlineCode)进行操作,确保在插件升级后规则依然有效。
- 针对内联代码:强制使用
white-space: pre !important,防止代码块换行导致布局错位。 - 针对普通单元格:强制使用
white-space: normal !important和overflow-wrap: anywhere,使内容自动换行。
验证与注意事项¶
- 验证:重启 DSH 后,在浏览器控制台检查:
document.getElementById('dsh-genui-bugfix/table-overflow')
如果返回非空元素,说明插件已生效。
- 注意事项:
- 该插件仅影响包含内联代码的单元格,纯文本单元格不受影响。
- 插件包含两条规则,其中“允许单元格换行”的规则(Rule 2)是可选的。如果你更倾向于上游行为(表格变宽并允许滚动),可以在
lib/client.js中移除相关的 CSS 规则。 - 插件适用于
@changfenhuang/dsh-genui0.11.x 版本,且不需要等待上游发布即可使用。