Skip to content

v0.14.2

Latest

Choose a tag to compare

@lyriks-dev lyriks-dev released this 22 Jul 19:32

Two user-facing breaks found by running the end-to-end suite, both shipped in earlier releases and neither caught by the unit tests. No behavior or snapshot changes; nothing to migrate.

Fixed

  • The Expert | Builder switcher is visible again. ViewSwitcher hid itself whenever the active THEME was Lyriks — but the Lyriks skin became the DEFAULT theme in 0.7.0, so the switcher silently disappeared for every install that had not opted into the classic theme, leaving Builder mode unreachable from the header even when PUBLIC_UNSPA_VIEWS=builder enabled it. Its intent was to hide under the Lyriks HOST, which is the brand query parameter, not the skin. Host detection is now one shared isLyriksBrand predicate used by the header lockup, the switcher, and the document title, so the three cannot disagree. The end-to-end suite had been failing on this since the theme default flipped.
  • Load samples works again. The bundled eShop "Catalog & reviews" sample carried a validation rule comparing reviews.sortBy against "" — a value outside that enum's domain, so the guard was provably dead. 0.14.1's enum-domain check correctly rejects it, but samples are written as BRAND-NEW features, where the diff-aware gate offers no protection (every error counts as introduced), so the save 400'd and the button silently failed with Snapshot save failed (400). The rule is removed rather than the check weakened: the action's sortBy parameter is a required enum already restricted to the same four values, so the parameter validator rejects unsupported input before any rule runs — the guard was dead AND redundant. A unit test now runs every shipped sample through the write gate.

Full changelog: https://github.com/lyriks-io/unspaghettit/blob/main/CHANGELOG.md