d3ro-voice/apps
Yun Chan 0a4f5aee64 feat(desktop): two-way cloud sync with mobile and web
Rewrites the desktop mirror as services/sync/SyncEngine: a persistent
outbox, per-account server-clock keyset cursors with paging, pulls that never
overwrite unsent local edits, deletions both ways through sync_tombstones and
per-row failure isolation. It now covers history titles and favorites,
dictionary, every meeting's memos and documents, memo tags, user commands and
dictation/meeting templates, and registers the desktop as a device that the
phone can disconnect.

Fixes shipped defects: the first pull after sign-in fetched nothing, only
the first meeting's children were pushed, team meetings leaked into the
personal database and lost team_id on re-push, and Realtime never connected
because Electron's Node 20 has no global WebSocket (ws is now the transport).
Anonymous local-mode records are imported into the first account that signs
in. The settings sync section is translated and shows pending/rejected
changes; synced screens reload on app:dataChanged.
2026-09-27 14:04:49 +09:00
..
admin refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
admin-swagger release: ship v1.6.0 with paged suggestions and a cleaner phrase memory 2026-09-24 19:56:28 +09:00
api-server chore: remove duplicate copies of the site, download center and installers (WS-C) 2026-09-26 15:48:52 +09:00
api-server.Tests feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
desktop feat(desktop): two-way cloud sync with mobile and web 2026-09-27 14:04:49 +09:00
mobile-rn feat(web): serve the web app under /app and send every billing link there (WS-B) 2026-09-26 15:48:30 +09:00
web refactor(billing): remove Stripe; payments are Payple (web) and Google Play (mobile) 2026-09-26 20:56:18 +09:00