Repository navigation
v0.9.5
Fugaro v0.9.5
Install:
- Homebrew:
brew install dimipaun/tap/fugaro - Go:
go install github.com/dimipaun/fugaro/cmd/fugaro@v0.9.5 - Or download an archive below and verify it against
checksums.txt(see docs/release.md).
Highlights
- The desktop console has its new look: one dark stylesheet bundled into the app, a two-column layout with an installation rail beside the screens, styled Live, Spend, Projects and Run screens, keyboard navigation (the arrow keys through the navigation and the rail, Command+digit on macOS or Control+digit elsewhere for a rail row) and the website's mark as its icon; it stays read only and is published for this release as its own download,
console-v0.9.5. fugaro budget set,fugaro budget killandfugaro budget resumetake--repowith no value to mean the repository this checkout belongs to, sofugaro budget set --repo --daily 150sets the caps of the repository you are standing in, and the bare form is refused outside a checkout whose origin names a repository rather than guessed.fugaro project repos lslists the project's allow-list against the repositories that have actually run there (read from the runs bucket and the daily spend records rather than from the runs in flight), marks each one admitted or not, and says so plainly when a repository's name cannot be recovered.fugaro project syncis new: it asks GitHub which repositories the project's GitHub App is installed on and offers the ones the allow-list does not admit yet as one list confirmed once, only ever adding names (reading the App's private key needs--github-app-key, which is refused in a coding agent's session).fugaro init --provision-batchis turned back on, with the reaper's role reduced to the five permissions Google defines (batch.jobs.cancel, which is not a permission Google has, is gone, so the role can be created), andfugaro backends lslists the compute backends a project config may name and which one it uses; both are groundwork, since no run can use the Batch backend yet.- The provider price catalog was checked on 2026-10-20 and carries 5 models over 95 endpoints (75 ZDR-eligible).
For operators
Only the database rules move in this release, so the order is short: upgrade the CLIs first, because a 0.9.0 fugaro doctor reads this release's rules as a skew and prescribes the redeploy that would undo them.
- Per machine — upgrade the CLI on every machine that runs
fugaro doctororfugaro initagainst the installation:brew upgrade dimipaun/tap/fugaro. - Per repo checkout — run
fugaro upgrade --local, so the plugin pin follows the CLI (the setup and working skills changed) without a cloud call. - Per installation, in your own terminal, outside any repository checkout — run
fugaro init --firebase <gcp-project>. It deploys this release's database rules (the credentials service's groundwork: thecreds/node denied to every run token, and new optional children only a credentials-cascade run writes) and records their generation atconfig/limits/credsRules; it prints what it changes before it applies anything. Until it runs, this release'sfugaro doctorreportspolicy-rules-skewas a warning, and nothing else behaves differently. In a checkout it would also pin this release's base image and move the shared jobs onto it, which this release does not need.
Nothing else is required: no policy republish, no fugaro init --repo and no image rebuild. The runner's changes are the wording of one error and fields only a credentials-cascade run writes, and no launch check asks for a 0.9.5 base image. When you do move a repository's images with fugaro upgrade (its cloud step) or fugaro image refresh, the shared jobs follow only on a later fugaro init --firebase <gcp-project>, per installation, run on that machine, as in 0.9.0.
Known limits
- The Batch backend is still disabled.
backend: cloud-batchis refused by this build, so no run can use it, and once it is enabled a run with a sealed budget token will be refused on it by design (the seal's key cannot be kept out of a Batch job's definition).fugaro init --provision-batchcreates billable, lasting resources (a Cloud NAT and router, a boot image rebuilt on a schedule) that nothing uses yet, and its apply has not been run against a live project: the owner-run Check 57b ofdocs/gcp-live-checklist.mdis NOT RUN. Run it only to try the groundwork. - The credentials service is not usable. This release carries only its groundwork (the database rules above, the policy's
credentialsblock and per-repository admissions); there is no service to deploy.routing.claude.via: cascadeis accepted in a routing block but changes nothing yet (a Claude call still goes direct), and publishing it withfugaro project policy publishmakes every older CLI refuse each launch and publish of the project and every older runner halt its runs, which the publish's own diff warns about, so do not publish it. - An older CLI can undo this release's rules. Once step 3 has run, a 0.9.0
fugaro doctorreportspolicy-rules-skewand prescribesfugaro init --firebase; run with that older CLI, it redeploys the older document and takes the credentials children away. Upgrade that machine's CLI instead: this release'sfugaro doctorthen reports the older document aspolicy-rules-skewin its turn, and itsfugaro init --firebaseputs this release's rules back. - The price catalog has no Claude rows. A Claude model named in a route (the
anthropic/<id>a provider route claims) must be priced undermodel_pricesin the project config; the catalog prices none of them. - Managed projects stay disabled, exactly as in 0.9.0. Every command that would create a managed project or act as its deployer still refuses before any cloud call, and the deployer's redesign is not in this release.
- The console still asks for each installation by hand. Its installations window takes a project name you type and a
fugarobinary, a config file and a checkout you choose; finding them by itself is planned for 0.9.6. - The live checks have not been run, and only you can run them. Every owner-run, sandbox-only check in
docs/gcp-live-checklist.mdthat this release's changes touch is still NOT RUN, Check 57b among them, andfugaro project synchas not been run against a live GitHub App.
Changelog
- release 0.9.5: the two docs that name the released CLI say 0.9.5, and the checklist says to move them before the bump (#755)
- release prep: price catalog regenerated, pricing checkedAt, managed-deployer release label (0.9.5) (#744)
- brand: the owner's 2048 px logo is the new source; derived icons regenerated (#740)
- mobile: declare the export-compliance answer in the build's config (#745)
- mobile: declare the Expo SDK 58 dependencies, so
eas buildcan find an SDK (#738) - website how-it-works: close the nine findings the diagram rounds' reviews left (#739)
- release notes: v0.9.5 highlights and the end-user summary (#743)
- website how-it-works: one diagram with arrows, and the run in words under it (#726)
-
Task:
fugaro budget set --repowith no value means this checkout's … (#668) - compute: Task 9 follow-ups — the socket gid's field, the reaper pin's name, Task 10's gid gate, and the plan-only rebuild (#725)
- compute: batch.image's path grammar, and a shared-config claim the reader does not make (Task 8 follow-up) (#724)
- compute: the provisioning that completes — the reaper's five permissions, the recorded socket gid, and
--provision-batch(Task 9) (#703) - console: Task 6.5's four leftovers — three rows on the physical key, and a log told straight (#723)
- console: the app icon is the website's mark (#722)
- compute: the Batch opener, its configuration,
fugaro backends lsand the seam's call sites (Task 8, first half) (#702) - website home page: the Benefits points bigger, bolder, with an icon each (#718)
- console: the window paints its ground first, and the nav and the rail take the keyboard (#717)
- project sync and project repos: enrollment as data (plan task 4.1) (#662)
-
Task: credentials service Task C1.3: the rules (creds/ denied, the ru… (#671)
- console: the Task 6.4 leftovers — two tones, a guard that read the design, and no count of the theme's files (#720)
- compute: Task 14 — the seal's carrier on Batch is refused, and the refusal is the answer (#704)
- console: the screen rules, and the fifth number hook (Task 6.4) (#714)
- C1.2: the cascade's credentials block, the per-repository admissions and
via: cascade(0.9.5) (#670) - console: Task 6.3 follow-up — the two stale docstrings from #709 (#713)
- mailbox P4.1 T1: the message binding and the schema vectors (SECURITY-SENSITIVE) (#695)
- website privacy gate follow-up: the two-tools clause is held to its sentence, and P4's amendment says the always-on truth (#712)
- console: Task 6.3 — the layout, and the installation rail (#709)
- website: the stacking gate's two follow-up gaps (#678 review) (#710)
- console: the Task 6.2 follow-up's two open review leftovers (#708)
- website privacy statement: the app's analytics and crash reporting are always on (owner ruling) (#705)
- website: the console downloads follow console 0.9.0, and the build holds the tag prefix (#707)
- website: the header paints above the page's blocks, so the mobile menu is never covered (#678)
- console: the stylesheet step's review minors and nits (Task 6.2 follow-up) (#701)
-
Task: Cloud Batch / compute backend: the implementation plan (0.9.5) (#673)
- mobile P3.5: the voice screen — the interrupt switch, the queue, the offline refusal, the lease (#677)
- mobile: demo mode — "Try the demo" on the first screen, for Google Play review (#696)
- console: the stylesheet is bundled, served and linked (Task 6.2) (#694)
- mobile: the job list (P3.3) — numbers and states only (#666)
- mobile: the text screen (P6.9) — the same pipeline with a keyboard instead of STT (#665)
- website: the security page is three things, and nothing else (#680)
- website: a privacy statement that covers the software, and the stores can link (#689)
Base images
Published by the images workflow for this tag:
ghcr.io/dimipaun/fugaro-history:0.9.5andghcr.io/dimipaun/fugaro-history:0(the sweeper and history job's image)ghcr.io/dimipaun/fugaro-base:0.9.5andghcr.io/dimipaun/fugaro-base:0(one index for linux/amd64 and linux/arm64; per-architecture tags0.9.5-amd64and0.9.5-arm64)
The images workflow then pulls each one with no login and fails if it is not public or lacks linux/amd64 (and, for fugaro-base, linux/arm64); each image's digest is in that run's summary.
The Terraform modules, the schemas and the plugin are versioned by this same tag.