Releases: rbinar/cli-dispatch
Releases · rbinar/cli-dispatch
v3.14.1 — audit fixes (security + correctness)
Security and correctness fixes identified by 4-agent parallel audit.
Fixed
Shell injection
kill.md+resume.md:$DIRwas interpolated bare intonode -esingle-quoted string literals — a session ID containing'could break out. Fixed: pass viaCLI_DISPATCH_SESSION_DIRenv var.kill.md:pgrepself-exclusion filter had typogrep -v "^$$\$"→grep -v "^$$".resume.md: silent fallback todeepseekwhenbackendfield missing from metadata → now emits a warning.
Worktree / crash propagation
cx-worktree-run.sh: missing_cleanup+trap ERR INT TERM(ds/ag had this since 3.14.0; cx was missed). Also remove|| truefromcx-streamcall so crashes propagate to babysitter.
Wrong error messages
ag-agent+cx-agent: "run /cli-dispatch:ds-setup" →/cli-dispatch:setup.
Stale / factually wrong hints
sessions.md/ds-sessions.md:claude-ds-stream --resume→/cli-dispatch:resume <id> <follow-up>.ag-sessions.md:ag-stream --resume(this flag does not exist) →/cli-dispatch:resume.cx-sessions.md:cx-stream --resume(this flag does not exist) →/cli-dispatch:resume.
doctor.md completeness gaps
- DeepSeek section: add
chk claude-ds(was checking onlyds-agent+claude-ds-stream). - Antigravity section: add
chk ag-stream. - Codex section: add
chk cx-stream.
watch.md
- No guard for empty
$ARGUMENTS→ added usage hint + early exit.
v3.14.0 — doctor, kill, help, resume + worktree crash fix
New commands
/cli-dispatch:doctor— full health check: all 6 CLIs on PATH, API keys, auth state,~/.local/binPATH check. Green ✓ / red ✗ per item. Ends with a smoke-test hint./cli-dispatch:kill <session-id>— stop a running worker session: sends SIGTERM, marksstatus.jsonstate askilled./cli-dispatch:help— one-screen grouped command cheat sheet (Setup, Delegate, Monitor, Housekeeping)./cli-dispatch:resume <session-id> <prompt>— continue any session with a follow-up; auto-detects backend (DeepSeek / Antigravity / Codex) fromstatus.json.
Bug fixes
ds-worktree-run.sh/ag-worktree-run.sh: removed|| truefrom worker call (crash now propagates to babysitter); addedtrap _cleanup ERR INT TERM— leaked worktrees are removed automatically on crash or signal.watch.md: removed staleclaude-dsbranding — the command works for all backends; updated follow-up hint to/cli-dispatch:resume.
v3.13.4
Fixed
- cx-runner / ag-runner / ds-runner: enforce delegation — babysitter must not edit files directly. Added a CRITICAL block to all three runner agents explicitly forbidding the babysitter from using Edit, Write,
cat >,sed -i, or any other direct file mutation. The worker CLI (cx-agent / ag-agent / ds-agent) must do the actual coding; the runner only invokes, monitors, verifies, and reports. - cx-runner: remove bogus
--versioncheck.cx-agenthas no--versionflag; running it would exit non-zero and mislead the agent. Prerequisite check is nowcommand -v cx-agentonly.
v3.13.3
v3.13.2
Changed
- Dashboard: the pinned task/instruction panel scrolls instead of burying the flow. Full prompts can be large (5k–25k+ chars); the "Task / instruction" panel now caps at ~38vh and scrolls, so the flow stays reachable.
Docs
- Updating note:
/plugin updaterefreshes commands/skills only — it does not reinstall the worker wrappers in~/.local/bin. After an update that changes a wrapper (e.g. the newprompt.txtfield from 3.13.0), re-run/cli-dispatch:setuponce. (README EN+TR.)
v3.13.1
Docs
- README overhaul (EN + TR). The Features section was stale (DeepSeek-only) — rewritten to cover all three backends, the dashboard, native balance (aggregate + per-backend),
clean/clean-schedule, the Codex real-OS sandbox, theds/ag/cx-runnersubagents, Markdown rendering, and stale-worker detection. Also refreshed the intro, Usage intro, Session-tracking (added theprompt.txtrow), Security/egress (per-provider), and Architectural-role sections to be backend-neutral.
v3.13.0
Added
- Dashboard: the worker's task/instruction is pinned at the top of its page. A worker detail page rendered only the flow (newest-first), so the original instruction was buried or off-screen. It now shows a pinned "Task / instruction" panel (Markdown-rendered) above the flow, always first regardless of flow order.
/api/worker/:id/flownow returnsprompt(+model/cwd/startedAt). - The pinned instruction is the FULL prompt — no truncation. Previously only
meta.json's 120-charpromptPreviewexisted. The stream wrappers (cx-stream,claude-ds-stream,ag-stream+ the.ps1variants) now write the complete prompt toprompt.txtin the session dir; the dashboard serves that in full, falling back to the 120-char preview for older sessions that predate this.
v3.12.0
Added
- Dashboard: Markdown rendering for message/prompt text in the flow. Assistant messages and prompts (which workers emit as Markdown) now render headings, bold/italic,
inline code, fenced code blocks, lists, and links — instead of raw text. Tool lines stay plain. The renderer is a tiny XSS-safe one (no deps, stdlib-only ethos): it escapes ALL input first, then applies a fixed whitelist of transforms and never passes raw HTML through; linkhrefs are sanitised (onlyhttp(s)/relative —javascript:etc. become#). Verified:<script>is escaped,javascript:links are neutralised.
v3.11.2
v3.11.1
Changed
- Dashboard: the inactive "Subagents" panel now starts collapsed. The session view's non-active subagents panel defaulted to open; it now defaults to closed (the "Active subagents" panel stays open). A manual toggle is still preserved across live refreshes.