--- title: Checkpoint 2026-09-30 07:08:42 UTC [1350492063] type: checkpoint permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-30-07-08-42-utc-1350492063 stable_id: f1dfbda8-710b-4e9d-9239-251c0112f41f scope: project memory_type: checkpoint project_id: 25464650-ed5d-440e-b362-190f2852d451 usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 status: active revision: 1 request_id: chk-c04-c07-20260930-r2c-retry created_at: '2026-09-30T07:08:44.328037+00:00' updated_at: '2026-09-30T07:08:44.328037+00:00' tags: - ready-to-merge - lane/message - C-04 - C-05 - C-06 - C-07 --- # 检查点:消息线复审 C-04–C-07(未合 main) ## 线 / 任务 - 线:消息核心 M - 任务:C-04(#35) C-05(#36) C-06(#37) C-07(#38) - 分支:`feat/fix-message-c04-c07`(已推送 origin) - 工作树:`E:\\code\\NixMsg-wt\\r2-c`(未改主工作区,未删 fix3) - 基线:`origin/main` `4059a15` - **未做**:C-01(#32) C-02(#33) C-03(#34);未 merge main ## 提交 - `ac90495` fix: 作废投递走统一终态函数并写回执收尾(C-04) - `af8278d` fix: 上行分发前统一限速,send 不再单独扣桶(C-05) - `e95062d` fix: 推送 meta 用 UseNumber 保留超过 2^53 的整数(C-06;同文件含群分发 `joined_at <= send_at`) - `786fe35` fix: 补提交校验、停用检查、入群过滤与按完成时刻清理(C-07) ## 关键实现 - C-04:导出 `RejectPendingTx` / `TryFinalizeTx` / `FinalizeMessageTx`;group void.go 与 identity lifecycle 作废路径改调用。不改 group emit,不改 kickFlushDelay/Disconnect。 - C-05:导出 `AllowRequest`;`HandleUplink` 分发前检查(ack/receipt_ack 除外);Submit 不再扣桶。 - C-06:`decodeMetaJSON` 用 `protocol.Unmarshal`。 - C-07:ttl<=0、delay 先比上限再加法;发送方停用 `unauthorized`;清理用投递 `updated_at`/send_at 近似完成时刻(`completed_at` 列依赖 C-03 未做)。未删 message largeSem(C-01)。对话密码锁键未改(U-03)。 ## 验证 - `go test ./internal/app/message/ ./internal/app/group/ ./internal/app/identity/ ./cmd/nixmsg/ -count=1` 通过。 - `TestUplinkDMOfflineGroupRecall` 曾因 #3 死锁窗口超时一次,重跑通过。 ## 给下个会话 - 总控可审阅后 ff-only 合 main;勿强推 main。 - C-01/02/03 仍开放。C-07 的 completed_at 等 C-03 迁移后再改清理 SQL。 - 标签:ready-to-merge