 thePR0M3TH3ANandClaude Fable 5
|
e84a7e1c0e
|
TS port slice 9: relay transport + nostr sync/restore — Milestone 5 complete
- core RelayPool over the platform WebSocket (global in Node 22+/browsers,
no dependency): multi-relay publish with per-relay OK collection, fetch
aggregation until EOSE with dedupe and signature verification on ingest,
connect timeouts, dead-relay tolerance.
- Sync flows mirroring nostr/snapshot.py: publishSnapshot (chunk events ->
manifest with HMAC identity + nonce), fetchLatestSnapshot (newest-first,
per-chunk hash verify, falls through incomplete manifests), publishDelta,
fetchDeltasSince (created_at replay order).
- CLI nostr group: get-pubkey (matches app-1237 fixture npub), list/add/
remove-relay (config-backed, ws:// validation, last-relay guard), sync
(publish local vault), restore (snapshot + delta merge -> local vault).
- Tested against an in-process NIP-01 mock relay: core round trip incl.
corrupted-chunk rejection, and CLI end-to-end sync -> destroy local
vault -> restore with secrets intact. Transport tests are Node-only
(jsdom WebSocket can't connect; real browsers come with Milestone 6).
- 151 core + 32 CLI tests green. Milestone 5 CLI surface is complete.
Co-Authored-By: Claude Fable 5 <[email protected]>
|
2026-08-14 14:51:18 -04:00 |
|