DeepSeek Harness Plugin

lijinhao315/dsh-question-index

Stars ★ 1 Downloads (30d) 567 Category UI Enhancements Added 2026-08-25 npm @lijinhao315/dsh-question-index

Question index: an ordered, collapsible list of your asked questions floating on the right side of the conversation; click a question to jump the session to that point. Auto-indexes each session's full history on open, persists it locally, and jumps to older questions by growing the window on demand.

Install

# from npm (prebuilt)

dsh plugin --profile web add @lijinhao315/dsh-question-index

# from a prebuilt release tarball

dsh plugin --profile web add "https://github.com/lijinhao315/dsh-question-index/releases/latest/download/dsh-question-index.tgz"

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

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

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

DSH Web 客户端插件:提问索引(Question Index)。在会话右侧悬浮展示「用户提过的问题」的按序列表,可收起;点击某条问题即可把会话滚动跳转到对应的提问位置。

A DSH client plugin that floats an ordered, collapsible list of the user's asked questions on the right side of the conversation, with click-to-jump into the flow.

What it does

  • A shell.overlay entry (root scope, floating layer) declares the session-level seat question-index.panel.
  • The panel reads the current session's chat snapshot, walks nodes in chat.order order, keeps only user / steering question nodes, extracts their text blocks ({ type: 'text' } content) and renders an ordered list.
  • Clicking an item scrolls the conversation to that question via data-chat-anchor-key inside [data-conversation-scroll] (same anchor logic as ChatView).
  • The panel collapses to a slim right-edge strip and expands again; the collapse state persists across session switches.

Features

  • Ordered question list (numbered from 1) for the active session
  • Click-to-jump into the conversation flow
  • Collapsible floating panel anchored to the right of the conversation
  • Collapse state preserved across session switches
  • Empty state: "No questions yet" when the session has no user questions
  • Localized (English / Simplified Chinese)
  • Auto-indexes full history: opening a session automatically pages through its complete history, so old or never-visited sessions get every question in the index with no manual scrolling.
  • Durable local memory: the index is persisted to localStorage, so it survives page reloads and reopens.

Install

# from npm (recommended: prebuilt, no build-approval step)
dsh plugin --profile web add dsh-question-index

# or from GitHub source
dsh plugin --profile web add github:lijinhao315/dsh-question-index

Development

npm install
npm run build   # tsc -p tsconfig.json && tsdown

Outputs lib/index.js (node half), lib/invariant.js, lib/client.js (browser half).

Known limitations

  • Click-to-jump requires the target row to be rendered (data-chat-anchor-key present in the DOM); unrendered rows are skipped.
  • Long entries render as a single truncated line; the full text is always visible in the conversation body.

Architecture

See docs/architecture.md for how the plugin wires into the DSH shell (overlay seat, panel contribution, module-table externals).

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.