From b538ee30d1949a6063756cff52e255b34876614d Mon Sep 17 00:00:00 2001 From: MemRelay Date: Wed, 30 Sep 2026 06:51:06 +0800 Subject: [PATCH] create: Checkpoint 2026-09-29 22:50:54 UTC [06e1b6eb09] MemRelay-Operation: checkpoint-save:m1-submit-ready-20260930-cd7a7e4 MemRelay-Resource: 766540ee-5b26-4fd8-be52-1782fd515a3d --- ...nt 2026-09-29 22-50-54 UTC [06e1b6eb09].md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-50-54 UTC [06e1b6eb09].md diff --git a/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-50-54 UTC [06e1b6eb09].md b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-50-54 UTC [06e1b6eb09].md new file mode 100644 index 0000000..dce0d15 --- /dev/null +++ b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-50-54 UTC [06e1b6eb09].md @@ -0,0 +1,58 @@ +--- +title: Checkpoint 2026-09-29 22:50:54 UTC [06e1b6eb09] +type: checkpoint +permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-22-50-54-utc-06e1b6eb09 +stable_id: 766540ee-5b26-4fd8-be52-1782fd515a3d +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: m1-submit-ready-20260930-cd7a7e4 +created_at: '2026-09-29T22:50:54.769615+00:00' +updated_at: '2026-09-29T22:50:54.769615+00:00' +tags: +- ready-to-merge +- m1 +- line-M +- feat/m1-submit +--- + +# 检查点:M1 消息提交 ready-to-merge + +## 完成内容 +- 在 `internal/app/message` 实现 `App.Submit`(保留 Service 接口与 Stub):请求指纹防重、conflict、大小/目标/延迟定时互斥、成员或对话授权、回复授权、配额 `max_pending_per_sender`、速率桶(50/s 突发 100)、到点最小分发。 +- 表驱动测试:防重命中、冲突、配额、授权、延迟/定时互斥、先防重再校验(对方停用仍返回原结果)、群分发去掉发送者、rate_limited。临时 SQLite。 +- `docs/DEVIATIONS.md`「消息 M」四条。 + +## 分支 / 路径 / 提交 +- 分支:`feat/m1-submit` +- 工作树:`E:/code/NixMsg-wt/m`(基于 origin/main `22c56d1`) +- 提交:`cd7a7e4` feat: 实现消息提交防重配额授权与最小分发 +- 已推送:`origin/feat/m1-submit`(未推 main) + +## 验证 +- `task check` 通过(web build、embeddist build、golangci-lint 0、go test ./... 含 message) +- 工作区干净 + +## 未完成的分发规则(留给 M2) +- 停用成员投递 `rejected/endpoint_disabled` +- 接收端 `queue_full` +- `expire_at` / keep / 离线宽限 / `dropped offline` +- 发送者不在群 / 无其他成员 → `completed` + reason +- 无未完成投递时 `completed` 并删正文 +- 回执写入 +- 唤醒推送循环、推送窗口与确认超时 + +## 其他偏差 +- 突发容量固定 100;未改 `cmd/nixmsg`(仍 Stub) +- 防重键在消息行已删时返回 `not_found` + +## 下一步 +- 总控可审阅合并 `feat/m1-submit`;接线时把 `wire.go` 的 `message.NewStub` 换成 `message.New` +- M2 做完整 7.4/7.5 + +## 给下个会话 +- 只在 `E:/code/NixMsg-wt/m` 工作;勿改主工作区与 `cmd/nixmsg`/`internal/protocol` 帧/`internal/listener` +- 标签 ready-to-merge \ No newline at end of file