Project config (fabro.toml)
Fabro now supports project-level configuration viafabro.toml. Previously, you had to pass full file paths to fabro run and configure each run individually. Now, you can define workflow aliases, pull request defaults, and retro settings at the project level. Fabro discovers fabro.toml by walking up from the current directory, similar to how Cargo or Node find their config files.
fabro.toml
exe.dev sandbox maturation
The exe.dev sandbox provider now supports the full workflow lifecycle. Previously, exe.dev VMs could run agent stages but lacked git integration, cancellation, and checkpointing — making them unusable for real multi-stage workflows. Now, Fabro automatically clones the local git repo into exe.dev VMs, supports remote git checkpointing between stages, and wires up cancellation tokens so stopping a run cleanly tears down the VM. You can also specify a custom container image and connect via SSH:run.toml
fabro cp — copy files to and from sandboxes
After a workflow run completes, you often need to retrieve files from the sandbox — build artifacts, generated reports, or logs. Previously, there was no easy way to get files out of a completed run’s sandbox. Now, fabro cp lets you copy files in either direction using the run ID.
fabro pr create — create PRs from completed runs
Sometimes you want to review a run’s changes before opening a PR, or a run finishes without auto-PR configured. fabro pr create lets you create a pull request after the fact for any completed workflow run, using the persisted manifest, conclusion, and diff from the run’s log directory. PRs are created as drafts by default.
fabro system df — disk usage reporting
Run logs and worktrees accumulate over time. fabro system df shows a breakdown of disk usage across your run logs directory and any preserved worktrees, so you know when it’s time to run fabro system prune.
More
CLI
CLI
- PRs are now created as drafts by default; opt out with
draft = falsein[pull_request]config - Added
[sandbox.local] worktree_modeconfig (always/clean/dirty/never) for controlling when git worktrees are created - Added
[pull_request]config section incli.tomlso auto-PR works with.fabrofiles - Added version info (semver, git SHA, build date) to
fabro --version - Run summary now shows Run ID, logs path, base commit, branch, and PR URL
- Workflow run output now shows local time instead of UTC
Improvements
Improvements
- Fatal errors now display with colored output and suggest related workflows
- Git push is skipped when the local branch is already in sync with origin
- Subagent status lines now indent deeper than tool calls in CLI progress for clearer hierarchy
Fixes
Fixes
- Fixed deadlock in retro agent session when event channel fills up
- Fixed PR body rendering bugs in auto-generated pull requests
- Fixed 4 safety bugs in
fabro system prune(symlink traversal, race conditions) - Fixed
@filereferences failing when files aren’t tracked by git - Fixed
fabro validatenot supporting TOML workflow config files - Fixed pipe deadlock in local sandbox when child process output exceeds 64KB
- Fixed shell-quoting in sandbox cleanup commands