Preface

When conducting multi-turn conversations in DSH Web, the message list grows continuously. To revisit a specific user query, view the corresponding model response, or check the sending time, duration, and token throughput, repeated scrolling is often required. dsh-history-tree is a plugin designed for the DSH Web interface, providing a 1:1 conversation timeline dot matrix consistent with Codex, along with a floating history overview card. Below, we introduce its capabilities, installation methods, and how to launch and view it.

What is this

The project repository for dsh-history-tree is z953218350/dsh-history-tree. The version in package.json is 1.0.3, the license is MIT, and the author field is DSH Harness Agent.

Its purpose is straightforward: to provide a vertically centered timeline dot matrix on the left side of the DSH Web conversation interface, generating tick marks based on actual user queries, and displaying the user’s query, the model’s final response, and bottom metadata for each turn in a floating card.

Core Features

Left-side Timeline Dot Matrix

The timeline dot matrix is fixed at the vertical center of the viewport, adjacent to the right boundary of the workspace/sidebar, and does not move with message scrolling. Tick marks are generated based on actual user queries on the right side, excluding artifacts, tool executions, and system placeholder nodes.

When there are too many conversation turns, the dot matrix applies an adaptive maximum height limit and supports smooth scrolling with the mouse wheel.

Floating Overview Card

When the mouse hovers over the timeline dot matrix, a staggered wave expansion and zoom animation effect appears. The floating card displays content in a frosted glass style, including:

  • User query text
  • The model’s final response and explanatory body text
  • Single-line bottom metadata: sending time, duration, token throughput

The card content filters out Think, Bash tool executions, and file artifacts.

Click Positioning and Upward History Loading

Clicking any tick mark or floating card smoothly scrolls to the corresponding conversation turn.

When the mouse hovers over the top tick mark, or when scrolling upward reaches the top, the plugin automatically loads earlier historical conversations and dynamically extends the timeline dot matrix upward.

Installation and Activation

Under DSH’s plugin-based installation method, you can first install using the DSH CLI.

Install Using DSH CLI

dsh plugin --profile web add -w dsh-history-tree

Install in the Web Profile Directory

Alternatively, you can enter the Web Profile directory and use npm or pnpm:

cd ~/.dsh/profiles/web
npm i dsh-history-tree

Or:

pnpm add -w dsh-history-tree

After completing the steps above, ensure that the dsh.profile.bundles array in ~/.dsh/profiles/web/package.json includes dsh-history-tree.

Install Using Local Source Directory

If you are developing the plugin locally, you can add it using the link method:

dsh plugin --profile web add -w "link:/path/to/dsh/plugin/dsh-history-tree"

Replace /path/to/dsh/plugin/dsh-history-tree with your local plugin directory.

Launch and Viewing

Start the DSH Web service:

dsh --profile web

Or:

dsh web

Open your browser and visit:

http://127.0.0.1:3080/

Open any conversation with multiple turns, and you will see the vertically centered timeline dot matrix on the left side.

Use Cases and Precautions

This plugin is suitable for developers who frequently review multi-turn conversation histories in DSH Web and need to quickly locate specific user queries or model responses.

Before installation, note the following:

  • The plugin runs with the permissions of the current dsh process. Before installation, you should review the source code and license.
  • The DSH community directory is an independent site and is not equivalent to the official app store. Third-party plugins require your own review.
  • If starting after add results in an error indicating duplicate subpackage declarations, check the dsh.profile.bundles array in ~/.dsh/profiles/web/package.json to ensure it only contains the root package and avoids including subcomponent packages.
  • In package.json, client.inject declares dependencies on @deepseek-ai/dsh-client-runtime and @deepseek-ai/dsh-client-locale, with platform set to web.
  • In package.json, dependencies is an empty object, and publishConfig.registry is https://registry.npmjs.org/.

Summary

The value of dsh-history-tree lies in transforming DSH Web’s multi-turn conversation history into a visible timeline dot matrix on the left side, providing a context overview through floating cards. It is suitable for scenarios requiring quick review of conversation turns, viewing final responses, and basic metadata.

Repository URL: https://github.com/z953218350/dsh-history-tree