Preview first
buddy upgrade --dry-run lists every file a real run would change, from a snapshot of the release, without writing a byte to the project.
What Laravel Shift sells as a separate service is part of the framework here. buddy upgrade pulls the next release into the app, refreshes dependencies, runs the migrations it brings, and raises the Bun version your CI and containers pin. Every change can be previewed first, and it will not overwrite framework files you edited and did not commit.
All of it in the same install, with nothing to wire together first.
buddy upgrade --dry-run lists every file a real run would change, from a snapshot of the release, without writing a byte to the project.
Uncommitted changes inside managed framework paths stop the upgrade unless you pass --force, so nothing hand-edited is silently replaced.
After the sync the dependencies are refreshed and the migrations the release brings are run, so the app and its schema land on the new version together.
The Bun version your workflows, Pantry config, and Dockerfiles pin moves up to the framework’s, and never down.
buddy config:migrate rewrites config keys a release renamed, as a reviewable text diff rather than a reformat of your file.
buddy migrate:project --from laravel translates Eloquent models and migrations into defineModel() files and SQL, and writes a report of everything left to port by hand.
Buddy scaffolds, runs, and ships this the same way it does the rest of the app.
These share the same models, config, and types, so using them together costs nothing extra.