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:
@@ -0,0 +1,12 @@
|
||||
version: v2
|
||||
|
||||
# Generates the TypeScript Protobuf-ES + Connect-ES service descriptors
|
||||
# from the gateway's authenticated edge .proto files into the SvelteKit
|
||||
# frontend's source tree. The plugin runs locally from
|
||||
# `frontend/node_modules/.bin/protoc-gen-es` (added as a devDependency
|
||||
# in `frontend/package.json`) — no network call to buf.build BSR.
|
||||
plugins:
|
||||
- local: frontend/node_modules/.bin/protoc-gen-es
|
||||
out: frontend/src/proto
|
||||
opt:
|
||||
- target=ts
|
||||
Reference in New Issue
Block a user