DSH Hub

ChenRuoT/dsh-sidebar-qa

dsh-sidebar-qa

UIWeb UI59 GitHub stars· updated 2026-10-19

dsh-sidebar-qa is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-sidebar-qa

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-sidebar-qa DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-sidebar-qa.svg)](https://dshhub.dev/plugins/dsh-sidebar-qa)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from ChenRuoT/dsh-sidebar-qa, cleaned of badges and images.

dsh-sidebar-qa

<b style="font-size: 1.15em;">划选即问,侧边栏内嵌问答</b><br /><br /> <code>划选提问</code> <code>添加到对话</code> <code>上下文摘要</code> <code>嵌套追问</code> <code>追问记录</code> <code>零打断</code> <code>中英双语</code><br /><br /> <b>DeepSeek Harness(DSH)Web 插件</b>:在对话里<b>划选任意文本 → 点击「提问」→ 右侧面板问答</b>——<br /> 自动创建<b>同工作区的独立 DSH 会话</b>,主对话零打断。实现类 codex 侧边提问 / Claude Code /btw 功能。

🌏 <a href="./README.md"><b>中文</b></a> · <a href="./README_EN.md">English</a>

✨ 功能一览

  • 📝 划选提问:对话中划选任意文本 → 浮层「提问」→ 右侧面板内嵌问答,全程不跳转大窗口;侧边栏面板收起时也会自动展开,「提问」永远有可见反馈
  • 💬 添加到对话:同一个浮层的另一个按钮,把划选文本以 > 引用块追加进当前会话的主输入框并聚焦(光标落在引用块下方),不新建会话、不打开侧边栏——想就地接着说的时候用它(issue #11)
  • 🧠 智能摘要:快速无思考模型把主对话上下文压缩成小摘要,与划选引文一起注入首条消息
  • 🔀 三种上下文策略:每次提问可在「全量继承(fork+缓存命中)/ 压缩 / 机械裁切」间切换,面板内选择器 + 配置默认值双入口
  • 🔗 独立会话:自动创建同工作区独立 DSH 会话(❓<主题>),可继续、可归档,主对话零打断
  • 🪆 嵌套追问:在追问对话里再划选提问,生成子追问,层层嵌套
  • 🗂️ 追问记录:按根(主)会话分层树展示;限定当前工作区;节点可折叠、显示最近访问时间;点击跳转后追问记录 tab 保持开启;已归档/已删除的追问置灰标记状态,可一键从记录中移除(连同整棵子树清理映射,不影响 DSH 侧会话)
  • 🏷️ 两段式命名:划选首行占位命名 → 首次回答完成后基于「问题 + 回答」自动提炼 ≤15 字最终标题
  • ⚙️ 可配置:摘要/回答模型渠道、思考模式、上下文窗口与预算全部可调——入口是 DSH 设置页 → 左侧导航「追问」(面板注册为 settings.section);同一份配置也可以直接写进插件自己的 profile 行(cordis.patch.yml 里 id: sidebar-qa 的 config:),两条路写的是同一份配置
  • 🌏 中英双语:界面文案与模型侧提示词跟随 DSH 语言设置实时切换(无需刷新,包括已打开 tab 的标题);回答语言跟随你提问/划选的内容,不被界面语言绑架

🔌 只注册进 DSH 自带右侧栏:DSH 0.1.5-alpha.1 及以上自带右侧栏(@deepseek-ai/dsh-client-ui-sidebar-right),本插件直接注册进它(ctx.sidebarRightTabs / ctx.sidebarRight 服务 + sidebar.right.pane.tab 与 sidebar.right.pane.tab.title 席位),无任何额外依赖。dsh-better-sidebar 兼容已在 1.0.0 彻底移除。更早的 DSH 上插件仍然激活:划选浮层与「添加到对话」照常可用,只是不注册侧边栏 tab(并记一条 console.warn)。

📦 更新记录

1.2.1 - 2026-10-19

修 DSH 0.2.1 上的两个 P0:局域网 / --trusted-host 访问 /sidebarqa/api 恒 403;追问面板不再流式、失败轮次没有任何提示。

  • 信任围栏迁移到 webStartup(host 半,需重启宿主):DSH 0.2.1-alpha.1 删除了 webRuntime 服务,插件回退读到未求值的 !!js 表达式,围栏静默退化为 loopback-only。现按 webStartup.trustedHosts → 旧 webRuntime → loader 字面量读取,并像 DSH 自己的 /api 围栏一样接受监听 bind IP、按 http(s) 规范化默认端口。回归:tests/trust-fence.spec.ts + tests/host-route.spec.ts。
  • 恢复流式 + 轮次失败可见(client 半,硬刷新):0.2.x 不再写持久化 assistant/chunk,实时增量需要 follow({ assistantStream: true });插件此前没接,回答只在结束时整段出现、报错时永久停在「生成中…」。现在逐段渲染 live 文本,失败/中断轮次显示「本轮回答失败:<原因>」(assistant/attempt 的 compact stream 也会折叠)。回归:tests/answer.spec.ts + tests/session-wire.spec.ts。
  • 类型桩升到 0.2.1-rc.2,装载闸测试改为两代语义(0.2.0 读 peer、0.2.1-alpha.3+ 只读 engines.dsh),新增 package.json ↔ dsh.plugin.json 的 version / engines 同步守卫。升级需重新 pnpm install。

1.2.0 - 2026-10-15

修 issue #21「设置保存失败」:配置改为声明在插件自己的 Config schema 上、并按 profile 条目 id 寻址,DSH ≥ 0.1.7(含 0.2.x)上「追问」设置页从「只读默认值」变成可保存。

  • [email protected] 起不再有命名空间注册:可编辑字段从插件自报的 Config schema 派生(只认标了 volatile() 的字段),describe / update 按 profile 条目 id(cordis.patch.yml 里那一行的 id)寻址。1.1.0 的接缝只会注册命名空间,于是这类宿主上每次保存都回 503;现在 host 半导出 Config(12 字段全部 volatile())、按条目 id 打开同一个 revision 守卫的面,插件读运行期就地更新的活引用(不重挂)。老宿主(≤ 0.1.6)走原来的 sidebarqa 命名空间,行为不变。
  • 顺手用 settings.configure({ auto: false }) 抑制宿主按 schema 自动生成的表单(本插件自己有一整页设置卡);拒绝原因细分为 no-entry / no-form 并各自有具体 503 文案。
  • 依赖换成 @deepseek-ai/[email protected](devDependency 精确钉,volatile() 只存在于 DSH 这个分叉),构建期打包进 lib/index.js,运行期不依赖宿主那一份。升级需重新 pnpm install;host 半改动,需重启 dsh web。

1.1.0 - 2026-09-29

…

Related plugins