Skip to content

v0.5.0 — parallel lane reads, memory-aware wave sizing, lanes outside the host repo

Latest

Choose a tag to compare

@0xDarkMatter 0xDarkMatter released this 10 Sep 12:29
  • ⚡ Lane status reads in parallel — 140 lanes in 10s against 63s
    serial, with the JSON, its lane order and its exit codes identical at every
    worker count (FLEETFLOW_STATUS_WORKERS, default nproc capped at 8)
    (ADR-039).
  • 🧠 Waves are sized from memory, not just cores. ff doctor reports
    how many concurrent lanes the machine's commit headroom supports —
    commit, not free RAM, because a box can wedge with 28 GB of RAM idle.
    Advisory: it sizes the next wave, it never gates a spawn
    (ADR-041).
  • 🏠 Lane worktrees can live outside the host repo. Lanes sit inside
    it by default, so any dev server serving that repo crawls every one of them.
    ff doctor and ff plan lint now warn when a registered watcher has no
    .fleetflow ignore, and FLEETFLOW_LANES_ROOT removes the hazard outright
    (ADR-038,
    ADR-040).
  • 📏 Fleet-wide rules reach every provider. claude -p lanes load
    ~/.claude/rules/*.md implicitly and no other harness does, so identical
    packets produced very different code. Rules named in FLEETFLOW_FLEET_RULES
    now ride the guard preamble, and the doctor fails when one is missing
    (ADR-037).
  • 🗂️ Lane cards report outcome, not just effort. Each card lifts
    the worker's own final reply: tests passed/failed, files touched, landed
    against unmerged commits, cache share, and a partial verdict beside a green
    done. A run's elapsed is now its wall-clock span, not its longest lane.
  • 🔑 One expired token no longer kills every Anthropic lane.
    Claude-family lanes share the host auth store, so one expired session took out
    a whole tier mid-run. ff spawn --config-dir <dir> routes a lane elsewhere and
    ff doctor --live names healthy profiles — it points, it never picks
    (ADR-036).
  • 🧪 A fast lane for the test suite. --only, --skip, --quick
    and --list cut the edit-run loop from ~11 minutes to seconds, over a
    dependency map derived from the file rather than hand-written. The no-flag run
    is unchanged and stays the only thing that lands.
  • 🐛 Three checks that reported success while doing nothing.
    ff-status overflowed jq's command line past ~37 lanes and emitted nothing
    while exiting 0, so the dashboard drew its largest runs as empty cards. The
    plan lint's ADR gate and wave triage's escalation both read a usage error as
    "tool missing" and reported disarmed. All three now fail loudly.

Journal/record schema FF_VERSION moves 1.2.0 → 1.3.0: a started record may now carry a worktree field (ADR-040). Additive and optional — no reader breaks — but ff-aggregate mixes the version into its cache key, so the first aggregate after upgrading is a cold rebuild.

Full changelog: CHANGELOG.md · v0.4.0...v0.5.0