# dsh-turn-jump — DeepSeek Harness 会话轮次悬浮跳转条
> **ChatGPT 同款体验 · 右侧极简刻度线 · 悬停提问摘要气泡 · 视口联动平滑跳转** `dsh-turn-jump` 是为 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai) Web 控制台打造的**会话轮次快速跳转与导航插件**。在对话视图右侧常驻显示极简刻度线,鼠标悬停时平滑展开每一轮提问的文本摘要,点击即可毫秒级平滑定位到历史消息。 --- ## ✨ 核心特性 - 🎯 **ChatGPT 同款极简刻度**:默认在屏幕右侧居中展示精致细横线(Tick Lines),完全不挤占对话正文与侧边栏。 - 💬 **智能提问摘要气泡(Hover Popover)**:鼠标划过刻度条时,自动浮现白底毛玻璃卡片,实时提取每一轮用户的**真实发言摘要**。 - 👁️ **视口与滚动实时联动**:随用户浏览上下滚动,当前阅读的轮次自动加长加粗并高亮(浅色模式下呈现 `#ececec` 浅灰胶囊选中态)。 - ⚡ **运行状态呼吸指示**:处于生成/思考中的轮次带有橙色呼吸指示点,状态一目了然。 - 🚀 **毫秒级平滑跳转**:点击任一刻度线或气泡条目,通过 `scrollIntoView` 平滑滚动并精准对齐该轮次首条消息。 - 🎨 **主题自适应**:原生适配 DSH 浅色与深色主题,浅色纯净白底黑字、深色暗灰毛玻璃。 - 🪶 **零外部运行时依赖**:纯基于 Cordis 框架标准套件与 React 客户端运行,体积仅 ~13KB。 --- ## 📸 交互效果 | 状态 | 表现形式 | 说明 | | :--- | :--- | :--- | | **平时状态(默认)** | 右侧细横线刻度条 | 极简低干扰,当前视口所在轮次加长高亮 | | **鼠标悬停(Hover)** | 浮动白底气泡菜单(Popover) | 展开当前会话各轮次的真实提问摘要,当前轮次浅灰底高亮 | | **点击跳转(Click)** | 平滑滚动对齐(Smooth Scroll) | 视口平滑移动至目标轮次,不突兀、不卡顿 | --- ## 📦 安装与使用 ### 方式一:通过 GitHub 仓库安装(推荐) 在 DSH 环境中直接运行: ```sh dsh plugin --profile web add github:liuGuanYi-hub/dsh-turn-jump ``` 重启 DSH Web 服务即可生效: ```sh dsh --profile web ``` --- ### 方式二:本地开发模式关联(Local Link) 如果您克隆了本仓库进行本地修改调试: ```sh git clone https://github.com/liuGuanYi-hub/dsh-turn-jump.git dsh plugin --profile web add ./dsh-turn-jump dsh --profile web ``` --- ## 📂 项目结构 ```text dsh-turn-jump/ ├── lib/ │ ├── client.js # 客户端核心:刻度线渲染、Popover 气泡、文本提取与滚动计算 │ └── index.js # 宿主半边声明(纯客户端插件占位声明) ├── cordis.patch.yml # Cordis Bundle 挂载层配置 ├── package.json # 插件元数据与 DSH Client 注入声明 ├── LICENSE # MIT 授权协议 └── README.md # 说明文档 ``` --- ## 🛠️ 技术原理 1. **浮层插槽挂载**:通过 Cordis 插件生命周期向 DSH 的 `shell.overlay`(全屏浮层插槽)注册独立组件,与主聊天流完全解耦。 2. **状态感知与文本提取**: - 订阅 `sessions.binding(currentId).session` 会话快照,监听 `chat.timeline.turnOrder` 轮次更新; - 提取器优先解析该轮次首个节点在 DOM 中的提问文本,兜底回退至 Snapshot Node Content,确保文字摘要精准不乱码。 3. **视口计算**:监听滚动容器的 `scroll` 事件,动态比对 `[data-chat-anchor-key]` 顶部位置与视口标记线,动态响应当前 Active Turn。 --- ## 📄 开源许可证 本项目采用 [MIT License](LICENSE) 开源。欢迎提 Issue 与 PR 共建!