WnBreadcrumb._onSlot inserted separator <span>s into its own light DOM on
slotchange but cleaned up in the shadow DOM, so they were never removed — each
insertion re-fired slotchange, looping the main thread and wedging the showcase
page. Made _onSlot idempotent: exclude own separators when reading items, and
mutate only when separators are not already correct.
- Un-fixme the showcase visual test; add a warm-up full-page capture so
deviceScaleFactor-2 sub-pixel snapping settles before the assertion. All 5
visual tests pass.
- Remove the dead Google-Fonts @import from colors_and_type.css (token stacks are
system-ui; webfont unused + a CI-flake source; no visual change).
- Unblocks WHYNOT-WP-0003 T08 (showcase = per-version visual catalog); both T11
and T08 marked done.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- scripts/release.mjs + `make release VERSION=x.y.z`: guarded release cut —
bumps package.json, relabels CHANGELOG [Unreleased] → [x.y.z], commits, and
creates the annotated git tag. Refuses on dirty tree, existing tag, duplicate
section, or empty [Unreleased]. Never pushes (outward step stays manual).
- DesignSystemIntroduction.md §6: document the release ritual; §9: fix the
stale bootstrap host + tag note.
- README: bump the install pin to the first real tag (v0.3.0).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- README: correct the Node-tooled install host (placeholder gitea.example.com →
gitea.coulomb.social/coulomb/whynot-design) and rewrite the Type/font prose to
match the actual tokens (system font stacks, no webfont; Plex kept as history).
- WHYNOT-WP-0003 T06: add a "Tracking whynot-design from a consuming repo" README
section (pin → inspect → drift → adopt) and reconcile the install pin once
T01/T02 publish a tag.
- Record the README fixes as ADHOC-2026-06-27.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Versioned IR releases (Gitea npm) + a consumer-side drift-check so downstream
repos can pin whynot-design, inspect a version, and track changes at their own
pace. Status: proposed (awaiting review). Defaults: Gitea npm distribution +
snapshot-diff drift basis; live contract-parity deferred.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>