When using DSH to handle complex tasks, you often need to verify details immediately or answer side questions. Interrupting directly in the main session can easily lead to context confusion, while switching windows breaks your flow. The dsh-sidenote plugin uses a sidebar mechanism to let you fork the main session and handle side questions without disturbing the main thread.
Plugin Introduction¶
This is a DSH client plugin maintained by g-yixuan. It provides the ability to “open a side conversation” by forking the main session into a side session, so side questions do not interrupt the main thread, and it supports one-click return of conclusions.
Core Features¶
- Open a side conversation: fork the main session into a side session. A side session is a real DSH session (a full history snapshot) with capabilities equivalent to the main session.
- Side questions do not interrupt the main thread: inherited history is collapsed by default into an indicator card. The collapsed state and scroll position are preserved after refresh.
- One-click conclusion return: one-click “return to the main session.” The paired Q&A (conclusion + the question it answers) is grouped into a controlled chip above the main input box and sent to the main thread with the next message.
- Add a note by selecting text: select an assistant reply → floating layer → annotation editor; numbered corner markers on the right edge anchor the original text. After sending, the bubble collapses into an “Annotations ×N” label for traceability.
- Native-level tool cards: rendered with the same material as the main conversation. Tool cards, thinking previews, task cards, model/permission switching,
@mentions, and image attachments are all available. - Answer approvals/questions directly in the panel: no need to jump back to the main view. A toast notification appears when the run completes.
- Zero draft pollution: notes are controlled objects (previewable and individually removable), and are serialized into a model-readable structured protocol block only at the moment of sending.
Installation and Activation¶
The installation command is as follows:
dsh plugin --profile web add dsh-sidenote
After enabling it, enter the sidebar through one of the following three entry points:
* The “Side” button in the top bar
* The guide in the right sidebar
* The slash command /side
Typical Usage¶
- Enter the sidebar: click the “Side” button in the top bar or type
/side; the plugin forks the current main session to the right side. - Handle side questions: conduct multi-turn conversations in the sidebar; the main session remains silent and does not disturb the current context.
- Switch focus: use
Alt+Jto quickly switch focus between main ↔ side. - Return conclusions: after the side conversation reaches a conclusion, click return; the result appears as a chip above the main input box.
- Add selection notes: select any reply text in the main conversation to add a note.
Notes and Compatibility¶
- Version compatibility:
- DSH ≥ 0.1.5-rc.1: connects directly to the native right sidebar of DSH (no need to install dsh-better-sidebar).
- DSH ≤ 0.1.2-rc.x: must be used with dsh-better-sidebar (required).
- Coexistence: naturally coexists with dsh-better-sidebar; they register independently and do not depend on each other.
- Single-instance semantics: constrained by the host’s “single instance per pane for a page kind” rule. Only one side chat can be open in the same session at a time (opening again/new = focus existing tab; after closing, reopen via
/sideto restore the original session). - Degradation strategy: if the host surface is absent, the plugin degrades by capability and does not crash the page.
- Publishing mechanism: publishing uses npm Trusted Publishing (OIDC). No npm token or OTP is required. The trigger is “publish a GitHub Release,” not pushing a tag.
Short Ending¶
dsh-sidenote isolates forked sessions from the main session, resolving the context-switching pain of parallel multi-task handling. For developers who need to interleave validation, research, or small questions within the same task flow, this plugin helps maintain list hygiene and workflow coherence.