Files
rose-ash/test-results/tests-playwright-hypermedi-e889f-clicking-delete-removes-row/error-context.md
giles 7b4c918773 Recompile all 26 .sxbc with define-library wrappers + fix eval/JIT
All 26 browser modules recompiled with define-library/import forms.
Compilation works without vm-compile-adapter (JIT pre-compilation
hangs with library wrappers in some JIT paths — skipped for now,
CEK compilation is ~34s total).

Key fixes:
- eval command: import-aware loop that handles define-library/import
  locally without touching the Python bridge pipe (avoids deadlock)
- compile-modules.js: skip vm-compile-adapter, bump timeout

2621/2621 OCaml tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 00:08:00 +00:00

82 lines
4.7 KiB
Markdown

# Page snapshot
```yaml
- main [ref=e4]:
- generic [ref=e6]:
- complementary
- generic [ref=e7]:
- generic [ref=e8]:
- generic [ref=e11]:
- link "(<sx>)" [ref=e12] [cursor=pointer]:
- /url: /sx/
- generic [ref=e14]: (<sx>)
- paragraph [ref=e15]: The framework-free reactive hypermedium
- paragraph [ref=e17]: © Giles Bradshaw 2026· /sx/(geography.(hypermedia.(example.delete-row)))
- generic [ref=e18]:
- link "← Etc" [ref=e19] [cursor=pointer]:
- /url: /sx/(etc)
- link "Geography" [ref=e20] [cursor=pointer]:
- /url: /sx/(geography)
- link "Language →" [ref=e21] [cursor=pointer]:
- /url: /sx/(language)
- generic [ref=e22]:
- link "← Reactive Islands" [ref=e23] [cursor=pointer]:
- /url: /sx/(geography.(reactive))
- link "Hypermedia Lakes" [ref=e24] [cursor=pointer]:
- /url: /sx/(geography.(hypermedia))
- link "Scopes →" [ref=e25] [cursor=pointer]:
- /url: /sx/(geography.(scopes))
- generic [ref=e26]:
- link "← Reference" [ref=e27] [cursor=pointer]:
- /url: /sx/(geography.(hypermedia.(reference)))
- link "Examples" [ref=e28] [cursor=pointer]:
- /url: /sx/(geography.(hypermedia.(example)))
- link "Reference →" [ref=e29] [cursor=pointer]:
- /url: /sx/(geography.(hypermedia.(reference)))
- generic [ref=e30]:
- link "← Polling" [ref=e31] [cursor=pointer]:
- /url: /sx/(geography.(hypermedia.(example.polling)))
- link "Delete Row" [ref=e32] [cursor=pointer]:
- /url: /sx/(geography.(hypermedia.(example.delete-row)))
- link "Inline Edit →" [ref=e33] [cursor=pointer]:
- /url: /sx/(geography.(hypermedia.(example.inline-edit)))
- generic [ref=e37]:
- paragraph [ref=e38]: sx-delete with sx-swap "outerHTML" and an empty response removes the row from the DOM.
- generic [ref=e40]:
- generic [ref=e41]:
- heading "Demo" [level=3] [ref=e42]
- paragraph [ref=e43]: Click delete to remove a row. Uses sx-confirm for confirmation.
- table [ref=e47]:
- rowgroup [ref=e48]:
- row "Item" [ref=e49]:
- columnheader "Item" [ref=e50]
- columnheader [ref=e51]
- rowgroup [ref=e52]:
- row "Fix login bug delete" [ref=e53]:
- cell "Fix login bug" [ref=e54]
- cell "delete" [ref=e55]:
- button "delete" [ref=e56] [cursor=pointer]
- row "Write documentation delete" [ref=e57]:
- cell "Write documentation" [ref=e58]
- cell "delete" [ref=e59]:
- button "delete" [ref=e60] [cursor=pointer]
- row "Deploy to production delete" [ref=e61]:
- cell "Deploy to production" [ref=e62]
- cell "delete" [ref=e63]:
- button "delete" [ref=e64] [cursor=pointer]
- row "Add unit tests delete" [ref=e65]:
- cell "Add unit tests" [ref=e66]
- cell "delete" [ref=e67]:
- button "delete" [ref=e68] [cursor=pointer]
- heading "S-expression" [level=3] [ref=e69]
- code [ref=e73]: (button :sx-delete "/sx/(geography.(hypermedia.(example.(api.(delete.1)))))" :sx-target "#row-1" :sx-swap "outerHTML" :sx-confirm "Delete this item?" "delete")
- heading "Component" [level=3] [ref=e74]
- code [ref=e79]: (defcomp ~examples/delete-row (id name) (tr :id (str "row-" id) (~tw :tokens "border-b border-stone-100 transition-all") (td (~tw :tokens "px-3 py-2 text-stone-700") name) (td (~tw :tokens "px-3 py-2") (button :sx-delete (str "/sx/(geography.(hypermedia.(example.(api.(delete." id ")))))") :sx-target (str "#row-" id) :sx-swap "outerHTML" :sx-confirm "Delete this item?" (~tw :tokens "text-rose-500 hover:text-rose-700 text-sm") "delete"))))
- heading "Server handler" [level=3] [ref=e80]
- code [ref=e84]: (:path "/sx/(geography.(hypermedia.(example.(api.(delete.<sx:item_id>)))))" :method :delete :csrf false ("item-id") (<> (~docs/oob-code :target-id "delete-comp" :text (helper "component-source" "~examples/delete-row")) (~docs/oob-code :target-id "delete-wire" :text "(empty — row removed by outerHTML swap)")))
- generic [ref=e85]:
- heading "Wire response" [level=3] [ref=e86]
- button "Clear component cache" [ref=e87] [cursor=pointer]
- paragraph [ref=e88]: Empty body — outerHTML swap replaces the target element with nothing.
- code [ref=e93]: (empty — row removed by outerHTML swap)
```