55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
# Phase 8 Cutover and Rollback Runbook
|
|
|
|
## Goal
|
|
Move from legacy-first UI to React-first UI safely, with a deterministic rollback path.
|
|
|
|
## Preconditions
|
|
- `main` branch green on:
|
|
- `npm run test`
|
|
- `npm run test:ui`
|
|
- `npm run frontend:react:check`
|
|
- Milestone #7 issues required for cutover are accepted.
|
|
- Latest regression artifacts are present under `output/playwright/`.
|
|
|
|
## Cutover Gate Command
|
|
Run this gate command before enabling React as default:
|
|
|
|
```bash
|
|
npm run phase8:cutover:check
|
|
```
|
|
|
|
It writes a machine-readable report to:
|
|
- `output/phase8/cutover-check-report.json`
|
|
|
|
## Cutover Checklist
|
|
1. Confirm release candidate commit hash and tag target.
|
|
2. Run `npm run phase8:cutover:check` and archive report artifact.
|
|
3. Verify React path boots and legacy path still boots in dual-run.
|
|
4. Verify save/load/import/export compatibility on fixture corpus.
|
|
5. Confirm MCP tools still return stable API envelopes.
|
|
6. Publish release notes with known limitations and rollback trigger criteria.
|
|
|
|
## Rollback Triggers
|
|
Rollback immediately if any occur post-cutover:
|
|
- New blocker in compile/apply loop.
|
|
- UI interaction regressions that break editing workflows.
|
|
- Crossings/overlaps/readability regressions above agreed thresholds.
|
|
- API/MCP contract break for compile/analyze/layout endpoints.
|
|
|
|
## Rollback Procedure
|
|
1. Switch deployment back to previous stable tag.
|
|
2. Re-enable legacy-first UI mode.
|
|
3. Re-run:
|
|
- `npm run test`
|
|
- `npm run test:ui`
|
|
4. Open incident issue with:
|
|
- failing commit/tag
|
|
- regression screenshots
|
|
- exact reproduction JSON
|
|
5. Keep React path available in non-default dual-run mode until fix lands.
|
|
|
|
## Evidence to Attach to Release
|
|
- `output/phase8/cutover-check-report.json`
|
|
- `output/playwright/ui-metrics-report.json`
|
|
- Updated `docs/release-checklist.md` completion notes
|