DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

WilliamShi666 /

dsh-multiple-chat-panels

Verified

DeepSeek Harness 多对话面板:并排查看并与多个 Agent 会话同时交互。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@b8f69925

multiple-chat-panels

Multiple chat panels for DeepSeek Harness: view and interact with several agent sessions side by side.

这是一个纯插件(不修改 DSH 核心包),为 DeepSeek Harness Web/Desktop UI 增加“Mission Control”多面板视图:默认仍是你熟悉的单对话视图;当你把侧边栏中的会话拖到中间区域时,会打开多个可实时交互的迷你会话面板。

安装

npm 发布后:

dsh plugin --profile web add multiple-chat-panels

也可以直接从 GitHub 安装:

dsh plugin --profile web add github:<owner>/multiple-chat-panels

安装后重启 DSH,把侧边栏中的会话拖到中间区域即可打开 Mission Control。

功能

  • 默认单对话视图,不打扰现有工作流。
  • 从侧边栏拖拽会话到中间区域 → 自动打开 Mission Control,并把“当前会话 + 拖入会话”放入面板。
  • 每个面板是可交互的 mini chat:
    • Markdown 渲染(复用 DSH MarkdownText);
    • reasoning 折叠块、工具调用/工具结果卡片、斜杠命令生命周期卡片,全部默认折叠,点击 summary 展开,与单对话模式的收拢语义一致;
    • 流式 partial 输出;
    • 取消当前 turn(运行中只显示 Stop,空闲只显示 Send);
    • 队列消息展示与移除;
    • 加载更早历史;
    • 输入 / 弹出斜杠命令菜单,选中后走 session.command;
    • 输入框随内容自动增高,最多 6 行后内部滚动;输入框上边缘可上下拖拽调整高度,并持久化;
    • 支持图片附件:📎 按钮选择文件、拖拽文件到面板、在面板内 Ctrl/Cmd+V 或右键粘贴剪贴板图片(同时复制的文字照常进输入框)、缩略图预览与移除,发送时随消息提交(与单对话一致的 PNG/JPEG/WebP/GIF);
    • 聊天区右下角有“滚动到底”按钮,仅在向上翻看历史时出现;
    • 审批 / 计划模式等复杂交互显示“open in main conversation”,一键跳回主对话。
  • 每个面板顶部有独立工具栏:权限预设(Perm)、模型(Model)、思考模式(Think),与主对话共享同一份会话状态。
  • 面板信息分两层显示:第一行对话标题,第二行目录 + git branch/worktree(非 git 目录只显示目录名)。
  • 布局为动态行数的横向布局:新面板默认加入第一行;每行超出屏幕宽度时,自动把该行最右的面板递归移到下一行,直到每行都完整可见(2 行、3 行或更多,按需要自动产生)。
  • 面板标题栏原生拖拽(drag image 跟随鼠标):在同一行内可重排;向下拖到行下方会显示换行预览,松手后创建新行;向上拖回上一行。⋮⋮ 拖拽把手固定在标题栏水平正中(整条标题栏可拖,按钮除外),右侧 ⤢ 回到单对话按钮与 × 关闭按钮之间保持 6px 安全间距。
  • 从侧边栏把新会话拖入 Mission Control 时按落点放置:最右边追加到行尾、两个面板之间插入中间、下方进入下一行,随后自动执行防溢出换行。
  • 没有持久化尺寸时,面板按所在行的可用宽度等分;右边缘、下边缘和右下角都可拖拽调整尺寸,最小 360×280。向下拉超过当前行时,面板临时置顶覆盖下一行并继续跟随鼠标;松手后行高按“行内最高面板”重算,下方行被整体推出去,放不下时网格出现纵向滚动——拖多少就长多少,不再被下方面板挡住。
  • 聊天滚动条与右侧 resize 手柄分离,两者都可正常点击拖动。
  • 页面内“Add”选择器可添加尚未打开的面板。
  • 面板列表、行归属、面板尺寸与输入框高度持久化到 localStorage v5,刷新后恢复;旧版本只迁移面板列表。

当前实现状态(TDD 切片)

已通过 Web e2e(Playwright + DSH web scaffold)验证:

  1. Mission Control 导航入口与页面。
  2. 拖拽打开 Mission Control 并显示两个面板。
  3. 面板内实时渲染会话消息。
  4. 面板内发送消息只影响当前面板。
  5. 面板列表刷新后恢复。
  6. git branch 信息通过 host RPC 显示。
  7. 页面内选择器添加/移除面板。
  8. 默认大尺寸布局、三边 resize 以及刷新后的尺寸恢复。
  9. 含斜杠命令历史的会话加入面板时,命令卡片正常渲染且不会打挂 Mission Control。
  10. 默认单行布局、拖拽标题栏打开第二行,且行归属在刷新后恢复。
  11. / 斜杠命令菜单和每面板权限/模型/思考选择控件可用。
  12. 工具/推理默认折叠,点击后可展开。
  13. 面板重排、侧边栏按落点插入(行尾/中间/下一行)以及输入框自动增高。
  14. 行溢出自动递归换行、手动拖到新行、每行完整可见。
  15. 输入框拖拽调高、滚动到底按钮、面板标题栏进入单对话视图(⤢ 与 × 间距 6px、拖拽把手居中)。
  16. 面板内图片附件选择、拖拽上传、剪贴板粘贴、预览移除与随消息提交。
  17. 向下拉长面板跨过行边界:拖拽中置顶覆盖、松手后下方行被推出,且不产生回弹。

已知限制

  • 纯插件无法复用 DSH 内置 Conversation 组件,所以每个 pane 是插件自绘的 mini chat,视觉和交互尽量接近主对话,但复杂功能(审批弹窗、详细设置等)在 pane 内以跳转主对话的方式处理。
  • 行布局由“宽度是否溢出”自动决定,不是完整 tmux/i3 自由分割。
  • 使用了一个受控的内部 API 桥接(Session.open()),详见 FUTURE_UPSTREAM.md。

构建

DSH_CHECKOUT=/path/to/deepseek-harness-studio bash scripts/build.sh
npm run build:client

或在 DSH 开发环境中使用注入器:

dev_build_plugin /path/to/multiple-chat-panels
dev_inject_plugin /path/to/multiple-chat-panels

测试

Web e2e 位于 DSH 仓库的 apps/web/tests/multiple-chat-panels.e2e.ts(开发期 seam)。运行:

pnpm vitest run --config vitest.web.config.ts apps/web/tests/multiple-chat-panels.e2e.ts

开源说明

  • 纯插件:不修改 DSH 核心包,用户开箱即用。
  • 插件 peerDependencies 声明了 DSH client/host 相关包;安装到 DSH 后由 DSH 提供。
  • 发布渠道:npm(multiple-chat-panels)+ GitHub(topic 请加 dsh-plugin / deepseek-harness)。
  • 完整发布/开源操作见 RELEASING.md。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit b8f699256431

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout