Preface¶
When handling multi-turn conversations on the DSH (DeepSeek Harness) Web interface, a single dialogue can simultaneously contain user questions, assistant replies, tool calls, commands, and compression points. The longer the conversation, the more laborious it becomes to scroll and locate a specific turn; if the page lazily loads history by default, returning to earlier turns requires loading history first.
dsh-conversation-navigator addresses this issue by providing a turn-collapsible dialogue outline panel on the DSH Web interface: click nodes to jump, hover highlights the current reading position while scrolling, and it uses a color scheme consistent with the built-in trace view.
What This Is¶
dsh-conversation-navigator is a DSH Web plugin maintained by gjj-star, licensed under MIT. It is a pure browser plugin (no host behavior), written in pure JavaScript with zero build steps and zero npm dependencies.
The plugin primarily solves three types of problems in long conversations:
- Locating a specific dialogue turn or step.
- Quickly jumping to the corresponding position.
- Knowing which turn you are currently reading while manually scrolling.
Core Features¶
Below are the verified capabilities of the plugin:
- Turn-collapsible outline: By default, only shows a “Turn N + Your Question” list.
- Keyword filtering: Matches only against user questions and assistant actual reply text, highlighting matched terms.
- Expand/collapse step details: Includes assistant replies, tool calls, commands, compression points, etc.
- Hover to view full text: A bubble displays the complete original text of the user’s question for that turn.
- Four form switches: Show turn numbers, hide turn numbers, minimal-right, minimal-left.
- Draggable panel: Supports default right docking and toggling to the last dragged position.
- Click to locate: Click on turn bodies or step entries to smoothly scroll to the corresponding position.
- History backfilling: Supports “Load earlier / Load all history turns”.
- Position tracking: Automatically highlights and follows the current reading position when manually scrolling the conversation.
- Quick actions: Bottom supports “Back to latest / Collapse all”.
- Color scheme: Consistent with the built-in trace view and adapts to light/dark themes.
- Conversation following: Automatically follows and rebuilds the outline when switching workspaces or conversations.
Installation and Activation¶
Install using the official CLI:
dsh plugin --profile web add dsh-conversation-navigator
dsh plugin forwards to pnpm within the profile directory, so official CLI installation requires pnpm to be in your PATH. After installation, restart dsh web for the changes to take effect; the panel will be expanded by default.
If you prefer not to rely on pnpm, you can use the manual approach: place the repository in the path below and append the contents of example.patch.yml to the top-level array of the corresponding profile’s cordis.patch.yml.
<DSH_HOME>\profiles\<profile>\node_modules\dsh-conversation-navigator
Updating¶
Simply modify lib/client.js and restart dsh web to apply updates.
The plugin’s interface state falls into two persistence categories:
- Persisted in
localStorage: position, docking state, and minimal left/right alignment selection, with the keydsh-cnvnav:ui:v1. - Only stored for the current page session: expanded/collapsed state, mode, search keywords, etc.
Typical Usage¶
-
Install and restart
dsh web, then use the navigation panel on the DSH Web chat page. -
Switch between the four forms in the cycle order:
Show turn numbers → Hide turn numbers → Minimal-right → Minimal-left
-
Enter keywords to filter. The plugin only matches against user questions and assistant actual reply text, highlighting matched terms.
-
Click on turn bodies or step entries to smoothly scroll the conversation to the corresponding position; when manually scrolling the conversation, the panel automatically highlights the current reading position.
-
For earlier historical turns, use “Load earlier / Load all history turns”; the page still lazily loads by default, and backfilling only occurs when clicking the button.
-
Drag the panel to change its position; the plugin supports toggling between default right docking and the last dragged position.
Applicable Scenarios and Notes¶
Suitable for scenarios where the DSH Web interface is used for longer conversations, multi-turn tool calls, and command outputs, especially when frequently locating early turns, assistant replies, or step details.
Before use, note the following:
- The target platform is the DSH Web interface.
- Depends on
react,slots,sessionsservices and@deepseek-ai/dsh-client-ui-primitives, as well asdsh-client-runtimeanddsh-client-ui-conversation. - Version sensitivity:
[data-chat-anchor-key]/[data-conversation-scroll]are the current DOM anchor conventions for the DSH chat view. If these anchors change after a DSH upgrade,findAnchor/computeActiveKeyinlib/client.jswill need adjustment. - No hard dependency on
timeris declared; if the client-sidetimerservice is unavailable, it automatically degrades to an un-throttled mode. - The plugin runs with the permissions of the current
dshprocess. Review the source code and license before installation.
Links¶
- GitHub: https://github.com/gjj-star/dsh-conversation-navigator
- Catalog page (this URL originates from plugin leads and has not been confirmed in the verified content of this article): https://www.skillhub.cn/plugins/gjj-star/dsh-conversation-navigator