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¶
- 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). - Hover preview: When the mouse hovers over a dot, a truncated preview of that prompt (the first 40 characters) is shown.
- Smooth scrolling: Clicking a dot smoothly scrolls the page to the corresponding user prompt position.
- Current position highlighting: The dot for the prompt near the current reading position is highlighted.
- 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.
- 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. - 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:
- Run the installation command:
dsh plugin --profile web add <解压后的目录或 .tgz>
- Add the package name to the profile’s bundles list. Edit
~/.dsh/profiles/web/package.jsonand append to the end of thedsh.profile.bundlesarray:
"@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.