Preface

When routing model requests through a WorkBuddy or CodeBuddy account pool in DeepSeek Harness (DSH), requests sometimes directly return HTTP 400 with a message like “request intercepted” along with Illegal API invocation from an unapproved channel. Common upstream error codes are 11128 or 11140. On the surface, it appears to blame “unapproved channel,” but according to maintainer balongTTY’s item-by-item exclusion in the repository README, switching accounts, changing domains, changing client identities, adding request headers, adjusting max_tokens, etc. often do not eliminate the error. The conclusion closer to actual testing is that it performs keyword content filtering on the system prompt—specific phrases appearing in the prompt will cause rejection.

Below is an introduction to the community plugin dsh-workbuddy-fix (GitHub: balongTTY/dsh-workbuddy-fix, npm package name @balong/dsh-workbuddy-fix). It performs lossless processing (zero-width space to break substring matching) on trigger words before requests are sent, controlled through a switch on the DSH settings page, without modifying third-party reverse proxy plugin files. The plugin is categorized as admin-security, licensed under MIT, and the version in current documentation is 1.3.2.

What This Is

dsh-workbuddy-fix is a settings page plugin for DSH: it intercepts requests sent to WorkBuddy / CodeBuddy-related domains at the globalThis.fetch layer, performs optional neutralization on the system prompt (and keywords configured in the panel), thereby bypassing the aforementioned 11128-type interceptions while maintaining the semantics seen by the model as much as possible.

Maintainer: balongTTY (GitHub).

Directory page: SkillHub · balongTTY/dsh-workbuddy-fix.

What It Fixes and What It Doesn’t

Covered Errors

Symptom Description
Illegal API invocation from an unapproved channel Upstream keyword-based filtering of system prompt
HTTP 400, code 11128 / code 11140 Same category as above
first message is not system prompt Can be handled via panel’s “inject first system”

Typical client error prefixes include buddy: (CodeBuddy / copilot.tencent.com) and workbuddy: (WorkBuddy international version); README states coverage of 5 domains within WB_HOSTS.

What This Plugin Doesn’t Handle

Symptom Handling Direction (from README cheat sheet)
code 11133 integer_below_min_value Increase max_tokens
code 6004 usage exceeds frequency limit Switch accounts or wait for cooldown
Reasoning model EMPTY_RESPONSE, thinking without content Suggest max_tokens ≥ 4096
model returned a completed response with no content Unrelated to this plugin

Core Mechanism and Features

Interception approach: insert invisible character zero-width space (U+200B) in the middle of trigger words to invalidate upstream substring matching while maintaining semantics on the model side. Example (from README):

// Before
"You are an AI agent powered by DeepSeek Harness."
// After
"You are an AI agent powered by DeepSeek\u200B Harness."

README-documented testing (DSH request form: 316 tools + effort=max + max_tokens=128000): original text 0/5 failures, after neutralization 5/5 successes.

Design Points (summarized from original documentation)

Point Description
Lossless No trimming, no rewriting of context, only inserting invisible characters
Doesn’t touch third-party files Mounted on globalThis.fetch, decoupled from reverse proxy plugin version/implementation
Reversible After disabling the main switch, requests are byte-level identical to original requests
Path-safe Matching with negative lookahead/lookbehind assertions to avoid breaking real paths like D:\...\DeepSeek Harness\...
Real-time effect Switch changes don’t require DSH restart

If the runtime context contains real paths, inserting zero-width characters within path segments will cause tool calls to pass wrong paths; therefore the matcher uses path protection logic like /(?<![\\/])(DeepSeek)[ \u00A0]+(Harness)(?![\\/])/gi (README example).

Settings Page: wb400 Fix

After installation and DSH restart, the entry point is Settings → wb400修复.

Main panel elements (v1.3.2 screenshots in repository docs/screenshot-panel-v132.png):

Status

  • Version badge (e.g., v1.3.2)
  • “Main channel running” indicates the fetch hook is working in the chain; README clarifies that the wrapper doesn’t need to be at the outermost layer, “N keywords processed” is the criterion for whether it’s doing its job

Switches (default values per README)

Switch Default Function
Master switch On When off, requests are not rewritten at all
Neutralize identity keywords On Zero-width space replacement
Inject first system On Injects a fallback system when the first message is not system
Hide brand words Off More aggressive, breaks up even DeepSeek
Complete word replacement Off Replaces keywords entirely with other words (default CodeBuddy)
Personality injection Off Appends CodeBuddy-style engineering behavior constraints

Also supports maintaining custom keywords in the panel (can be added here when upstream changes filtering words, without upgrading the plugin), check for updates (reads GitHub Releases), rewrite effect preview, and processing counts.

Installation and Activation

Version requirements: Documentation requires installation of v1.3.2 or newer; v1.3.0 / v1.3.1 have stability issues (README states may cause host crashes), v1.0.x has no fetch channel and is ineffective for most users.

In DSH conversation, specify installation of github:balongTTY/dsh-workbuddy-fix, or execute locally (replace <DSH目录> with actual path):

<DSH目录>\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add github:balongTTY/dsh-workbuddy-fix

Restart DSH once after installation. If direct GitHub connection is unstable, may fail; can switch to Release package.

Method 2: Release Attachment (Poor Network)

  1. Open Latest Release
  2. Download balong-dsh-workbuddy-fix-1.3.2.tgz (approximately 42 KB)
  3. Execute:
<DSH目录>\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add .\balong-dsh-workbuddy-fix-1.3.2.tgz

Only download the .tgz plugin package; wb400-intro.mp4 in Release is a demo video, not an installation package.

Uninstall

<DSH目录>\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop remove @balong/dsh-workbuddy-fix

README states uninstallation won’t delete keyword configurations in ~/.dsh/workbuddy-meter/lexicon.json, switch states can be preserved after reinstallation.

How to Confirm Correct Installation

After restart, open Settings → wb400修复, all of the following must be satisfied:

  1. Version badge v1.3.2 (or newer 1.3.x) next to the title
  2. Status shows Main channel running
  3. After several normal conversations, “Processed” count greater than 0

If only “Main channel running” but count is always 0, it may be that no conversation has been initiated yet, or the reverse proxy being used doesn’t go through globalThis.fetch (README suggests checking intervention count, or running node diagnose.mjs in the repository for auxiliary judgment).

Typical Usage and Self-Verification

No additional API needed: with default switches enabled, use WorkBuddy / CodeBuddy normally through DSH; go to settings page to disable master switch or individual features when needed.

README-provided 60-second self-verification: only change one word in system prompt under the same token—

system prompt Result
You are an AI agent powered by DeepSeek Harness. 400 / 11128
You are an AI agent. 200

If this pattern is consistent, it matches keyword filtering. README also mentions: keyword triggers are often related to request body size (more stable when approximately greater than 1KB), short prompts containing words may also be let through, easily causing the illusion of “occasional” occurrences.

Use Cases and Notes

Who it’s for: Using WorkBuddy / CodeBuddy in DSH, repeatedly encountering 11128 / unapproved channel type 400 errors, and having already excluded unrelated errors listed in README such as max_tokens being too small, rate limiting, etc.

Compatibility: The hook targets fetch; if the reverse proxy plugin uses undici or node:http direct connection without going through globalThis.fetch, this plugin may not be able to intervene. When using dsh-connect-workbuddy, if only "You are a helpful assistant." is injected when system is lost and there are no trigger words, it may not 400 at all, panel count being 0 is a normal situation described in README.

Security and Trust: The plugin runs with current DSH process permissions and will rewrite prompts in outbound request bodies. Please review repository source code and MIT license before installation; community directory SkillHub has no official affiliation with DeepSeek / Hunyuan, and is not an official app store.

Stability: README honestly records that historical versions once caused host crashes and fixes; if DSH cannot start after installation, first execute the uninstall command above to recover, then report to GitHub Issues with version, installation method, and crash logs under %APPDATA%\@deepseek-ai\dsh-desktop\logs\.

Relationship with dsh-workbuddy-meter: README has a dedicated section explaining the relationship between the two; this plugin focuses on 400 fixes and prompt neutralization, metering capabilities see corresponding repository documentation.

Testing and License

Repository declares 15 test files passed (see README badges); locally can run npm test (package.json chains multiple node test/*.mjs).

License: MIT.


dsh-workbuddy-fix addresses the 11128 interceptions on WorkBuddy / CodeBuddy that are easily misjudged as “channel issues,” implementing a toggleable, reversible prompt keyword neutralization, and centralizing operations in the DSH settings page. For further information:

  • Directory page: https://www.skillhub.cn/plugins/balongTTY/dsh-workbuddy-fix
  • Source code and documentation: https://github.com/balongTTY/dsh-workbuddy-fix