消息持久化与完整客户端实施记录¶
架构:
docs/designs/arch_20260823_message_persistence_client.md
契约:docs/designs/contracts/
TestPlan:docs/designs/testplan_20260823_message_persistence_client.md
当前并行所有权¶
| 实现线 | 文件所有权 | 当前目标 |
|---|---|---|
| shared/log/fanout | qim-common 新增提交领域模块、qim-commit-log/**、qim-fanout/** |
稳定领域编码、事务日志适配与确定性 fanout |
| Redis store | qim-store/src/redis/**、qim-store/lua/**、对应测试 |
精确邮箱扫描、水位/floor、进度与 Redis MessageStore |
| group security | qim-common/src/membership.rs、qim-writer/src/members.rs、qim-gateway/src/frames.rs、相关测试 |
canonical 建群、创建者绑定、读写授权分离 |
| SDK core | qim-sdk/src/**、qim-sdk/tests/** |
SQLite 重开、游标身份、REBUILD、deadline、分页/类型保真 |
| client hosts | qim-desktop/**、qim-gui/**、qim-sdk-ffi/**、qim-sdk-uniffi/** |
真实 Connect、稳定磁盘路径、FFI 批量无丢、GUI 终态与可访问性 |
| integration(主线程) | workspace Cargo/lock、共享协议、服务装配、跨模块测试与文档 | 解决依赖顺序、接入 writer/mailbox、统一验证 |
协作约束¶
- 所有会话共享同一工作树;不 checkout、不 reset、不回退他人改动。
- 每条实现线只改表中所有权文件;需要跨边界变更时先汇报,由主线程集成。
- 当前用户已有 GUI/SDK/协议未提交改动,必须在其基础上增量修改。
- 子模块完成只表示可供集成,不等于发布完成;最终以 TestPlan 的 integration/E2E 门禁为准。
集成顺序¶
- shared/log/fanout 与 Redis store。
- MessageCommitter/writer 装配与 GroupDispatch 编码向量。
- MailboxMaterializer 日志消费、水位与恢复。
- SDK core 与各宿主。
- main/Redis 全链路;随后单向同步 Scylla 分支并跑独立门禁。