Release checklist
v1 product export is PDF, ODT, and DOCX via exportDocument. LibreOffice/Word round-trip is still not a CI gate (Roadmap).
- [ ]
pnpm run check:typespasses (strict) - [ ]
pnpm run check:zero-depspasses - [ ]
pnpm run lintpasses (core isolation) - [ ]
pnpm run buildproduces deterministicdist/(hash stable with fixed clock) - [ ]
pnpm run testunit + conformance + integration +test:security - [ ]
pnpm run test:visualandtests/visual/snapshotscommitted - [ ]
scripts/validate-fixtures.tspasses for all schema versions - [ ]
scripts/smoke-export.tsproduces valid PDF/ODT/DOCX (magic bytes, deterministic with fixed clock) - [ ] Open the playground PDF in a viewer: tables are contiguous; images align; PNG downscale when resized down
- [ ] Playground ODT/DOCX download; HTTP
?format=odt|docx - [ ] Visual snapshots for toolbar, document, tables, variables, images, equations (see
tests/visual) - [ ] Security corpus and fuzzing (
scripts/fuzz.js --seed=42 --iterations=10000) passes without crash - [ ] Performance budgets checked (
docs/perf-budgets.md) - [ ]
docs/api-report.mdregenerated (node scripts/generate-api-report.js) and reviewed for semver - [ ]
migrations/applied on staging PG and downgrade tested if needed - [ ]
CHANGELOG.mdupdated, version bumped per semver (1.0.4for this trial) - [ ] GitHub secret
NPM_TOKENset (never in git) - [ ] Push git tag
vX.Y.Z(must matchpackage.jsonversion) → workflow Publish npm - [ ] Confirm npm
velo-text@beta(or@latest) and the GitHub Release
Remaining Office checks
- [ ] Open and re-save in LibreOffice and Microsoft Word
- [ ] No "Word found unreadable content"
Sign-off
- [ ] Two screen readers tested (VoiceOver, NVDA) for toolbar and atomic nodes
- [ ] Contrast checked for all 4 themes (see
src/theme/index.ts) - [ ] Backup and restore tested on staging