跳转至

消息持久化与完整客户端实施记录

架构: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 门禁为准。

集成顺序

  1. shared/log/fanout 与 Redis store。
  2. MessageCommitter/writer 装配与 GroupDispatch 编码向量。
  3. MailboxMaterializer 日志消费、水位与恢复。
  4. SDK core 与各宿主。
  5. main/Redis 全链路;随后单向同步 Scylla 分支并跑独立门禁。