Files
Boliang Zhang 08e9edb3d3 fix(release): reconcile preview deltas against full history (#50132)
## Summary of the Pull Request

Fixes preview release branch-transition deltas that incorrectly report
stable cherry-picks as removed when the matching PR exists before the
merge base in `main`.

The resolver now compares PR identities and equivalent patches against
each branch's full reachable history. It also excludes content-free
aggregate promotion merges, such as `main`-to-`stable` release merges,
from semantic release notes.

## PR Checklist

- [x] **Tests:** Added/updated and all pass
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** N/A

## Detailed Description of the Pull Request / Additional comments

`get-preview-release-delta.ps1` previously built identity sets only from
commits after the merge base. A stable cherry-pick after that merge base
was therefore reported as removed even when the same PR had already
merged into `main` earlier with a different SHA.

The updated resolver:

- Collects PR identities from the full reachable history of both release
commits.
- Uses `git cherry` to recognize equivalent patches across the full
histories.
- Ignores merge commits with no independent patch when they only promote
a parent already contained by the opposite branch.
- Documents the full-history comparison in
`.github/skills/release-note-generation/references/preview-delta-resolution.md`.
- Adds regression coverage in
`.github/skills/release-note-generation/tests/preview-release.Tests.ps1`.

This was exercised against preview build `155850552`, where the
corrected delta changed from 11 added / 71 removed PRs to 11 added / 0
removed PRs. Of the false removals, 68 had the same PR identity in
`main`, and three were aggregate promotion merges.

## Validation Steps Performed

- `Invoke-Pester
.\.github\skills\release-note-generation\tests\preview-release.Tests.ps1
-EnableExit` - 26/26 passed.
- Recomputed build `155850552` against published stable `v0.101.2362.0`:
11 added, 0 removed, 0 unattributed commits.
- Ran the canonical preview dry-run verifier: PASS with 7/7 assets
verified.

---------

Copilot-Session: 5e9606ff-44ec-4d35-990e-a1fb2c0a10b1
Copilot-Session: 4953c1b4-3f0f-45b3-84a5-1d26d8800de1
2026-10-27 10:49:46 +08:00
..