--- title: Checkpoint 2026-09-10 10:07:48 UTC [edcfdd2a6e] type: checkpoint permalink: main/projects/d401bdbe-e9c0-4de8-aa0f-48b983de7c80/checkpoint-2026-09-10-10-07-48-utc-edcfdd2a6e stable_id: 60d90c85-e1f9-46da-af79-625c491541f8 scope: project project_id: d401bdbe-e9c0-4de8-aa0f-48b983de7c80 memory_type: checkpoint status: active revision: 1 restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2 created_at: '2026-09-23T15:06:02.738454+00:00' updated_at: '2026-09-23T15:06:02.738510+00:00' tags: - 聊天 - Redis - 群设置 - 交接 --- ## 本轮已确认 2026-09-10继续聊天板块,用户优先讨论记录保留而未回答此前私聊是否需好友申请。新增D-012(本地记录静态加密与可配自动清理)和D-013(Redis未送达缓存/期限)。服务器不保存聊天历史,仅Redis临时保存未送达密文。服务器/服务重启须丢弃;送达、到期、未送达时发送方删除消息,都删除对应线上密文。自动删除从消息发出时间起算,用户原文明确“毕竟这个自动清理聊天记录是根据消息发出时间而定的”。私聊线上期限采用接收方个人保留时长;用户最新明确群聊跟群设置,个人设置不覆盖群聊。本地群记录与线上群未送达均用群设置。适用保留时长改变后,已有相关本地记录和Redis未送达密文立即重算清理,不只对新消息生效。 群聊逐成员的送达状态仍需分别维护,但不能再用各成员个人设置计算群消息TTL。此前这一设计推导已移除并在本地变更记录说明。 ## 文档与验证 新增docs/聊天/记录保存与清理.md作为保存/离线/删除细节入口;CHAT扩为01..16,全项目41需求;D共13条。更新聊天需求、设计、决定和总需求/根索引/README/公共安全、身份、部署/关系索引共11文件。Redis成为已确认缓存组件,其余技术(包括WebRTC、本地数据库和加密方案)待定。设计列明独立Redis时消息服务重启必须使旧队列失效,不能只靠关闭持久化;避免重试复活已删/过期/重启丢弃的投递,具体机制未定。没有运行Redis或改代码。 内容及编号核对通过,初次全量文档链接检查266个有效;群设置修正后的11文件链接再检通过,CHAT16编号唯一,无旧群个体TTL规则。共26Markdown。审阅代理对本地起点曾提示来源问题,已用上引用户原句澄清;群保留以后来的用户明确答复为准。仅文档验证,没有产品运行或安全测试。 ## 持久化 memory=be959d28-f0c6-4e40-b550-7db4d3234602 revision=3;memory=2b1ec63f-c259-43c3-9df3-9e571c1e2cc1 revision=2。完整文档快照utu/utu-docs-20260910-chat-r2.zip已PUT并确认completed,file_id=1dcd7ed9-6f47-4c23-a37d-9131ef1a551c,SHA256=8e41d9ee5bec2bfe2d14e9bb0d55c584eb9f6ddfd3fe6dda6ac1aa9da6b92675,文档结构0.3/内容0.3-chat-r2。E:\code\UTU无.git,branch/commit/remote/dirty不适用;未初始化Git。 ## 下一步及零上下文交接 按需读总需求、聊天需求/决策和记录保存与清理专题,继续逐条确认。下一条可讨论“送达”的准确回执点:客户端验证并成功加密保存后回执是助手建议,尚未确认;不能把服务端收包或已读默认为送达。还待群保留设置修改权限、私聊个人设置按账号或设备、多设备送达、发送方离线删除与到达竞态、手动/自动删除取消投递细则、离线设置同步、客户端关机后的清理补偿、历史迁移/备份、重试及主动重发。不要自动添加已送达消息撤回,不擅自锁定算法/架构或开发排期。之前团队成员能否直接私聊尚未回答,暂搁置而非已否决。其它模块保留规则未改变;所有业务仍经服务器中转、客户端E2EE。无运行服务或临时实现待接手。