前言¶
DeepSeek Harness (DSH) 的插件系统允许对客户端进行扩展。在 Web 配置文件下,编写器底部的统计行(StatsLine)默认受到 CSS 模块规则的宽度限制。当在宽屏设备上使用时,较长的统计信息会被截断,仅显示部分内容,这影响了信息的完整展示。
dsh-wide-stats-footer 插件旨在解决这一显示问题,它通过运行时动态发现 CSS 模块哈希,并应用精确的 CSS 覆盖规则,移除了统计页脚的宽度限制,使其能够跨越完整的编写器宽度并居中显示。
插件简介¶
- 名称:dsh-wide-stats-footer
- 所有者:thomasvvugt
- 类别:客户端
- 许可证:MIT
该插件的核心功能包括:
1. 移除编写器统计页脚的宽度限制。
2. 使统计行跨越完整的编写器宽度并居中显示。
3. 解决宽屏上长统计行被截断的问题。
4. 通过 CSS 覆盖精确调整宽度限制和水平内边距。
5. 运行时动态发现 CSS 模块哈希以适应 DSH 构建。
6. 降级为静默无操作以防破坏 UI。
7. 零 npm 依赖且无安装脚本。
安装与启用¶
安装此插件需要使用 DSH 的 CLI 工具。
- 执行以下命令安装插件:
dsh plugin --profile web add github:thomasvvugt/dsh-wide-stats-footer
-
安装完成后重启
dsh web。 -
确认插件已加载,运行配置转储命令并查找
dsh-wide-stats-footer层:
dsh --profile web --dump-config
- 若需固定版本(例如 v0.1.0),可指定版本号:
dsh plugin --profile web add github:thomasvvugt/dsh-wide-stats-footer#v0.1.0
工作原理¶
DSH 使用 CSS 模块机制生成带有哈希前缀的类名(例如 .{hash}_root)。由于构建过程中哈希会发生变化,硬编码 CSS 选择器是不可行的。
插件在运行时通过以下方式动态定位目标元素:
1. 扫描 document.styleSheets,查找统计行分隔符规则(通常包含 .{hash}_sep)。
2. 验证其兄弟元素 .{hash}_root 是否声明了 max-width: var(--dsh-chat-content-width) 限制。
3. 通过 MutationObserver 监听 DOM 和 <style> 标签的变化,在 DSH 重新构建或切换主题时重新执行发现逻辑。
一旦发现目标,插件会注入一条 CSS 规则:
.{hash}_root.{hash}_root { max-width: none; padding-left: 0; padding-right: 0; }
该规则使用了双类选择器,将特异性提升至 (0,2,0),从而覆盖 DSH 原始规则 (0,1,0) 的限制。同时保留 text-align: center 和 width: 100%,确保页脚在容器内居中。
如果未来 DSH 的标记或结构发生改变导致发现失败,插件会自动降级为静默无操作,确保不会破坏原有 UI。
诊断与故障排查¶
插件提供全局诊断对象 window.__WIDE_STATS_FOOTER__ 供开发者检查状态。在浏览器开发者工具控制台中查看该对象:
{ appliedAt, styleHash, domHash, overrideChars, inlineFixed, lastSyncAt }
常见问题排查:
-
页脚仍被截断:
- 检查
styleHash和domHash。如果两者均为null,说明哈希发现失败,可能是 DSH 版本更新导致标记结构变化,插件已降级为静默无操作。 - 检查
overrideChars。如果为 0,说明覆盖规则未生效。 - 检查
appliedAt。如果为null,说明插件未运行,请确认已重启dsh web且dsh --dump-config中包含该层。
- 检查
-
更新后失效:
- 如果仅在 DSH 更新后失效,通常是 CSS 模块哈希旋转。插件支持运行时重新发现,但若标记结构改变,则需降级。
注意事项¶
- 客户端插件:该插件仅作用于客户端,无主机端行为或配置项。
- 版本兼容:基于 DSH 0.1.1-rc.2 构建。
- 性能影响:插件不会减慢应用速度。发现逻辑仅在启动时运行,且 MutationObserver 仅在 DOM/Style 变化时触发,无轮询。
- 主题兼容性:插件使用双类特异性 (0,2,0),可覆盖 DSH 原始规则。若自定义主题使用了同等或更高的特异性覆盖该样式,则主题优先,这是符合预期的行为。
结语¶
dsh-wide-stats-footer 为开发者提供了一种低成本的方式来修复 DSH 客户端在宽屏下的统计信息显示问题。通过动态 CSS 发现机制,它保证了在 DSH 版本更新下的兼容性。
该插件可在 SkillHub 插件目录 查看,源码位于 GitHub。