插件目录 / UI & Skins / dsh-conversation-quote
dsh-conversation-quote
已验证 · 实测可装 xjwwjx
功能简介
Quote-to-composer UI plugin for DeepSeek Harness Web: select conversation text in the chat and send it together with your next question
可用 — 实测通过,早期项目
Quote-to-composer UI plugin for DeepSeek Harness Web: select conversation text in the chat and send it together with your next question 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-conversation-quote
English | 中文
Quote-to-composer UI plugin: select conversation text you want to cite — each selection becomes a compact tab above the input, and all of them join your next question when you send. No model tool, no slash command — a pure browser-side extension of the chat surface.
What it does
Select any text inside a chat message (user, assistant, tool, or injected context) with the mouse.
A small 引用 / Quote pill floats above the selection.
Click it: a compact quote tab appears above the composer card, left-aligned —
[引用·谁]plus the first quoted line, fixed size. Hover a tab to expand the full content in a popover; the × in the tab's top-right corner removes that one quote. Stage as many quotes as you like — each selection adds another tab. The input box itself stays clean for your question:┌ [引用·用户] > 这段内容需要被引用… ──×─┐ ┌ [引用·模型] > First line… ──×─┐ │ (compact tabs above the input, not in it) │ └──────────────────────────────────────────┘Type your question in the input and press Enter (or click send): all staged quotes join the message as citable blocks, in staging order, attributed to each speaker:
[引用·用户] > 这段内容需要被引用 [引用·模型] > First line > Second lineThe merge happens in the capture phase of the submit gesture — the input never shows the quoted text while you type, and the tabs clear after sending. Shift+Enter (newline) and IME composition pass through untouched.
Selection attribution comes from the chat transcript's own DOM markers (data-chat-flow-kind), the same ones scroll anchoring uses, so no message renderer is replaced. The floater hides on scroll, empty selection, or a selection made outside chat nodes.
Mounting
The plugin ships in the web profile's browser roster (dsh.client row ui-conversation-quote). It needs only the slot registry and the locale service, and contributes one list entry to the conversation.input.dock seat. Removing the row from cordis.patch.yml unmounts it.
Configuration
None — the surface is feature-complete at ship.
Model Experience
None, as the quote floater is pure browser chrome: the quote block becomes ordinary draft text the user types, so it enters model context only as part of a normal user message, with no schema, prompt-section, or request-header change.
KV Cache effect
None; no plugin state touches the history tail or the request prefix.
Known Limitations and Deferred Work
- All staged quotes merge into the draft only at submit. If the send is refused, the merged text remains in the draft as ordinary editable text.
- The send-button merge detects the primary button by its aria-label in the two shipped locales; a third locale the harness adds later would need the label added to the match list.
- Attribution is by chat node kind (user / assistant / tool / context / chat), not by a stable message id; a quoted line cannot be traced back to a log
seqfrom the UI. - The floater targets mouse selection; touch long-press selection is not handled specially.
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-conversation-quote」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:xjwwjx/dsh-conversation-quote Headless(CLI)profile:
dsh plugin --profile headless add github:xjwwjx/dsh-conversation-quote 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。