全部插件

DSH / BUNDLE / CLIENT-UI

dsh-file-attach

v0.6.1RCYD857 / 857-dsh-file-attach20245fb0a3

可安装组合包UI 与客户端插件社区 · Topic 自动分析Web UI

概览

dsh-file-attach

Drag or paste files or pictures into the DSH Web composer as one scrolling row of chips inside the input box — the form Doubao uses — with the files sent as @path references

README / ZH

插件文档

目录摘要

Drag or paste files or pictures into the DSH Web composer as one scrolling row of chips inside the input box — the form Doubao uses — with the files sent as @path references

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

- **The text area and the bottom action bar belong to DSH.** The cards sit in the card's top area but they are this plugin's own markup; styling, placeholder and send button remain the platform's. - **Making room means setting one property on the platform's card.** The rail is absolute inside the card's zero-height anchor, so it writes the measured height onto `[data-composer-card]`'s inline `padding-top` (and restores the value it found when it empties). That is the one place this plugin writes to an element it does not own; it is inline rather than a stylesheet rule because the platform — or another composer-restyling plugin — can hold a rule of the same specificity, and the measured 8px on the card is what a stylesheet rule lost to. - **The platform's image thumbnail row is hidden by one stylesheet rule** (a suffix match on its CSS-module class, scoped to the attachments slot). The platform still owns the pictures' bytes, previews and vision payload — the plugin only draws their chips in the same row as the files. If the platform renames that class the rule stops matching and pictures show up twice (once in this row, once in its own) until the selector is updated. - The rail is anchored to the `conversation.input.overlay` slot and the send expansion hooks `conversation.sendSession`. A change to either in DSH's client UI needs a matching update here. - On Windows, Explorer does not reliably send `dragleave` when a drag ends, so overlay visibility is driven by a `dragover` heartbeat (hidden after 320 ms of silence) rather than by `dragenter`/`dragleave` counting.