Fix WASM trampoline stub + event-bridge host-get

- sx_browser.ml: use Sx_ref.trampoline instead of Sx_runtime.trampoline
  (the stub was a no-op, causing cek-call to return unresolved Thunks).
  Fixes resource island promise resolution — promises now resolve and
  update signals correctly.

- event-bridge island: use host-get instead of get for event-detail,
  since WASM kernel returns JS host handles for CustomEvent detail
  objects, not native SX dicts.

- Mark event-bridge and isomorphic-nav as test.fixme (deeper issues
  remain: event handler swap! doesn't propagate to DOM; header island
  inside #main-panel swap boundary needs structural layout change).

99 passed, 2 skipped, 0 failed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-28 09:33:20 +00:00
parent 07fabeb4ed
commit 919ce927b1
7 changed files with 9 additions and 10 deletions

View File

@@ -233,7 +233,7 @@ test.describe('Reactive island interactions', () => {
});
test.fixme('event-bridge: sender triggers receiver update', async ({ page }) => {
// BUG: on-event listener via schedule-idle + container-ref not receiving CustomEvents from data-sx-emit buttons
// BUG: on-event handler receives CustomEvent but swap!/signal update doesn't propagate to DOM
await page.goto(BASE_URL + '/sx/(geography.(reactive.(examples.event-bridge-demo)))', { waitUntil: 'networkidle' });
await page.waitForTimeout(2000);
@@ -269,8 +269,7 @@ test.describe('Reactive island interactions', () => {
}
});
test.fixme('resource: shows loading then data', async ({ page }) => {
// BUG: resource promise never resolves in WASM kernel — host-await/promise-then callback not firing
test('resource: shows loading then data', async ({ page }) => {
await page.goto(BASE_URL + '/sx/(geography.(reactive.(examples.resource)))', { waitUntil: 'networkidle' });
await page.waitForTimeout(2000);

View File

@@ -177,7 +177,7 @@ test.describe('Isomorphic SSR', () => {
});
test.fixme('navigation preserves header island state', async ({ page }) => {
// BUG: header island color resets after SPA nav — signals re-initialized instead of preserved
// BUG: header island inside #main-panel swap boundary — needs structural layout change or store-based state
await page.goto(BASE_URL + '/sx/', { waitUntil: 'networkidle' });
// Wait for header island to hydrate