Neplich/dsh_plugin--packages-feature-dsh-chat-navigator ↗★ 1

@neplich/dsh-chat-navigator

dsh Web GUI plugin: a slim conversation rail at the left edge of the chat area — one marker per user round, hover preview cards, click-to-jump, scroll-synced highlight 适合浏览长对话、需要快速定位某轮的用户;配合自动加载插件可覆盖完整历史,否则仅索引已加载部分。

Package
@neplich/dsh-chat-navigator
Compatibility
Unverified
Cordis peer range
^4.0.2
Version
0.1.0
License
MIT
Last updated
Sep 1, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Neplich/dsh_plugin#c83599509c2f790ba23c59b19d90e521fa774c1d&path:packages/feature/dsh-chat-navigator

dsh-chat-navigator

English · 中文版

dsh Web GUI plugin: a slim conversation rail flush against the left edge of the center column — one short dash per user round — for quickly understanding the structure of a long conversation and jumping to any round.

Best paired with dsh-chat-autoload: when the chatAutoload service is present, the rail's index always covers the complete history. Without it the rail still works — it indexes only the currently loaded window, and the rail's "…" hint marks that older history exists (it fills in as you page older messages or install dsh-chat-autoload).

Features

  • Round markers: one left-aligned dash per "user request + following assistant response" round (think/tool rows never get their own marker). Markers pack tightly and center vertically as a group; the rail appears only when the conversation has at least two rounds.
  • Scroll sync: the dash of the round at the current reading position stays highlighted and follows your scrolling.
  • Fisheye hover: the hovered dash doubles in length, its neighbors scale down by distance.
  • Preview card: hovering or keyboard-focusing a dash floats a card with the request summary (bold primary text), the response summary (secondary text), and a shimmering "Running…" while the turn streams (same sweep animation as the chat's "Deep diving..."). User-stopped or platform-ended turns count as settled — there is no failure badge. Summaries are deterministic truncations of the existing message text: no model call, no context change, no persistence.
  • Click to jump: clicking a dash or its card scrolls the chat to that round's user message and briefly flashes the row.
  • Session-bound: the index rebuilds strictly from the current session's snapshot on every switch; page refresh and resumed sessions re-derive it from the same session data.

Accessibility & themes

  • Every dash is a real button with an aria-label (round number + title); the rail is a labelled navigation landmark; focus rings are visible; keyboard Enter/Space jumps, Escape closes the card.
  • Works in dark and light themes via --dsw-* tokens, and honors prefers-reduced-motion (shimmer and flash animations turn static).

Install

dsh plugin --profile  add @neplich/dsh-chat-navigator
# optional, for always-complete history:
dsh plugin --profile  add @neplich/dsh-chat-autoload

Uninstall

dsh plugin --profile  remove @neplich/dsh-chat-navigator

The plugin writes no files and no settings fields, so removal leaves no residue. dsh-chat-autoload may stay installed on its own.

Model Experience

None: the plugin never sends model requests, never modifies the session log, and never adds tools. Summaries are deterministic truncations rendered from existing session data.