🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

表格渲染修复 adamcjm/dsh-genui-bugfix

DeepSeek Harness
adamcjm24 天前有提交已提供中文文档扫描:未发现敏感能力

修复表格单元格文字重叠并让长内容自动换行

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/11 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add adamcjm/dsh-genui-bugfix
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 24 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 修复单元格文字重叠
  • 长内容自动换行
  • 消除横向滚动条

DeepSeek Harness 插件:修复 dsh-ui 表格单元格文字压到下一列,并让长单元格自动换行,不再强制出现横向滚动条。

README

由 DeepSeek 最新模型翻译生成
@adamcjm/dsh-genui-bugfix 一个 DeepSeek Harness 插件,修掉 dsh-ui 表格的两个渲染问题: - 单元格文字不再压到相邻列——就是那串行内代码把文字顶过列边界的问题; - 超长单元格换行,而不是把表格撑到必须横向滚动。 直接作用于线上发布的 @changfenhuang/dsh-genui 0.11.x,不必等上游发版。上游自己修好之后,本插件仍然无害,卸载即可。 它修的是什么 dsh-ui 表格的单元格默认 white-space: nowrap(插件「数据列不折行」的设计)。而宿主外壳把消息正文渲染在 .markdown 子树里,那张表的两条规则会落到 dsh-ui 的输出上,因为组件渲染在同一个子树内: .markdown { overflow-wrap: anywhere; } /* 被每个单元格继承 / .markdown :not(pre) > code { display: inline-flex; } / 每个 chip 变成原子 inline 盒 / 再叠加插件自己的 .inlineCode { white-space: pre-wrap },chip 的自动最小尺寸就会塌缩:列宽可以被算到内容之下,而单元格的 nowrap 又让文字不断行——于是直接画到下一列上。 只有含行内代码的格子会中招。
展开完整文档(README 剩余 1 节)
@adamcjm/dsh-genui-bugfix

一个 DeepSeek Harness 插件,修掉 dsh-ui 表格的两个渲染问题:

- 单元格文字不再压到相邻列——就是那串行内代码把文字顶过列边界的问题;
- 超长单元格换行,而不是把表格撑到必须横向滚动。

直接作用于线上发布的 @changfenhuang/dsh-genui 0.11.x,不必等上游发版。上游自己修好之后,本插件仍然无害,卸载即可。

它修的是什么

dsh-ui 表格的单元格默认 white-space: nowrap(插件「数据列不折行」的设计)。而宿主外壳把消息正文渲染在 .markdown 子树里,那张表的两条规则会落到 dsh-ui 的输出上,因为组件渲染在同一个子树内:

.markdown { overflow-wrap: anywhere; } /* 被每个单元格继承 /
.markdown :not(pre) > code { display: inline-flex; } / 每个 chip 变成原子 inline 盒 /

再叠加插件自己的 .inlineCode { white-space: pre-wrap },chip 的自动最小尺寸就会塌缩:列宽可以被算到内容之下,而单元格的 nowrap 又让文字不断行——于是直接画到下一列上。

只有含行内代码的格子会中招。纯文本格在 nowrap 下 min-content 就等于内容宽度,列宽不可能被算小。

在运行中的 DSH 桌面端页面实测(7 张表格):0.11.4 下 4 张表格、12 个单元格溢出,单格最大 704px。

注入的两条规则

/ 1) 表格里的 chip 不再重新开启断行 —— 这是重叠的根因 / [class="tableWrap"] table [class="inlineCode"] { white-space: pre !important; }

/ 2) 单行数据格改为可换行 —— 长内容不再撑出横向滚动条 / [class="tableWrap"] table td:not([class="tdMultiline"]):not([class="tdCode"]), [class="tableWrap"] table th:not([class="tdMultiline"]):not([class*="tdCode"]) { white-space: normal !important; overflow-wrap: anywhere; }

选择器只用 CSS Modules 的类名前缀(tableWrap / inlineCode / tdMultiline / tdCode),不依赖构建时的哈希,所以插件升级换代也不会失效。

第 2 条是偏好项:删掉 lib/client.js 里那一段,表格就回到上游「更宽 + 横向滚动」的行为。

几何验证

同一套浏览器夹具,801px 容器下:

| 样式 | 表格宽度 | 横向滚动 | 跨列重叠 |
| 上游 0.11.4(未修复) | 1471px | 有 | 4 处,最大 306px |
| 上游 main(#282 修复) | 1777px | 有 | 无 |
| 本插件 | 799px | 无 | 无 |

也就是说:上游的修法让表格更宽、要求你横向滚动;本插件让长内容换行,表格正好贴合对话列宽。

安装

这个插件就是普通的 DSH bundle:在 profile 里加一条依赖,再把它加进该 profile 的 bundle 列表。

从 npm 安装

1. 在 ~/.dsh/profiles/<profile>/package.json 里加上:

{
"dependencies": {
"@adamcjm/dsh-genui-bugfix": "^0.1.0"
},
"dsh": {
"profile": {
"bundles": ["…", "@adamcjm/dsh-genui-bugfix"]
}
}
}

2. 安装:

cd ~/.dsh/profiles/<profile> && pnpm install

3. 重启 DSH 应用。host 侧的插件树是在进程启动时组装的,跑着的实例不会自动认识新的 bundle。

如果 pnpm 因为「最小发布时限」策略拒绝刚发布的版本,把包名加进该 profile 的 pnpm-workspace.yaml 里的 minimumReleaseAgeExclude。

从本地目录安装(开发用)

把版本号换成 link: 路径,例如 "@adamcjm/dsh-genui-bugfix": "link:/path/to/dsh-genui-bugfix",后面两步相同。

验证

重启后,渲染端会多一个样式元素:

document.getElementById('dsh-genui-bugfix/table-overflow') // 非 null 即已加载

肉眼验证:含长行内代码的表格不再有文字压到下一列,且表格宽度贴合对话列宽,而不是出现横向滚动。

不启动 DSH 也能核对两半是否符合 loader 约定:

cd <插件目录> && npm test

卸载

1. 从 profile 的 dependencies 与 bundles 里删掉 @adamcjm/dsh-genui-bugfix;
2. pnpm install;
3. 重启 DSH。

与上游修复的关系

- 上游 main 已经修了重叠本身(PR #282,尚未发版)。本插件的第 1 条规则与它效果一致、可以共存——都让 chip 保持 white-space: pre。
- 上游的浏览器夹具抓不到这个回归:它的跨列断言恒真,因为夹具把表格渲染在宿主 .markdown 级联之外。相关缺口见 issue #285 与 PR #286。

结构

@adamcjm/dsh-genui-bugfix/
├── package.json # dsh.bundle.patch + dsh.client 声明 ├── cordis.patch.yml # 往 profile 里 insert 一行插件 ├── lib/ │ ├── index.js # host 半侧:node ESM,导出 name/apply/inject,无行为 │ └── client.js # 浏览器半侧:window.__ModuleLoader__.load({ id, factory }) ├── test/verify.mjs # 零依赖自检(loader 约定) └── README.md

两半的产物形态与已安装插件保持一致:

- host(lib/index.js)是普通 node ESM,导出 name / apply / inject——与 dsh-window-drag-probe 的 host 半侧同形(同样没有 host 行为);
- client(lib/client.js)必须是 DSH 直接服务的预打包形态 window.__ModuleLoader__.load({ id, factory }),factory 返回带 apply 的 exports——与 @changfenhuang/dsh-genui、dsh-boot-animation 的 client 产物同形。写成裸 ESM 的 export function apply 不会被装载,而且是静默失效,不会报错。本插件零运行时依赖,所以 factory 里不需要 require 任何东西。

许可

MIT
预览分享卡片长什么样 ↓adamcjm/dsh-genui-bugfix
分享 · DeepSeek Harness Hub
adamcjm/dsh-genui-bugfix

修复表格单元格文字重叠并让长内容自动换行

这是你的仓库?认领条目

回到顶部