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