dsh-web-message-index
A dsh Web plugin that indexes loaded user messages and jumps to their transcript rows.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 18, 2026
- Updated
- Aug 18, 2026
Introduction
dsh Web User Message Index
English | 简体中文
This standalone dsh Web plugin is inspired by the conversation index rails in Codex and ChatGPT. It renders a narrow index of loaded user messages along the left edge of the active session. Hover to preview the question and corresponding answer; click to jump to that message and close the preview.

Installation
The current version is compatible with dsh 0.1.0-rc.5.
pnpm install
pnpm run check
dsh plugin --profile web add link:.
dsh web
Uninstall:
dsh plugin --profile web remove dsh-web-message-index
Behavior
- The index contains regular user messages and steering messages that are durable in the session log and loaded in the browser.
- Compact, unframed markers sit along the left edge of the session view and are vertically centered between the message area and composer. The latest question uses a high-contrast marker; older questions are gray. Hover or keyboard focus darkens and lengthens the active marker.
- The preview opens only on pointer hover. Keyboard focus does not open it, and clicking a marker immediately closes any open preview while jumping.
- The preview title is the question, and its body contains visible Assistant text after that question and before the next one. Reasoning and tool calls are excluded from the answer summary.
- The initial index covers only the trailing loaded history window. Using
Load earlierextends it through normal history pagination; the plugin never loads full history solely to build the index. - Questions and answer summaries report a localized count for any image blocks they contain. Each question and answer summary is truncated independently after 200 Unicode code points; the complete content remains in the original message.
- The rail hides when horizontal or vertical space is insufficient, without shifting the conversation content.
Compatibility
The plugin uses the existing dsh shell.overlay, session slot hooks, and message-row DOM markers. Layout and jumping depend on [data-shell-overlay], [data-chat-flow], [data-chat-anchor-key], [data-conversation-scroll], and [data-composer-seat]. After upgrading dsh, run pnpm run test:e2e to verify these markers and scroll behavior remain compatible.
Model Experience
None. The plugin changes browser presentation only; it adds no model input, tools, or session events.