Bundle
dsh-conversation-nav
DSH Web UI plugin: a maid-atelier friendly right-side question rail that lists every user message in the current conversation, previews it on hover, and smooth-scrolls to it on click.
- Source
- Fiker1203
- License
- MIT
- Updated
- Updated 15 hours ago
Readme
# dsh-conversation-nav · 对话问题导航 **DSH Web UI 插件:在对话右侧生成一条「问题导航」竖条,悬停可预览用户提问内容,点击平滑跳转到对应消息,并适配女仆主题(maid-atelier)。** 如果你用 DeepSeek Harness 进行长对话,经常需要在几十轮提问里来回翻找某个问题,这个插件就是为你准备的。它把当前会话中的每一条**用户提问**变成一个右侧的序号标记: - 平时只占右侧一条很窄的竖条,不遮挡聊天区 - 鼠标悬停到序号上,展开一张小卡片预览该条提问内容 - 点击序号,平滑滚动到对应消息并短暂高亮 - 页面滚动时自动高亮当前正在浏览的问题 ## 功能 - 自动识别当前会话中的每条用户消息(`[data-chat-flow-kind="user"]`) - 右侧竖向问题导航,序号清晰,窄条不遮挡内容 - 悬停 / 键盘聚焦展开预览卡片,显示「第 N 问」和提问文本 - 点击平滑滚动到目标消息,并闪烁高亮 - 滚动时自动高亮当前问题 - 响应 React 动态渲染:加载更早消息、切换会话、虚拟滚动时自动更新 - 兼容 DSH 聊天区「贴底滚动」逻辑:在对话最底部点击也能正常跳转 - 女仆主题适配: - 浅色模式:象牙白 / 海军蓝 / 金色描边 - 深色模式(`data-ds-dark-theme`):深海夜蓝 / 香槟金 - 未启用女仆主题时自动回退到 DSH 官方设计变量 ## 安装 ```sh dsh plugin --profile web add github:Fiker1203/dsh-conversation-nav ``` 安装后重启 Web UI,并硬刷新浏览器(Ctrl+Shift+R)。 本地路径安装: ```sh dsh plugin --profile web add C:/path/to/dsh-conversation-nav ``` ## 卸载 ```sh dsh plugin --profile web remove dsh-conversation-nav ``` ## 使用 打开一个有多条用户提问的会话,右侧会自动出现竖排问题导航: - **悬停**序号 → 展开预览卡片,查看该问题内容 - **点击**序号 → 平滑滚动到该问题并高亮 - 向上/向下滚动对话 → 导航条自动高亮当前所在问题 ## 结构 ``` dsh-conversation-nav/ ├─ package.json # dsh.bundle + dsh.client 声明 ├─ cordis.patch.yml # 仅插入 conversation-nav 条目 ├─ index.js # host:无主机行为(浏览器专用插件) ├─ client.js # browser:注入右侧问题导航 UI + 跳转/预览 └─ README.md ``` ## 原理与维护 - 插件只读取页面 DOM,不发送任何数据。 - 用户消息选择器定义在 `client.js` 开头的 `USER_NODE_SELECTOR`。 - 如果 DSH 改版导致用户消息的 DOM 标记变化,更新该选择器即可。 ## License MIT
Install
dsh plugin --profile web add github:Fiker1203/dsh-conversation-nav
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-conversation-nav from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.