Skip to content

Releases

dsh-claude-bridge 0.4.1

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 07 Nov 01:05

Upgrade

No breaking changes. Run the install commands with this tag; setup moves your other profiles to the same release, keeps your config and adds the Claude Stop hook to ~/.claude/settings.json (backup first; CLAUDE_DONE=0 skips it):

dsh plugin --profile web add github:ahmedibrahim085/dsh-claude-bridge#v0.4.1
~/.dsh/profiles/web/node_modules/dsh-claude-bridge/bin/dsh-claude-bridge setup

Restart any running dsh host, then run dsh-claude-bridge doctor --live.

Fixed

  • dsh-wait-turn only reads an existing event file. It used to touch it, which dsh's sandboxed shell refuses (PermissionError: Operation not permitted), so dsh could not wait for Claude (or for another dsh session). Tested under a no-write sandbox-exec profile and live from a dsh turn.

Full Changelog: v0.4.0...v0.4.1

dsh-claude-bridge 0.4.0

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 07 Nov 01:05

Upgrade

No breaking changes. Run the install commands with this tag; setup moves your other profiles to the same release, keeps your config and adds the Claude Stop hook to ~/.claude/settings.json (backup first; CLAUDE_DONE=0 skips it):

dsh plugin --profile web add github:ahmedibrahim085/dsh-claude-bridge#v0.4.0
~/.dsh/profiles/web/node_modules/dsh-claude-bridge/bin/dsh-claude-bridge setup

Restart any running dsh host, then run dsh-claude-bridge doctor --live.

Added

  • Claude "done" signal: claude-turn-event, a Stop hook that writes one JSON line per finished Claude Code turn (with its final reply, first 8000 characters) to ~/.local/state/claude-events/turns.jsonl. It prints nothing and always exits 0, so it never blocks a turn.
  • setup adds the hook to ~/.claude/settings.json (backup first; other hooks keep their order; CLAUDE_DONE=0 skips it); doctor checks it; uninstall removes only this entry.
  • dsh-wait-turn --claude waits on Claude's events (CLAUDE_TURN_EVENTS_FILE overrides the path).
  • Tests: hook script, settings merge and removal, --claude wait; clean-install.sh checks the hook is added and removed.

Full Changelog: v0.3.0...v0.4.0

dsh-claude-bridge 0.3.0

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 06 Nov 20:44

Upgrade

No breaking changes. Run the install commands with this tag; setup moves your other profiles to the same release and keeps your config:

dsh plugin --profile web add github:ahmedibrahim085/dsh-claude-bridge#v0.3.0
~/.dsh/profiles/web/node_modules/dsh-claude-bridge/bin/dsh-claude-bridge setup

Restart any running dsh host, then run dsh-claude-bridge doctor --live. To receive messages from dsh, start Claude Code with claude-dsh.

Added

  • dsh can message a running Claude Code session: tool send_to_claude (message, optional cwd) in every configured profile, through dsh's MCP client and the new bin/dsh-claude-channel server. The message arrives at once, even in an idle session, as a Claude Code channel event.
  • claude-dsh: starts Claude Code with that channel loaded for this session only (--mcp-config), so other sessions start nothing (the server is about 37 MB per session). Uses Claude Code channels, a research preview.
  • CHANNEL=1|0 in the config; setup writes ~/.config/dsh-claude-bridge/channel-mcp.json, doctor checks it, uninstall removes it.
  • Tests: 5 channel-server tests with real processes and sockets; setup/uninstall tests; clean-install.sh checks the new pieces.

Full Changelog: v0.2.4...v0.3.0

dsh-claude-bridge 0.2.4

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 06 Nov 18:18

Upgrade

No breaking changes. Run the install commands with this tag; setup moves your other profiles to the same release and keeps your config:

dsh plugin --profile web add github:ahmedibrahim085/dsh-claude-bridge#v0.2.4
~/.dsh/profiles/web/node_modules/dsh-claude-bridge/bin/dsh-claude-bridge setup

Restart any running dsh host, then run dsh-claude-bridge doctor --live.

Added

  • dsh-claude-bridge uninstall [--dry-run] [--purge]: removes only what setup made (plugin and managed block per profile, links, skill, acpx and mcacp dsh agents, and mcacp when nothing else uses it). --purge also deletes the config, turn events and helper state. test/clean-install.sh now uninstalls, checks nothing is left, and reinstalls.

Fixed

  • The CLI usage text listed a setup --yes flag that does not exist; it now shows setup [--source SPEC] and uninstall.

Full Changelog: v0.2.3...v0.2.4

dsh-claude-bridge 0.2.3

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 06 Nov 17:50

Upgrade

No breaking changes. Run the install commands with this tag; setup moves your other profiles to the same release and keeps your config:

dsh plugin --profile web add github:ahmedibrahim085/dsh-claude-bridge#v0.2.3
~/.dsh/profiles/web/node_modules/dsh-claude-bridge/bin/dsh-claude-bridge setup

Restart any running dsh host, then run dsh-claude-bridge doctor --live.

Changed

  • The dsh-harness skill sends three or more parallel dsh sessions to mcacp, which runs them in one dsh process (16 sessions: 502 MB) instead of acpx's one process per session (16 sessions: 5.2 GB). It tells Claude to shut mcacp's agent down when the work is done.

Added

  • Eval case parallel-fanout-uses-mcacp.
  • Docs: measured helper cost (about 200 MB each), how to raise the helper cap past 8, and both directions under load at once.

Full Changelog: v0.2.2...v0.2.3

dsh-claude-bridge 0.2.2

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 06 Nov 16:46

Upgrade

No breaking changes. Run the install commands with this tag; setup moves your other profiles to the same release and keeps your config:

dsh plugin --profile web add github:ahmedibrahim085/dsh-claude-bridge#v0.2.2
~/.dsh/profiles/web/node_modules/dsh-claude-bridge/bin/dsh-claude-bridge setup

Restart any running dsh host, then run dsh-claude-bridge doctor --live.

Added

  • setup upgrades a profile whose plugin is pinned to an older release; doctor warns about an old pin.
  • Docs: measured parallel limits for both directions (README Limits, skill gotchas, MAINTENANCE).

Changed

  • setup replaces old symlinks in place and moves only real files or folders to a backup dir outside the link dir (~/.local/state/dsh-claude-bridge/backups, ~/.claude/skills-backup).

Fixed

  • doctor --live deletes the dsh session its test turn created; it used to leave one behind on every run.
  • npm test runs on Node 26 (node --test test/ stopped accepting a directory).

Full Changelog: v0.2.1...v0.2.2

dsh-claude-bridge 0.2.1

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 06 Nov 16:27

Upgrade

No breaking changes. Add the new release to each profile listed in PROFILES (default web acp headless), then run its setup:

for p in web acp headless; do dsh plugin --profile $p add github:ahmedibrahim085/dsh-claude-bridge#v0.2.1; done
~/.dsh/profiles/web/node_modules/dsh-claude-bridge/bin/dsh-claude-bridge setup

Restart any running dsh host, then run dsh-claude-bridge doctor --live.

Fixed

  • setup moves an existing ~/.claude/skills/dsh-harness to ~/.claude/skills-backup/ instead of renaming it inside skills/, where Claude Code would load both copies.

Full Changelog: v0.2.0...v0.2.1

dsh-turn-events 0.1.0

Choose a tag to compare

@ahmedibrahim085 ahmedibrahim085 released this 06 Nov 13:48

First release.

  • Plugin (dsh-turn-events): on every finished agent turn (agent/turn-stopping), appends one JSON line {"ts","event","session_id","cwd","turn","agent_preset"} to ~/.local/state/dsh-events/turns.jsonl (override with config.file or DSH_TURN_EVENTS_FILE). Runs in the dsh host process: no shell, no hook bridge, no sandbox change; observes only and never steers or blocks a turn; write failures are logged, not thrown.
  • dsh-wait-turn: blocks until the next matching turn finishes (--session matches any part of the id, --cwd, --timeout), prints its event and exits 0, or exits 2 on timeout. Event-driven on macOS/BSD (kqueue); 1-second size check elsewhere.
  • dsh-turns: one-shot lookup of finished turns with each turn's reply text, read from dsh's own session logs (needs the zstd CLI).
  • Installable as a dsh bundle (dsh.bundle.patch); tested on dsh 0.2.2-rc.1, Node 26, macOS, in web (including full-access) and ACP (read-only) sessions.

Known limits: the plugin listens to dsh's internal agent/turn-stopping event, which is not a documented public API, so a future dsh release may need an update. Headless one-shot runs are not covered by bundle profiles that do not list this plugin.

Install

dsh plugin --profile web add github:ahmedibrahim085/dsh-turn-events#v0.1.0

Tests: 5 plugin tests (node --test) + 3 CLI tests, all passing on macOS, Node 26, dsh 0.2.2-rc.1; live-verified in web and ACP sessions.