Update a deployed PDS
Cirrus is published as @getcirrus/pds on npm. The scaffolded project pins the version; updating means bumping the dependency and redeploying.
Check the current version
Section titled “Check the current version”From the project directory:
pnpm list @getcirrus/pdsCompare against the releases on GitHub or the npm page.
Read the changelog
Section titled “Read the changelog”Before updating, read the changelog for breaking changes:
Cirrus follows semver while in beta, but the surface area is still in flux. Breaking changes are noted explicitly in the changelog.
Update the dependency
Section titled “Update the dependency”pnpm update @getcirrus/pdsFor a major-version bump, allow majors:
pnpm update @getcirrus/pds --latestIf both packages updated, also update @getcirrus/oauth-provider.
Test locally
Section titled “Test locally”pnpm devThe Vite dev server starts the Worker locally on port 5173. Use pds status --dev and pds passkey list --dev to verify auth and the Durable Object still work as expected.
Deploy
Section titled “Deploy”pnpm run deploywrangler deploy pushes the updated Worker. The Durable Object’s storage is preserved. Existing sessions remain valid unless a release explicitly invalidates them (the changelog calls this out).
After deploy, run pds status against production to confirm the upgraded Worker is healthy.
Roll back
Section titled “Roll back”If the new release is broken, roll back by pinning the previous version:
pnpm add @getcirrus/pds@<previous-version>pnpm run deployThe Durable Object’s storage is forward-compatible within a major version. Rolling back across a major may not work if the release included storage migrations — the changelog flags this.
Updating the scaffolder
Section titled “Updating the scaffolder”The scaffolder (create-pds) is a separate package. It does not need to be updated to update an existing deployment; create-pds is only used to scaffold a new project.
To use a newer scaffolder for a new project:
npm create pds@latest