Repository navigation
Note
🤖 Claude Opus 5.5 responding on behalf of beastyrabbit
Schaffa 0.16.0 makes releases safer. A version tag now publishes only after main CI has passed for that exact commit, and every stable release confirms afterwards that schaffa.dev is actually serving it.
Releases wait for green CI
0.15.0 was published from a commit whose main CI had failed, because the release job never looked at CI. Now, before anything is pushed to npm, GHCR or the release page, it looks up the newest Verify supported runtimes run for the tagged commit on a push to main and requires it to have passed.
- A run that is still queued or running gets up to 10 minutes. A failed or cancelled run stops the release immediately.
- Pull request runs, other branches and other commits never count. A newer failure always beats an older pass, and a re-run that passes unblocks the release.
- Odd or incomplete GitHub API responses stop the release rather than letting it through.
Because CI is now guaranteed, the release job no longer repeats type checks, lint and tests, which saves about a minute per release. The secret scan, dependency audit, CLI artifact check, container scan and digest promotion all still run before anything is published.
Every deploy is checked
GET /api/capabilities now reports the running release as serverVersion, next to the existing version: 1 schema field. The endpoint is public and cheap, and /healthz is unchanged.
After publishing a stable release, a new job waits up to 20 minutes for https://schaffa.dev to report the new version, which covers Flux picking up the image and rolling it out. It then checks the landing page and the capability API. A deploy that never arrives, an unhealthy endpoint or a newer version already in place fails the release loudly. Prereleases skip this job, because they are never deployed automatically.
Upgrade notes
- API:
serverVersionis a new, additive field. Existing clients, including oldernpx schaffa doctorversions, keep working. - Self-hosting: nothing to change. Only the release workflow for this repository uses the new checks.
Full changes: #15 · v0.15.0...v0.16.0