Minglink/dsh-infinite-gen-4
Minglink/dsh-infinite-gen-5DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
钢琴键风格的会话内导航条:每根键对应一条用户消息,悬停预览、点击跳转到完整历史的任意消息。官方双面 dsh 插件,不改 DSH 源码。
English | 简体中文
钢琴键风格的会话内导航条 —— 为 DeepSeek Harness Web GUI 的单个会话提供多轮对话导航: 每根键锚定一条用户消息,悬停显示该轮「用户消息 + 模型回复」预览,点击平滑跳转到对应消息。 基于 DSH 官方双面插件机制(host + browser half),不侵入 DSH 源码。
| 整体效果 | 悬停预览 | 点击跳转 |
|---|---|---|
| 一个 43 轮的会话 —— 每根键对应一个用户问题,紧凑簇在消息区垂直居中。 | 悬停某键显示用户消息(单行)+ 该轮模型回复(最多 3 行)。 | 点击任意键自动翻页历史(与官方「加载更早」同一通道)并精确定位到视口顶部。 |
截图取自一个真实的 43 轮会话(DSH记忆注入验证优化,浅色主题)。
参考实现:KeLearns/dsh-navigation-bar(视觉规格与交互对齐,代码独立重写)。
sessionPersistence.readFrom),
而非浏览器已加载的窗口 —— 长会话(上百轮)也能一屏看到全部用户问题;
与实时快照合并时按消息 UUID 去重,不会出现重复键。#D2D3D3 / #767779 / #1A1C1F,
深色 #454545 / #A3A3A3 / #FFFFFF。-webkit-line-clamp 双保险,超出以 … 省略);气泡与键垂直居中对齐;
顶部带「第 N 轮」轮次徽标(v0.1.8+),长会话定位更直观。data-ds-dark-theme + prefers-color-scheme 兜底)。session.getSnapshot()
不再包含 navigation 投影),本插件已改用官方 uiConversation 服务的 chat 完整
快照(viewStore.get('chat'))取回复文本,与官方「紧凑回合导航」同源;
历史轮次回复由 host 端从磁盘日志提取,全量轮次均可预览。dsh plugin --profile web add github:kiligzzz/dsh-session-nav
# 本地开发(link 方式;改 lib/client.js 后刷新页面即生效)
dsh plugin --profile web add link:<本目录>
注意:插件名单在实例启动时加载 —— 新装插件后需重启 dsh web 实例再刷新页面。
| 文件 | 说明 |
|---|---|
index.js | host 半端:读取会话全量日志并暴露同源路由 /_dsh/session-nav/questions |
lib/client.js | browser 半端(手写 bundle,无构建步骤;window.__ModuleLoader__.load) |
cordis.patch.yml | bundle patch:把插件行插入 web profile 名单 |
package.json | dsh.bundle.patch + dsh.client(platform web)声明 |
数据来源(全部官方 API):
ctx.uiConversation.binding(currentId).viewStore.get('chat') → chat 完整快照
(含 navigation,0.1.2+;useSyncExternalStore 实时订阅)ctx.sessions.binding(currentId).session → ConversationSnapshot
(0.1.2 前 / 无 uiConversation 时回退)ctx.sessionPersistence.readFrom(sessionId, 0) → 全量会话日志(host 端)[data-conversation-scroll],消息行 [data-chat-anchor-key]session.loadOlder()(与官方「加载更早」按钮同一通道)事件驱动几何跟踪:scroll capture / resize / 惰性附加的 scrollport ResizeObserver →
rAF 合并重算;无常驻 MutationObserver、无定时器。锚点行走 isConnected 校验的缓存,
虚拟滚动回收重建不影响正确性。
环境要求:Node.js >= 18。
pnpm install # 开发依赖(vitest / eslint / prettier)
pnpm test # 运行单元测试(31 个用例)
pnpm lint # eslint 检查
pnpm format # prettier 格式化
结构说明:
lib/shared.js,host 与 browser
两端共用同一实现,测试只需覆盖一次。lib/client.js 刷新页面即可;host 端
(index.js)改动需要重载插件。window.__dssnNavDebug__ 暴露诊断信息(entryCount、fullCount、stats),
便于 CDP 检查。MIT