DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

dsh-question-rail

L

dsh-question-rail

Manifest valid

DSH web plugin: Imitates the question bar on the right side of the DeepSeek web interface — a vertical question bar along the right edge, listing the user's questions for each round of the current session, with click-to-scroll smooth navigation. DeepSeek Harness right-edge question rail.

UI (client)hasBundlePatch

dsh-question-rail

English | 中文

npm version npm downloads GitHub stars License: MIT GitHub tag GitHub topics

支持的 DSH 版本:0.1.0-rc.8 · 0.1.1-rc.1 · 0.1.1-rc.2 插件生态:GitHub topic dsh-plugin

问题条 对话导航 轮次定位 右缘悬浮 仅对话视图 性能优化

A DeepSeek Harness web plugin that adds a right-edge question rail like the deepseek.com chat — a narrow strip of ticks on the right edge that expands on hover to list every user turn in the current conversation, and jump-scrolls back to that turn when clicked.

  • One rendering, two states — the collapsed tick column and the expanded list are the same .qrl_item elements. Collapsed shows only each item's right-edge tick; hovering widens the panel to reveal the text. Identical style, identical spacing, identical right reference line.
  • Jump to any round — click a question, and the chat scrolls smoothly to that turn (data-chat-anchor-key anchor) with a brief highlight ring.
  • Conversation-only — reads the live per-session chat store (view from ctx.slots.entries("conversation.session") + resolveStore), so it renders only on the chat view and hides instantly on 轨迹 / 上下文 / Design / PPT or the empty home.
  • Full history — DSH conversation history is windowed (hasMore). The rail auto-calls session.loadOlder() in a loop until hasMore === false, so it lists all rounds, not just the loaded window.
  • Performance-tuned — useSessions selects only current; the rail subscribes to a render signature (question set + active view) instead of the whole conversation snapshot, so streaming output / tool calls don't re-render the list. Skip-free typing, stable handlers, signature-memoized items.
  • Theme-aware — panel text & the hover detail box follow body[data-ds-dark-theme] (dark: white text on transparent; light: black text). The panel itself is transparent (no card, no border).
  • Keyboard accessible — each question is role="button" with tabIndex=0, Enter/Space triggers.
  • Zero runtime dependencies — the node half is intentionally empty (it only makes the loader discover the package); the browser half uses only react / react/jsx-runtime seed words.

How it works

LayerWhat happens
Node half (lib/index.js)Empty apply() — just enough to be an active cordis loader entry so dsh-client-modules publishes /plugins/dsh-question-rail/client.js.
Browser half (lib/client.js)Registers via window.__ModuleLoader__.load, then apply(ctx) injects the rail into the shell.overlay slot (frame-wide, additive, click-through until the entry opts in).
DataReads the current session's ConversationSnapshot.nodes (full list, not the windowed chat.order), extracts user/steering turns, and maps each seq → chat key for scroll anchors.
View gatingctx.slots.entries("conversation.session") → resolveStore(handle, sessionId) → store.getSnapshot().view — the authoritative source DSH's own header tabs use. Renders only when view === "chat".

Installation

# From a local checkout (dev / link mode — source edits take effect on hard-refresh)
dsh plugin --profile web add link:D:/path/to/dsh-question-rail

# Or straight from GitHub (requires git + a GitHub token on this machine)
dsh plugin --profile web add github:LeonSone/dsh-question-rail

dsh plugin add adds the package to the profile's dependencies; because the package declares dsh.bundle, it is automatically appended to dsh.profile.bundles.

New client packages need a restart. dsh.client discovery scans only at boot for new packages (bundle content changes hot-reload). After first install, restart dsh web (or the headless runner), then hard-refresh the browser (Cmd/Ctrl+Shift+R).

Usage

Once installed, a narrow strip of ticks appears along the right edge of an active chat conversation:

InteractionBehavior
Move mouse near the right edgeThe strip widens, revealing each round's question as a single line (12px, right-aligned, trailing tick).
Hover a single questionA detail box appears on the left showing the full question text (scrollable up to 50vh).
Click a questionThe chat scrolls smoothly to that turn and flashes a highlight ring.
Switch to 轨迹 / 上下文 / Design / PPTThe rail hides instantly (chat-view gate).
Empty / home screenNothing renders.

Development

lib/client.js          browser half (ModuleLoader bundle, injects into shell.overlay)
lib/index.js           node half (empty apply; discovery only)
cordis.patch.yml       bundle patch (mounts the node half)
test/*.mjs             headless contract & extraction tests

Run the checks:

node test/bundle-contract.test.mjs   # __ModuleLoader__.load / apply / inject / shell.overlay registration
node test/bind-fix.test.mjs          # closure-bound getSnapshot/subscribe (no lost-this crash)
node test/extract.test.mjs           # full-list extraction: user/steering only, anchor mapping
node test/loadolder.test.mjs         # loadOlder loop until hasMore=false (full history)

License

MIT

Comments

Loading…

Similar plugins

dsh-history-question-nav

by TropicWiden

A DeepSeek Harness web plugin that lists every question you ask in the current session in a right-side panel, and scrolls to the matching answer when you click one. DeepSeek Harness Web 插件:在窗口右侧列出当前会

Tools & CapabilitiesUI & ExperienceManifest valid

★ 0

JavaScript

Aug 25, 2026

dsh plugin --profile web add @known-mouse/dsh-history-question-nav

by lin-nanxing

DeepSeek Harness会话界面的快速查找跳转,根据会话中用户提问为单位进行跳转,适用于较长的上下文工作,需要快速找到对应的问题和回答的场景. A slim right-edge question-navigation rail for long DSH conversations. Every user question becomes a hoverable tick — click

Manifest valid

★ 0

MIT

TypeScript

Aug 17, 2026

dsh plugin --profile web add dsh-qnav

by ytftu

DSH(DeepSeek Harness)插件:侧边栏底部动作区加「问助理」按钮,一键用内置浏览器打开 DeepSeek 网页版,随手问事不消耗会话 token。

Manifest valid

★ 0

MIT

JavaScript

Oct 18, 2026

dsh plugin --profile web add dsh-ask-assistant

by urzeye

DSH web plugin: a realtime conversation outline panel (user questions + markdown headings) for the DeepSeek Harness Web GUI.

UI & ExperienceManifest valid

★ 20

↓ 54/wk

MIT

TypeScript

Aug 26, 2026

dsh plugin --profile web add dsh-outline

by kk112222

Per-session question index for the DSH Web UI: a time-proportional dot rail on the right edge and an expandable chain panel showing every user question with its time, including branch/subagent session

Workflow & AutomationUI & ExperienceDevelopment & InfrastructureManifest valid

★ 1

↓ 315/wk

MIT

JavaScript

Sep 13, 2026

dsh plugin --profile web add dsh-chat-index

by Stellight

DeepSeek Harness 中文插件:对话区右缘的网页版风格导航竖线——每条人类消息一根短横线,靠近展开可跳转的消息列表,并支持回溯更早的历史

Development & InfrastructureManifest valid

★ 0

MIT

JavaScript

Sep 23, 2026

dsh plugin --profile web add dsh-chat-rail