Skip to content

Review 5608

Cindy Zhang edited this page Aug 28, 2026 · 9 revisions

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


Head reviewed

49888dd022297622856f8e654bd4a97be0d192f9 — parent 2458b03b35a45512b996b0c2c764d9530a36a052 (#5303). The complete diff was reviewed.

Verdict

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.

Four authority lanes

  1. PR comparison: scoped; changed/added only. Out-of-plan keys cannot become removals.
  2. 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.
  3. Daily release report: the only removal-reporting lane. It constructs canonical surface,theme-matrix internally and accepts no caller tier input.
  4. Baseline pruning: a separate reviewed visual-baseline.yml dispatch; prune defaults off. No PR workflow can invoke it.

Closed canonical-plan proof

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.

Built Storybook ownership proof

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.

Production result

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

Verification

  • Visual-gate suite: 275 / 275 passed across 19 files.
  • Fresh Storybook production build and metadata validation passed.
  • pnpm check:repo passed.
  • pnpm lint passed with 0 errors (87 existing warnings).
  • actionlint passed 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.

Review posted

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]

Clone this wiki locally