Bundle
@deepseek-ai/dsh-client-ui-question-index
Question index surface: an ordered, collapsible list of the user's asked questions floating on the right side of the conversation, with click-to-jump into the flow
- Source
- lijinhao315
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 14 days ago
Readme
# dsh-question-index
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)
## Install
```bash
dsh plugin --profile web add github:lijinhao315/dsh-question-index
```
## Development
```bash
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
- Older paginated messages (`hasMore` / `loadOlder`) that are not in the
loaded `chat` snapshot won't appear in the index.
- 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](docs/architecture.md) for how the plugin wires into
the DSH shell (overlay seat, panel contribution, module-table externals).
## License
MIT
Install
dsh plugin --profile web add github:lijinhao315/dsh-question-index
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install deepseek-ai-dsh-client-ui-question-index from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.