Back to home@wheam

dsh-session-groups

Provider-owned virtual session groups for the DeepSeek Harness Web sidebar.

Stars
0
Language
JavaScript
Created
Aug 22, 2026
Updated
Aug 22, 2026
GitHub repo

Introduction

dsh-session-groups

English

DeepSeek Harness CI License: MIT

DeepSeek Harness Web 左栏提供项目/来源双轴任务导航。

飞书、Slack、Telegram 等渠道插件可以为 Session 附加稳定的通信来源。dsh-session-groups 会把来源与 Workspace 或工作目录分开处理,因此飞书发起的任务默认仍归入真实项目,也可以随时切换为按来源查看。

安装本插件会加入来源服务和左栏 UI;只有当渠道/Provider 插件调用 Provider API 后,外部来源信息才会出现。

为什么用它

原生 DSH 左栏适合按 Workspace 查看任务;当 Session 同时来自本地项目、飞书或其他渠道时,它无法回答“属于哪个项目”和“从哪个聊天发起”这两个不同的问题。本插件在保留项目归属的同时,增加独立的通信来源视图。

你想做的事原生 DSH 左栏安装本插件后
按项目查看任务按已注册 Workspace 展开 Session优先使用真实 Workspace,并补充目录项目和“无项目”分组
找到渠道发起的任务不区分 Session 来自哪个聊天可按飞书、Slack、Telegram 等应用及具体聊天分组,也能在项目视图看到来源
发现需要处理的任务以 Session 列表为主聚合等待用户、后台失败、运行中和未读完成状态,并集中到 Activity 收件箱
搜索历史任务在当前列表中定位同时搜索标题、项目、来源和 DSH 对话正文,并显示命中片段
整理大量任务使用 Workspace/Session 的既有顺序支持快捷筛选、来源/聊天/日期筛选、置顶、四种排序和拖拽排序
查看历史与执行细节提供常用 Session 操作增加归档浏览、批量归档以及 Job/Subagent 详情

打开、新建、重命名、分叉和归档 Session,以及添加、重命名、排序和删除 Workspace 注册等原有操作仍然保留。左栏还提供打开项目文件夹、精确更新时间与元数据 tooltip、键盘上下导航,以及常见消息渠道和编码 Agent 的图标与别名。

安装

要求:Node.js 22+、pnpm、DeepSeek Harness 0.1.1-rc.2

把预构建版本安装到 Web profile:

dsh plugin --profile web add https://github.com/wheam/dsh-session-groups/releases/download/v0.1.0/dsh-session-groups-0.1.0.tgz

安装后重启 dsh web,用户侧不需要其他配置。

如果希望直接安装 GitHub 当前源码版本:

dsh plugin --profile web add 'github:wheam/dsh-session-groups#path:packages/dsh-session-groups'

仓库已经提交预构建运行文件,因此 GitHub 安装不需要执行安装期构建脚本。

更新或卸载

dsh plugin --profile web update dsh-session-groups
dsh plugin --profile web remove dsh-session-groups

执行后请重启 dsh web

Provider API

渠道 Provider 通过兼容现有接入的 ctx.sessionGroups API,为 DSH Session 附加通信来源:

await ctx.sessionGroups.assign(sessionId, {
  id: providerStableGroupId,
  title: '与张三的私聊',
  source: 'feishu',
  kind: 'private',
})

assignment 只说明 Session 从哪里发起,不会取代 Workspace membership 或 cwd。精确 source + id 相同的 Session 会在来源视图进入同一个聊天;最新 assignment 决定聊天显示名称和类型。如果 Provider 预留了来源关系,但创建 Session 失败,可以清理:

await ctx.sessionGroups.unassign(sessionId)

服务通过声明合并加入 Cordis context。使用 TypeScript 的 Provider 项目应依赖 dsh-session-groups,以获得公开类型。

工作原理

flowchart LR
    P[渠道 / Provider 插件] -->|assign / unassign| S[sessionGroups 服务]
    S --> D[(storage-domain sidecar)]
    S --> R[Typert Remote]
    R --> B[Web 项目/来源浏览器]
    W[DSH Workspace、Session、状态与搜索] --> B
  • **Host:**Cordis TypertRemoteService 提供 Provider API。
  • **数据:**通信来源存储在 session_groups storage-domain sidecar;项目上下文继续由 DSH Workspace 与 Session 数据拥有。
  • **Client:**Typert Remote 快照向 Web 左栏提供来源信息;刷新请求会合并,失败时保留上一次成功数据。
  • **UI:**通过官方 sidebar.workspaces slot 的优先级机制渲染项目、来源、Activity 和归档界面。

兼容性与限制

项目状态
已验证 DSH 版本0.1.1-rc.2
客户端Web
运行时Node.js 22+
模型体验不变
许可证MIT

DeepSeek Harness 仍处于开发者预览阶段,不同候选版本之间可能出现破坏性变化。当前版本需要接管完整的 sidebar.workspaces surface,并重新实现标准 Workspace/Session 列表。

已验证的 DSH Runtime 支持归档,但尚未暴露安全的取消归档或永久删除 Session API。归档 Session 可以查看、搜索和打开;恢复与永久删除需要等待 Runtime 提供对应能力。Scheduled 任务创建和跨设备偏好同步也不在本插件当前范围内。

数据与权限

  • 只向 DSH 本地 session_groups storage domain 写入通信来源关系,并向浏览器本地存储写入不敏感的浏览偏好。
  • 只读取渲染左栏所需的本地 Session、Workspace、Job、Subagent 和 Host 搜索投影。
  • 对话搜索使用 DSH 现有本地索引,不另存一份消息正文。
  • 不修改 Prompt、模型消息、Session 日志、工作目录、凭据或外部服务。
  • 自身不发起网络请求。

和所有 DSH 进程内插件一样,本插件代码拥有 DSH 进程的权限。安装任何第三方插件前都应先检查源码。

开发

git clone https://github.com/wheam/dsh-session-groups.git
cd dsh-session-groups
pnpm install
pnpm run check

本地开发时,可把包链接进 Web profile,然后重启 DSH:

dsh plugin --profile web add "link:$PWD/packages/dsh-session-groups"

packages/typert-protocol-shim 只用于补齐 0.1.1-rc.2 Typert generator 的 workspace 符号发现。发布运行产物仍引用官方 @deepseek-ai/dsh-typert-protocol

贡献说明见 CONTRIBUTING.md,私下报告安全漏洞的方法见 SECURITY.md

许可证

MIT