dsh-message-navigator
DSH Web GUI 插件:会话右侧悬浮消息导航条 —— 收起态 10 条短横杠,悬停展开为用户消息摘要,点击平滑滚动定位历史消息;固定 10 条窗口 + 跟随/锁定模式 + 增量更新。
ming6203
@ming6203
⬇ 1
★ 0
main
安装
dsh plugin --profile web add github:ming6203/dsh-message-navigator
需要可复现安装时,可在仓库后追加 #commit 固定提交。
DSH Web GUI 插件:会话右侧悬浮消息导航条 —— 收起态 10 条短横杠,悬停展开为用户消息摘要,点击平滑滚动定位历史消息;固定 10 条窗口 + 跟随/锁定模式 + 增量更新。
该插件未提供要点说明,请参考仓库 README。
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/ming6203/dsh-message-navigator |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-26 |
| 收录日期 | 2026-09-19 |
| 分类 | 会话与消息 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-message-navigator
DSH Web GUI 插件:**会话右侧悬浮消息导航条**。在对话页面右侧提供一条可折叠的导航条,用于快速定位并跳转到当前会话中用户发送过的历史消息。
## 功能
- **默认收起态**:右侧显示固定 10 条白色短横杠,纵向排列,不遮挡正文
- **悬停展开态**:横杠展开为对应用户消息的文字摘要(截断约 20 字),容器加宽并带毛玻璃效果
- **点击跳转**:点击横杠 / 摘要后平滑滚动到该消息实际位置,并闪烁高亮 1.5s 帮助定位
- **固定窗口 + 滚动加载**:导航条始终只渲染 10 条,滚轮 / 按钮在更久远与最新消息之间平移窗口
- **跟随 / 锁定模式**:默认跟随最新消息;上翻后窗口锁定,新消息到达仅显示「有新消息 ↓」角标而不打断浏览
- **性能**:只投影当前窗口内的 10 条摘要,随会话快照增量更新,长会话不卡顿
### 非目标
- 不支持编辑 / 删除消息
- 不支持跨会话统一导航
- 不导航 AI 回复消息(仅针对用户发送的消息)
## 安装
```bash
# 从 npm 安装到名为 web 的 profile(推荐)
dsh plugin --profile web add dsh-message-navigator@latest
# 本地开发 / 调试:link 到仓库目录(绝对路径)
dsh plugin --profile web add link:D:/Data/dsh-message-navigator
```
安装后重启 `dsh web`(或对应 profile 的启动),刷新页面即可在会话右侧看到导航条。
### 卸载
```bash
dsh plugin --profile web remove dsh-message-navigator
```
## 本地开发
```bash
npm install
npm run typecheck # tsc -b,类型检查
npm run build # tsc -b && tsdown,产出 lib/index.js + lib/client.js
npm run watch # tsdown --watch
```
构建产物:
- `lib/index.js` —— host 半端(本插件为 no-op cordis 插件)
- `lib/client.js` —— browser 半端,由 shell 的 `window.__ModuleLoader__` 从 `/plugins//client.js` 加载
- `lib/types/**/*.d.ts` —— 类型声明
## 架构
本插件是 dsh 的 **profile bundle**(`package.json` 声明 `"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }`):
- `cordis.patch.yml` 声明一行 host 插件实例(`insert`),host 半端为空实现
- `dsh.client` 声明 browser 半端:`platform: "web"`,`inject` 声明依赖的 client 包加载顺序
browser 半端(`src/client`)在 `shell.overlay`(框架级悬浮层,list 插槽)中注册 `message-navigator` 条目:
1. 通过 `ctx.sessions.binding(currentId).session` 订阅当前会话的 `ConversationSnapshot`
2. `extractUserMessages` 从 `snapshot.chat` 投影出 `user` / `steering` 两类用户消息及其文本摘要
3. 点击跳转通过 DOM 锚点 `[data-chat-anchor-key=""]` 定位并 `scrollIntoView`
数据流:
```
ConversationSnapshot.chat.order(节点 key 顺序)
→ chat.nodes.get(key) → ChatConversationViewNode(kind / anchorSeq / data)
→ 过滤 kind ∈ {user, steering}
→ 摘要(content 中 text block 拼接,截断 20 字)
→ 固定 10 条窗口渲染
```
## 兼容性
- dsh `>=0.1.1-rc.1`
- React `^18.2.0`(peer dependency,由 shell 的模块表提供)
## License
MIT
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。