Skip to content

v0.11.0

Choose a tag to compare

@kvnwolf kvnwolf released this 05 Aug 20:23
· 17 commits to main since this release

🌊 One plan, one run, and a chat that finally talks back.

/dobby:execute used to slice your plan into one workflow launch per wave and go quiet until the very end. v0.11.0 replaces that with the build run: a single workflow that carries the whole approved plan β€” waves sequenced inside it, tasks inside each wave still fully parallel, every safety the waves encoded (area-disjointness, destructive tasks isolated in their own wave) preserved byte-for-byte.

🚦 Live progress, where you actually are

The run narrates itself as it goes β€” a terminal line the moment each task lands (T3 βœ“ verified β€” … (2 loops)), retry lines the moment a review or verify pushes back, and a summary at every wave close. Verbosity is adaptive: a healthy task stays terse, and the first failed review or verify flips that task into full milestone narration while its siblings stay quiet. The detail shows up exactly where the trouble is.

And you don't have to keep the /workflows widget open anymore: the coordinator now relays the run into the chat β€” one quiet watcher over the run's journal, waking only when something terminal happened, one batched message per wakeup with everything new. No filler, no per-event spam; the chat lines are what survives, the widget stays the live view.

⊘ Blocked, not burned

When a task exhausts its caps and lands needs-human, everything that depends on it β€” directly or transitively β€” is now skipped as blocked: zero agents spawned, the blocker named in its row, independent tasks in the same wave untouched. No more burning a whole loop's worth of agents building on a foundation that never landed. (Powered by build-plan now exposing each task's dependsOn β€” an additive payload change.)

♻️ A dead run resumes, it never rebuilds

If the run dies mid-plan β€” or comes back empty β€” the play is resumeFromRunId with the same script and args: every completed agent replays instantly from cache and the script re-derives the full, authoritative result. The journal read is a forensic fallback, not the recovery path.

πŸ§ͺ The script is no longer prose-only

The build-run script that lives inside references/build-workflow.md is now pinned by a committed harness (cli/src/build-workflow.test.ts, 38 tests) that extracts the fenced script from the markdown and executes it under stubbed runtime globals β€” wave sequencing, blocked skipping, the narration lines, the args guards (including duplicate task ids and a task literally named __proto__) all proven, mutation-checked, before any real agents are involved. All recorded in ADR-0021.

⬆️ Upgrading

bun update @kvnwolf/dobby

Nothing else to do: no new config keys, no new hooks. The plugin side rides your marketplace auto-update β€” running Claude Code sessions need a /reload-plugins to pick up the new execute. /dobby:dispatch and /dobby:address-review keep their exact contracts (single-task tasks[], done status) β€” no consumer change there either.