← Blog

bay 0.4.0: large files, locked files and clear retries

Gudjon Gudjonsson · Founder and CEO of OZ · 24 October 2026

bay 0.4.0 is out today. bay is for teams that run many coding agents in one codebase, often on the same files. Git itself is fine, but the human-paced branch and merge workflow breaks at that speed. With bay, each agent submits once, and bay merges only what passed on the latest main. This release reaches past source code: large files, files that never merge, and clearer refusals.

Large files stay out of Git

A video, a design file or a data set makes every clone slow once it enters Git. With [plugin.assets], a new file over max_file_mib goes to your own store instead.

  • Files come back by hash: in another clone at bay install, in views, and read-only in checks.
  • Merged only when stored: a change merges its large files only when the store holds their bytes.
  • A purge never blocks: a store may drop a file's bytes, and later merges go on without it.

One editor at a time

Some files never merge, such as a design file or a scene. Name them in [locks] paths, and the first edit takes the file's lock. The hook stops a second agent's edit early, so no work is lost to a clash. A change to such a file merges only while it holds the lock.

When to retry, in seven words

Every refusal names a fixed reason, the actions you can still take, and retry_when. retry_when takes one of seven plain values, so an agent sorts a refusal at a glance. next_step then names the exact step.

retry_whenBefore a retry can succeed
by_itselfNothing from you: bay retries on its own.
after_waitAnother change, session or holder finishes first.
after_fixYou repair the change, then submit it again.
after_personA person approves the change or lifts a hold.
after_setupSomething on the machine changes: an install, a key, the config, an update or the network.
after_new_mainMain changes first, for example a repair that turns it green.
neverNo retry can succeed.

Main keeps the agent's words

Main's commit carries the agent's own message, with Open: lines for what is left. So git log on main shows what each agent did and what it left open.

Commands that say what they do

  • Everything at once: bay status --all shows every machine, session and runner of the repository.
  • Every branch: bay status --branches classes each branch on the remote, and names local work that no remote holds.
  • A host in one step: bay host <path> creates a bare repository whose main only moves forward.
  • One name for each thing: the process that checks and merges is a runner, in every command, key and field.

Get started

bay is free and open source under the MIT licence, with no paid tier and no account. Install bay, then follow the quickstart to merge your first change. 0.x means a minor release can still change a command, and the changelog names each change.

sh
curl -fsSL https://getbay.io/install.sh | sh

Gudjon Gudjonsson · Founder and CEO of OZ