fix(showcase): break wn-breadcrumb slotchange infinite loop (WHYNOT-WP-0002 T11)
Some checks failed
ci / check (push) Has been cancelled
ci / release (push) Has been cancelled

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>
This commit is contained in:
2026-06-27 20:10:41 +02:00
parent 76e516f6d9
commit a89bb563a0
6 changed files with 79 additions and 24 deletions

View File

@@ -6,6 +6,23 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Version
## [Unreleased]
### Fixed
- **Showcase page no longer wedges the renderer** (WHYNOT-WP-0002 T11). `<wn-breadcrumb>`
inserted separator elements into its own light DOM on `slotchange` while cleaning up
in the shadow DOM, so separators were never removed — each insertion re-fired
`slotchange` and the main thread looped forever, so `examples/showcase/index.html`
never finished rendering. `WnBreadcrumb._onSlot` is now idempotent (excludes its own
separators; mutates only when they are not already correct). The showcase visual test
is un-`fixme`'d and captures a stable `showcase.png`, unblocking WHYNOT-WP-0003 T08
(showcase as per-version visual catalog).
### Removed
- **Dead Google-Fonts `@import`** from `src/styles/colors_and_type.css`. Every token
font stack is system-ui based, so the imported IBM Plex webfont was unused; it was
also a documented source of CI flakiness. No visual change (system fonts unchanged).
### Added
- **Versioned IR manifest + consumer drift-check** (WHYNOT-WP-0003, Phase 14). The