From e1c8cf3257cb33457aa882c548f5195ecc0f9854 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Sat, 6 Jun 2026 22:08:16 +0900 Subject: Slice 1: surface system + WS transport + composition root Pure-core feature libraries assembled at the composition root: - core/protocol: pure reducer over surface catalog/spec/error messages - features/surface-host: generic field-kind interpreter (toggle/progress/ selector/stat/button) + pure plan logic; no surface-id special-casing - adapters/ws: injected WebSocket client (effects at the edge) - app: composition root store (Svelte 5 runes over the pure reducer), host-relative surface WS URL resolution (resolveWsUrl), root App.svelte Verified green: svelte-check 0/0, vitest 84 passed, biome clean, vite build ok. --- src/app/App.svelte | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/app/App.svelte (limited to 'src/app/App.svelte') diff --git a/src/app/App.svelte b/src/app/App.svelte new file mode 100644 index 0000000..2619a39 --- /dev/null +++ b/src/app/App.svelte @@ -0,0 +1,53 @@ + + +
+

Dispatch

+ + {#if store.lastError} +
+ Error: + {store.lastError.message} +
+ {/if} + +
+

Surfaces

+ {#if store.catalog.length === 0} +

No surfaces available

+ {:else} +
    + {#each store.catalog as entry (entry.id)} +
  • + +
  • + {/each} +
+ {/if} +
+ + {#if store.selectedSpec} +
+ +
+ {/if} +
-- cgit v1.2.3