Skip to content
dsh.fish
Bundle

dsh-chat-rail

DeepSeek Harness Web 聊天右侧导航拉条插件:按「提问→回答」轮次显示彩色节点,状态区分(绿/黄/红/蓝),点击跳转提问与回答段落;悬停展开状态面板,刚回答完有闪光动画,关键词提炼为短句。

Source
shao-01-test
License
MIT
Updated
Updated 8 days ago

Readme

# 🧭 dsh-chat-rail

> **DeepSeek Harness**(DSH)Web 界面的**聊天右侧导航拉条**插件(`dsh-plugin`)。

一条极简、不打扰的右侧导航条:按「提问 → 回答」轮次显示**彩色圆柱节点**(一眼看清本次对话有几次提问及各自状态),悬停/靠近即平滑展开成**状态着色面板**,点击即可**快速跳转到对应提问或回答的某一段**。

---

## ✨ 功能特性

- **收起态(默认)**:右侧一条细竖线 + 每问一个**竖直圆柱节点**,节点用竖线相连,**颜色区分回答状态**。
  - 🟢 绿 = 正确完整执行
  - 🟡 黄 = 回答被打断
  - 🔴 红 = 出错 / 解决不了
  - 🔵 蓝(脉冲) = 正在回答
- **悬停 / 靠近放大**:拉条平滑放大成导航面板(宽高过渡动画),不靠近时极简不干扰查看。
- **状态着色面板**:展开后每条按状态着色;**正在回答**的条目带**环绕加载动画**;**刚回答完**的条目有**闪光动画**(放大 → 闪一下 → 高亮 → 恢复),点击条目或滚动到该处即恢复正常高亮。
- **二级缩略关键词**:每个条目下方用**提炼短句**展示该回答的关键方向(轻量摘要算法,而非截取回答前几字);点击短句**直接跳转到回答对应部分**。
- **主题适配**:配色使用 DSH 主题 token(`--dsw-alias-*`),自动跟随当前皮肤(鲸鱼娘 / 终端 / 终末地 等)。

---

## 🚀 安装

本插件有**两条安装通道,契约不同**,请按需选择其一(不要混用):

### 方式 A:作为 dsh-plugin bundle 安装(推荐,持久化)

`client.js` 已按 DSH 官方 bundle 契约编写(通过 `window.__ModuleLoader__.load({ id, factory })` 主动注册),因此可直接作为 bundle 安装:

```bash
dsh plugin --profile web add /path/to/dsh-chat-rail
```

> 首次安装新增插件包后需**重启一次 DSH**。重启后进入任意会话,右侧即出现拉条。
> 依赖:`package.json` 的 `dsh.bundle.patch` 指向 `cordis.patch.yml`,会挂进 web bundle 栈。

### 方式 B:作为动态 Cordis 插件(临时试用,可逆)

`client.js` 是 bundle 格式(整文件不能直接粘贴)。动态通道只认 `return { apply(ctx){...} }`,所以**需要手动把 `client.js` 的 `apply(ctx){...}` 函数体**复制出来,连同其依赖(`R`=`React`、`insertCss`、`buildEntries` 等辅助函数)一起,粘贴为 `cordis_define` 的 **Client 代码**,再用 `cordis_run` 激活;停止即完全卸载。

> ⚠️ 动态通道不提供全局 `React` 与 `styles`,粘贴时请把代码里的 `R.` 恢复为 `React.`,把 `insertCss(css)` 恢复为 `styles.insert(css)`,并补上 `React` 声明。**日常使用推荐方式 A。**

---

## 📖 使用

1. 进入任一 DSH 会话(有对话记录)。
2. 右侧出现细拉条:每个圆柱节点 = 一次提问,颜色表示该轮回答状态。
3. **悬停拉条** → 展开导航面板;每条显示提问缩略 + 回答关键词短句。
4. **点击条目** → 跳到该次提问;**点击关键词短句** → 跳到回答对应部分。

---

## 🖼️ 使用演示

### 演示视频

<video src="docs/demo.mp4" controls muted playsinline poster="docs/demo-expanded.png" style="max-width:100%;border-radius:8px"></video>

> 如无法内联播放,可下载原视频:`docs/demo.mp4`。

### 悬停展开的状态面板

![展开态演示](docs/demo-expanded.png)

### 收起态(右侧细拉条 + 彩色圆柱节点)

![收起态演示](docs/demo-collapsed.png)

### 状态颜色说明

| 颜色 | 含义 |
| --- | --- |
| 🟢 绿 `#22c55e` | 回答正确完整执行 |
| 🟡 黄 `#f5b800` | 回答被打断 |
| 🔴 红 `#ef4444` | 出错 / 解决不了 |
| 🔵 蓝 `#3b82f6` | 正在回答(带加载动画) |

---

## 🏷️ 标签 / 关键词

本插件标记为 **DeepSeek Harness 插件**,GitHub topics 建议设置:

```
dsh-plugin   deepseek-harness   plugin   chat   navigation
```

`package.json` 的 `keywords` 已包含 `deepseek-harness`、`dsh`、`dsh-plugin` 等。

---

## 👤 作者

**[Shao](https://github.com/shao-01-test)**

- GitHub:<https://github.com/shao-01-test>

---

## 📄 许可证

[MIT](./LICENSE)

Install

dsh plugin --profile web add github:shao-01-test/dsh-chat-rail

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source