When handling long sessions in DSH, scrolling through the page can be cumbersome, and locating a specific prompt often takes a lot of time. The @dsh-external/dsh-chat-jumper plugin provides a vertical column of dots on the right side of the page, with each dot corresponding to a user prompt, allowing quick jumps by clicking.

Plugin Overview

This plugin is maintained by Cloud-J and uses the MIT license. It addresses the problem of quickly navigating and locating user prompts in long conversations by providing an intuitive interaction entry point through a column of dots on the right.

Core Features

  1. Vertical dot column on the right: Renders a vertical column of dots, where each dot corresponds to a user prompt (user) or steering input (steering).
  2. Hover preview: When the mouse hovers over a dot, a truncated preview of that prompt (the first 40 characters) is shown.
  3. Smooth scrolling: Clicking a dot smoothly scrolls the page to the corresponding user prompt position.
  4. Current position highlighting: The dot for the prompt near the current reading position is highlighted.
  5. Session snapshot data: The data is sourced from DSH session snapshots and does not scan the DOM, so counts remain correct even if historical messages have not yet been rendered.
  6. Load history: If older messages have not yet been loaded, an ↑ button appears at the top of the dot column. A single click automatically calls loadOlder() repeatedly until all older history is loaded.
  7. Automatic load retry: Clicking an older dot that has not yet been rendered into the DOM automatically triggers loadOlder() and retries locating it.

Installation and Activation

The official setup method is recommended:

  1. Run the installation command:
    dsh plugin --profile web add <解压后的目录或 .tgz>
  1. Add the package name to the profile’s bundles list. Edit ~/.dsh/profiles/web/package.json and append to the end of the dsh.profile.bundles array:
    "@dsh-external/dsh-chat-jumper"
After completing this, restart web or refresh the page.

Building from Source

A local DSH checkout is required, and the environment variable DSH_CHECKOUT must be set to point to the source root directory.

npm run build          # host tsc
npm run build:client   # client tsdown → lib/client.js

Pack for release:

npm pack

Dependencies

This plugin requires the following peerDependencies:
* @deepseek-ai/dsh-llm
* @deepseek-ai/dsh-tools
* cordis
* schemastery
* @deepseek-ai/dsh-client-ui-slots

Typical Usage

Click a dot on the right to quickly jump to the corresponding user prompt position.

Conclusion

This plugin addresses the pain points of long-session navigation through its snapshot mechanism and history-loading logic. For more details and source code, please visit the GitHub repository.