phase 5: wasm core, GalaxyClient skeleton, Connect-Web stubs
Compile `ui/core` to WebAssembly via TinyGo (903 KB) and expose four canonical-bytes / signature-verification functions on `globalThis.galaxyCore` from `ui/wasm/main.go`. The TypeScript-side `Core` interface plus a `WasmCore` adapter (browser + JSDOM loader) bridge those into a typed shape, and a `GalaxyClient` skeleton wires `Core.signRequest` → injected `Signer` → typed Connect client → `Core.verifyPayloadHash` / `verifyResponse`. Wire `ui/buf.gen.yaml` against the local `@bufbuild/protoc-gen-es` v2 binary (devDependency) so the codegen step does not depend on the buf.build BSR. Vitest covers the bridge end-to-end: per-method WasmCore tests under JSDOM, byte-for-byte canon parity against the gateway fixtures committed in Phase 3, and a `GalaxyClient` orchestration test using `createRouterTransport`. The committed `core.wasm` snapshot tracks TinyGo output so contributors run `make wasm` only when `ui/core/` changes; CI consumes the snapshot directly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+5
-1
@@ -7,8 +7,12 @@ node_modules/
|
||||
build/
|
||||
dist/
|
||||
|
||||
# Generated WASM bundles
|
||||
# Generated WASM bundles. The committed `frontend/static/core.wasm`
|
||||
# (built by `make wasm` from `ui/wasm/`) is intentionally tracked so
|
||||
# Vitest and the SvelteKit dev server have the artefact available
|
||||
# without forcing every contributor to install TinyGo locally.
|
||||
*.wasm
|
||||
!frontend/static/core.wasm
|
||||
|
||||
# Wails desktop wrapper (Phase 31+)
|
||||
desktop/build/
|
||||
|
||||
Reference in New Issue
Block a user