mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 14:16:28 +03:00
Addresses two cursor findings on extractMatchingSourceCss plus an adjacent hazard in the same removal machinery: - Class matching is token-bounded, never substring: .btn no longer seeds .btn-primary and .stage no longer seeds .stages. A falsely seeded selector was an accept-time deletion of a hand-written rule, since any seeded selector the variant does not re-declare is removed as superseded. - Tag rules that style the pick (h1, a, p) now seed the preview stub, so unclassed selections start from the real cascade. They are excluded from the supersedable set: tag rules style shared elements across the route and must never be removal candidates. - Supersession removal is now bounded by ownership: a seeded class selector whose class is still used by markup OUTSIDE the replaced region survives the accept, because removing it would strip styling from markup the accept never touched. Tests cover substring non-matches, tag seeding with a tag-free supersedable set, and a shared-class accept where .card is used both inside the pick and elsewhere. AI-assisted (Claude Code). Co-Authored-By: Claude Code <noreply@anthropic.com>