phase 6: web storage layer (KeyStore, Cache, session)
KeyStore + Cache TS interfaces with WebCrypto non-extractable Ed25519 keys persisted via IndexedDB (idb), plus thin api/session.ts that loads or creates the device session at app startup. Vitest unit tests under fake-indexeddb cover both adapters; Playwright e2e verifies the keypair survives reload and produces signatures still verifiable under the persisted public key (gateway round-trip moves to Phase 7's existing acceptance bullet). Browser baseline: WebCrypto Ed25519 — Chrome >=137, Firefox >=130, Safari >=17.4. No JS fallback; ui/docs/storage.md documents the matrix and the WebKit non-determinism quirk. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+14
-10
@@ -62,20 +62,24 @@ ui/
|
||||
├── Makefile wasm / ts-protos / web / mobile / desktop targets
|
||||
├── README.md this file
|
||||
├── buf.gen.yaml local-plugin TS Protobuf-ES generator
|
||||
├── docs/ topic-based design notes
|
||||
│ ├── testing.md per-PR / release test tiers
|
||||
│ └── wasm-toolchain.md TinyGo build, JSDOM loading, bundle budget
|
||||
├── core/ ui/core Go module (canonical bytes, keypair)
|
||||
├── wasm/ TinyGo entry point exposing Core to JS
|
||||
└── frontend/ SvelteKit / Vite source
|
||||
├── src/api/ GalaxyClient + typed Connect client
|
||||
├── src/platform/core/ Core interface + WasmCore adapter
|
||||
├── src/proto/ generated Protobuf-ES + Connect descriptors
|
||||
└── static/ core.wasm + wasm_exec.js (committed artefacts)
|
||||
├── docs/ topic-based design notes
|
||||
│ ├── storage.md web KeyStore/Cache, IDB schema, baseline
|
||||
│ ├── testing.md per-PR / release test tiers
|
||||
│ └── wasm-toolchain.md TinyGo build, JSDOM loading, bundle budget
|
||||
├── core/ ui/core Go module (canonical bytes, keypair)
|
||||
├── wasm/ TinyGo entry point exposing Core to JS
|
||||
└── frontend/ SvelteKit / Vite source
|
||||
├── src/api/ GalaxyClient + typed Connect client + session
|
||||
├── src/platform/core/ Core interface + WasmCore adapter
|
||||
├── src/platform/store/ KeyStore/Cache interfaces + web adapter
|
||||
├── src/proto/ generated Protobuf-ES + Connect descriptors
|
||||
└── static/ core.wasm + wasm_exec.js (committed artefacts)
|
||||
```
|
||||
|
||||
Linked topic docs:
|
||||
|
||||
- [`docs/storage.md`](docs/storage.md) — web KeyStore/Cache,
|
||||
IndexedDB schema, browser baseline.
|
||||
- [`docs/wasm-toolchain.md`](docs/wasm-toolchain.md) — TinyGo build,
|
||||
loading recipe, bundle size budget.
|
||||
- [`docs/testing.md`](docs/testing.md) — Tier 1 per-PR + Tier 2
|
||||
|
||||
Reference in New Issue
Block a user