Release Checklist
Use this checklist before tagging a prerelease, publishing packages, or deploying a hosted ModelFaucet environment.
Source prerelease or private beta
pnpm install --frozen-lockfilecompletes.pnpm deps:reviewhas been reviewed before release.pnpm verify:secretsreports no high-confidence raw secrets.pnpm ga:verifypasses for a source GA release.pnpm hosted:verify-envpasses with the target hosted environment variables or with CI-safe placeholders for source validation.pnpm security:auditreports no high-severity production dependency advisories.pnpm lintpasses.pnpm typecheckpasses.pnpm testpasses.pnpm smoke:localpasses against a seeded local PostgreSQL database.pnpm hosted:check-isolationpasses against a freshly migrated and seeded PostgreSQL database.pnpm --filter @modelfaucet/dashboard buildpasses.pnpm --filter crm-demo buildpasses.pnpm website:buildpasses.pnpm docs:buildpasses.pnpm pages:buildpasses and preserves the website root plus existing docs paths.pnpm db:migrateandpnpm db:seedhave been run against a fresh PostgreSQL database.pnpm compose:verifyvalidates default and hosted Compose configs on a Docker-capable machine.- README quickstart still matches the repository scripts and ports.
- Provider API keys are only documented as server-side environment variables.
- Developer access uses scoped
mf_dev_API tokens for production workflows;DEVELOPER_ADMIN_TOKENis reserved for bootstrap/operator-only contexts. - The public website and scenario demo remain static and do not collect or render provider API key inputs.
- BYOK flows expose visible user controls and no hidden markup or hidden fees.
- Cloud services are not configured to access localhost, loopback, link-local, or private LAN URLs.
- Production deployments set explicit
API_CORS_ORIGINSandGATEWAY_CORS_ORIGINS.
Source GA release
- Stable API, SDK, database migration, and security policies are published.
- Migration and upgrade guides are published in English and Simplified Chinese.
- Production reference architecture is published.
- Governance, maintainership, support policy, release cadence, and security intake are published.
- Package and container publishing strategy is decided and documented.
- Hosted production blockers are explicitly documented instead of treated as completed source checks.
Hosted production release
- Docker Compose smoke test has been run on a machine with Docker available.
pnpm hosted:verify-envpasses withREQUIRE_HOSTED_PROVIDER=1before real provider traffic.pnpm hosted:verify-envpasses withREQUIRE_HOSTED_STRIPE=1before hosted Stripe top-ups.pnpm hosted:smoke-readinesspasses against the hosted API and Gateway public URLs.pnpm hosted:check-isolationpasses against the hosted beta database after migration.- A real LiteLLM test route has been verified with a test provider key stored only in server-side environment or secret manager configuration.
- Stripe Checkout has been verified in test mode with a real test card.
- Stripe webhook delivery has been verified with Stripe CLI or hosted webhook delivery.
- Production
SECRET_ENCRYPTION_KEY, JWT secret, admin tokens, and provider secrets are provisioned through KMS, Vault, or a cloud secret manager. - Database backups, migrations, retention, and restore procedures have been documented for the deployment target.
- Rate limits, request body limits, and gateway timeout values have been reviewed for the deployment target.
- Payout workflow has been reviewed before enabling any real-money settlement.
- GitHub, npm, container registry, domain, and trademark namespace checks are complete.
- Public support, abuse, security, and maintainer contact paths are published.
Tagging
CHANGELOG.mdhas an entry for the release.README.mdstatus text matches the release level.- CI is green on the release commit.
- The tag uses the package version from
package.json. - Generated build artifacts and local environment files are not committed.
