From dbe4b1bf8135bab00455c2d2ceabd0c7b96020bf Mon Sep 17 00:00:00 2001 From: MemRelay Date: Wed, 30 Sep 2026 07:24:04 +0800 Subject: [PATCH] create: Checkpoint 2026-09-29 23:24:00 UTC [1c873d5e0b] MemRelay-Operation: checkpoint-save:m-delivery-m2m3m4-20260930-ready MemRelay-Resource: c42e5f81-e06a-432b-b9be-64f7f9ec4d5c --- ...nt 2026-09-29 23-24-00 UTC [1c873d5e0b].md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-24-00 UTC [1c873d5e0b].md diff --git a/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-24-00 UTC [1c873d5e0b].md b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-24-00 UTC [1c873d5e0b].md new file mode 100644 index 0000000..a996d76 --- /dev/null +++ b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-24-00 UTC [1c873d5e0b].md @@ -0,0 +1,35 @@ +--- +title: Checkpoint 2026-09-29 23:24:00 UTC [1c873d5e0b] +type: checkpoint +permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-23-24-00-utc-1c873d5e0b +stable_id: c42e5f81-e06a-432b-b9be-64f7f9ec4d5c +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: m-delivery-m2m3m4-20260930-ready +created_at: '2026-09-29T23:24:00.669438+00:00' +updated_at: '2026-09-29T23:24:00.669438+00:00' +tags: +- ready-to-merge +- line-M +- M2 +- M3 +- M4 +--- + +# 消息线 M2–M4 完成 + +- 分支:`feat/m-delivery` +- 工作树:`e:\code\NixMsg-wt\m2` +- 基于:`origin/main` `d357082` +- 提交:`9b053fd feat: 实现消息分发推送确认撤回与启动恢复` +- 验证:`task check` 通过(含 message 包表驱动测试:宽限、保留到期、确认超时两种、撤回竞态、防重、启动恢复等) +- DEVIATIONS:已写「消息 M」M2/M3/M4 节,保留其他线节 +- 未接真实 MQTT:`Downlink`/`ConnRegistry` 可注入;测试用 `RecordingDownlink`+`MemoryConns`;未改 `cmd/nixmsg`/`wire.go`;调度/清理循环需接线方调用 `DispatchDue`/`PushPending`/`CleanupOnce` + +## 给下个会话 +- 总控按第 7 节审阅后 ff-only 合并;本分支已推送、工作区干净 +- 接线:握手/断线调 `OnHandshakeComplete`/`OnDisconnect`;`OnPublishDropped` 转 `App`;启调度与清理循环