希望支持同账号多设备的聊天记录云端同步(冲突时可手动选择保留哪边)
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
**提交人**: baiyubin
**客户端版本**: 0.1.26
---
## 类型
功能建议
## 使用场景
我在两台电脑上用同一个账号使用 Cindy。换到另一台机器之后,之前的对话历史完全看不到。
查了一下现状:
- 聊天记录只存在本地 SQLite(`%APPDATA%\Cindy\cindy-.db` + `-wal` / `-shm`),同账号登录不会同步任何对话历史
- 设备互联(`device-link-settings.json`)只做远程控制,不搬历史记录
- 目前只有「智能通讯录」具备跨设备同步能力(`contacts-device-sync`),不含聊天记录
- 唯一的办法是手工迁移:完全退出 App → 拷 `.db` 文件 → 删掉 `-wal` / `-shm` → 重命名覆盖目标机的库。门槛很高,容易把库弄坏,而且是**覆盖式**的 —— 两台机器各自的记录没法都保留
## 期望行为
1. **云端自动同步**:同一账号登录后,对话历史自动双向同步,换机器开箱即用,不需要手工拷文件
2. **冲突时可手动选择**:两台机器都有记录、或同一会话在两边都有更新时,希望在界面上逐个(逐会话 / 逐条)看到冲突并自己决定保留哪边,而不是静默覆盖掉一边
3. **附带内容一并同步**:最好能覆盖对话附件与生成的媒体(`cindy-media`)以及跨会话 memory(`owners/<账号>/maker-memory`),否则同步过去的对话里图片和上下文会缺失
## 补充建议
- 如果完整的云端同步方案短期内做不了,退一步希望至少在 App 内提供「导出 / 导入对话历史」入口,比现在让用户手工操作 SQLite 文件安全得多
- 同步数据是否端到端加密、能否只选择部分工作目录同步,也希望能一并考虑
---
**版本区域**: CN
**OS**: win32 x64 (10.0.19045)
**界面语言**: zh-CN
Contributor guide
Research direction
No implementation entry point is named. Start by reviewing the local SQLite layout at %APPDATA%\Cindy\cindy-.db and its -wal/-shm files, then compare device-link-settings.json with the existing contacts-device-sync capability. Done would require an agreed scope for bidirectional sync, conflict selection, and handling cindy-media and owners//maker-memory, or a defined in-app import/export flow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, sqlite, typescript
- Domain
- cloud, databases, desktop, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100