Skip to content

Releases: corrm/beflow

v0.2.4 — advisor: opt-in deputy reviewer

26 Jun 01:21

Choose a tag to compare

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

22 Jun 08:16
3c0521e

Choose a tag to compare

Changes since v0.2.2

  • fix(cli): rework setup/update, add upfront validation, make policy opt-in (#24)
    • update no longer creates projects; setup adopts 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").
    • queue collect-and-continue, new board pre-validation, run mode-conflict guard, clearer accept/gc messages.
    • --json output on queue/runs/doctor/gc.
    • watch-daemon tick resilience: poison-item isolation + trigger-label restore.

v0.2.2

21 Jun 19:17
185895c

Choose a tag to compare

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

  • Surface agent receipt intent + risk surfaces in the decision log & approval comment (BEFLOW-23, #14)
  • doctor --fix creates the config dir before bootstrap — no ENOENT on fresh machines (BEFLOW-31, #22)
  • Remove vestigial RunRecord.ciAttempts (#13)

v0.2.1

21 Jun 05:53
c86ae51

Choose a tag to compare

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

20 Jun 00:15
143c43b

Choose a tag to compare

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. No gh call 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 rules
    • agentowners — a CODEOWNERS-style .github/AGENTOWNERS file (configurable agentownersPath, absolute path allowed for a trusted location); missing file → allow, malformed → fail closed
    • command — external hook: change context as JSON on stdin → {decision, reason}
    • off
  • Outcomesallow: 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.owner is "agent" (existing behavior) until you flip it. Engages only for autonomous implement runs 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

19 Jun 04:48

Choose a tag to compare

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 centerbeflow watch polls the queue, dispatches Todo items up to your WIP limit, advances merged PRs to Done, reworks items you label changes-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 beflow

Requires 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.