- Início
- Plugins
- Sessões e mensagens
- dsh-offpeak-queue
dsh-offpeak-queue
tonyno13/dsh-offpeak-queue
DeepSeek Harness peak-hour message queue: defer selected sends and deliver them to the original conversation off-peak. / DSH 高峰消息暂存与低谷自动投递。
Instalar
dsh plugin --profile web add github:tonyno13/dsh-offpeak-queueREADME
English | 简体中文
dsh-offpeak-queue
An off-peak delivery queue for DeepSeek Harness (DSH). Keep the native composer for normal messages, switch to Send off-peak when a request can wait, and let the plugin deliver it to the original conversation after the configured peak window ends.
Tested with DSH Desktop 2.0.3 on Windows using the desktop profile.
Features
- Direct send by default — the stock DSH composer behaves normally until you opt in.
- Peak-hour interception — while Send off-peak is active, Enter and the native send button queue the current message during peak hours.
- Native multiline editing — Shift+Enter continues to insert a newline.
- Automatic delivery — queued messages are sent to their original conversations when off-peak time begins.
- Centered queue panel — inspect waiting, in-progress, and recent items without being constrained by the composer area.
- Queue controls — force immediate delivery, revoke an item, or clear the history.
- Configurable policy — edit peak windows, weekend behavior, concurrency, and the global enabled state.
- Defensive isolation — host and client errors are logged and contained so the plugin cannot intentionally take down DSH startup or rendering.
- Theme-aware UI — compact cards and pills adapt to the current DSH theme.
How sending is decided
| Plugin | Mode | Current period | Result |
|---|---|---|---|
| Disabled | Any | Any | DSH sends normally |
| Enabled | Direct send | Any | DSH sends normally |
| Enabled | Send off-peak | Off-peak | DSH sends normally |
| Enabled | Send off-peak | Peak | The message is queued |
Defaults use local system time:
- Peak windows:
09:00–12:00and14:00–18:00 - Saturday and Sunday: treated as off-peak
- Delivery concurrency:
1 - Mode: Direct send
All of these settings can be changed from the queue panel. Overnight ranges such as 22:00–06:00 are supported.
Requirements
- DeepSeek Harness with a Web or Desktop profile
- DSH runtime
>=0.1.1-rc.1 - Node.js 20 or newer
- A full DSH restart after installation or upgrade, because static client bundles are loaded at startup
Installation
From npm
The package-name commands below become available after dsh-offpeak-queue is published to npm.
For DSH Desktop:
dsh plugin --profile desktop add dsh-offpeak-queue
For the standard Web profile:
dsh plugin --profile web add dsh-offpeak-queue
Restart DSH Desktop or the corresponding DSH profile after installation.
Local development link
dsh plugin --profile desktop add "link:E:/path/to/dsh-offpeak-queue"
The package is a native static host/client bundle. Keep it registered in dsh.profile.bundles; do not replace it with a runtime define bootstrap.
Update or remove
dsh plugin --profile desktop update dsh-offpeak-queue
dsh plugin --profile desktop remove dsh-offpeak-queue
Replace desktop with the profile you actually use, then restart that profile.
Usage
- Open a DSH conversation. The plugin shows Direct send and Queue n near the composer.
- Click Direct send to switch to Send off-peak.
- During a configured peak window, compose a message and press Enter or click DSH's send button. The plugin queues the message and clears the composer only after the host confirms it was accepted.
- Click Queue n to inspect or manage queued work.
- At off-peak time, the host delivers each item to the conversation in which it was created.
If the current conversation cannot be identified, the plugin blocks the intercepted send and reports the problem instead of risking delivery to the wrong conversation.
Storage, privacy, and limits
Configuration and diagnostics are kept under:
%DSH_HOME%\offpeak-queue\
├── config.json
└── host.log
- The plugin does not need an external network service or separate credentials.
- Client diagnostics are posted only to the plugin's local DSH host route and appended to
host.log. - Configuration is persisted in
config.json. - Waiting, in-progress, and history entries currently live in memory. They are cleared when the DSH host process exits. Resolve or copy pending messages before restarting DSH.
- The queue accepts up to 200 pending items and each message is limited to 50,000 characters.
- Failed deliveries are retried up to three times, with a short cooldown between attempts.
Troubleshooting
The controls do not appear
Static client modules are scanned at startup. Fully quit and restart DSH, then inspect:
%DSH_HOME%\offpeak-queue\host.log
The log should show host boot, route registration, client boot, and a successful DOM probe or native fallback mount.
Emergency disable
If the plugin ever prevents a profile from starting, add this entry at the top-level array of that profile's cordis.patch.yml, then restart DSH:
- id: offpeak-queue
name: dsh-offpeak-queue
disabled: true
Remove the entry and restart again to re-enable the plugin. Uninstallation is not required.
Architecture
dsh-offpeak-queue
├── index.js Host half: routes, configuration, scheduler, delivery
├── client.js Static client half: controls, modal, send interception
├── src/core.mjs Framework-independent queue state machine
├── cordis.patch.yml Native DSH profile bundle row
├── scripts/ Smoke and structural balance checks
└── test/ Core behavior tests
The browser side communicates with the host through local /dsh-offpeak-queue/* routes. The host resumes the recorded DSH session and submits the queued text through the session's normal follow-up path.
Development
Run the full verification suite before packaging:
npm run verify
npm pack --dry-run
The expanded commands are:
node --check client.js
node --check index.js
node --test test/core.test.mjs
node scripts/smoke.mjs
node scripts/balance.mjs
Publishing
Before the first public release, confirm that the npm package name is still available. Then verify the tarball, publish it to npm, tag the same version on GitHub, and attach the generated .tgz to the GitHub Release.
For ecosystem discovery, add the dsh-plugin topic to the GitHub repository. Community catalogs can then discover the npm package by its existing dsh-plugin and deepseek-harness keywords; the DSH Web community index additionally accepts a pull request that adds the repository and npm coordinates to its community.json.
License
MIT. See LICENSE.
Plugins relacionados
dsh-web-ui (dsh-chat-recovery)
zhu1090093659/dsh-web-ui
dsh-synapse
liangmianya/dsh-synapse
billion-context
ranxianglei/billion-context
dsh-chat-import
nwflower/dsh-chat-import