Repository navigation
- ⚡ 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, defaultnproccapped at 8)
(ADR-039). - 🧠 Waves are sized from memory, not just cores.
ff doctorreports
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 doctorandff plan lintnow warn when a registered watcher has no
.fleetflowignore, andFLEETFLOW_LANES_ROOTremoves the hazard outright
(ADR-038,
ADR-040). - 📏 Fleet-wide rules reach every provider.
claude -planes load
~/.claude/rules/*.mdimplicitly and no other harness does, so identical
packets produced very different code. Rules named inFLEETFLOW_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 apartialverdict 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 --livenames healthy profiles — it points, it never picks
(ADR-036). - 🧪 A fast lane for the test suite.
--only,--skip,--quick
and--listcut 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-statusoverflowedjq'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 reporteddisarmed. 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