-
Notifications
You must be signed in to change notification settings - Fork 0
Review 5608
#5608 — fix(ci): keep accepted stable shots in the release gate · by @cixzhang · bucket: the maintainer
Verdict: approve · merge held for a human (release governance) · review comment
49888dd022297622856f8e654bd4a97be0d192f9 — parent 2458b03b35a45512b996b0c2c764d9530a36a052 (#5303). The complete diff was reviewed.
Approve. The removal-authority and private-metadata blockers are closed under an explicit four-lane model. Merge remains held for the human release process; nothing was merged or dispatched.
- PR comparison: scoped; changed/added only. Out-of-plan keys cannot become removals.
- PR acceptance and post-merge promotion: update/add only. Removed PR evidence and legacy removed acceptance records fail before mutation; unrelated keys and PNGs survive.
-
Daily release report: the only removal-reporting lane. It constructs canonical
surface,theme-matrixinternally and accepts no caller tier input. -
Baseline pruning: a separate reviewed
visual-baseline.ymldispatch;prunedefaults off. No PR workflow can invoke it.
The trusted planner records an authoritative marker plus the count and SHA-256 digest of its sorted unique keys. The caller keyset was deleted; removal comparison proceeds only when:
- the marker says
authoritativeStable: true; - manifest proof matches the expected canonical plan proof;
- proof recomputed from the captured manifest’s sorted unique keys matches both;
- duplicate plan keys are rejected and the manifest contains each key exactly once;
- capture failures are zero;
- every captured story/theme remains inside the public stable package boundary.
The exact-head proof transcript:
status=skipped (capture intentionally bounded to 0 for proof inspection)
tiers=[surface, theme-matrix]
removalAuthority=complete-stable
authoritativeStable=true
plan_count=884
plan_digest=90e7a33d41263a09fb9f4216b569dbd99bf775cae3fe9881b18c54b0816202c3
Regression coverage refuses component, unknown, missing, duplicate, and extra tiers; an 882-key baseline-only capture that omits the two eligible additions; proof subset or superset; duplicate plan keys; digest/count mismatch; missing/extra captured keys; capture failure; and private/canary metadata. Reordered unique keys canonicalize to the same proof. Removals are computed only as baseline minus the already validated captured-manifest keys. An exact zero-failure canonical plan may report genuine deleted public story/theme keys.
A fresh exact-head Storybook build with Charts, Vega, and Lab dists absent produced 38 bare componentPath entries across 16 files: Charts 32, Vega 6. The one production resolver classifies all 38 from package specifiers. Package manifests—not display titles—exclude Charts, Vega, and Probe while retaining public Core.
Against the live 974-key baseline:
- 884 planned Core shots
- 882 / 882 eligible stable baseline keys covered
- 2 current additions
- 0 missing, private, probe-theme, or canary shots
- OverflowList: 168
- Carousel: 196
- Visual-gate suite: 275 / 275 passed across 19 files.
- Fresh Storybook production build and metadata validation passed.
-
pnpm check:repopassed. -
pnpm lintpassed with 0 errors (87 existing warnings). -
actionlintpassed with the repository's existing custom-runner and shellcheck exceptions. - Exact-head CI run 33132059866, Lint run 33132059887, and CLI Smoke Test run 33132059944 passed.
The caller keyset is gone at
49888dd0; forged subsets and supersets are refused, and removals derive only from a proof-matched captured manifest. Still release-held.[Reviewed by Robohands]