deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:SnowCrescenter-tech/dsh-milestone
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English: A Git-style milestone timeline for the DeepSeek Harness web UI — one dot per user message, hover for content and metadata (time, turn, duration, TTFT, tokens), click to jump anywhere, and collapse the whole rail into a draggable floating ball. Full-session list, in-session & cross-session search,
#msg=deep-link bookmarks, keyboard navigation. Install:dsh plugin --profile demo add dsh-milestone.
# 从 npm 安装(推荐)
dsh plugin --profile demo add dsh-milestone
# 或从 GitHub 源码安装
dsh plugin --profile demo add "github:SnowCrescenter-tech/dsh-milestone#main"
# 启动 Web UI
npx @deepseek-ai/dsh web # → http://127.0.0.1:3080
打开一个多轮对话(至少 2 条提问),会话视图右侧就会出现里程碑条。
要求 Node.js
>= 24(harness 官方要求)。
每个提问一个圆点,点击平滑跳转;悬停即看内容与元信息。圆点等距排列、不随对话长度变形,颜色由浅入深标出先后,同 Git 提交图。滚轮可在里程碑条上直接滑动选点,视口内最近的提问亮起白环。
一键把整条时间线收成一颗半透明悬浮球:点击展开,拖动可把它放到屏幕任意角落(拖动时不触发展开),松手即记住位置,刷新或下次会话仍在。设置里可选「固定 / 可拖动」,也可一键重置位置——右侧被其它面板(如 dsh-better-sidebar、explorer)占用时,把它拖到顺手的地方即可。
一键打开面板,序号 + 轮次 + 预览一次看全,点击任意一条直接跳转。列表直接来自整个会话的投影,不用手动翻页——对藏在最早期的消息来说,比在小圆点上逐个找快得多。
搜索框过滤圆点,匹配的是完整消息内容(不是 80 字摘要)且覆盖整个会话(不受对话当前加载窗口限制),实时显示命中数 N/M。Enter 跳到下一个匹配,Esc 一键清空。
一键搜索所有会话的消息内容(harness 原生索引),点击命中结果直接打开对应会话。
悬停圆点点星收藏,刷新后仍在(按会话持久化),顶部「★」一键只看收藏。跳转时 URL 自动带上 #msg= 锚点,刷新或分享后仍回到同一条消息。
时间 · 轮次 · 用时 · 结束原因 · TTFT · tok/s · 模型 · 用途 · token 用量,一张卡片看全。数据来自插件自注册的会话投影,零额外依赖:
┌──────────────────────────────────────────┐
│ 第 3 / 5 条 · 第 2 轮 ☆ 复制 ✂ │ ← 序号 + 轮次 + 收藏/复制/fork
│ 帮我优化这段代码的性能 │ ← 消息预览(前 80 字)
│ 5 分钟前 · 用时 1m30s · 首字 1.2s · 12.4 tok/s │ ← 时间 · 耗时 · TTFT · 吞吐
│ v4 · continue · 1280 / 2560 tok │ ← 模型 · 用途 · token 用量
└──────────────────────────────────────────┘
↑↓ 移动 · Enter 跳转 · Home/End 首尾,全程不用鼠标。双半边浏览器插件(空 node half + shell.overlay slot 挂载的 client half),零侵入:
shell.overlay (root scope)
└─ milestone.rail (session scope, 自声明子槽)
└─ useProjection('milestone.messages') → 圆点列表 + 悬停 + 跳转
shell.overlay 全框架浮动层,附加式、点击穿透,不碰现有 UI。milestone.messages 会话投影——host 端对完整事件日志做 fold(turn/start / user/message / assistant/chunk / assistant/message / turn/end),client 端经 useProjection 读取整会话的消息与每轮元数据;圆点列表与站内搜索覆盖整个会话,与 DOM 当前加载窗口无关。scrollIntoView 平滑滚动。store.persist 写入 localStorage。rail-logic.ts / ball-position.ts),单测覆盖。0.1.5 线(0.1.5-rc.1 是 npm latest、0.1.5-rc.2 是 next;peer 范围 >=0.1.5-rc.1 <0.3.0-0 同时覆盖两者)。>=0.1.5-rc.1 <0.3.0-0(dsh-client-locale / dsh-client-store / dsh-client-ui-slots):依赖解析到旧线时会得到明确的 ERESOLVE,而不是静默错配。assistant/message / assistant/attempt 的紧凑 stream 中(独立的 assistant/chunk 事件已移除),TTFT 由官方 assistantStreamFirstTokenTime 读取;TokenUsage 字段更名为 inputTokens/outputTokens/totalTokens 并拆分缓存计数,插件的 input 显示为三项之和(缓存计入),保持旧的「提示词 token」含义。milestone.messages,client 端 useProjection 读取);defineStore 由 @deepseek-ai/dsh-client-store 提供。@deepseek-ai/dsh-client-store@0.1.5-rc.1 的 lib/index.js 运行时引用 zustand/immer,清单却把它们放在 devDependencies 未声明为依赖——导入该模块即报 Cannot find package 'zustand'。本仓库用 pnpm packageExtensions 兜底补全(见 pnpm-workspace.yaml)。host.describe().version 是占位值),因此不做精确探测,以插件声明的支持线为准。⚠️ 圆点列表与站内搜索现由会话投影驱动,覆盖整个会话,与 DOM 加载窗口无关;但跳转到很早的消息仍需先把该消息载入 DOM,插件会自动触发加载再定位。
v0.7.2 · 点击旧圆点自动翻页定位(深跳鲁棒性)· 459 项测试
v0.7.1 · 升级不再被卡(可选 peer + 兼容边界)· 恢复模型与错误徽标 · 跟随官方 0.1.5-rc.2 · 457 项测试
request/context 事件读取 provider / model(此前恒为 null)。turn/end 的结束原因(error / max-tokens)与 assistant/attempt 结算次数重建(此前徽标恒空)。0.1.5-rc.2(npm latest 仍为 rc.1;peer 范围 >=0.1.5-rc.1 <0.3.0-0 同时覆盖两者);上游 dsh-client-store 漏声明 zustand/immer 的兜底扩到整条 0.1.5 线。advisory / dsh next:持续对官方 next 线跑类型检查与测试,提前预警破坏性变更(首跑即发现 rc.2 与上述打包缺陷)。v0.7.0 · 跟随官方 0.1.5(会话投影数据层)· 折叠为可拖动悬浮球(issue #4)· 447 项测试
milestone.messages 投影提供——host 端对完整事件日志 fold,client 端 useProjection 读取;圆点列表与站内搜索覆盖整个会话,与 DOM 加载窗口解耦。TTFT 改从结算事件内嵌的紧凑 stream 读取(独立的 assistant/chunk 已移除),TokenUsage 字段更名并计入缓存;peer 收紧到 0.1.5-rc.1 线,移除 dsh-client-runtime 依赖(含 dsh.client.inject)。v0.6.6 · 全部提问列表自动加载整个会话 · 折叠圆点 ×N 徽标 · 轮次连续显示 · 397 项测试
v0.6.5 · 新手教程改为锚定真实组件的教练气泡引导,设置模态对比度修复 · 近 400 项测试
v0.6.4 · 首次使用引导:4 步双语教学 + 内置演示,印象即写、关页不重弹
更早版本见 GitHub Releases。
如果它帮你省下了一次翻找,欢迎给个 Star,或推荐给同样在 DeepSeek Harness 里长聊的开发者。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。