Introduction¶
In the DeepSeek Harness (DSH) development workflow, when an agent is busy, developers often need to enqueue follow-up messages for debugging or specific prompt engineering. At this point, adjusting the order of messages in the queue is critical for controlling execution logic. The official queue dock provides only viewing by default and lacks interactive controls for directly reordering messages. The dsh-queue-reorder plugin decorates the DOM structure of the official dock, adding drag-and-drop and fine-tuning buttons, allowing users to rearrange messages directly in the UI without switching to other panels.
Plugin Overview¶
This is a client-side plugin maintained by damlys99, released under the MIT open-source license. It does not replace the official queue dock component; instead, it intervenes as a decoration layer, extending interaction capabilities without breaking the existing functionality.
Core Features¶
-
Drag and button controls
- A grip handle is added to each message row in the queue, supporting press-and-drag to change its position.
- Each row provides ↑/↓ precise movement buttons. The ↓ button on the last row is disabled because there is no element afterward that can be moved.
-
Non-invasive design
- The plugin only decorates the official dock, retaining all original features such as preview, inline editing, guidance, removal, attachments, and collapse.
- After uninstalling the plugin, the queue dock returns to its original state and is unaffected.
-
Zero dependencies
- No build step is required, there are no runtime dependencies, and it works out of the box.
Installation and Enabling¶
Run the following command in a DSH Web environment to install it:
dsh plugin --profile web add -w dsh-queue-reorder
After installation, restart the DSH Web process and refresh the page to activate the plugin.
Typical Usage¶
# 卸载插件
dsh plugin --profile web remove dsh-queue-reorder
# 运行单元测试(无网络、无浏览器环境)
node selftest.mjs
Use Cases and Notes¶
Use cases:
* Developers who frequently need to adjust the order of queue messages in the DSH Web UI.
* Users who want to queue prompts for prompt engineering without leaving the official dock.
Notes:
- Version requirement: The plugin requires DSH version in the range
>=0.1.2-alpha.1 <0.2.0-0. Earlier versions do not haveconversation.input.dockslot support. - Internal implementation dependence: The plugin depends on internal DOM structures (such as
[data-queue-dock]). If the official dock’s DOM structure is refactored, the controls may stop working (but will not cause a crash; they simply lose interactivity). - Message type limitation: The plugin only moves
next-turn(queued) messages;next-step(next step) messages remain static. - Conditions that reject movement: When attempting to move a message, if any of the following conditions are encountered, the operation is rejected and no changes occur:
QUEUE_CHANGED: The queue state in the view does not match the live queue.NON_USER_MESSAGE: Attempting to move a message whose source is still tracked by Harness (such as target-turn prompts).SUBAGENT_UNSUPPORTED: The queue for a subagent session is owned by the parent session.
- Network limitation: The plugin’s HTTP routes only listen on the loopback interface, and cross-site requests initiated by browsers are blocked by CORS.
Summary¶
dsh-queue-reorder solves the inconvenience of adjusting message order by adding grip drag-and-drop and ↑/↓ buttons to the official queue dock. It works as a decoration, maintaining compatibility with the official UI, and is suitable for users who need to precisely control queue order in the DSH Web UI.