前言¶
在 DeepSeek Harness(DSH)里,会话会按工作区分组堆在侧栏里。刚说完话的那一条,往往几分钟内就被挤到折叠组或列表下方,切回上下文只能靠记忆或全文搜索。侧栏本身不负责「最近活跃」这一维度的排序与醒目标记。
下面介绍的 dsh-activity-heat(包名 @local/activity-heat)由社区维护者 MarkTina 发布,归类为记忆类插件。它根据距上次活动的时间算出 0–100% 的热度,并在侧栏、会话标题、悬停卡片和独立面板里统一表达——越 recent,越显眼。
这是什么¶
一句话:在 DSH 里把「你最近还在聊的会话和工作区」从长列表里拎出来,用同一套热度规则标注,避免刚结束的对话被埋没。
- 仓库:MarkTina/dsh-activity-heat
- 社区目录:skillhub.cn 插件页
- 许可证:MIT(见仓库
package.json) - 宿主要求:
dsh>=0.2.0-rc.2(插件声明与0.2.0-rc.2兼容)
插件未发布到 npm(private: true),需按 profile 用 pnpm 从 GitHub 或本地路径安装,并在 profile 的 package.json 里加入 bundle 名。
核心功能¶
热度出现在哪里¶
| 位置 | 作用 |
|---|---|
| 侧栏入口 | 热度环图标亮度跟随当前 profile 里最热的一条会话 |
| 会话标题 | 标题下 persistent 蓝色下划线:越热越深、越饱和;约 6 小时内活跃的会话会在两档蓝色间轻 pulse;超过 7 天隐藏。行首仍留给宿主的状态点与计划任务时钟 |
| 会话悬停卡片 | 例如 Heat 4/5 · Warm、Last active: 40 min ago、This workspace is hot |
| 主面板 Recent Activity | 分 Sessions / Workspaces 视图,带热度筛选与条数选择 |
Recent Activity 面板¶
- 顶层切换:
Sessions与Workspaces分开列表,不再混排。 - 条数:会话
10 / 20 / 30 / 50,工作区5 / 10 / 20。 - 热度筛选:All / Blazing / Warm / Active / Recent / Stale,并显示实时计数。
- 每张卡片底部分三组(细线分隔):缓存命中率与 context 占用(迷你进度条)、轮次 / 步数 / token、累计对话时长;
Current以 badge 标在标题前,相对时间在右列。 - 悬停 token 可展开明细(总量、缓存命中、未缓存输入、缓存输入、cache write、输出等,与宿主 Token usage 对话框同源)。
- 悬停对话时长可展开时间分解(等待 / 思考 / 回复 / 工具参数 / 工具运行 / 其他),数据来自
contextTimeline.timing,与宿主 timing 面板一致;卡片 portal 到document.body,避免长列表裁剪。 - 右列固定 168px:工作区名、热度条与等级标签、相对时间对齐。
- 列表过长时可滚动,右侧有浮动
⌃⌄手柄;点击会话行打开该会话,点击工作区行打开该工作区。
正在运行的会话¶
session.running === true 的会话卡片会显示:
- 右侧 Working 标签与 12 帧 GIF 鲸尾标记(28px 高)
- 卡片边框 conic-gradient 光带(约 2.2s 一圈)
- 外层 呼吸光晕(约 2.4s 一周期)
行首单元格完全交给宿主(StateDot、计划任务时钟等);插件只在标题下用热度下划线表达热度。工作区内任一会话在跑时,工作区卡片同样处理,并聚合可求和的会话数、轮次、步数、token 与总对话时长。
系统开启 prefers-reduced-motion 时,上述动画全部关闭。
配色¶
仅使用宿主主题 token,无硬编码色值,例如 --color-blue-500(热度蓝)、--dsw-alias-bg-base、--dsw-alias-label-primary 等。热度用同一蓝色不同透明度(0.3–1.0)加部分填充的热度条表达。
安装与启用¶
安装前请自行阅读仓库源码与 MIT 许可证。插件在当前 DSH 进程权限下运行;从 GitHub 安装的是公开仓库内容,私有仓库需配置 token 或 SSH 后再 pnpm add。
进入你的 profile 目录(桌面版请用 Electron 应用内的插件管理器,不要手动改 ~/.dsh/profiles/desktop):
cd ~/.dsh/profiles/<your-profile>
pnpm add github:MarkTina/dsh-activity-heat#v0.1.0
建议固定 tag(如 #v0.1.0),避免跟踪 main 被无关提交改动行为。升级时改 tag 并完全退出后重启 DSH;已安装副本的文件变更不能靠刷新页面或开关插件 reload 模块。
在同一 profile 的 package.json 里,把 bundle 名加入 dsh.profile.bundles:
"@local/activity-heat"
首次安装通常靠宿主 HMR 激活;侧栏若无入口,重启 DSH 一次。
本地开发目录可选:
cd ~/.dsh/profiles/<your-profile>
pnpm add link:/absolute/path/dsh-activity-heat
同样加入 @local/activity-heat 到 bundles。
典型用法¶
快捷键打开面板¶
默认 Ctrl + Alt + H(macOS 为 Cmd + Alt + H)切换到 Recent Activity 面板;面板已打开时再按一次,回到进入面板前的会话(面板不替换当前会话,往返切换)。
在 Settings → Shortcuts 中搜索 “Recent Activity” 可改键。宿主保留 Ctrl+H 等系统组合键,故默认不用裸 Ctrl+H;插件 deliberately 不声明 Linux 默认快捷键 profile(Linux 上 alt+control 可能被视作保留键),Linux 用户可在设置里自行绑定。
配置热度窗口¶
默认值在插件的 cordis.patch.yml。在 profile 的 cordis.patch.yml 中用相同 id 写一整条配置(整段替换,非 deep merge,需写全字段):
- id: activity-heat
config:
hotMinutes: 10 # blazing 窗口(分钟)
warmMinutes: 60 # warm
activeMinutes: 360 # active
recentMinutes: 1440 # recent
staleDays: 7 # 超过则视为 stale(侧栏下划线等会隐藏)
topCount: 8 # 面板默认行数
tickSeconds: 60 # 热度衰减刷新间隔
showRowDots: true # 是否在会话标题下显示热度下划线
按你的工作节奏调整分钟/天数即可;改完后按 DSH 配置加载方式生效(重大变更建议重启)。
适用场景与注意¶
适合:同时在多个工作区、多会话间切换,需要快速回到「刚才还在聊」的那几条,或想在面板里按 Blazing / Warm 等档位筛选后再点开。
注意:
- 依赖 DSH
0.2.0-rc.2及以上;与更旧宿主未在 package 中声明兼容。 - 安装与 bundle 注册发生在 profile 目录,与「一切皆插件」的 DSH 模型一致;skillhub.cn 为社区目录,与 DeepSeek / 幻方无官方从属关系。
- 热度来自本地会话活动时间,不替代宿主自带的搜索或会话管理;7 天外的 stale 行为以配置与 README 描述为准。
- 使用前核对 GitHub 上当前 tag 与 CHANGELOG,再决定是否升级 pin 的版本。
结尾¶
dsh-activity-heat 用统一的时间衰减热度,把最近活跃的会话和工作区从侧栏长列表里「抬」到图标、下划线、悬停说明和 Recent Activity 面板里,并区分正在 running 的任务。若你已在用 DSH 多会话开发,可按上文命令安装并绑定 @local/activity-heat。
- 目录页:https://www.skillhub.cn/plugins/MarkTina/dsh-activity-heat
- 源码与 README:https://github.com/MarkTina/dsh-activity-heat