Resolves #66.
stx 0.2.72 fixes the long-standing bug where rendered as literal text inside client-reactive :for/:if subtrees (stacksjs/stx#1748 + multi-root setup hydration). The :text workaround this app used everywhere is no longer needed, and is the cleaner, idiomatic form.
Changes
- ~345
:textbindings →across 52resources/views+ components. Every site sits on/under a client:for/:ifand reads a signal, derived, or loop var. - Three submit buttons that paired reactive
:textwith a static fallback child (Notify me/Follow/Sign in to admin) now usewhose else-branch carries that default;x-cloakguards the pre-hydration frame (consistent with every other reactive interpolation).
Not touched
- 6
x-htmlbindings stay — they render server markdown (review.content, judge response bodies);would escape the HTML. - No
<option>/<textarea>conversions (the runtime rendersas a<span>, invalid in text-only elements). - No server
@foreach/@ifbindings;x-class/:show/etc. left as-is.
Verification
Rendered the three hand-edited buttons plus the heavily-converted ArticleView and Admin/ReviewsTable through processDirectives — the framework's own render path: all process cleanly, every preserved/cloaked for hydration, the x-html markdown bindings intact (ArticleView 2, ReviewsTable 1), and zero invalid <option><span>. Framework-level reactive hydration of under :for/:if was independently confirmed in a real browser (headless Chrome via CDP) on stx 0.2.72.
🤖 Generated with Claude Code