A DeepSeek Harness web plugin that lets you reorder queued messages (up / down / top / bottom) before the agent processes them — handy when writing long articles or running a batch of prompts in your own preferred order.
- Each queued message gains
↑/↓buttons; when the queue is expanded, Move to top / Move to bottom chips appear as well. - Drag to reorder: grab a message row (or its
⠿handle) and drop it anywhere in the queue. - Send all now: promote every queued message to the AI at once (works while the task is running).
- Clear queue: remove all pending messages in one click (with a two-step confirm to prevent accidents).
- Built-in queue behaviors are preserved: preview, inline edit, remove, and send-now (steer).
- No server restart needed after an update: DSH's client HMR pushes the new bundle automatically (a hard refresh of the page is enough).
- Host half (
lib/index.js): registers one trusted HTTP endpointPOST /queue-director/api/reorder, which reorders pending inbox items viaagent.inbox.splice— the same durable path the built-insession.updateQueueRPC uses, so the client snapshot refreshes automatically. The route uses the same browser-trust fence as dsh-better-sidebar (loopback / trusted hosts + same-origin checks). - Client half (
lib/client.js): shadows the built-inconversation.input.dockentry (id: "queue",priority: -1— lowest renders), redrawing the queue strip with the extra reorder controls. - No DSH source is modified; the plugin mounts as a bundle via
dsh.profile.bundles.
- DeepSeek Harness web profile (
@deepseek-ai/dsh-web-app),dshlauncher - Node.js ≥ 20
The plugin is not published to npm yet, so install it from source:
# 1. Clone the repository anywhere you like
git clone https://github.com/loklamlok/dsh-queue-director
# 2. In your DSH web profile directory ($DSH_HOME/profiles/web),
# add the dependency (adjust the path to your clone):
# "dependencies": { "dsh-queue-director": "link:<path-to-repo>" }
# 3. Register the bundle in package.json:
# "dsh": { "profile": { "bundles": [..., "dsh-queue-director"] } }
# 4. Install and restart
pnpm install
# restart `dsh web`, then hard-refresh the page (Cmd/Ctrl+Shift+R)cd "$DSH_HOME/profiles/web" && pnpm remove dsh-queue-director
# and remove "dsh-queue-director" from dsh.profile.bundles in package.jsonlib/index.js— host half (route + reorder logic;reorderInboxis exported for tests)lib/client.js— client half (window.__ModuleLoader__.loadfactory, no build step)cordis.patch.yml— bundle patch (inserts the plugin entry into the loader)