Recognize the boundary

The reported control is unusually specific: built-in read, write, shell, search, and skill tools settle, while every tool registered by the tested plugin hangs. The plugin implementation returns quickly when called directly, and the declared timeout does not surface an error.

ControlObserved resultWhat it narrows
Built-in tool in the same sessionSettles normallyThe model and general tool loop are live
Plugin execute called directlyReturns in millisecondsThe core plugin operation itself is not blocked
Plugin-origin tool through Code ModeNo result or timeoutThe plugin-to-host output/settlement bridge is implicated

Inspect output.render before chasing timeouts

The follow-up reproduction reports that output.render crossed an initial JSON snapshot as a lossless string, then Code Mode attempted array operations during commit and threw before the binding settled. The proposed patch validates a minimum renderer boundary: an array of plain JSON records whose type fields are strings.

  • Capture the raw value and JavaScript type returned for output.render.
  • Confirm it is an array before testing tag-specific payload fields.
  • Reduce the tool output to one plain JSON record with a string type tag.
  • Compare direct plugin execution with the same call through Code Mode.

Do not treat timeoutMs as proof of recovery

In the reported failure, the bridge throws before the expected settlement path, so the declared timeout never becomes a user-visible timeout result. An external wall-clock limit can protect a diagnostic run, but it does not repair the unresolved binding or prove the plugin is incompatible.

Version scope

The original report reproduced on DSH 0.1.0-rc.7 and states that a tarball comparison did not reveal a relevant change through 0.1.1-rc.2. A follow-up reports a reproduction against the then-current master commit. These are source-based community claims, not an official release advisory.

Current fix status

The follow-up links a source-pinned branch with focused tests and an INVALID_TOOL_OUTPUT failure path. Until the official project merges and releases an equivalent change, treat that branch as a reference implementation rather than a production update instruction.

DeepSeek Harness is in developer preview. Recheck official documentation and plugin evidence when the host version changes.

Sources and evidence

Official documentation and community evidence are labeled separately in the source pages and in this article.