DeepSeek Harness Hub
← 返回列表

会话提醒角色动画my-dsh/dsh-session-attention

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

会话待处理时弹出角色跳舞并推送系统通知

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/2 · 已提供中文文档

DeepSeek Harness 的会话注意力覆盖插件:当任意会话等待用户操作时播放角色舞蹈动画

综合分
28.5
GitHub 分
28.5
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add my-dsh/dsh-session-attention
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-session-attention

DeepSeek Harness 的会话消息通知覆盖层插件。

一个角色从 Web GUI 的右上角探出,在任意会话等待用户操作(审批 / 计划待审 / 提问)或后台会话的 AI 回复完成未查看时,播放与提醒类型对应的舞蹈动画。所有会话处理完毕后角色缩回。

会话提醒覆盖层:右上角的角色面板显示一条「回复完成」关注行

架构

两个包组成完整功能:

| 包 | 名称 | 角色 |
|---|---|---|
| client/ | @deepseek-ai/dsh-client-ui-session-attention | 双面插件:浏览器半部渲染 shell.overlay 角色动画并通过 Typert Remote 调用 host 半部;host 半部是 sessionAttentionToast 服务,把通知渲染成原生 Win11 Toast |
| bundle/ | @deepseek-ai/dsh-session-attention | Profile bundle:一个 cordis.patch.yml 插入客户端面板行 |

该插件由浏览器半部 + 一个 host 半部服务组成:浏览器半部从 web 界面已提供的标准 useSessions 和 useSessionPendingInteraction 数据流派生关注行,既渲染右上角角色动画,也会话进入关注态时通过 Typert 网关调用 host 半部的 sessionAttentionToast 服务,由后者驱动 Windows PowerShell 弹出原生 Toast(WSL 环境下走 /mnt/c/Windows/.../powershell.exe 互操作)。

数据流

会话状态 → useSessions hook(完成提醒)
useSessionPendingInteraction hook(审批/计划待审/提问)
↓
selectAttention(list, pending) — 纯派生(动画与 Toast 共用同一份)
↓
AttentionPanel(shell.overlay 入口)
├── 角色动画(Canvas2D)
├── 关注行(点击打开会话)
├── 浏览器标签页标题前缀 (N)
└── ToastBridge(shell.overlay 入口)
↓ 会话进入关注态时
sessionAttentionToast 服务(host 半部,Typert Remote)
↓
Windows PowerShell → 原生 Win11 Toast

角色动画

角色生命周期是四阶段状态机:peek → enter → dance → exit → peek。四种舞蹈对应四种提醒类型:

- approval(审批) — 焦急的小跳加身体抖动
- plan-review(计划待审) — 思考的摇摆加歪头,思考窗口期间头顶出现 ✨
- question(提问) — 困惑的左右歪头加 ? 气泡
- completed(完成) — 庆祝的弹跳、摇摆、旋转加 ✨

动画引擎从流逝时间和生命周期阶段纯函数地计算每帧的 translate / rotate / scale / squash 变换——确定性(无 Math.random)且可在 jsdom 中完整测试。角色可以是用户提供的 PNG(通过 characterImage 配置)或程序绘制的默认角色。

安装

面板仅在 web 界面中渲染,因此目标 profile 必须是一个 web surface profile(已提供 client 运行时、连接和 shell.overlay 布局)。dsh web 使用的默认 profile 名是 web。需要 pnpm 在 PATH 上。

用一个已存在的 web surface profile 名替换 (缺省 web surface profile 就叫 web)
dsh plugin --profile web add https://github.com/my-dsh/dsh-session-attention/releases/download/dist/dsh-session-attention-dist.tgz

包声明了 dsh.bundle,安装后自动加入 profile 的 bundle 层栈;重启 DSH 后生效。

自定义角色图片

- id: ui-session-attention
name: '@deepseek-ai/dsh-client-ui-session-attention'
config:
characterImage: 'data:image/png;base64,...'

不设置时使用程序绘制的默认角色。

用法

覆盖层无需配置:在下次启动时开始运行,监听标准会话数据流。角色从右上角探出,在需要关注时跳出舞蹈,并显示等待操作的会话行。点击一行可打开该会话并消除提醒。有待办时浏览器标签页标题加 (N) 前缀,使提醒在标签页切到后台时仍可见。

源码布局

dsh-session-attention/
├── client/
│   ├── src/
│   │   ├── index.ts               # Host 半部:sessionAttentionToast 服务(Win11 Toast 桥)
│   │   ├── invariant.ts           # 包不变量伴随
│   │   ├── css-modules.d.ts       # CSS Modules 类型声明
│   │   ├── types.ts               # Toast 请求/响应线协议(host 与 client 共用)
│   │   └── client/
│   │       ├── index.ts           # 浏览器插件:shell.overlay 注册 + 挂载 Toast Remote 命名空间
│   │       ├── attention.ts       # 纯关注行选择逻辑
│   │       ├── AttentionPanel.tsx # 面板组件(行 + 画布)
│   │       ├── toast-bridge.tsx   # Toast 桥:派生同一份关注行,会话进入关注态时触发 Toast
│   │       ├── typert.ts          # 手写 Consumer Remote 描述(sessionAttentionToast/send)
│   │       ├── character.ts       # Canvas2D 动画引擎
│   │       ├── character-lifecycle.ts  # peek→enter→dance→exit 状态机
│   │       ├── contract/
│   │       │   └── slots.ts       # Inject face 契约
│   │       └── ...
│   └── package.json
├── bundle/
│   ├── cordis.patch.yml           # 1 行插入:客户端面板
│   ├── src/
│   │   ├── index.ts               # 空壳 carrier
│   │   └── invariant.ts           # Bundle 不变量伴随
│   └── package.json
└── package.json                   # 根 workspace

依赖

该插件依赖以下 DSH 包(从 DSH monorepo 安装):

- @deepseek-ai/cordis — Cordis 插件框架
- @deepseek-ai/dsh-client-ui-layout — shell.overlay slot 声明者
- @deepseek-ai/dsh-client-ui-renderer — Slot registry 服务
- @deepseek-ai/dsh-client-ui-session — useSessions 和 useSessionPendingInteraction hook
- @deepseek-ai/dsh-api-session-controller — SessionListState、SessionSummary、PendingInteractionStatus
- @deepseek-ai/dsh-session — SessionId 品牌类型

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群