dsh-session-radar

sessiontested: passnpmMIT

Sidebar unread / waiting / status hub for DSH Web: a bell jumps to the next unread session, a shortcut walks sessions waiting for input, and ⌘⇧, / ⌘⇧. step back and forward through the conversations you have visited; one overlay lists unread and pending sessions side by side; a six-metric readout at

下载量 / Downloads
1,055
依赖体积 / node_modules
0.58 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-session-radar

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

<sub>🌐 <b>中文</b> · <a href="#english">English</a></sub>

<div align="center">

dsh-session-radar

「重启也不丢的未读,和正在等你的那一个。」

![npm version](https://www.npmjs.com/package/dsh-session-radar)

![npm downloads](https://www.npmjs.com/package/dsh-session-radar)

![License: MIT](LICENSE)

![DSH plugin](https://github.com/deepseek-ai/deepseek-harness)

DSH 侧边栏的未读与待办中枢:⌘⇧J 按顺序定位未读会话,⌘⇧I 处理正在等你输入的会话(提问 / 审批 / 计划审阅),⌘⇧, / ⌘⇧. 在访问过的对话之间前后切换,⌘⇧K 弹出「等你处理」总览——所有未读与待决策的会话分成两区铺成卡片网格,一眼看清还欠多少;账本落在 host 半边,重启也不丢——上次退出时还在跑的会话,下次启动就算未读,⌘⇧J 一步走到。侧边栏底部另有一行六项会话状态读数——每个图标都能点,点一下跳到下一个同类会话,设置页可逐项开关。

[效果](#效果) · [安装](#安装) · [装完怎么确认](#装完怎么确认) · [怎么用](#怎么用) · [等你处理总览](#等你处理总览k) · [会话状态读数](#会话状态读数六项计数) · [已知限制](#已知限制) · [安全边界](#安全边界) · [兼容性](#兼容性)

</div>



它解决什么问题

同时开着四五个 DSH 会话,你去泡了杯咖啡回来——哪个跑完了?哪个正在等你点确认?

侧边栏默认列表不回答这两个问题;官方那个红点只在浏览器标签上闪一下,刷新、重启就没了。

这个插件把两件事搬回侧边栏:

  • 一个红色角标告诉你还欠几个「跑完没看」的会话,⌘⇧J 带你按顺序一个个过;
  • 一个黄色角标(铃铛左上角)告诉你谁在等你输入——提问、审批、计划审阅都算,⌘⇧I 带你处理;⌘⇧, / ⌘⇧. 则在访问过的对话之间前后切换(像浏览器的后退 / 前进,和审批互不干扰);
  • 想知道总账时按 ⌘⇧K:所有未读与待决策的会话在一个弹窗里铺成两区网格,不用一个接一个按过去才知道还有多少;
  • 两者的账本由 host 半边持有,写进 $DSH_HOME/session-radar.json,重启 dsh 后欠的账还在;
  • 上次退出时还没跑完的会话,下次启动直接算未读(见「被重启打断的会话」),不会因为当时没看到就被忘在列表里;
  • 启动时还会弹一次续跑清单:把被打断的会话列出来、默认全勾,按一下就把续跑消息批量发过去(见「重启后的续跑弹窗」)。

效果

未读和「等待你处理」是两个独立角标——右上红色是跑完没看的,左上黄色是等你输入的,同时出现也互不顶掉:

  • ⌘⇧J:按顺序走未读会话,走到末尾绕回第一个;
  • ⌘⇧I:先走等待项(最早开始等待的排最前),处理完再按就跳到下一个;
  • ⌘⇧, / ⌘⇧.:在访问过的对话之间后退 / 前进,走到两端停住;
  • ⌘⇧K:弹出「等你处理」总览——左边一列是待决策(提问 / 审批 / 计划审阅),右边网格是未读,方向键选、Enter 打开、再按一次 ⌘⇧K 或 Esc 关掉。

三个出口读的是同一份投影,所以角标数字、跳转顺序、总览卡片永远一致:

官方快照                       投影                                 出口
──────────────────────       ──────────────────────────────       ────────────────────────
Session 列表            ┐
Session 状态            ├──→   未读 = 账本 ∪ 官方完成未读      ├──→ 红色角标 + ⌘⇧J 顺序定位
Workspace 归档集        ┘            ∪ 本地完成沿 ∪ 手动标记     ├──→ 黄色角标 + ⌘⇧I 待处理队列
                                待处理 = 官方 pendingInteraction  └──→ ⌘⇧K 总览(待决策 / 未读两区)
账本(host 半边,落盘) ────→   跨刷新、跨重启都不丢的未读

安装

三档,任选一条。npm 上的发布版本可能落后于仓库 HEAD——要用仓库最新功能就走 GitHub 或本地目录安装。版本变更记录见 [CHANGELOG.md](CHANGELOG.md)。

npm(推荐)

dsh plugin --profile web add dsh-session-radar

GitHub

dsh plugin --profile web add github:d0ublecl1ck/dsh-session-radar

仓库把构建产物 lib/ 一起提交了,git 安装不需要本地 build。

本地目录

dsh plugin --profile web add /绝对路径/dsh-session-radar

装完让它生效

1. 页面开着的话刷新一下;如果这次是插件代码本身的更新,请来一次硬刷新(⌘⇧R / Ctrl+Shift+R)——客户端 bundle 由宿主以 cache-control: public, max-age=31536000, immutable 分发,普通刷新可能直接命中旧缓存,症状是「功能明明装了却完全没反应」;

2. 卸载:dsh plugin --profile web remove dsh-session-radar。

改了 host 半边(src/host.ts)之后必须 remove + add:宿主按 URL 缓存模块,只 add 不会重新导入;症状是"改了没生效"。

装完怎么确认

你看到什么 · 状态 · 怎么办

侧边栏「工作区」标题右边多了一个铃铛 · 装上了 · —

铃铛右上角红色数字 · 有跑完没看的会话 · ⌘⇧J,或点铃铛

铃铛左上角黄色数字 · 有会话在等你处理 · ⌘⇧I,或 ⌘⇧K 看总览

⌘⇧K 弹出「等你处理」两区网格 · 装上了 · 方向键选卡片,Enter 打开,Esc 关闭

启动时弹出「上次中断的任务」清单 · 装上了,而且上次确实有回合被切断 · 勾要接着跑的,按「重试选中」;不想动就「稍后处理」,它们继续留在未读里

启动时没弹清单 · 正常:这次没有「还看得见的、被切断的会话」 · 想验证就留一个会话在跑时退出,下次启动就会弹

看不到铃铛 · 侧边栏折叠成了 56px 轨道 · 展开侧边栏

铃铛在,但角标一直不清 · 浏览器到 host 的桥接失败 · 先刷新页面;仍不行看「已知限制」

怎么用

操作 · 结果

左键点铃铛 · 定位到下一个未读会话:滚动到可见并在对话栏打开;再点继续往后走,末尾绕回第一个

红色角标 · 已完成未查看的会话数(见「未读从哪来」)

点读数里的图标 · 跳到下一个该类型的会话:滚到可见并在对话栏打开;再点继续往后走,末尾绕回第一个。「已归档」点不动——它只报数(见「会话状态读数」)

会话行上的绿色小标 · 账本里还欠你的会话在行首显示绿点(官方那套「跑完没看」的标记重启后会丢,这个不会);打开它、把对话滚到底,或在官方行菜单里「标为已读」,绿点都会消失

黄色角标 · 正在等你处理的会话数:审批、计划审阅、提问都算;与红色角标分开计数,不会互相顶掉

快捷键 J · 与左键点铃铛同一个跳转,默认 macOS ⌘⇧J、Windows / Linux Ctrl+Alt+J,在 设置 → 通用 → 快捷键 改键

快捷键 I · 定位等待处理的会话:优先到最早开始等待的那个;处理完再按一次——还有别的 ask 就跳过去,没有了就没有反应

快捷键 ⌘⇧, / ⌘⇧. · 在访问过的对话之间后退 / 前进:记录「对话栏显示过哪些会话」,手点、壳自动切、插件跳都算;走到两端停住,从中间新开一个会话会清掉前进那一半

快捷键 K · 弹出「等你处理」总览:左列待决策(提问 / 审批 / 计划审阅),右区未读完成的会话,两边都是卡片网格;再按一次 K 关掉。没有任何等待时也会打开,窗口给一句「没有未读或待决策的会话」

总览里按 ↑ ↓ · 在当前区内上下移动选中卡片(到末尾绕回开头)

总览里按 ← → · 在「待决策」与「未读」两区之间切换

总览里按 Enter · 打开选中的会话(未读的会同时标为已读),并关掉总览

总览里按 Esc / 点窗口外 / 点「关闭」 · 关掉总览,什么都不打开

右键点铃铛 · 打开/关闭「最近活动」列表(按天分组)

点列表里的行 · 打开该会话并标为已读(与铃铛跳转同一路径)

在某会话行右键 →「标为未读」 · 该会话计入铃铛角标与跳转顺序,直到被打开;标记由官方侧边栏持有,插件只读

在会话里滚到底部 · 该会话视为已读:角标与账本已读一并回落,再往上滚也不会重新变未读。被重启打断的会话要等你自己打开过它之后才由此确认——DSH 重启时自动帮你打开的那个不算

启动弹出的续跑清单 · 勾选要接着跑的会话(默认全勾),按「重试选中」批量发出续跑消息;没勾的继续留在未读里

清单里按「稍后处理」/ Esc / 点空白处 · 关掉清单,什么都不发,全部保持未读

Esc / 点侧边栏其它位置 · 关闭活动列表

快捷键

三条官方命令,都通过 ctx.shortcuts 注册,所以出现在 设置 → 通用 → 快捷键 里,可以改键,也和其它命令一起做冲突检测。

命令 · 作用 · macOS(Desktop / Web) · Windows / Linux · Web Linux

session-radar.jumpUnread · 与铃铛左键同一个跳转(共享同一个游标) · ⌘⇧J(Mod+Shift+J) · Ctrl+Alt+J(Mod+Alt+J) · 不绑默认

session-radar.jumpAsk · 定位等待处理的会话(等待处理队列) · ⌘⇧I(Mod+Shift+I) · Ctrl+Alt+I(Mod+Alt+I) · 不绑默认

session-radar.historyBack · 回到上一个访问过的对话 · ⌘⇧,(Mod+Shift+Comma) · Ctrl+Shift+,(Mod+Shift+Comma) · Ctrl+Shift+,(Mod+Shift+Comma)

session-radar.historyForward · 前进到下一个访问过的对话 · ⌘⇧.(Mod+Shift+Period) · Ctrl+Shift+.(Mod+Shift+Period) · Ctrl+Shift+.(Mod+Shift+Period)

session-radar.overview · 弹出「等你处理」总览(待决策 + 未读两区网格),再按一次关掉 · ⌘⇧K(Mod+Shift+K) · Ctrl+Shift+K(Mod+Shift+K) · 不绑默认

J 与 I 两条命令的辅助键完全一致,只有字母不同:J 走未读,I 走等待处理。字母不能用 O——官方 workspace.add(桌面 Mod+O、Web Mod+Alt+O)与 workspace.openLocal(桌面 Mod+Alt+O、Web Mod+Shift+O)已经占满 O 的简单组合,而注册表在任意 profile 上发现默认键重叠就会抛错,直接把整个客户端半边打挂。I 没有任何官方命令占用,也不是浏览器或系统快捷键。Web Linux 都只放行三个固定组合,所以三条都没有默认键。

K 也是同理:官方 session.search(搜索会话)占着桌面 Mod+K 与 Web Mod+Alt+K,所以总览在所有平台都用 Mod+Shift+K——这是三条命令里唯一不按 J / I 家族走的一条,Windows / Linux 上因此是 Ctrl+Shift+K 而不是 `C

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::7,最后更新 2026-10-13

Links

GitHub · Homepage · npm

Same category