tane/docs
vjrj 182c334883 feat(sync): encrypted device-to-device sync transport (core foundation)
The most foundational Block-2+ gap: the data model was built CRDT-ready
(HLC, tombstones, LWW, append-only Movement) and the import reconciler
proves the merge — but nothing replicated a device's inventory to your
OTHER devices. Only manual file backup/restore moved data between devices.

This lands the transport foundation in commons_core (seed-agnostic, on the
shared connection — the 'one connection, N interfaces' shape):

- SyncTransport: moves an opaque, encrypted snapshot blob between ONE
  identity's own devices. The core carries bytes + does the crypto; the app
  decides what the bytes are and how to merge them.
- NostrSyncTransport: NIP-78 app-data (kind 30078, addressable/replaceable
  per device via the d-tag), content NIP-44-encrypted TO SELF, discovery
  filtered to your own author key. Each device keeps one replaceable record.

Tests (MiniRelay, pure Dart): a snapshot replicates to the identity's other
device; the relay only ever sees ciphertext; another identity neither
receives nor could decrypt; re-push replaces; two devices keep their own.

Confirms the open-decisions §D.4 guarantee (sync leaks neither the key nor
plaintext). NEXT slice (app): a SyncService that serializes the inventory
(reusing ExportImportService), pushes on mutation, and runs the existing
idempotent importInventory on receive; a stable per-install device id;
wire sync into SocialSession.
2026-07-10 23:16:07 +02:00
..
design feat(sync): encrypted device-to-device sync transport (core foundation) 2026-07-10 23:16:07 +02:00
mockups feat(ui): Material 3 redesign, cover-photo viewer, About screen 2026-07-09 11:51:59 +02:00
stock-photos Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
i18n.md i18n: RTL smoke tests, Portuguese locale and a translation guide 2026-07-09 23:06:49 +02:00
icon-pointer.png Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
icons.svg Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
intro-app.md docs: public intro narrative and in-app onboarding copy 2026-07-09 21:48:14 +02:00
intro.md docs: public intro narrative and in-app onboarding copy 2026-07-09 21:48:14 +02:00
logo.png Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
mockups.epgz Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
release.md chore(release): beta packaging — signing, changelog, store metadata, scale test 2026-07-09 23:10:01 +02:00
slider-sample.png Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00
webmocks.svg Initial import: mockups, visual identity, stock photos, project plan, README 2026-07-06 23:58:31 +02:00