Introduction¶
When handling long conversations in DeepSeek Harness Web (npx @deepseek-ai/dsh web), users often need to scroll repeatedly to locate context or understand the flow of the conversation. The dsh-conversation-outline plugin registers a “Conversation Outline” tab in the DSH-better-sidebar sidebar, displays the current session structured by turns, generates an LLM title for each turn, and supports one-click navigation.
Plugin Overview¶
- Name:
dsh-conversation-outline - Maintainer: YesSanSan
- Positioning: Static DSH Web plugin
- License: MIT
- Core value: Provides a session structure overview and fast navigation, reducing the need to scroll.
Core Features¶
-
Turn-based structural outline
The plugin groups the current session by turns and displays user messages, assistant replies, tool calls (consecutive calls are automatically merged into collapsible groups), compaction checkpoints, and error lines. -
One-click navigation
Click any entry in the outline to automatically load the history and scroll to the corresponding line in the chat view or trace view. -
LLM one-sentence titles
Titles are generated using the Host’sllm.streaminterface (without creating a subagent), cached by content fingerprint, and reused when the branch session prefix is identical. -
Fully parallel title generation
Finished turns generate titles immediately, even if the agent is still processing subsequent turns; only the currently in-progress turn waits for the turn to complete. -
Configurable
The title model, reasoning level, concurrency, single-attempt timeout, failure retries, and disable toggle are all persisted in the gear settings. -
Narrow panel auto-collapsing
When the panel width is ≤360px, inline type labels automatically collapse from text to icons (hover reveals the text), consistent with the trace view behavior.
Install and Enable¶
Install directly to the web profile; no manual clone is required:
npx @deepseek-ai/dsh plugin --profile web add github:YesSanSan/dsh-conversation-outline#main
Restart DSH:
npx @deepseek-ai/dsh web
Open the + menu in better-sidebar and select “Conversation Outline”.
Configuration¶
Configuration is persisted to pluginSettings['conversation-outline'] in better-sidebar.
| Key | Default | Range | Meaning |
|---|---|---|---|
model |
'' |
— | Title model; empty = follow the main session model |
reasoningEffort |
'' |
off / low / medium / high / max | Reasoning level; empty = follow the session |
maxConcurrency |
3 |
1–8 | Number of client-side workers for concurrently generating titles |
timeoutSeconds |
60 |
5–300 | Timeout for a single attempt; applies to the entire attempt |
maxRetries |
2 |
0–5 | Number of failure retries (backoff starts at 0.8s, capped at 5s) |
disabled |
false |
— | Completely disable title generation |
Permissions and Data¶
- Session logs: The Host uses
ctx.sessionQuery(readSession/listEvents) to read the current session logs and build the outline; it does not write back. - LLM calls: Title generation sends only the visible text of the current turn (user + assistant blocks, with tool calls removed and truncated) to the configured model route.
- Browser storage: Titles are cached in
localStorage(dsh-conversation-outline-titles:v1). - Network access: No network access occurs other than to the configured model provider.
Notes¶
- Dependency version: The plugin depends on
dsh-better-sidebarv0.12.0+ (requires support forsettings.renderandpluginSettings). Thedsh-better-sidebarpackage on npm may still be 0.11.0; to use the v0.12.0 features, build from source and link it to the profile. - Process restart: After installing or updating, you must fully restart
npx @deepseek-ai/dsh webfor changes to take effect. - Security feedback: Report security issues privately via Issues, or contact the author by email before public disclosure.
Ecosystem Location¶
- GitHub: https://github.com/YesSanSan/dsh-conversation-outline
- Ecosystem directory: https://www.skillhub.cn/plugins/YesSanSan/dsh-conversation-outline