Introduction

After scrolling through several screens in a long session in the web interface, two pain points become obvious: finding a specific request requires scrolling; and wanting to go back to a request to try again, it is not intuitive how to handle the content after the rewound message. dsh-toc-tail handles these two things: it compresses each user request into a horizontal line on a vertical timeline on the right side of the session column. The TOC panel supports one-click backtracking to any user request, with optional LLM summarization and code state restoration during backtracking.

DSH’s philosophy is “Everything is a plugin”, and extensions for the Web interface follow the same plugin mechanism. Below is an introduction to the positioning, features, and usage of dsh-toc-tail.

What is this

dsh-toc-tail is a conversation TOC tailbar + rewind plugin for the DeepSeek Harness Web interface, maintained by PaRr0tBoY, version 0.1.0 as of this article, licensed under MIT, and classified as a client-side plugin in the plugin category.

It is a Web platform plugin. In package.json, dsh.client.platform is declared as "web", injecting the following client modules at runtime:

"dsh": {
  "client": {
    "platform": "web",
    "inject": [
      "@deepseek-ai/dsh-client-runtime",
      "@deepseek-ai/dsh-client-locale",
      "@deepseek-ai/dsh-client-ui-conversation"
    ]
  }
}

Peer dependencies are the @deepseek-ai series, including cordis, dsh-agent, dsh-client-*, dsh-commands, dsh-llm, dsh-session, etc.

Core Features

Tick Timeline

The plugin places a vertical rail on the right edge of the session column, with each user request corresponding to one tick (horizontal line). The width of a tick is proportional to the message length. The longest request determines the scale, and the rest are scaled proportionally. Therefore, you can see the length distribution of each request from the rail without looking at the content.

The rail has an appearance condition: the session must have at least three user requests. Once it appears, it is vertically centered relative to the viewport, stuck to the right edge of the session column, preserving the screen’s original narrow margins.

TOC Panel

Hovering or focusing on a tick expands a rounded TOC panel listing each user request and its summary. Each row in the panel has two interaction points: clicking the summary area of the row jumps to the corresponding message; clicking the rewind button inside the row opens a confirmation menu.

Rewind

“Rewind” means retracting the selected user request as if it had never been sent: the message text is repopulated into the input box, and the conversation from then until the assistant’s reply of the previous request is all collapsed. The confirmation menu offers three options:

  1. Select nothing: only collapse to the selected position;
  2. Summarize: The model summarizes the collapsed interval, and the summary report replaces the original interval as context;
  3. Restore code: Restore workspace files to the snapshot at that request, where snapshots are automatically taken before every user request.

The collapsed conversation disappears from the web view, and a fold marker card appears at the original location, with the summary (or collapse hint) and the number of collapsed messages. The rewound request loses its tick, and the corresponding flow row is also hidden.

Highlighting and Theme

  • Paragraph-scoped highlighting: Requests within the viewport keep their corresponding paragraphs highlighted; assistant replies keep the highlight of their request’s tick until the next request scrolls into view.
  • Automatic theme following: The rail, TOC, and rewind card use Harness’s --dsw-* theme tokens, and the entire plugin re-colors instantly when switching between light and dark modes.

Installation and Updates

Install from npm:

dsh plugin --profile web add dsh-toc-tail

Or install from a GitHub release tarball:

dsh plugin --profile web add https://github.com/PaRr0tBoY/dsh-toc-tail/archive/refs/tags/v0.1.0.tar.gz

After installation, restart dsh web. The Host and browser client will only load the new version. Updates use the same command as installation, and the restart step is the same.

Local Development

First install dependencies in the source directory, then run verification:

pnpm install
pnpm run verify

verify runs typecheck, build, and test sequentially. Build artifacts in lib/ have been committed to the repository, so profile installation does not depend on the package build scripts; the development environment needs Harness checkout provided via peer dependencies.

Suitable Scenarios and Notes

Suitable scenarios:

  • Long sessions require fast positioning and jumping between multiple requests;
  • Want to rewind a request to retry, and hope to use Summarize to compress the collapsed content into context, or use Restore code to return to the code state at that time.

Pre-installation notes:

  1. The rail only appears after the session accumulates three user requests; short sessions won’t see the timeline;
  2. The plugin runs with the current dsh process permissions; you should check the source code and license (MIT) before installing;
  3. There is an inconsistency in repository addresses: the README source is PaRr0tBoY/dsh-toc-and-rewind, the installation tarball points to PaRr0tBoY/dsh-toc-tail, and the real repository address cannot be fully confirmed. When checking the source code, it is recommended to compare the link at the end of the text with the tarball address in the installation command.

Summary

dsh-toc-tail solves the two old problems of long sessions in the web interface: navigation and rewind, using a vertical tick timeline. One horizontal line per user request, a TOC appears on hover, and during rewind, model summarization and code snapshot recovery can be applied. After installing and restarting dsh web with the steps above, you can use it.

Links:

  • Community directory page: https://www.skillhub.cn/plugins/PaRr0tBoY/dsh-toc-and-rewind
  • GitHub: https://github.com/PaRr0tBoY/dsh-toc-and-rewind

The community directory is an independent site with no official affiliation with DeepSeek / Hypersphere.