Search Brigade

Search Brigade pages and docs.

[ RELEASE ]

Brigade 0.19.0: stations that describe themselves

v0.19.0

Published July 5, 2026 · Escoffier Labs

A Brigade station used to be opaque until you installed it. You ran brigade add memory or brigade add guard, and only then could you see what the tool actually exposed to an agent. 0.19.0 makes a station say what it can feed before it lands.

Stations declare their surfaces

Managed station tools now advertise machine-readable surfaces: live doctor JSON, bounded markdown briefs, summary JSON, and verify commands, for whichever of those each tool supports. brigade stations list --json carries those surfaces, so a profile can show what a station will feed into automation before you commit to installing it.

brigade add <path> grew a manifest path too. Point it at a local directory with a station.json and it reports the install command and the machine surfaces the station declares. It will not run a manifest’s install command unless you pass --install, so discovery stays read-only by default. Installing a built-in station by name works exactly as before.

brigade run budgets its briefs

brigade run has attached context briefs for a while: the GraphTrail code-graph brief landed in 0.18.0. 0.19.0 puts a budget around them. Code-graph and upstream-drift impact briefs are ranked by task type, clipped when they run long, and recorded in run.json with the attached brief names, their sizes, and a truncation flag. So you can see after the fact exactly what context the workers got and what got cut to fit.

There is a new brief in that budget: a fail-open upstream-drift impact brief. When a repo has a GraphTrail database and pending upstream-drift state, the brief stitches drift-report excerpts together with graphtrail impact output, so a worker sees the likely blast radius of a change before it starts editing.

The refactor that found four bugs

The three largest modules got broken into packages. repos_cmd went from 6,417 lines to 8 files. tools_cmd, 6,079 to 18. phases_cmd, 5,621 to 7. Each sits behind a facade that keeps the full external surface and the monkeypatch semantics the tests rely on, and no source file now runs past 2,000 lines.

That let the mypy override list drop from 45 entries to 21. Ratcheting the types down flushed out four latent defects that were sitting in the untyped dark: a friction-show crash on malformed JSON, a notifications tuple-shape crash, a fleet-health check reading from the wrong module, and a research runner that returned an object where its callers expected text. All four are fixed in this release.

Smaller adds

Upgrade

Nothing in 0.19.0 breaks the 0.18.x surface, so it is a straight upgrade:

pipx upgrade brigade-cli

The full changelog lives in the repo.

Try Brigade

One reviewed source for the memory, tools, and MCP your AI coding agents share, merged into each tool's native config with a review gate and a receipt for every change. Local files, no daemon, no lock-in.

Quickstart · GitHub · All posts