dsh-milestone: A Session Milestone Navigation Rail for DeepSeek Harness

snowcrescenter-tech/dsh-milestone

Sessions & MessagesVerified
Listed on 2026-08-20
Page last updated 2026-08-20

Git-style milestone timeline for DeepSeek Harness sessions: hover for metadata, click to jump to any message.

Attach a dot timeline to the right of DeepSeek Harness sessions, locate each question like a Git commit graph, hover for metadata, click to jump.

install
dsh plugin --profile web add github:snowcrescenter-tech/dsh-milestone
Category
Sessions & Messages
Platform
DSH-Plugin
Author
snowcrescenter-tech
Distribution
Plugin

dsh-milestone Key Features

Jump to any messageHover for timings & TTFTSearch & filter with highlightsBookmark & fork messagesKeyboard nav & deep links

dsh-milestone Repository

snowcrescenter-tech
Publisher
snowcrescenter-tech
Repository
snowcrescenter-tech/dsh-milestone
17
Stars
1
Forks
0
Watchers
2
Open issues
LanguageTypeScript
LicenseMIT License
Website
Repo last push2026-08-14 11:57:35
Repo created2026-08-14 01:04:46
Topics
deepseekdeepseek-harnessdsh-pluginmilestonenavigation
Default branchmain

dsh-milestone Repo Summary

dsh-milestone is a session milestone navigation plugin (DSH plugin) for DeepSeek Harness, maintained by SnowCrescenter-tech under the MIT license, last updated in 2026-08. It solves the pain of locating past questions in long conversations: it attaches a dot timeline on the right side of the session, like a Git commit graph, where each dot corresponds to a question, hover to see metadata, click to jump. Core capabilities include: in-session search (matching full message content), current position highlight, load older history, bookmark favorites, keyboard navigation, status badges (error/max/retry/running), fixed spacing, blue gradient, wheel scrolling, rich hover info (time/turn/duration/TTFT/tokens per second), model and usage display, turn grouping/collapsing, copy and fork, bilingual support, focus mode, full question list, deep linking (#msg= anchor), cross-session search, and zero-intrusion (mounted via official slot mechanism).

What core features does the dsh-milestone DSH plugin support?

  • One-click positioning: Click any dot to smoothly scroll to that message, no manual scrolling.
  • In-session search: Filter dots by matching full message content, real-time hit count N/M, Enter to next match, Esc to clear.
  • Current position highlight: The question nearest the viewport lights up with a white ring.
  • Load older: Top "···" button loads older history and shows loaded count.
  • Bookmark favorites: Hover a dot to star it, persists after refresh; top "★" to view only favorites.
  • Keyboard navigation: Arrow keys move, Enter jumps, Home/End to first/last, no mouse needed.
  • Status badges: Red ring for errors, yellow for max tokens, orange for retry, blue/yellow pulse for running/waiting input.
  • Fixed spacing: Dots are evenly spaced, not squeezed by conversation length.
  • Blue gradient: Newest is darkest, oldest is lightest, like a Git commit graph.
  • Wheel scrolling: When dots overflow, scroll wheel on the rail to select.
  • Rich hover: Preview, relative time, turn number, duration, end reason, TTFT, tokens/sec.
  • Model and usage: Hover shows model, input/output token counts.
  • Turn grouping/collapsing: Dots grouped by turn, long turns can be collapsed.
  • Copy and fork: One-click copy full question text or fork a branch session from here.
  • Bilingual: Automatically switches between Chinese and English following the harness UI language.
  • Focus mode: Dims AI thinking blocks, restores on hover or expand.
  • Full question list: Top expandable panel shows all questions (index + turn + preview), click to jump.
  • Deep linking: URL gets #msg= anchor, refresh or share returns to the same message.
  • Cross-session search: Search all sessions' message content, click result to open that session.

How to install dsh-milestone?

Install command (recommended from npm, or from GitHub source):

bash
dsh plugin --profile web add github:snowcrescenter-tech/dsh-milestone

After installation, start the Web UI (requires Node.js >= 24):

bash
npx @deepseek-ai/dsh web

Open a multi-turn conversation with at least 2 questions, and the milestone rail appears on the right side of the session view.

What is the architecture and data source of dsh-milestone?

It is a dual-half browser plugin: an empty node half + a client half mounted via the shell.overlay slot. The injection point is shell.overlay (a framework-wide floating layer, additive, click-through), and data sources include chat.order, chat.nodes (user messages and error/max-tokens/retry nodes), chat.timeline (turn metadata), hasMore/loadingOlder (pagination), running/pending (badges), and loadOlder (inject face). Bookmarks persist via harness store.persist (per-session localStorage, key dsh-milestone.bookmarks.<sessionId>), and jumping uses DOM anchor data-chat-anchor-key with scrollIntoView. Search filtering, position calculation, and dot state logic are in pure functions in rail-logic.ts, covered by unit tests.

What are the known limitations of dsh-milestone?

  • Search scope is limited to the currently loaded message window (initial 50; older history must be loaded first to be searchable).
  • TTFT / tokens/sec depend on turn position data; turns outside the window or unfinished are hidden.
  • Transient badge states (running/waiting input) only light up the latest visible question.
  • Bookmarks are isolated per session, not shared across sessions.
  • Model / token usage depends on assistant node metadata; if missing, the row is hidden.
  • Fork does not automatically open the child session.
  • Deep link targets earlier than the loaded window will first load older history, but extremely deep history may fail to locate.
  • Cross-session search relies on harness index, returns only snippets (≤240 chars), max 20 results.
  • Focus mode only affects the thinking blocks of the current session view.
  • No global shortcut to focus the milestone rail yet.

View more DSH plugins at dsh-plugin.org

DSH-Plugin FAQ