Foreword¶
When agents are generating or executing actions, if the user has new input, the common choices are often limited to two: interrupt the current turn, or queue at the end.
drscrewdriver/dsh-input-traffic turns this into a three-tier planning system: Red now interrupts, Yellow next inserts in the next round, and Green later queues, while allowing editing, sorting, re-editing, clearing, and freezing sessions during the queuing process.
It is a client plugin for the DeepSeek Harness (DSH) Web GUI, maintained by drscrewdriver, MIT licensed, current version 0.2.9, status public beta. Documentation states it is assembled as a cordis client plugin, requiring no modification of dsh source code and no PRs.
Plugin Positioning¶
Below is the basic information for this plugin.
- Name:
drscrewdriver/dsh-input-traffic - One-line positioning: DSH Web GUI input queue plugin when busy
- Core capabilities: Three-tier
now/next/laterplanning, queue editing & drag-and-drop sorting, interjection/interruption, confirmation to clear, session freezing - Maintainer:
drscrewdriver - Category: Client
- Version:
0.2.9 - License: MIT
- Status:
public beta - Directory page:
https://dshfind.com/zh/plugins/drscrewdriver/dsh-input-traffic?ref=badge - GitHub:
https://github.com/drscrewdriver/dsh-input-traffic
Core Features¶
Three-tier Input Planning¶
When an agent is busy, input is no longer a binary choice of interrupt or queue. The plugin provides a three-tier planning system:
- Red
now: Interrupt the current turn and input immediately. - Yellow
next: Insert after the current action ends. - Green
later: Wait for the entire turn to finish before processing; this is a queued status.
If a message has already used Yellow to interject, clicking Green can undo the insertion and return it to the queued status.
Queue Editing and Sorting¶
Queued messages do not just wait. The documented queue operations include:
- Move up.
- Move down.
- Drag-and-drop sorting.
- Delete.
- Direct edit.
- Send back to the input box for editing.
- Queue-level cancel and clear.
“Cancel and clear” requires two confirmations and is used to stop current execution and clear all queued messages.
The sorting process includes concurrency protection: if a message has already been claimed by the agent, the current sort will abort without resending, with the prompt “Queue changed, sort cancelled”.
Session Freeze and Recovery¶
The plugin provides session freeze and resume buttons.
When frozen, the current turn pauses naturally after completion and does not interrupt the current execution. When resumed, execution continues based on the modified queue order and the tier settings of each message.
During the freeze, the queue remains visible and can be sorted, edited, deleted, or have its tier set.
The freeze status is isolated by sessionId and does not interfere with other sessions running in parallel.
The plugin implements session-level locking via the sessionGuard bridge; if session-guard is not installed, this bridge is silent. Documentation also distinguishes the scope: the freeze button in this plugin is session-level, while session-guard’s automatic peak gate is global.
Settings Behavior and UI Adaptation¶
When the plugin is active, it takes over the “Enter key behavior when busy” from the official settings panel. The setting row is no longer displayed, and the Enter behavior is fixed to Green queueing.
The interface automatically adapts to the system dark mode or the dsh dark theme.
Installation and Assembly¶
Current documentation does not provide a complete official installation command, so no installation command string is provided here.
Verified documentation only states: the plugin is assembled via the dsh plugin command and assembled via bundle patch; it is used as a cordis client plugin, requiring no modification of dsh source code and no PRs.
It is recommended to check the repository, source code, and license before installation. The plugin runs with the permissions of the current dsh process, so confirming the source and dependencies is necessary before execution.
The dsh configuration in the verified package.json is as follows:
{
"bundle": {
"patch": "./cordis.patch.yml"
},
"client": {
"inject": [
"@deepseek-ai/dsh-client-locale",
"@deepseek-ai/dsh-client-ui-conversation"
],
"platform": "web"
}
}
The configuration above indicates that the plugin depends on the bundle patch ./cordis.patch.yml and injects client capabilities into @deepseek-ai/dsh-client-locale and @deepseek-ai/dsh-client-ui-conversation, with the platform being web.
package.json also declares Node >=20 and includes @deepseek-ai/cordis ^4.0.1 as peerDependencies. Some peerDependencies are incomplete due to documentation truncation; the complete list from the repository should be used during installation.
Typical Usage¶
Organized below according to examples in the documentation.
-
Choose a tier when the agent is busy: Red
nowinterrupts the current turn and inputs immediately; Yellownextinserts after the current action ends; Greenlaterwaits for the entire turn to finish before processing. -
For a message that has already used Yellow to interject, clicking Green can undo the insertion and return it to the queued status.
-
Use Move Up/Down or drag-and-drop in the waiting area to adjust the order; click “Return” to re-fill the message into the input box for editing; you can also edit or delete.
-
Click “Cancel and Clear” and confirm again to stop current execution and clear all queued messages.
-
Click “Freeze Session” before the DeepSeek peak billing period to pause after the current turn finishes naturally; click “Resume Session” after the off-peak period to continue based on queue tiers.
-
When multiple sessions are running in parallel, freezing one session does not affect the others.
-
During sorting, if a message is claimed by the agent, it will prompt “Queue changed, sort cancelled” and will not resend.
-
Queued messages containing non-text content, such as images, cannot be resent after the freeze is released and will be released with the queue.
-
It is recommended to pair with
dsh-notifyfor freeze/resume reminders, anddsh-deepseek-usage,dsh-cost-tracker, ordsh-billing-balanceto verify costs. These are recommended pairings, not built-in capabilities of this plugin.
Applicable Scenarios and Notes¶
Suitable for the following use cases:
- Need to manage the order of new inputs when an agent is busy.
- Need to queue multiple pending messages, edit, sort, or return them to the input box for editing.
- Need to distinguish between immediate interruption, insertion in the next round, and queuing after the entire turn.
- Need multiple sessions running in parallel, with the ability to freeze a specific session individually.
- Want to pause the current session before DeepSeek peak billing hours and resume after the off-peak period.
Notes before use:
- The current version is
public beta, version0.2.9. - The current official DSH
LocaleRuntimeonly registerszh/en; the pluginv0.2.9includesja/kodictionaries, but selectingja/koin the original DSH will prompt that the locale is not registered. - To use
ja/ko, the official DSH needs to add the corresponding locale ID, or maintain a DSH fork to updateLOCALE_IDS,LOCALES, core dictionaries, and tests. - Queued messages containing non-text content, such as images, cannot be resent, will be released with the queue during freezing, and will not recover.
- The
sessionGuardbridge is silent if not installed. - When the plugin is active, the “Enter key behavior when busy” setting row in the official settings panel is no longer displayed, and the Enter behavior is fixed to Green queueing.
- Reminders and billing statistics plugins are just recommended pairings, not built-in capabilities of this plugin.
- The plugin runs with the permissions of the current
dshprocess; you should check the source code and license before installing.
Related Links¶
- GitHub:
https://github.com/drscrewdriver/dsh-input-traffic - Directory page:
https://dshfind.com/zh/plugins/drscrewdriver/dsh-input-traffic?ref=badge