deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:hjj345/dsh-sm-context-piano
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
中文文档(默认) · English documentation
GitHub:https://github.com/hjj345/dsh-sm-context-piano
npm:@hjj345345/dsh-sm-context-piano
DeepSeek Harness Web GUI 的 Codex 式对话琴键导航插件。
它在聊天正文左侧增加一组紧凑的横线琴键,将长对话压缩为可预览、可定位的语义节点。用户可以沿琴键快速浏览对话结构,悬停查看摘要,点击或使用键盘跳转到目标段落,而不必反复拖动滚动条寻找上下文。
本插件只负责导航和预览:不修改会话内容、不裁剪模型上下文、不注入系统提示,也不开放额外 HTTP 接口。
长时间运行的 Agent 会话通常包含大量用户指令、模型回复、工具调用、编辑记录和内部状态。传统滚动条只能表示页面位置,无法告诉用户每一段内容的语义。
琴键导航将对话重新组织为更容易识别的节点:
因此,琴键数量不会简单等于页面消息数量,而是更接近用户能够感知的关键对话段落。
prefers-reduced-motion。插件会在对话正文左侧提供琴键导航,并通过悬停预览和阅读位置同步帮助用户快速浏览长对话。
dsh plugin --profile web add @hjj345345/dsh-sm-context-piano
安装后刷新或重新打开 DSH Web GUI,然后在设置弹窗左侧进入 琴键导航。
dsh plugin --profile web add link:C:/path/to/dsh-sm-context-piano
| 操作 | 效果 |
|---|---|
| 移动鼠标经过琴键轨道 | 选择最近的琴键,展开波形并显示段落预览 |
| 点击琴键或轨道当前位置 | 跳转到当前预览的对话段落 |
| 滚动聊天正文 | 自动更新当前琴键和固定显示窗口 |
ArrowUp / ArrowDown |
在当前可见琴键之间移动选择 |
Home / End |
选择当前窗口的第一根或最后一根琴键 |
Enter / Space |
跳转到已选择的琴键节点 |
Escape |
关闭当前预览并清除悬停状态 |
选择固定窗口顶部或底部的边界琴键后,窗口会立即重新计算,使更早或更晚的节点进入可见区域。
插件以一级设置项注册在 DSH 设置弹窗中,排序位于官方 Agent 预设 下方。第三方设置导航使用 DSH 官方齿轮回退图标。
| 设置 | 默认值 | 说明 |
|---|---|---|
语言/Language |
简体中文 | 支持简体中文、English、繁體中文;只切换插件设置页文本 |
语言选择由插件独立保存。它不会修改 DSH 全局语言;左侧一级导航名称和琴键轨道的无障碍名称仍跟随 DSH 系统语言。
| 设置 | 默认值 | 可选范围 / 行为 |
|---|---|---|
| 启用状态 | 开启 | 可随时关闭或重新启用琴键导航 |
| 琴键粗细 | 2px |
1–4px |
| 琴键间距 | 12px |
6–18px,表示相邻琴键中心点距离 |
| 最大显示数量 | 20 |
5–30,超出上限时使用固定窗口 |
| 恢复默认值 | — | 同时恢复语言、启用状态和全部显示参数 |
轨道总高度按以下公式自动计算:
(最大显示数量 - 1) × 琴键间距 + 琴键粗细
默认值对应 (20 - 1) × 12 + 2 = 230px。
“关于插件”卡片显示版本、发布日期、作者、邮箱、GitHub 仓库链接以及正式 npm 包名与链接。“安装命令”使用独立代码卡片展示完整命令,并提供一键复制按钮。
以下截图分别展示中文设置页、插件启用与显示控制,以及 English 界面。
ConversationSnapshot.chat.order/nodes 读取当前会话中已经加载的有序节点;[data-chat-anchor-key] 将语义节点与真实消息行对齐;现有琴键通过稳定 key 增量复用,因此流式回复不会导致整条轨道反复清空和重建。
[data-chat-flow]、[data-chat-anchor-key] 和 [data-conversation-scroll] 锚点。^22.19.0 || >=24.0.0。textContent 写入,不执行会话内容中的 HTML;环境要求:Node.js ^22.19.0 || >=24.0.0、pnpm。
pnpm install
pnpm verify
pnpm verify 依次执行:
当前自动化覆盖包括 21 项逻辑断言、4 项构建冒烟检查和 14 项 jsdom 集成场景。
项目内部设计和验收资料保留在仓库的 docs/ 目录中,npm 发布包不包含这些内部文档。
琴键用于定位用户能够直接感知的对话内容。工具、编辑、读取、推理和内部状态只作为模型输出连续性的分界,不作为导航目标。
插件使用固定数量窗口,避免为了容纳全部历史而压缩琴键间距。选择窗口顶部或底部节点即可逐步浏览更早或更晚的内容。
插件语言只控制设置页。DSH 一级导航名称和琴键轨道无障碍名称按设计继续跟随 DSH 系统语言。
琴键只覆盖当前已经加载到 ChatView 的历史。需要先让 DSH 加载对应历史记录,插件才能为其建立导航节点。
会。语言、启用状态和显示参数均通过 DSH settings namespace 持久化。
本项目采用 MIT License 开源。
role="dialog",弹窗显示期间暂停插件导航,关闭后自动恢复;uiConversation Chat target 读取对话节点,避免依赖旧版 Session snapshot;@deepseek-ai/cordis、@deepseek-ai/dsh-settings 和 @deepseek-ai/schemastery 的宿主兼容版本声明;v1.1.1;@deepseek-ai/dsh-settings 和 @deepseek-ai/schemastery 改为宿主提供的 peer 依赖;首次发布版本,包含:
感谢所有参与本项目讨论、建议、测试和代码贡献的开发者。特别感谢:
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。