Fix stepper client-side [object Object] flash and missing CSSX styles
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 5m54s

Three issues in the stepper island's client-side rendering:

1. do-step used eval-expr with empty env for ~cssx/tw spreads — component
   not found, result leaked as [object Object]. Fixed: call ~cssx/tw
   directly (in scope from island env) with trampoline.

2. steps-to-preview excluded spreads — SSR preview had no styling.
   Fixed: include spreads in the tree so both SSR and client render
   with CSSX classes.

3. build-children used named let (let loop ...) which produces
   unresolved Thunks in render mode due to the named-let compiler
   desugaring interacting with the render/eval boundary. Fixed:
   rewrote as plain recursive function bc-loop avoiding named let.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-25 00:11:06 +00:00
parent f3f70cc00b
commit 7d7de86034
6 changed files with 322 additions and 53 deletions

View File

@@ -443,7 +443,8 @@
:children (list
{:label "SX URLs" :href "/sx/(applications.(sx-urls))"}
{:label "CSSX" :href "/sx/(applications.(cssx))" :children cssx-nav-items}
{:label "Protocols" :href "/sx/(applications.(protocol))" :children protocols-nav-items})}
{:label "Protocols" :href "/sx/(applications.(protocol))" :children protocols-nav-items}
{:label "sx-pub" :href "/sx/(applications.(sx-pub))"})}
{:label "Etc" :href "/sx/(etc)"
:children (list
{:label "Essays" :href "/sx/(etc.(essay))" :children essays-nav-items}