Bundle
dsh-composer-fix
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
- Source
- AnakinCao
- License
- MIT
- Updated
- Updated 7 days ago
Readme
# dsh-composer-fix > 简体中文: [README.zh.md](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 ```bash 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 ```bash 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 `removeChild` unmount crash; - If core upgrades and the selectors still hold, no change is needed; if core reworks these attributes, just update `lib/client.js` in this plugin — no need to wait for an official fix. ## License MIT
Install
dsh plugin --profile web add github:AnakinCao/dsh-composer-fix
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-composer-fix from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.