Recover canonical changelog for immutable release tags
Summary
- align Auto Release changelog preparation with the canonical
changelog-excludepolicy - recover the sole unpublished immutable
v2026.8.10tag by regenerating only its canonical changelog under a tracked-path mutation guard - add executable workflow contracts for ordinary tag pushes, exact-tag recovery, and unexpected mutation refusal
- document the recovery boundary and regenerate
CHANGELOG.mdwithpm-changelog2026.8.7
PM context
- pm-l5bc03 — public changelog integrity and exact-tag recovery
- pm-usq49n — merged snapshot/release recurrence lineage
- pm-lwnifd — immutable exact-tag recovery foundation
Verification
- focused release/workflow contracts: 32/32
- full suite: 468 files, 7,142 tests
- exact coverage: 100% statements (50,923/50,923), branches (37,237/37,237), functions (10,456/10,456), lines (49,265/49,265)
- ESLint, jscpd (zero clones), static quality and 100% docstrings, secret scan, docs links, and tracker measurement ratchets pass
- clean detached
v2026.8.10worktree regenerated onlyCHANGELOG.mdplus managed-extension timestamp metadata; the recovered changelog matched reviewed main byte-for-byte
Release safety
The existing v2026.8.10 tag remains immutable at f4dcfa8460d3934004e449f93bf138ceef2c535b. This PR does not create, move, or replace a tag and does not publish npm directly. After merge, the guarded Release workflow will be dispatched for that exact tag.
Closes #959 after successful production recovery.
Summary by Sourcery
Align release automation and CI workflows with canonical changelog-exclude policy and add guarded exact-tag changelog recovery for immutable tags.
New Features:
- Introduce exact-tag changelog recovery that regenerates only the package changelog under a tracked-path mutation guard for immutable tags.
Enhancements:
- Update release pipeline to pass the canonical --exclude-tag changelog-exclude policy to pm-changelog generation.
- Extend CI workflow to conditionally run full changelog regeneration or verification based on dispatch mode while preserving static quality ordering.
- Tighten integration tests to cover changelog-exclude usage, exact-tag recovery behavior, and refusal on unexpected tracked-path mutations.
Documentation:
- Document the immutable exact-tag recovery boundary and regenerate the main CHANGELOG with the updated pm-changelog tooling.
Tests:
- Add workflow contract tests that exercise ordinary tag pushes, exact-tag recovery paths, and guarded failure on unexpected tracked-path mutations.
Summary by cubic
Align release changelog generation with the canonical exclusion policy and add a guarded exact‑tag recovery that regenerates only CHANGELOG.md for unpublished immutable tags. This preserves the public changelog and lets us recover v2026.8.10 without moving the tag.
- Bug Fixes
- Release prep now calls
pm-changelogwith--exclude-tag changelog-exclude. - GitHub workflow adds exact‑tag recovery for
workflow_dispatch+RECOVERY_SOURCE_MODE=tag; regenerates only the changelog and fails if any other tracked path changes (managed extension metadata allowed). - Regenerated
CHANGELOG.mdto drop excluded entries. - Updated docs and tests to codify the policy and the recovery guard.
- Release prep now calls