插件目录 / UI & Skins / dsh-composer-fix
dsh-composer-fix
已验证 · 实测可装 AnakinCao
功能简介
DSH Web GUI layout fix: composer (input bar + bottom status bar) leaves the scroll region — message scrolling stops above the input bar, the scrollbar no longer covers the input area
可用 — 实测通过,早期项目
DSH Web GUI layout fix: composer (input bar + bottom status bar) leaves the scroll region — message scrolling stops above the input bar, the scrollbar no longer covers the input area 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-composer-fix
简体中文: README.zh.md
A DSH (DeepSeek Harness) Web GUI layout fix: moves the composer (input bar + bottom status bar) out of the scroll region.
What it does
In the default DSH layout the composer sticks (position: sticky) to the bottom of the message scroll container, so the scrollbar spans the whole container — including the input bar and the bottom status bar. When you scroll up through history, message content slides underneath the input/status bar; under translucent skins like harbor it even shows through.
This plugin moves the scrolling responsibility from the container down to the message list itself (attribute-only operations — no DOM node moves, no hash-class dependencies):
- The scrollbar only covers the message area and ends above the input bar;
- Message scrolling stops above the input bar — content never passes through the input bar or the bottom status bar;
- The input bar and bottom status bar stay fixed at the bottom of the window, always visible;
- Under translucent skins (harbor) the composer surface stays opaque — no bleed-through;
- The git branch chip is never covered by the input card, and its left edge always stays aligned with the input card's left edge (re-aligned automatically after window resize / sidebar drag / panel open-close).
How it works (one sentence)
Removes the data-conversation-scroll attribute from the scroll container (core uses it to lift scrolling and force the list to overflow: visible), so the message list resumes its own scrolling; scrollerOf() / wheel logic falls back to the list itself via closest(...) ?? from.
Install
dsh plugin --profile web add https://github.com/AnakinCao/dsh-composer-fix.git
The plugin is a client bundle; after installing, refresh the page (or restart dsh web) to load it.
Uninstall
dsh plugin --profile web remove dsh-composer-fix
Compatibility
- Uses stable attribute selectors only:
[data-conversation-scroll],[data-composer-seat],[data-composer-card],[data-queue-dock],[data-slot=conversation.session],[data-phase]— no CSS module hash classes; - Moves no DOM nodes (attributes only), so no React
removeChildunmount crash; - If core upgrades and the selectors still hold, no change is needed; if core reworks these attributes, just update
lib/client.jsin this plugin — no need to wait for an official fix.
License
MIT
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-composer-fix」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:AnakinCao/dsh-composer-fix Headless(CLI)profile:
dsh plugin --profile headless add github:AnakinCao/dsh-composer-fix 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。