v0.3.0 "flock" — ducks that cooperate (in the simulator)
Multiple simulated Microducks can now talk to each other and divide up a job, limited only by the skills each duck already has. The first choreography ships in this release: split the search, hold an auction, the closest duck kicks, and every message is on the record.
Highlights
- Flock mode: add a
flock:block to a.duckfile or pass--flock Nto put multiple ducks in one shared arena. They coordinate over an in-process message bus with typed messages (TASK, BID, CLAIM, ROLE, HB, RESULT), acting only through the verbs each duck already has, so the machinery is task-agnostic and the kick is simply the first choreography built on it (the target label is configurable). A deterministic Contract Net auction awards the claim from each duck's own camera distance estimate (20 % hysteresis, 6 s claim lease, one claimant lock, sim-time watchdog), and every message, bid, claim and role change lands inflock.jsonl. Guide: docs/flock.md, ADR-0015. - Multi-duck simulator:
World(n_ducks=…)with per-duck noise streams, duck-duck collisions and the four Microduck colorways. A lockstep clock freezes the world while any pilot thinks, so single-duck runs stay bit-identical per seed (ADR-0016). - One LLM call at most: the planner may tune task parameters through a single forced tool call, clamped per field with a deterministic fallback.
--provider fakecomputes the plan as a pure function.summary.jsonrecordsllm_callsas proof. - Ground truth everywhere: the outcome is judged from sim telemetry, not a model claim, and duck-duck separation is watched from world ground truth while a claim is live.
- Before release the flock diff went through an adversarial review (69 agents, 24 confirmed findings, all fixed): deadlock guards on the shared clock, per-duck budget enforcement, watchdog floors, cooldown gating at bid time and more. Details in the CHANGELOG.
Sim only, honestly labelled: one choreography ships today, and nothing multi-duck has run on hardware (Microducks ship Christmas 2026). More choreographies over the same bus and roles are the roadmap, not the release.
uvx quackd run flock-kick --provider fake --seed 3Full changelog: v0.2.0...v0.3.0