How dsh-navbar behaves
DeepSeek Harness displays one circular node for each user message in the Chat view. The active 22px blue pill moves with the current reading position. Hovering a node opens a six-line-truncated preview card. Hovering the bar’s gaps selects the nearest node, and the preview plus an elongated grey pill indicate the prospective destination. Scrolling while the pointer is over the bar moves to the previous or next user message and prevents the conversation area from scrolling. Clicking the bar also selects the nearest node and performs a smooth scroll with a blue highlight ring.
When there are more than 11 nodes, DeepSeek Harness shows a sliding window. The bar is hidden outside conversation pages and when fewer than two user messages exist. Animation is disabled when prefers-reduced-motion is active.
dsh-navbar’s pin behaviour
The assistant action row gains a pin button between copy and Good response. Selecting a reply renders its conversation node as a gold, narrow oval that remains visible. Its preview includes a pin badge and the reply text, and clicking the node jumps directly to that reply. Pin state is retained per conversation in browser localStorage; selecting the same pin again removes it. The pin control uses the conversation.chat.assistant-actions slot.
dsh-navbar’s integration
DeepSeek Harness loads the client as a dsh.bundle plugin through the dshClient channel in the web profile. The client reads official data-time-hover-root attributes, including those on user rows from the 0806 update. It uses no polling, routes, or tools. The Node half is empty: src/index.mjs contains an empty apply, while the browser implementation is in src/client/index.ts and builds to lib/client.js.
dsh-navbar configuration and commands
No configuration keys or plugin commands are documented. Installation is performed through the page’s rendered installation control; after installation, DeepSeek Harness must be restarted before the web client takes effect. The plugin has no user-facing command or tool.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub