Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 23:57
· 1638 commits to main since this release
Immutable release. Only release title and notes can be modified.
f810f14

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 NAME or agent.recipe: NAME in fugaro.yaml; three ship built in, default (exactly today's loop), cheap-loop-senior (a short first-line review, then one senior review) and claude-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, show and validate inspect them, and fugaro validate checks 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 a ship verdict from the review.
  • fugaro watch and fugaro ls show 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 from agent.recipe.
  • fugaro run prints 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

  1. Upgrade the CLI (brew upgrade dimipaun/tap/fugaro) and every CI job and teammate's CLI that runs fugaro against a repository before any repository merges agent.recipe: into fugaro.yaml: older versions refuse the key as unknown.
  2. 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.
  3. 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 its base_images.<kind> entry first), fugaro init --repo in the checkout, then fugaro 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.
  4. 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.0
  • ghcr.io/dimipaun/fugaro-web-node:0 (moves to the highest release of the major)
  • ghcr.io/dimipaun/fugaro-go:0.5.0 and ghcr.io/dimipaun/fugaro-go:0
  • ghcr.io/dimipaun/fugaro-java-services:0.5.0 and ghcr.io/dimipaun/fugaro-java-services:0
  • ghcr.io/dimipaun/fugaro-history:0.5.0 and ghcr.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.