
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-milestone
Advanced tools
Git-style milestone timeline for DeepSeek Harness: hover for metadata, click to jump to any message. 会话里程碑导航条:圆点时间线,定位并跳转到每条提问。
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 里长聊的开发者。
FAQs
Git-style milestone timeline for DeepSeek Harness: hover for metadata, click to jump to any message. 会话里程碑导航条:圆点时间线,定位并跳转到每条提问。
We found that dsh-milestone demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.