Skip to content

Releases: JialaoLiu/dsh-baton

v0.5.9

Choose a tag to compare

@github-actions github-actions released this 24 Oct 08:00

New

  • Updates load without a restart. When a newer dsh-baton lands in ~/.dsh-baton/app (a plugin update, setup, or a copy by hand), a conversation that is already open in Claude Code or Codex uses it from its next dsh_* call. The connection stays open.
    • src/server.mjs is now a thin shell that holds the client's connection, and the server itself (src/mcp.mjs) runs as its child process. Before each call, the shell checks the app folder and starts the new version if there is one.
    • The first call on the new version carries a note: dsh-baton was updated from X to Y without a restart. The note also names any tools that are new in this version.
    • A dsh_wait that is already running finishes on the old version.
    • If the new version cannot start, the old one keeps working and the note says why.
    • This applies from 0.5.9 on. A server started from 0.5.8 or earlier needs one last restart, or a /mcp reconnect, to pick it up.
  • dsh_call {name, arguments}: a backup entry that calls any dsh_* tool by name and runs the same code as a direct call.
    • Codex keeps the tool list a conversation started with, so it does not show a tool added by an update until the next conversation. Through dsh_call, an open conversation can use that tool at once, and the update note points to it.
    • Called with a name that does not exist, it changes nothing and returns the available tools with their input schemas.
  • Relayed questions put the client's own advice first. When a run stops to ask (ask_user_question):
    • Option labels no longer carry the asking model's "(Recommended)" or "(推荐)" mark. That pick moves to a separate field, harness_suggested.
    • The result includes relay, the question laid out for the user. Its first line, My recommendation: <pick>, because <reason>, is for the client to fill in with its own pick and reason, in the user's language. The tools ask it to show this before the options.
    • dsh_answer takes an optional reason. When the user lets the client decide, it gives one sentence on why. The reason is not sent to Harness.
    • When the run ends, the result starts with decided_for_user: what the client chose and why. The client is told to say this to the user, not just pass on the final reply.

Update

Update the plugin in Harness (Plugins → dsh-baton-host → Uninstall, then Add plugin → dsh-baton-host@0.5.9) and restart Harness. The plugin installs the matching MCP server. Then restart Claude Code and Codex, or start a new chat, once. Later updates load without a restart.

Tested on macOS with Claude Code and Codex, and on Windows with Codex.

Full Changelog: v0.5.8...v0.5.9

v0.5.8

Choose a tag to compare

@github-actions github-actions released this 24 Oct 04:59

New

  • dsh_update_queued: edit, remove or steer a message that is still waiting in a Harness session queue (action: edit | remove | steer). An edited message keeps its run, and the run follows it into the conversation. A removed message ends its run as cancelled.
  • dsh_answer, and an immediate wake-up when a run asks a question. When DeepSeek calls ask_user_question, dsh_wait and the background wait_command return at once with needs_input: "answer" and the full questions. wait_command exits with code 3.
    • Answer with dsh_answer: option numbers or labels, free text, or skip. Answers can go in one question at a time.
    • Once answered, the question card in the Harness window closes. If the user answers in the window instead, the run follows that answer.
    • The tool texts tell the client to relay the questions with its own recommendation and a reason from its own judgment of the task. It answers by itself only when the user has said to decide.
    • An approval that only a person can give returns needs_input: "harness-ui".
  • dsh_send without mode follows Harness's own busy-send setting (Settings, sending while busy: queue or steer). The result says which mode was used and why (mode_source: explicit, harness or default).
  • dsh_list_runs takes an optional session_id (dsh-baton runs --session <id>).

Fixed

  • dsh_cancel: stopping a session also empties its Harness queue, but the runs of the dropped messages used to stay in queued for good. They now end as cancelled, and the result lists them in removed_from_queue. The same goes for a message removed with Remove in the Harness UI.

Behaviour change

  • If Harness is set to steer while busy, a dsh_send without mode to a busy session is now added to the turn that is running, instead of being queued after it. Pass mode: "followup" to keep the old behaviour. Sends with an explicit mode are unchanged. With the default setting (queue), nothing changes.

Update

Update the plugin in Harness (Plugins → dsh-baton-host → Uninstall, then Add plugin → dsh-baton-host@0.5.8) and restart Harness. The plugin installs the matching MCP server. Start a new chat in Claude Code or Codex to pick up the new tools.

Tested on macOS and Windows.

Full Changelog: v0.5.7...v0.5.8

v0.5.7

Choose a tag to compare

@github-actions github-actions released this 23 Oct 05:41

Full Changelog: v0.5.6...v0.5.7

v0.5.6

Choose a tag to compare

@github-actions github-actions released this 23 Oct 05:32

Full Changelog: v0.5.5...v0.5.6

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 23 Oct 05:27

Full Changelog: v0.5.4...v0.5.5

v0.5.4

Choose a tag to compare

@JialaoLiu JialaoLiu released this 23 Oct 05:16

Adding the plugin is the whole install: in DeepSeek Harness, Plugins → Add plugin → dsh-baton-host → Install → Enable. The plugin registers the dsh-baton MCP server for Claude Code and Codex.

Changes since 0.4.0:

  • 0.5.0 Enabling the dsh-baton-host plugin registers the MCP server for Claude Code and Codex. Set DSH_BATON_AUTO_REGISTER=0 to turn this off, and use setup --remove to unregister.
  • 0.5.1 The MCP Registry name matches the GitHub owner's case: io.github.JialaoLiu/dsh-baton.
  • 0.5.2 Node.js is no longer required. Without it, the plugin runs the server with Harness's own runtime.
  • 0.5.3 Registration keeps existing npx entries and checks Node mode on Harness entries.
  • 0.5.4 The release workflow lists each plain version in the official MCP Registry.

Packages: dsh-baton-mcp · dsh-baton-host