deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:gjj-star/dsh-conversation-navigator
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Codex 风格的 DeepSeek Harness(DSH)Web 端会话导航面板:在对话页右侧悬浮展示按轮折叠的对话大纲,点击任意节点平滑跳转,滚动对话时实时高亮当前阅读位置,步次徽标配色与内置"轨迹"视图统一。
纯浏览器插件(无宿主行为)、纯 JavaScript、零构建、零 npm 依赖(按钮/图标复用 DSH 内核 seed 的官方 primitives)。
▸ N / ▾ 展开或折叠该轮的步次明细(助手回复、工具调用、命令、压缩点等)dsh-client-ui-trajectory 的 kindTag 主题 token,自动适配明暗主题)Button 组件与 ic_ds_* 图标集,与 DSH 界面完全同款本插件是官方规范的组合包(dsh.bundle manifest + dsh.client 声明),纯 JavaScript、无构建步骤,推荐用官方 CLI 安装:
# 方式一:npm(发布后,用户无需任何构建授权)
dsh plugin --profile web add dsh-conversation-navigator
# 方式二:GitHub(纯 JS 包无需 prepare/allowBuilds,直接可用)
dsh plugin --profile web add github:gjj-star/dsh-conversation-navigato
# 方式三:本地 tarball
pnpm pack
dsh plugin --profile web add ./dsh-conversation-navigator-<version>.tgz
dsh plugin 在 profile 目录内转发给 pnpm,因此需要 pnpm 在 PATH 上;安装会自动把本包追加进 profile 的 dsh.profile.bundles,其自带的 cordis.patch.yml 层负责插入插件行。重启 dsh web 后生效,面板默认展开。
手动方式(不依赖 pnpm):把仓库放进
<DSH_HOME>\profiles\<profile>\node_modules\dsh-conversation-navigator,并在 profile 的cordis.patch.yml顶层数组追加example.patch.yml的内容。
修改 lib/client.js 后重启 dsh web 即可;插件没有持久状态,展开/折叠状态仅存于页面会话内。
conversation.session.header.utilities(标题栏「导航」开关)+ shell.overlay(浮动面板)useSession(选择 ConversationSnapshot.chat 的稳定渲染顺序 order + ChatNodeStore),按 node.location 的 turn 分组sessions 服务的 binding(sessionId).session.loadOlder() 分页向后加载,「加载全部」循环至 hasMore=false[data-chat-anchor-key](与产品内部 paging/scroll 定位同源),scrollIntoView 平滑滚动[data-conversation-scroll] 滚动容器的 scroll 事件(节流 120ms),计算视口顶部首个可见节点@deepseek-ai/dsh-client-ui-primitives;面板容器自建 <style> 注入,颜色使用 --dsw-* 主题 token;插件卸载时随 fiber 清理dsh.client.platform: web),依赖内核 seed 的 react、slots、sessions 服务与 @deepseek-ai/dsh-client-ui-primitives,以及 dsh-client-runtime、dsh-client-ui-conversation 提供的标准能力(dsh.client.inject 已声明 runtime 与 conversation)[data-chat-anchor-key] / [data-conversation-scroll] 是当前 DSH 聊天视图的 DOM 锚点约定,DSH 升级后若锚点变化,只需调整 lib/client.js 中 findAnchor / computeActiveKey 两个函数timer 硬依赖:客户端的 timer 服务存在则用于节流,不存在时自动退化为未节流模式lib/
index.js # 宿主侧空入口(纯浏览器插件)
client.js # 浏览器端完整实现(window.__ModuleLoader__ 模块格式)
cordis.patch.yml # 组合包补丁层(插入插件行)
example.patch.yml # 手动安装时的补丁示例
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。