X_RELEASE_UNRELEASED_MISSING
Means
CHANGELOG.md has no ## [Unreleased] heading, so a release has nothing to promote
Typical cause
the heading was renamed or deleted. Refused before any manifest is written, and under --dry-run too — guessing where the release notes live is how a release ships the wrong section, and finding out after 47 files have moved is the expensive order to find it out in
Fix
add ## [Unreleased] under the preamble of CHANGELOG.md, above the newest version, then bun run scripts/release.ts --bump patch --dry-run --json