Repository navigation
v0.5.0
·
1638 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Fugaro v0.5.0
Install:
- Homebrew:
brew install dimipaun/tap/fugaro - Go:
go install github.com/dimipaun/fugaro/cmd/fugaro@v0.5.0 - Or download an archive below and verify it against
checksums.txt(see docs/release.md).
Highlights
- Recipes: the task loop is now a named, selectable recipe. Pick one with
fugaro run --recipe NAMEoragent.recipe: NAMEinfugaro.yaml; three ship built in,default(exactly today's loop),cheap-loop-senior(a short first-line review, then one senior review) andclaude-solo(one model implements and reviews). A repository with no recipe behaves exactly as before. - A project can define its own recipes once for all its repositories with
fugaro recipes publish, and a repository can add its own under.fugaro/recipes/; the first match wins in the order repository, project, built-in catalog.fugaro recipes ls,showandvalidateinspect them, andfugaro validatechecks a repository's recipes. - Recipes only arrange the loop. They never name a model (models still come from
agent.models), never change budget or token caps, and a pull request is still ready only with a passing test on the final commit and ashipverdict from the review. fugaro watchandfugaro lsshow which recipe a run used, and a follow-up (fugaro run --pr) keeps the recipe of the run it continues, including one the runner chose fromagent.recipe.fugaro runprints the recipe it will use before launching and refuses to launch a recipe run on a job image built from a base older than 0.5.0, naming the steps that fix it.
For operators
- Upgrade the CLI (
brew upgrade dimipaun/tap/fugaro) and every CI job and teammate's CLI that runsfugaroagainst a repository before any repository mergesagent.recipe:intofugaro.yaml: older versions refuse the key as unknown. - In your own terminal, run
fugaro init --firebase <firebase-project-id>for each installation (the Firebase project it already uses). Its Firebase stage deploys the updated database rules, and asks its usual confirmations; until then runs work, but the dashboard shows no recipe name. - For each repository that will use a non-default recipe:
fugaro init --base <kind>from outside the checkout (a custom base image in your local config is never replaced: remove itsbase_images.<kind>entry first),fugaro init --repoin the checkout, thenfugaro image build --repo <owner/name> --workflow <name>. A recipe run is refused on an image built before this release, and the refusal lists these steps. - To share a recipe across a project, run
fugaro recipes publish <file>in your own terminal (it refuses inside a coding-agent session). Project recipes need the default-named runs bucket,fugaro-runs-<gcp-project>.
A project recipe named default replaces the built-in default for every repository in the project, and then every launch carries it and needs 0.5.0 images. Recipes cannot yet run checks, branch or extend one another; see docs/recipes.md.
Changelog
- recipes 5/5: user docs and the setup skill (stacked on #159) (#160)
- recipes 4/5: recipe in the dashboard registry, RTDB rules, watch and ls (stacked on #158) (#159)
- recipes 3/5: CLI resolution, --recipe, recipes commands, validate (stacked on #157) (#158)
- recipes 2/5: the runner runs a recipe's plan (stacked on #156) (#157)
- recipes 1/5: recipe package, catalog, schema, agent.recipe, task.recipe (#156)
Base images
Published by the images workflow for this tag:
ghcr.io/dimipaun/fugaro-web-node:0.5.0ghcr.io/dimipaun/fugaro-web-node:0(moves to the highest release of the major)ghcr.io/dimipaun/fugaro-go:0.5.0andghcr.io/dimipaun/fugaro-go:0ghcr.io/dimipaun/fugaro-java-services:0.5.0andghcr.io/dimipaun/fugaro-java-services:0ghcr.io/dimipaun/fugaro-history:0.5.0andghcr.io/dimipaun/fugaro-history:0(the sweeper and history job's image)
The images workflow then pulls each one with no login and fails if it is not public or lacks linux/amd64; each image's digest is in that run's summary.
The Terraform modules, the schemas and the plugin are versioned by this same tag.