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.
This commit is contained in:
parent
b5c9ff9f31
commit
0a4f5aee64
49 changed files with 3940 additions and 1033 deletions
|
|
@ -522,5 +522,24 @@
|
|||
"settings.captionRefine.desc": "本地 AI 会根据上下文修正已确定字幕的空格、标点和听错的词。",
|
||||
"settings.captionModel": "实时字幕模型",
|
||||
"settings.captionModel.same": "与听写相同",
|
||||
"settings.captionModel.desc": "仅实时字幕使用单独的模型识别,会与听写模型一同加载。"
|
||||
"settings.captionModel.desc": "仅实时字幕使用单独的模型识别,会与听写模型一同加载。",
|
||||
"history.favorite": "收藏",
|
||||
"history.unfavorite": "取消收藏",
|
||||
"cloudSync.title": "云同步",
|
||||
"cloudSync.description": "自动与移动端和网页同步历史、词典、会议、备忘标签、命令和模板。在任一设备上删除,其他设备也会一并删除。",
|
||||
"cloudSync.signIn": "登录",
|
||||
"cloudSync.signedInAs": "已登录:{{email}}",
|
||||
"cloudSync.noEmail": "无邮箱",
|
||||
"cloudSync.lastSync": "上次同步:{{time}}",
|
||||
"cloudSync.never": "尚未同步",
|
||||
"cloudSync.upToDate": "所有更改均已上传",
|
||||
"cloudSync.pending": "{{count}} 项更改等待上传",
|
||||
"cloudSync.failed": "服务器拒绝了 {{count}} 项更改 —「立即同步」会重试",
|
||||
"cloudSync.syncNow": "立即同步",
|
||||
"cloudSync.syncing": "正在同步…",
|
||||
"cloudSync.signOut": "退出登录",
|
||||
"cloudSync.browserPending": "请在浏览器中完成登录。",
|
||||
"cloudSync.signedOut": "已退出登录。本机上的记录会保留。",
|
||||
"cloudSync.done": "同步完成(已应用 {{count}} 项)",
|
||||
"cloudSync.doneWithErrors": "同步完成(已应用 {{count}} 项,{{errors}} 项失败 — 下次同步时重试)"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue