DSH Node Navigation: A Conversation Node Navigation Plugin for the DSH Web GUI

Preface

When handling long conversations in the DSH Web GUI, common operations go beyond just continuing the chat—they also include quickly locating a specific user message, determining the current position while scrolling through the chat, and referring back to the previous input when the input box is empty. DSH’s philosophy is “everything is a plugin,” and such experiences can be extended through client-side plugins. dsh-node-nav is a plugin solution for the Web GUI’s sidebar navigation and input history.

What This Is

dsh-node-nav is a client-side plugin for the DSH Web GUI, published under the account Seryta (the GitHub repository and installation command point to this account). It provides a node chain on the right side of the chat area, supporting hover previews, click-to-jump, and making the active pill follow the reading position.

The plugin is licensed under MIT, and its documentation states it is written entirely in vanilla JS (zero build, zero dependencies), so installing via git does not trigger build scripts.

Core Features

The verified capabilities of dsh-node-nav include:

  • Node chain: Provides a vertical node navigation on the right side of the Web GUI.
  • Full history nodes: Covers historical user messages in the session log of attached sessions, reducing the limitation of relying only on the current DOM.
  • Bottom node: Provides a bottom node.
  • hover / focus preview: Shows a message text preview on hover or keyboard focus.
  • Click-to-jump: Smoothly scrolls to the corresponding message on click with a brief highlight.
  • active follow: The active state follows the current reading position as it changes.
  • Input history: When the input box is empty, pressing fills in the most recent user input; pressing repeatedly goes further back, while goes forward again.
  • details avoidance: Avoids overlap when the right-side details panel is open.
  • Dark mode: Supports dark mode.
  • reduced-motion: Supports reduced-motion.
  • Auto-hide: Supports auto-hiding.

Installation and Activation

The installation command is:

dsh plugin --profile web add github:Seryta/dsh-node-nav

After installation, restart dsh web and refresh the page.

If you prefer to install from a local directory, you can clone the repository first:

git clone https://github.com/Seryta/dsh-node-nav.git
dsh plugin --profile web add ./dsh-node-nav

The plugin runs with the permissions of the current dsh process. It is recommended to review the source code and license before installation; the plugin’s documentation lists the license as MIT.

Typical Usage

Here are several reproducible usage paths:

  1. After installing and restarting dsh web, open the node chain on the right side of the Web GUI chat page.

  2. Hover over a node, or focus on it via the keyboard, to view a preview of the message text.

  3. Click a node to smoothly scroll to the corresponding message with a brief highlight.

  4. When the input box is empty, press to fill in the most recent user input; continue pressing to go further back; press to go forward again.

  5. For historical nodes not yet loaded into the page, clicking will repeatedly trigger the page’s “load earlier” until that row enters the DOM, then scroll to it.

If the current dsh version has removed the “load earlier” button from the page, the documentation states that clicking an unloaded node will prompt that the target message could not be located.

Applicable Scenarios and Notes

This is suitable for developers using the DSH Web GUI who need to locate user messages in long conversations, check the current position, or review input history.

Points to note:

  • The plugin runs with the permissions of the current dsh process, so the source code and license should be reviewed before installation.
  • Input history only covers the currently open (live) session; the host endpoint only queries attached sessions, and unopened historical sessions have no composer focus, so input history is not applicable there.
  • The full list endpoint is as follows:
/plugins/dsh-node-nav/api/users

This endpoint extracts all real user messages from the session log of attached sessions; if the endpoint is unavailable or the session is cold (not attached), it falls back to pure DOM scanning.

  • Input history and jump navigation depend on the following dsh client contracts:
[data-chat-anchor-key]
[data-composer-card]
hooks.input
props.inputActions

If major harness versions change these contracts, this plugin needs to be adapted accordingly.

  • Clicking unloaded nodes depends on the existence of the page’s “load earlier” button, with a documented upper limit of 30 batches; in harness versions where the button is removed, clicking an unloaded node will prompt that the target message could not be located.

Conclusion

dsh-node-nav provides navigation enhancements on the DSH Web GUI side: node chain, previews, jump navigation, reading position follow, and input history review. The repository is at https://github.com/Seryta/dsh-node-nav. The verified documentation does not provide a directory page URL; the DSH community directory is an independent site and has no official affiliation with DeepSeek / High-Flyer.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye