cast/CHANGELOG.md
claude-bot-andresmgsl 53ef175662 test: release.test.ts keeps only cast's own surfaces; changelog line
The machinery halves — notes extraction, arming, monotonicity, the drill
gate, the old workflow's shape pins — go where their subjects went:
ceremony's test/ carries changelog.test.sh, changelog-armed.test.sh,
changelog-monotonic.test.sh and drill-recorded.test.sh at the 0.1.0 pin
(upstream equivalence verified per ceremony#13's rule), and the pinned
actions enforce them in ci.yml. What stays, retargeted at what can still
break HERE: the caller stubs' load-bearing shape (one push key, the
package-json backend, CONSUMERS.md's same-tag rule across all six
ceremony references), the artifact hook's install contract (asset name,
staged layout, no tests, own toolchain), the drill doctrine in cast's own
docs (independence + candidate-ref pinning, now against drills/README.md),
and the installer's three channels, untouched. 1374 -> 418 lines;
722 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 14:03:15 +00:00

79 lines
2.7 KiB
Markdown

# Changelog
History before 0.1.0 lives in git — cast has said `0.1.0` in `package.json`
since its first commit, but grew its release surface (this file,
`cast --version`, tagged releases with a prebuilt asset) on the way to
actually cutting it, and this file starts there.
## Unreleased
### Changed
- The release flow and labels automation now run heavy-duty/ceremony's shared
machinery at 0.1.0; the prebuilt-asset build moves to the release-artifact
hook (heavy-duty/ceremony#15)
## 0.2.0 — 2026-07-21
### Added
- CI refuses a release PR with no drill record at `drills/<version>.md`
- An application can declare HTTP basic auth, and `apply` sets it (#76)
- `cast github-app create` / `cast github-app register` run the App Manifest
flow (#7)
### Changed
- `state:needs-human` is set at handoff, not by the cron (#131)
- PR labels split into two axes: `state:*` (whose ball) and `blocker:*` (what
is in the way); `state:needs-rebase` is retired (heavy-duty/box#138)
- The `NO_API_COVERAGE` row for Basic Auth now says services (#76)
- Changelog entries are one line each, and the whole file now follows the rule
(#136)
### Removed
- BREAKING: `scripts/register-github-app.sh` is gone; use `cast github-app
register` (#7)
### Fixed
- Three test files from #124/#125 allocate through `tmp()`, not raw
`mkdtempSync` (#135)
- A PR that deletes a shipped release heading is now CI-red (#133,
heavy-duty/box#122)
- A duplicate release heading is caught even where the guard cannot see the
base (#133, heavy-duty/box#143)
- A label the repo does not have no longer takes the whole label edit down
with it
- An unreadable check rollup no longer reads as "nothing is failing"
- `state:needs-human` no longer appears on PRs a human cannot merge (#127,
heavy-duty/box#136)
- CI lints every tracked shell script, and proves the set is complete (#118)
- The shellcheck sweep covers extensionless scripts such as `bin/cast` (#121)
- `cast` no longer leaves a full repo clone in the temp dir on every run (#117)
- The test suite reaps its temp directories (#117)
## 0.1.1 — 2026-07-19
### Fixed
- The release ceremony re-arms `## Unreleased`, and CI is red when it does not
(#113)
## 0.1.0 — 2026-07-19
### Fixed
- The release suite accepts the ceremony's own tree (#108)
- `apply` no longer demands a GitHub App for a manifest that declares no
applications (#103)
- A manifest with no `${…}` refs applies without a secret store (#104)
- `CAST_AGE_KEY_FILE_<ENV>` is settable for every environment name (#102)
### Added
- Merging a release-labeled PR is the release, and the release re-arms main
itself (#111)
- Tagged releases with a prebuilt dist asset, and an installer that installs
them (#96)