Introduction¶
When developing or debugging agents with DeepSeek Harness (DSH), API rate limiting (429) or quota exhaustion can interrupt the current conversation. dsh-auto-continue-429 is a DSH plugin designed to listen for RATE_LIMIT and QUOTA errors, and automatically send a continue message after dsh-llm-retry retries are exhausted to restore the conversation flow.
Core Features¶
- Automatic Continue: After step-level retries are exhausted, automatically send a
continuemessage to start a new turn. - Error Recognition: Listen for
RATE_LIMIT(429) andQUOTA(e.g.,insufficient_quota) error codes. - Toggle Control: Provides a quick toggle at the bottom of the dialog (
quickOn) and a main toggle on the settings page (enabled); the two do not synchronize. After disabling the plugin, the dialog toggle bar automatically hides. - Counting and Limiting: Independent counting per session, with a consecutive failure limit of 20. Any turn completed normally resets the counter. Actively sending any message also resets the counter.
- Backoff Strategy: After each 429, randomly wait 1–2 seconds before sending continue.
Installation¶
Use the official command to install the plugin:
dsh plugin --profile web add github:haochi72/dsh-auto-continue-429
After installation, restart DSH Desktop to apply the changes.
Usage¶
- Confirm Loading: After restarting DSH, a capsule-shaped toggle bar appears at the bottom of the dialog input area.
- Toggle Switch: Click the toggle bar at the bottom to toggle the quick switch (green means on, gray means off).
- Settings Page Control: Toggle the main switch on the settings page, or customize the consecutive failure limit (1–100).
Configuration¶
The plugin supports declaring the following items in cordis.patch.yml or the profile configuration:
- id: auto-continue-429
name: dsh-auto-continue-429
config:
maxRetries: 20 # 连续失败最大次数(默认20)
continueMessage: "continue" # 发送的 continue 消息文本
Architecture and Permissions¶
This plugin is a standard dual-end DSH plugin (Cordis driven):
- Host Side: Listens to
turn/endevents, intercepts errors and schedules continue, and provides HTTP interfaces through the built-in webServer. - Client Side: Pure DOM injection; creates a toggle bar at the bottom of the input area and communicates with the host side via HTTP.
Regarding permissions, the plugin does not access the file system (it only saves configuration to ~/.dsh/auto-continue-429.json), does not read API keys, and does not send any external network requests (all routes go through localhost).
Conclusion¶
This plugin reduces conversation interruptions caused by rate limiting through an automatic retry mechanism, making it suitable for scenarios requiring long-running execution or high-concurrency testing. For more details, refer to the GitHub repository.