# DSH Conversation Rail A **Codex-inspired vertical conversation-turn navigator** for the DeepSeek Harness (DSH) web UI. It places a column of compact ticks between the main sidebar and the chat content. Each tick represents a complete user-prompt and assistant-response turn. [中文说明](./README.md) ## Features - Minimal Codex-like ticks: all ticks stay equally short by default and the active turn only becomes darker; hovering expands the target and nearby ticks into a distance-based hierarchy. - Measures the DSH sidebar edge dynamically and follows sidebar resizing or collapsing. - Groups user and assistant messages into conversation turns instead of showing separate ticks for every message. - Hovering a tick opens a compact Codex-style card with a single-line user prompt, the first line of the assistant answer, and structured heading, list, and paragraph details below a divider; the same card follows the target tick with a smooth continuous vertical glide. - Every tick has a continuous vertical hover hit area, preventing flicker or repeated card entry while the pointer crosses the visual spacing between ticks. - The card is vertically centered on its tick and automatically excludes DSH Think/reasoning blocks, message dates, timestamps, elapsed-time labels, and related UI chrome. - Clicking a tick smoothly locates the beginning of the turn and briefly highlights it. - Streaming turns gently breathe; empty responses display a waiting or generating state. - Long conversations show a centered window of up to 24 turns with overflow hints. - Filters for all nodes, user + assistant chat turns, or assistant-only output. - Configurable sidebar offset, density, follow-latest behavior, hover preview, and motion. - Automatically hidden below 900px viewport width to avoid covering the chat. - A fully scrollable settings page remains usable in short windows. > The plugin only observes DOM content already rendered in the browser through `MutationObserver`. It does not upload conversation data or modify DSH sessions. ## Keyboard shortcuts - `Ctrl+Shift+J`: show or hide the conversation rail. - `Alt+Up`: select and locate the previous conversation turn. - `Alt+Down`: select and locate the next conversation turn. ## Requirements - DeepSeek Harness Web Profile - DSH `0.1.1-rc.2` or a compatible release is recommended ## Installation With a global `dsh` command: ```powershell dsh plugin --profile web add "D:\path\to\dsh-conversation-strip" ``` From a DSH source checkout: ```powershell cd "D:\path\to\deepseek-harness" pnpm dsh plugin --profile web add "D:\path\to\dsh-conversation-strip" ``` After installation or updating, fully restart the DSH Web Profile and force-refresh once with `Ctrl+F5`. Refreshing the page alone usually does not reload plugin bundles. ## Usage 1. Open any DSH conversation. 2. The rail appears about 28px to the right of the main sidebar by default. 3. Hover a tick to expand the nearby hierarchy and see that turn's prompt, answer lead, and structured summary. 4. Click a tick to locate the start of the conversation turn. 5. Open **Conversation Rail** in DSH settings to configure filtering, offset, density, follow mode, and motion. ## Development and packaging ```powershell npm run check npm test npm run pack:release ``` The package is written to `dist/`. ## Uninstall ```powershell dsh plugin --profile web remove dsh-conversation-strip ``` Restart DSH and refresh the browser after removal. ## License MIT