Skip to content

Releases: berkayturanci/keel

Release v1.29.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 20:22
98f98b1

Highlights

  • You can watch keel runs inside Claude Code. The optional keel-progress mod (0.2.0) shows the live keel ship runs across the repository's worktrees above the prompt, and a /keel-progress pane, without a second terminal. Click a run to open it in full, or expand the band to see every run with its whole branch.
  • A merged run no longer reads as "waiting on the merge window" forever: keel merge now records the landed merge in the run's checkpoint.
  • The jury gate goes by the panel's consensus and reuses the panel already posted for the head, and a reviewer who gave no verdict no longer counts as approving.

Full notes: CHANGELOG.md

What's Changed

Full Changelog: v1.28.0...v1.29.0

Release v1.28.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:46
b5b5d21

Highlights

  • keel swarm-review (experimental, opt-in): keel dispatches each cluster pull request's own reviewer seats, read-only in a checkout of its head, and posts their verdicts — a rejection is always posted and holds the merge. It has run once, on a sandbox repository, with single-vendor review seats.
  • A jury verdict now satisfies the jury requirement only when its consensus approves: a panel that requests changes, abstains or never reached a consensus holds keel merge, and no keel template or renderer writes an approval nobody gave.
  • The external promises CI check no longer reads a rate limit or a server error as a missing tag or repository.

Full notes: CHANGELOG.md

What's Changed

  • feat(swarm): keel swarm-review dispatches each cluster PR's reviewer seats and posts their verdicts by @berkayturanci in #1427
  • docs(swarm): swarm-review has run once — say so, and keep "experimental" by @berkayturanci in #1431
  • fix(evidence): a jury verdict satisfies the jury requirement only when its consensus approves by @berkayturanci in #1432
  • fix(tests): external promises reads only 404/410 as absent; a rate limit or a 5xx is 'could not check' by @berkayturanci in #1434
  • release: 1.28.0 by @berkayturanci in #1435

Full Changelog: v1.27.0...v1.28.0

Release v1.27.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 04:53
b53ed31

Highlights

  • A review verdict now counts toward landing only when it approves: a reviewer's change request at the head holds keel merge, and the refusal names who asked for changes.
  • The experimental swarm landed end to end once, on a sandbox repository: a live worker labels its pull request and records its gates-pass itself, and swarm-land closes the landed issues as /keel:ship does. Review still happens outside the swarm.
  • knobs.swarm_review_evidence is deprecated (it has had no effect since swarm landing went through keel merge), and the revert-check article says exactly what the gate counts.

Full notes: CHANGELOG.md

What's Changed

  • feat(swarm): the consent a live run delegates is in the run ledger, and consent-verify reads it (#1400) by @berkayturanci in #1417
  • docs(website): the revert-check article says what the gate excludes by @berkayturanci in #1419
  • chore(config): knobs.swarm_review_evidence is deprecated, and config.py says so by @berkayturanci in #1418
  • fix(swarm): a live worker labels its PR and records its gates-pass, and keel merge names every cause by @berkayturanci in #1421
  • docs(swarm): a live landing has run — say so, and keep "experimental" for the review it still lacks by @berkayturanci in #1424
  • fix(swarm): a landed cluster's issues are closed as /keel:ship closes one by @berkayturanci in #1425
  • fix(evidence): a verdict counts only if it approves, and a change request holds the merge by @berkayturanci in #1428
  • release: 1.27.0 by @berkayturanci in #1430

Full Changelog: v1.26.0...v1.27.0

Release v1.26.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 10:10
93246ab

Highlights

  • The experimental swarm has a live path: swarm-run --live has each cluster's implementer seat write the change under consent the operator delegates, and keel commits, gates, pushes and opens one pull request per cluster; swarm-land merges those pull requests through keel merge itself once each has its review verdicts.
  • The implementer cannot reach the remote or tamper with keel's own git steps, the run persists the plan it executes, each issue's scope comes from the issue, and a dependent wave is refused rather than rebased.
  • Run-ledger readers skip a record kind they do not know instead of refusing the ledger, and keel-ship.dev explains what 100 % coverage cannot tell you.

Full notes: CHANGELOG.md

What's Changed

  • fix(swarm): a dependent wave is reported honestly and swarm-land refuses it (#1276, part 1) by @berkayturanci in #1395
  • fix(swarm): each issue's scope comes from the issue, and an issue without one conflicts with everything (#1274) by @berkayturanci in #1401
  • feat(swarm): a live worker implements its cluster through the delegate seat, under consent the operator delegates (#1400, first slice) by @berkayturanci in #1402
  • fix(swarm): swarm-run persists its plan and swarm-land lands exactly that plan (#1275, core) by @berkayturanci in #1405
  • fix(swarm): the implementer cannot reach the remote or tamper with keel's own git steps (#1400, slice 2) by @berkayturanci in #1406
  • docs(website): a revert-check write-up, what 100 % coverage cannot tell you (#1403) by @berkayturanci in #1404
  • fix(ledger): a reader skips a record kind it does not know instead of refusing the ledger by @berkayturanci in #1407
  • feat(swarm): swarm-land merges each cluster's pull request through keel merge (#1287) by @berkayturanci in #1409
  • fix(keel-visual): the swarm view reads the persisted plan and draws the real DAG (#1275) by @berkayturanci in #1411
  • fix(swarm): worktrees are pruned, removed honestly and recoverable (#1278) by @berkayturanci in #1412
  • fix(swarm): a worker reports its wave, stage and elapsed time (#1280) by @berkayturanci in #1413
  • fix(swarm): a cluster PR arms the evidence gate at creation, and the docs say what landing needs by @berkayturanci in #1414
  • docs(swarm): the live path exists — every surface says what a live swarm does now by @berkayturanci in #1415
  • release: 1.26.0, with keel-visual 0.10.0 by @berkayturanci in #1416

Full Changelog: v1.25.0...v1.26.0

keel-visual-v0.10.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 10:09
93246ab

What's Changed

  • fix(swarm): a dependent wave is reported honestly and swarm-land refuses it (#1276, part 1) by @berkayturanci in #1395
  • fix(swarm): each issue's scope comes from the issue, and an issue without one conflicts with everything (#1274) by @berkayturanci in #1401
  • feat(swarm): a live worker implements its cluster through the delegate seat, under consent the operator delegates (#1400, first slice) by @berkayturanci in #1402
  • fix(swarm): swarm-run persists its plan and swarm-land lands exactly that plan (#1275, core) by @berkayturanci in #1405
  • fix(swarm): the implementer cannot reach the remote or tamper with keel's own git steps (#1400, slice 2) by @berkayturanci in #1406
  • docs(website): a revert-check write-up, what 100 % coverage cannot tell you (#1403) by @berkayturanci in #1404
  • fix(ledger): a reader skips a record kind it does not know instead of refusing the ledger by @berkayturanci in #1407
  • feat(swarm): swarm-land merges each cluster's pull request through keel merge (#1287) by @berkayturanci in #1409
  • fix(keel-visual): the swarm view reads the persisted plan and draws the real DAG (#1275) by @berkayturanci in #1411
  • fix(swarm): worktrees are pruned, removed honestly and recoverable (#1278) by @berkayturanci in #1412
  • fix(swarm): a worker reports its wave, stage and elapsed time (#1280) by @berkayturanci in #1413
  • fix(swarm): a cluster PR arms the evidence gate at creation, and the docs say what landing needs by @berkayturanci in #1414
  • docs(swarm): the live path exists — every surface says what a live swarm does now by @berkayturanci in #1415
  • release: 1.26.0, with keel-visual 0.10.0 by @berkayturanci in #1416

Full Changelog: v1.25.0...keel-visual-v0.10.0

Release v1.25.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 10:54
1747e87

Highlights

  • An opt-in revert-check gate asks what coverage cannot: it reverts each change on the branch alone and requires a test to fail as an assertion, naming every change no test notices.
  • keel cost-report can say "measured": hosted-API delegate runs record the token usage the provider reports.
  • The README, the site, the command adapters and the reference pages were audited against the code and now match it, and swarm-land says plainly that it is a local merge.

Full notes: CHANGELOG.md

What's Changed

  • fix(keel-visual): absolute PyPI links, a tag guard, and every template shipped and checked (#1371) by @berkayturanci in #1383
  • feat(cost): hosted-API delegate runs record their real token usage (#1373) by @berkayturanci in #1384
  • docs(site): keel-ship.dev claims only what keel does (docs audit 2026-09-29) by @berkayturanci in #1386
  • fix: the Ship watermark, the VS Code merge-window bar, doctor skips, scratch-dir and the ledger arming signal say what happened (docs audit 2026-09-29) by @berkayturanci in #1387
  • docs: SECURITY, CONTRIBUTING, keel-visual and the swarm pages match the code (docs audit 2026-09-29) by @berkayturanci in #1388
  • docs(adapters): the command adapters use the flags, contracts and helpers keel has (docs audit 2026-09-29) by @berkayturanci in #1389
  • docs(keel): the CLI, evidence and release pages match the code (docs audit 2026-09-29) by @berkayturanci in #1390
  • docs(keel): configuration, parameter reference, extensions and models match the code (docs audit 2026-09-29) by @berkayturanci in #1391
  • docs(keel): the jury relaxation, the implementer chain, delegate labels and the run ledger match the code by @berkayturanci in #1392
  • feat(gates): an opt-in revert-check gate — a change no test notices is named (#1289) by @berkayturanci in #1385
  • fix(gates): revert-check's leftovers after #1385 by @berkayturanci in #1393
  • fix(swarm): the worker timeout follows the project's gate timeout (#1279, item 1) by @berkayturanci in #1394
  • docs(swarm): swarm-land's landing is a local merge (#1287, first slice) by @berkayturanci in #1396
  • fix(swarm): landing refuses a dirty tree and returns you to your branch (#1279, item 3) by @berkayturanci in #1397
  • refactor(gates): the gate runner returns one tuple shape by @berkayturanci in #1398
  • release: 1.25.0 by @berkayturanci in #1399

Full Changelog: v1.24.3...v1.25.0

Release v1.24.3

Choose a tag to compare

@github-actions github-actions released this 29 Sep 07:22
7618032

Highlights

  • A gate that cannot judge no longer reads as a pass: an unconfigured build or lint gate, or a jury with no jury CLI, is reported as such, and a plan in which nothing judges the change blocks the merge.
  • A first live run works or says what is missing: keel setup no longer writes a make test gate for a project without one, and keel doctor checks gh and which agent hosts are installed.
  • keel cost-report says when its figures are estimates, and the README, the site and the PyPI page claim only what keel does, with a real recording of keel stopping and clearing a change.

Full notes: CHANGELOG.md

What's Changed

Full Changelog: v1.24.2...v1.24.3

keel-visual-v0.9.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 15:00
3bc141a

What's Changed

Full Changelog: v1.24.2...keel-visual-v0.9.0

Release v1.24.2

Choose a tag to compare

@github-actions github-actions released this 23 Sep 08:01
ff18cab

What's Changed

Full Changelog: v1.24.1...v1.24.2

Release v1.24.1

Choose a tag to compare

@github-actions github-actions released this 22 Sep 21:07
db837e3

What's Changed

Full Changelog: v1.24.0...v1.24.1