Releases: corrm/beflow
v0.2.4 — advisor: opt-in deputy reviewer
Advisor — an opt-in "deputy" reviewer for --auto runs
A second model reviews each --auto agent run against the ticket's contract (between runs, never mid-run), re-dispatches corrections when the agent drifts, and escalates to Needs Input after maxNudges ignored corrections — or on an unsafe / unconverged run. Opt-in, off by default, --auto only. Reuses beflow's existing rework and escalation paths; distinct from the post-PR review gate.
Enable it (see docs/advisor.md):
"advisor": { "enabled": true, "agents": ["your-reviewer-agent"], "maxNudges": 3 }Full changelog: v0.2.3...v0.2.4
v0.2.3
Changes since v0.2.2
- fix(cli): rework setup/update, add upfront validation, make policy opt-in (#24)
updateno longer creates projects;setupadopts existing projects instead of failing on conflict.- Upfront project-key validation across
queue/accept/watch/review/new. - Policy & AGENTOWNERS scaffolding is now opt-in (only when
policy.evaluator = "agentowners"). queuecollect-and-continue,newboard pre-validation,runmode-conflict guard, cleareraccept/gcmessages.--jsonoutput onqueue/runs/doctor/gc.- watch-daemon tick resilience: poison-item isolation + trigger-label restore.
v0.2.2
Patch release — 11 backward-compatible PRs since v0.2.1 (bug-fixes + hardening).
Reliability / correctness
- Fix a worktree leak in PR review that also broke all future review of that PR (BEFLOW-27, #18)
- Fail-fast to a human when the agent crashes with no report (BEFLOW-25, #15)
- Daemon re-confirms card state before promotions; won't override a mid-tick human move (BEFLOW-20, #12)
- Enrich-agent labels gated by reserved namespace; template wins (BEFLOW-29, #20)
Tracker fidelity
- Linear: paginated list ops + idempotent writeback (BEFLOW-24, #16)
- Plane: decode HTML entities in the listComments strip fallback (BEFLOW-26, #17)
- Strip the beflow marker even without its leading blank line on the HTML fallback (BEFLOW-28, #19)
- Thin-issue gate counts visible text incl. quote/apostrophe/numeric entities (BEFLOW-30, #21)
Governance / ops
v0.2.1
Backward-compatible feature release. 12 commits since v0.2.0.
Governed autonomy
- Receipt-aware policy gate evaluating agent intent + risk surfaces (BEFLOW-9)
- Durable decision log + overridable tracker receipts
- Control-plane-by-default AGENTOWNERS + pre-worktree preflight
- Keep branch on block; configurable
qualityGate.maxRework
Preflight
- Predictive advisory warning from the decision log before a run (BEFLOW-18)
Setup
- Enter-through walkthrough + fail-fast auth preflight (BEFLOW-13/14/15)
Config
- XDG Base Directory layout (BEFLOW-16/17)
doctor --fix— idempotent auto-repair/migration of config structure (BEFLOW-19)
Docs
- Unified per-run resolution reference, config.md gaps, picking-properties guide (BEFLOW-6/7/8)
Migration: config moved to XDG paths; run beflow doctor --fix to auto-migrate. Not a hard break.
v0.2.0 — beflow-owned PR creation + policy gating
beflow-owned PR creation + post-run policy gating
beflow can now own the PR lifecycle in autonomous implement runs and gate it with a pluggable policy — so an autonomous change is reviewed before it becomes a PR. Implements #1.
Highlights
- beflow-owned PR creation (
pr.owner: "beflow") — the agent only commits + pushes its branch; beflow opens the draft PR, runs the quality gate, evaluates policy, enriches the body, and writes back. Noghcall from the agent. A run that produces no commits is parked failed (no empty PR); any gh/policy error is retryable (worktree kept). - Post-run policy gate with four evaluators, one most-restrictive-wins engine (
block > require_approval > allow):globs— inline path/agent rulesagentowners— a CODEOWNERS-style.github/AGENTOWNERSfile (configurableagentownersPath, absolute path allowed for a trusted location); missing file → allow, malformed → fail closedcommand— external hook: change context as JSON on stdin →{decision, reason}off
- Outcomes →
allow: mark ready → In Review ·require_approval: leave draft → In Review + awaits-approval note ·block: close PR + delete branch → Needs Input. - GC reaps worktrees + local branches left by policy-blocked runs (dirty/unpushed ones held unless
--force).
⚠️ Breaking config change
The defaults bucket is removed. All settings are now top-level keys (agent, runMode, assignee, pr, policy, qualityGate, review, sla, routing, telemetry, …); per-project agent/runMode are direct project keys. Precedence is unchanged (project → global → built-in). Update your config.json to the flat shape — see config.example.json / config.schema.json.
Notes
- Opt-in: default
pr.owneris"agent"(existing behavior) until you flip it. Engages only for autonomousimplementruns with a worktree. - Pre-PR governance complements (does not replace) GitHub branch protection.
- See docs/pr-ownership-and-policy.md.
Full gate green: 981 tests.
beflow v0.1.0 — first public release
beflow turns work items on a Plane or Linear board into agent-driven pull requests. You stay the captain — decide, review, merge; beflow runs the crew — investigate, spec, build, open PRs — and keeps the board in sync.
The agent is tracker-blind: beflow does all tracker I/O at the boundaries of a run, hands the agent a task + repo + contract, and writes the structured result back to the board — so the same agent works across Plane and Linear.
Highlights
- Three run modes —
--auto(headless),--attend(supervised via acpx),--open(the agent's native TUI) - The board is the control center —
beflow watchpolls the queue, dispatches Todo items up to your WIP limit, advances merged PRs to Done, reworks items you labelchanges-requested, and answers Needs Input when you reply - Resumable runs — per-issue git worktrees + run records; an interrupted run picks up where it left off
- Pluggable — Plane + Linear adapters; any ACP coding-agent CLI (e.g.
claude) - Opt-in gates — quality gate, dead-letter/quarantine, SLA reminders, CI-red auto-rework, PR review assist
Install
bun add -g beflow # or: npm i -g beflowRequires Bun. Then cp config.example.json config.json, add your tracker API token to .env, and run beflow doctor.
Docs
README · Commands · Config · Lifecycle
v0.1.0 — early, but the full loop is live-proven end-to-end against real Plane + Linear. Feedback and issues welcome.