Severity: P2 (broken render contract) · Tier-2 (substrate parity; Pascal review)
Co-maintained repo (Pascal = architect).
Location: packages/live_ui/lib/live_ui/renderer.ex:20-78 (+ missing render/1 clauses)
The IUR vocabulary registry advertises :badge, :hero (foundational.ex:141,167), :slider (input.ex:155), :stat, :key_value, :info_list (data.ex:78,98,118) — all have working constructors, so authors can build them. But LiveUi.Renderer has no render/1 clause for any of the six and they're absent from supported_kinds(); authored Screens using them fall through to the literal Unsupported canonical kind: :badge div (renderer.ex:1653). Confirmed cross-target drift: terminal_ui, desktop_ui, and elm_ui all render the six — only the production LiveView target is missing them.
Fix: add the six render/1 clauses + native widget modules and register them in supported_kinds().
2026-05-28 cross-repo review — see ariston-ui docs/audits/cross-repo-review-2026-05-28.md (finding C1).
Severity: P2 (broken render contract) · Tier-2 (substrate parity; Pascal review)
Co-maintained repo (Pascal = architect).
Location:
packages/live_ui/lib/live_ui/renderer.ex:20-78(+ missingrender/1clauses)The IUR vocabulary registry advertises
:badge,:hero(foundational.ex:141,167),:slider(input.ex:155),:stat,:key_value,:info_list(data.ex:78,98,118) — all have working constructors, so authors can build them. ButLiveUi.Rendererhas norender/1clause for any of the six and they're absent fromsupported_kinds(); authored Screens using them fall through to the literalUnsupported canonical kind: :badgediv (renderer.ex:1653). Confirmed cross-target drift: terminal_ui, desktop_ui, and elm_ui all render the six — only the production LiveView target is missing them.Fix: add the six
render/1clauses + native widget modules and register them insupported_kinds().2026-05-28 cross-repo review — see ariston-ui
docs/audits/cross-repo-review-2026-05-28.md(finding C1).