Run it

Updating to 2.0.0

What updating a board from 1.5 to 2.0.0 changes by itself, what stays off until you connect a provider, what your repositories get, the GitHub permissions to accept, and how to go back.

2.0.0 brings Architect: the board can run what your repositories run on too, as environments, plans you approve, and incidents. It’s a major version because it’s a big change to what the board can do, not because updating is hard. Updating needs nothing by hand: no new binding, Durable Object class, migration, route, or cron, so Deploy updates the board the way it updated 1.5. Architect stays off until you connect a provider, and until then the board makes no call for it.

This page is for a board on 1.5.3, or on any 1.5 release. A board on a 2.0.0 pre-release has had all of this already; see If you ran a pre-release.

#Update

Update the way you always do (Updating):

2.0.0 updates from any 1.5 release. Deploy checks it answers as 2.0.0 and goes back by itself if it doesn’t.

#What changes by itself

Once the board runs 2.0.0:

#What stays off until you connect a provider

A board with no provider connected makes no call to any provider. Discovery, drift, signals, cost, and the cron’s comparisons run only for environments that have a provider and a desired state, and plans need both. Envelopes start empty, so every scale and restart waits for you until you set one.

To turn it on, connect Cloudflare’s read-only token on Connections (the permissions are in Tokens, GitHub, and the apply workflow). The board only reads with it. Applying a plan in a repository takes more, all on GitHub and none of it on the board. Each repository’s card on Connections has a checklist, Infrastructure tokens, that walks you through it and checks each step:

  1. In that repository, a GitHub environment for each environment that applies (named for it, like staging), limited to the default branch, holding that environment’s write token as CLOUDFLARE_API_TOKEN. The board refuses to start an apply while the GitHub environment lets another branch deploy. Make it on GitHub, on the checklist, makes a missing one with only the default branch allowed when the App has Administration: write (below); the write token is always yours to add.
  2. The repository variable BREAKAWAY_URL, the board’s address.
  3. The apply workflow, .github/workflows/breakaway-infra.yml, on the default branch. A change you propose from an environment’s console brings it when the App has Workflows: write; otherwise run npx breakaway infra init in the repository and merge what it writes.
  4. The board’s GitHub App with Actions: read and write on the repository.

Get started with Architect walks through all of it, from the token to your first approved plan. Short-lived environments share one GitHub environment, short-lived, with its own token. The Architect section of these docs has the rest.

The board’s own install is always observe only: Architect watches it and never changes it.

#Accept the GitHub App’s new permissions

2.0.0’s App asks for three more permissions: Checks goes from read to read and write, and Variables and Issues are new. An App made before it keeps what it had until you accept them, and the board works without them, as the table says.

PermissionWhat it’s forUntil you accept it
Checks: read and writeAn infrastructure change’s plan, posted as a check on its pull requestThe pull request’s page on the board still shows the plan and says why there’s no check
Variables: read and writeFreezing production sets DEPLOYS_PAUSED, and the sync reads itA freeze holds on the board only, and Connections shows Deploy pause with the fix
Issues: read, and the Issues eventRoutines that start when an issue is opened or reopenedThose triggers never fire

On GitHub, open your App’s settings, then Permissions & events: set the three permissions, tick the Issues event, and save. Then accept the new permissions on the App’s installation, once, for every repository it’s installed on.

#Permissions you can add

Three more are optional, and the App’s manifest doesn’t ask for them. Add one only for what it’s for:

PermissionWhat it’s forWithout it
Workflows: read and writeA change you propose from the board commits the apply workflow with it, when the repository needs itThe change comes without it and says so before you approve: run npx breakaway infra init instead
Administration: read and writeMake it on GitHub makes a missing GitHub environment with only the default branch allowed. Nothing else on the board uses itThe checklist gives the steps to make it by hand
Environments: readThe checklist reads a GitHub environment’s secrets by name, to see the write token is there, never its valueThat step says it can’t check

#What your repositories get

The files repos init copies into each repository (the core of the agent prompt, the stub, the tasks skill, and the shared taskrc) change in 2.0.0. A repository gets them when you run npx breakaway repos init <slug> --update in it and merge the result, as with any release:

Claude Code’s plugin carries the new skill, and runs the 2.0.0 CLI, once the stable release moves it.

#What breaks or moves

#If you ran a pre-release

If you ran npx breakaway infra init in a repository on a 2.0.0 pre-release, run npx breakaway infra init --update there and merge the result: the apply workflow has changed since (short-lived environments got their own GitHub environment, the runner now installs once, before any step holds the write token, and a run that applied nothing can be started again from the board). Check each GitHub environment that holds a write token is limited to the default branch.

#Going back

You can go back to 1.5.3 the way you go back from any release (Rolling back): revert the update’s pull request on stable, or wrangler rollback on either channel. 2.0.0 adds no Durable Object class, so Cloudflare’s rollback works, and its data was only added to, so 1.5.3 reads the board as it was. Before you go back: