In the DSH Web conversation flow, when handling branch questions or long-text details, frequently jumping back to the main view or scrolling repeatedly can interrupt your thought flow. dsh-sidenote aims to solve this by forking a session into an independent sidebar and supporting selection-based annotations on response text, while keeping the main flow continuous.

This is a plugin for DeepSeek Harness (DSH) Web that provides Codex-style side sessions and selection annotations. It forks the current session into a persistent side panel and converts selected response text into contextual annotations. The plugin depends on dsh-better-sidebar and follows the MIT license.

Core Features

  • Independent side sessions: Fork an independent session with a full history snapshot from the main session, supporting multiple instances simultaneously. Inherited history is collapsed into an indicator card by default, and collapsed states and scroll positions are preserved after refresh.
  • Selection annotations: Select text on Assistant responses to trigger a floating editor and generate numbered annotation markers. Annotations are controlled objects, previewable and removable one by one.
  • Zero-pollution context: Drafts are serialized only at the moment of sending, avoiding unfinished temporary content left in the main session context.
  • Conclusion backflow: Conclusions from the side panel can be sent back to the main session with one click. They appear as controlled Chips above the main input box as Q&A pairs and are sent with the next message.
  • Shortcut: Use Alt+J to switch focus between the main session and side session.

Installation and Enablement

Prerequisite: dsh-better-sidebar must already be installed (hard dependency).

dsh plugin --profile web add dsh-sidenote

Local development mount (with hot reload support):

dsh plugin --profile web add link:<本仓库路径>

Typical Usage

  1. Start side chat: Click the “Side” button in the top bar, or use the slash command /side.
  2. Answer directly: Answer the question directly in the side panel, without returning to the main view. A toast notification appears after completion.
  3. Add annotation: Select text from any response, edit and save the annotation. The annotation anchors to the original text with a marker.
  4. Restore session: Use /side to reopen the most recently closed session.
  5. Backfill conclusion: Send conclusions obtained in the side panel back to the main session, mounted above the main input box as Q&A pairs.

Notes

  • Hard dependency: The plugin must depend on dsh-better-sidebar to run.
  • Instance limit: In native sidebar mode (dsh-better-sidebar >= 0.19), only one side chat instance can be open for the same session at a time. Opening again or creating a new session focuses the existing tab; after closing, it can be restored via /side.
  • Zero-pollution mechanism: Drafts are serialized only at the moment of sending, leaving no unsent dirty data in the interface.
  • Fallback handling: When the host version is missing, the plugin degrades by capability and will not cause page crashes.

The plugin uses session forking and controlled annotations to help developers keep context clean when handling complex tasks. See the GitHub repository for more details and source code.