v1.0.4 — dispatch reliability + worker-engine fixes
Dispatch-reliability + worker-engine release on top of the 1.0.3 dispatch-death fix.
Added
- Multi-dispatch
--wait.goalflight_status.py --wait <id1,id2,...>(comma or
repeated) blocks until every named dispatch reaches a terminal state via the
authoritativedone_code()liveness, with--wait-timeout/--poll-s; the
dispatcher prints the canonical wait hint after launch. - Doctor worker write-probe.
goalflight_doctor.py --worker-write-probeverifies an
engine can write a file end-to-end (catches engines that "finish" without persisting). - Adaptive capacity walk-back. Repeated provider "model at capacity" signals now feed
a transient, label-scoped effective-cap reduction (min(static, recommend())) so
new dispatches queue instead of failing and killing in-flight workers; surfaced in
status and aged out by the rolling ledger window (no permanent cap mutation). - Dispatch-ref cleanup.
goalflight_cleanup_dispatch_refs.py(+ allowlisted
git_prune_claude_refs, run before fetch) prunes corrupt/stalerefs/heads/claude/*
that break fleet fetch; preserves checked-out worktree + remote-backed refs and fails
closed if the protected set can't be determined. - cursor + claude-acp wired into the unified dispatcher happy path.
- Opt-in claude-acp patch-compile installer (stopgap).
scripts/install_claude_acp_patch.shapplies the
vendoredpatches/claude-code-cli-acp-2.1.169-tui-submit.patch(the upstream TUI-submit fix — PR
moabualruz/claude-code-cli-acp#1) to an installedclaude-code-cli-acp@0.1.1: clones the pinned upstream
base, builds with cargo, and swaps + ad-hoc-codesigns the platform binary (run-scoped backup + atomic
restore on any failure; idempotent; skips once upstream ships a fixed release). Agoalflight_doctor.py
probe flags an unpatched adapter and points to the script. Not auto-run byinstall.sh; cargo required.
Fixed
- grok workers execute tools + emit terminal markers. A grok-only prompt preamble
forces tool execution and a finalCOMPLETE:marker, ending the
worker_dead_no_terminal_markerfailures; a conservative routing guard gates grok
file-writing on a passing write-probe. grok-research default model corrected to
grok-composer-2.5-fast. - claude-acp handshake.
claude-code-cli-acponly enters ACP stdio mode with no argv;
the default--modelinjection is removed and an explicit model is applied via the ACP
session. - Dispatch ergonomics. Code-writer default idle window raised to 600s (read-only /
research keep 180s);--donetreatsidle_timeoutas live only after an identity-aware
pid+start-time check, with a reattach hint; read-only review dispatches that expect a
file write are refused (inline-return is allowed); reused non-terminal dispatch ids are
refused (dup-id collision). - Terminal marker precedence. A dead worker that emitted a recognized terminal marker
is classified terminal regardless of pid liveness (the idle real-pid check applies only
when no marker is present). - Fleet. Live remote dispatch works end-to-end; an auth-probe tooling failure
(exit 127 / no-JSON) is treated as inconclusive and re-probed instead of cached as an
authoritative auth-red;--prompt/--prompt-b64are redacted across every serialized
ssh argv, preview, and failure-output path. - opencode smoke tests skip (rather than fail) when the OpenCode/LiteLLM backend is
unhealthy.
Docs
- cursor orchestrator wake-on-worker-completion (background shell + marker contract);
fleet remote git lifecycle; gotchas index. SKILL kept within its byte/line budgets.