Repository navigation
RELEASING
Moved from the root README. Production release and rollback for the Cloudflare host. This page describes the workflow as it runs today; the open question at the end records what it no longer does.
The CI workflow runs one job, CI, for every
pull request: hygiene, roadmap and security checks, the generated architecture
diagram, the content build, a fixed set of fast unit tests, vite build, the
first-load budget, and the browser gate (npm run test:e2e:gate). The
main-branch ruleset requires that check and no human approval.
The same workflow runs its production job, and only that job; the CI job
does not run on push. The job checks out the merged commit, rebuilds the app
with npm run build, restores the recitation audio, and writes the commit into
dist/release.txt and dist/release-<sha>.txt. Right before deploying it
reads main from the GitHub API and stops if main no longer points at the
commit it built. So not every push to main deploys: when merges land faster
than the job runs, a superseded push's job fails at this step without deploying
or verifying anything, and the job for the newest commit deploys. That check is
the only guard between the merge and the deploy: nothing is handed from the pull
request's CI run to this job, and the deploy is a fresh build from source. It
deploys with the lockfile's Wrangler:
./node_modules/.bin/wrangler deploy --config wrangler.production.jsonc --message "RISE <sha>"After deploying, the job polls https://rise.syberlabs.io/release-<sha>.txt
until it returns the commit, then checks that / and /try-rise answer 200,
that an unknown /api/ path answers a JSON 404, that /content/catalog.json
passes the browser catalog contract, that every retired inference route
answers 410, and that the release marker still matches once those checks are
done. It writes the result and an owner-acceptance step to the run summary. No
release check calls a model.
Full validation starts when the
CI workflow completes on main, and on manual dispatch: the full unit suite
in four shards, the Scriptorium CLI, and the browser suite in sixteen shards.
It reports failures and uploads Playwright reports. It does not hold or undo
the release.
The GitHub production environment restricts deployment to main. Its
protection rules are configured in GitHub settings and are not recorded in
this repository. Set these environment values before a release:
| Environment | Values |
|---|---|
production |
A separate secret CLOUDFLARE_API_TOKEN; variable CLOUDFLARE_ACCOUNT_ID. |
Scope each Cloudflare token to only the account and deployment permissions it needs. The production Worker holds no model credential: readers bring their own OpenRouter account or run Kev locally (USER-OWNED-AI.md). It holds no secrets: the catalog is a static file. The release check never calls a model.
The syberlabs.io zone and rise.syberlabs.io custom domain must be active,
and the RISE production Worker alone must have a public Access bypass; Relay
must remain protected.
The release does not record prior Worker versions. To roll back, list the versions from a checkout with this configuration and Cloudflare credentials, confirm one is known-good, and restore it with the lockfile's Wrangler:
./node_modules/.bin/wrangler versions list --config wrangler.production.jsonc
./node_modules/.bin/wrangler rollback <VERSION_ID> --config wrangler.production.jsonc --message "RISE rollback"The previous .space site remains available
for browser-local work there. A first production release may have no
known-good prior production version to restore.
Until 2026-09-26 the CI job uploaded the tested dist/ as an artifact and
the production job deployed that artifact without rebuilding. #196 removed the
artifact digest, #204 removed the artifact handoff and the needs: ci link,
and #209 removed the step that recorded prior Worker versions in the run
summary. Whether to restore a build-once handoff is a decision for the
repository owner; it is not made here.
Published from docs/RELEASING.md. Edits made here are overwritten on the next push to main.
Start here
- COMPOSER-FIRST-ROADMAP
- VISION
- PROJECT-KNOWLEDGE
- ARCHITECTURE
- SYSTEM-DESIGN-REVIEW-2026-08-22
- ACCOUNT-SAVES
- RELEASING
- PLUS-CUSTOMER-LIFECYCLE
- AGENTS
Release
Pilot
- LIVE-CURRENT
- LIVE-HANDOFF
- LIVE-MCP
- DIRECTORY-SCREENSHOTS
- INSPECTOR-RUN-2026-10-10
- CLAUDE-RUN-2026-10-10
- CREATIVE-CONTROL-EVALS
- PERCEPTION-EVAL
- SOUND-LEVELS
- WORDING
- RUN-2026-10-08
- COMPOSER-INSTRUMENTS
- CHATGPT-DEMO
- EMBED-WITNESS
- RISE-GATE0
- CHATGPT-HOST-2026-10-04
- LIVE-002-HOST-2026-10-05
- EMBED-STAGE-HOST-2026-10-07
- RELEASE-GATES-2026-10-07
- EMBED-SAFETY-2026-10-05
- LIVE-GEMINI
- LIVE-EVALUATION
- LIVE-RED-TEAM
- CURRENT-CONSOLIDATION
- RISE-CHANGES
The Archive - texts and their editing
- ARCHIVE-CANON-SPEC
- ARCHIVE-CLEANSING-SPEC
- CORPUS-REVIEWER-PROMPT
- TYPESETTING-CANON
- PHRASE-CHUNKING-STUDY
- CHUNKER-AWARENESS-STUDY
- LIBRARY-SPEC
- SOL-PD-ACQUISITIONS-DOSSIER-LITERATURE-2026-07-28
Authoring - scores, rooms, and rendering
- EXPERIENCE-PROGRAM-SPEC
- LIVE-CURRENT-EVENTS-V1
- RISE-CURRENT-V1-SLICE
- RISE-SDK
- SCRIPTORIUM-SPEC
- WORKSHOP-COMPOSITION-STUDIO-SPEC
- AGENT-COMPOSITION-AND-RENDER-SPEC
- NARRATION-LANE-SPEC
- RECITATION-SPEC
- SCRIPTORIUM-STRENGTHENING-SPEC
Reading surfaces
- PAGE-MODE-SPEC
- RHYTHMIC-VISUAL-PRESENCE-SPEC
- IMAGE-STREAM-SPEC
- LATERAL-TRAVERSAL-SPEC
- CONTINUOUS-FIELD-SPEC
- JEV-VARIANCE
- INVOCATION-SKINS
- PHASE-2-SAFETY-SPEC
- SPATIAL-CHAMBER-SPEC
- Premium_Mobile_Chamber
Imagery - what may be shown, and on whose authority
- MUSEUM-ATLAS
- SOURCE-CURATION-SPEC
- SOURCE-EXPANSION-SPEC
- ATRIUM-IMAGERY-SPEC
- PERICOPE-IMAGERY-SPEC
- icon-museum-request-draft
- TEXT-ATTUNED-IMAGERY-SPEC
The Chapel
Direction and unbuilt work
Affect and the Emotions room
Reading decision service and retired gate
Product direction and team tracking
- README
- READER-DIRECTION
- CONSOLIDATED-READER
- COMPOSER-FIRST-ROADMAP
- TRACKER-DESIGN
- 2026-10-03-direction-decisions
- 2026-10-04-composer-decision
- 2026-10-05-consolidated-reader-decisions
- 2026-10-05-embed-stage-decision
- 2026-10-06-score-speech-service-roadmap
- 2026-10-07-current-with-a-look
- 2026-10-07-reader-control-and-replay
- 2026-10-05-one-colour-vocabulary-design
- 2026-10-07-chrome-follows-theme
- 2026-10-07-gallery-follows-with-works
- 2026-10-05-canonical-home-design
- 2026-10-04-reader-evidence
- 2026-10-original-performance-roadmap
- 2026-10-08-voice-hardening-2-findings
- 2026-10-09-feelings-sounds-parked
- 2026-10-10-connector-directory-readiness
- 2026-10-10-connector-submission-packet
- 2026-10-16-mystery-school-complete-library
- 2026-10-13-mystery-school-plan