Skip to content

v2.6.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 21:43
· 104 commits to main since this release

Better Fullstack has always been good at the first minute of a project. 2.6.0 is about every minute after it.

Until now the CLI could scaffold a stack and then had nothing more to say. This release adds a full lifecycle around an existing project — inspect it, plan a change, apply it, undo it — and it does that transactionally, so a half-applied change is no longer something you resolve by hand.

Change a project after you've created it

Two new commands, and two existing ones rebuilt on the same contract:

  • status (new) — what your project is actually made of, read from its manifest rather than guessed.
  • remove (new) — takes a stack part back out, behind a plan-then-apply gate.
  • update — now plans a stack change, shows the diff, and applies it only against a review token from that exact plan.
  • doctor — checks the project against the current templates and reports drift.

The transaction layer underneath them is new in this release, and every mutating path runs through it. If an apply fails partway, the project is restored rather than left in a mixed state, and bfs_recover_project_transaction can recover a run that was interrupted. Plans and applies are bound together by a token, so an apply cannot silently act on a stale plan — the thing you reviewed is the thing that runs.

The MCP server exposes the same lifecycle: bfs_plan_part_removal, bfs_apply_part_removal, and bfs_recover_project_transaction join the existing planning tools, so an agent gets the identical review-then-apply contract a human does.

One command reaches every language

The old hero command pinned --backend none --frontend none --ecosystem react-native to scaffold a mobile app. Beyond reading as a double negative, it quietly locked you out of Kotlin, Swift, and Flutter, which only existed inside the multi-ecosystem composer.

--shape fullstack|frontend|backend|mobile replaces that. You name what you're building, the CLI asks which language or platform fits, and it runs only the prompts that shape needs. Mobile routes React Native through the existing flow and Kotlin, Swift, and Flutter through stack-graph parts. .NET frontends now build through the stack graph too, instead of a special case.

New stack options

  • Vite+ workspace tooling — the Vite+ toolchain as a first-class workspace option, with compatibility gates so it cannot be combined into a broken workspace.
  • Bot protection — Vercel BotID and Cloudflare Turnstile, gated to the frontends and backends that can actually host them.
  • Vercel Analytics — with a warning when the chosen frontend has no template for the provider, rather than generating something that does not run.

Web

The hero is now full-viewport and centres on a single copyable command, with a command bar for MCP clients beside it. The stack builder is grouped into sections with compact subsections and renders every category as option cards, which makes a 973-option surface navigable instead of a wall of pills. Returning visitors get a changelog widget. Five documentation pages that crashed are fixed, and the duplicates around them are gone.

Fixes worth calling out

Roughly a third of this release is hardening on the lifecycle work above — ownership and recovery, mutation boundaries, provenance-safe removal reviews, executable removal commands. Beyond that: paraglide-js is held at 2.23.2 because lix 0.12's native addon needs glibc 2.38+ and breaks Vercel's Amazon Linux image; the Storybook family is held at 8.x; Strapi client calls no longer pass Next fetch options they never supported; and the AdonisJS SigNoz tracing import gets the explicit extension nodenext requires.


Full commit log

   🚀 Features

   🐞 Bug Fixes

    View changes on GitHub