dsh-plugin-question-index: DeepSeek Harness Session Question Indexing and Location Plugin

Introduction

The core design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” Locating a specific question in a long session can be cumbersome, especially when there are interjections while running or when you need to switch tabs. The dsh-plugin-question-index plugin provides a question ruler track on the left edge of the main chat area; clicking a question automatically scrolls to it.

Core Features

  1. Question ruler track: Fixed to the left edge of the main chat area, with each user question represented by a short horizontal line. The track can scroll independently and does not overflow the page.
  2. Conversation tab only: Displayed only on the “Conversation” tab, and automatically hidden when switching to other tabs such as “Trajectory”.
  3. Original text overlay: When the mouse hovers over a line, the line smoothly extends and the full original question text is displayed on the right. The overlay can scroll independently for reading.
  4. Index list: Lists all questions in the current session in order (including “interjections” sent while running, with badges).
  5. Click to locate: After clicking a question, the session content smoothly scrolls to the line where the question is located (approximately one-quarter from the top of the viewport).
  6. Keyboard access: After focusing a line with Tab, a summary is displayed; Enter / Space locates the corresponding question.

Installation and Enabling

Use the official installation command to add the plugin:

dsh plugin --profile web add github:antlordGit/dsh-plugin-question-index

After installation, restart dsh web (or wait for the patch layer to hot reload).

Note: React does not need to be installed separately. The require("react") in the client bundle is provided by the DSH shell’s module table. The plugin only makes additive changes: it registers a list entry for shell.overlay and does not replace any product UI.

Typical Usage

  • Quick location: Click any question line on the left edge, and the chat content will automatically and smoothly scroll to that question.
  • View original text: Hover the mouse over a line; the line extends and the full original question text is displayed on the right, making it easier to quickly recall context in a long conversation.

Engineering Implementation Points

This plugin implements interactions through incremental slots and a lightweight DOM bridge:

  • UI mounting: Uses slots.inject('shell.overlay', …) to register a global overlay list entry, which is automatically cleaned up when the Fiber unmounts.
  • Overlay hosting: The root node is set to pointer-events:none, and only panels/buttons restore pointer-events:auto to preserve interactivity.
  • Data source: Uses the global standard props useSessions to obtain sessions.binding(id).session, with zero Host RPC and zero persistence.
  • Jump anchor: Leverages the data-chat-anchor-key attribute on the key of chat nodes, aligning with the product’s scroll restoration contract.
  • View switching: When clicking to locate a question, if the current view is not on the “Conversation” tab, it automatically clicks the first tab button in the header (order=0) to return to Conversation.
  • Styling: References --dsw-alias-* theme tokens (such as --dsw-alias-bg-overlay and --dsw-alias-brand-primary), supporting automatic light/dark theme adaptation.

Applicable Scenarios and Notes

This plugin is suitable for scenarios where you frequently need to review long conversation context and quickly locate specific questions.

Note: This plugin runs with the permissions of the current dsh process. Review the source code and license before installing.

Summary

By providing a lightweight question ruler on the left, this plugin solves the difficulty of locating content in long sessions. For more details, refer to the community directory or the GitHub repository.

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

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

Xiaoye