Files
MemRelay/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-50-54 UTC [06e1b6eb09].md
T
memrelay b538ee30d1 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
2026-09-30 06:51:06 +08:00

2.3 KiB
Raw Blame History

title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
title type permalink stable_id scope memory_type project_id usage_profile_id status revision request_id created_at updated_at tags
Checkpoint 2026-09-29 22:50:54 UTC [06e1b6eb09] checkpoint main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-22-50-54-utc-06e1b6eb09 766540ee-5b26-4fd8-be52-1782fd515a3d project checkpoint 25464650-ed5d-440e-b362-190f2852d451 0c9feb46-d06e-43cd-9ef0-c5813c84a998 active 1 m1-submit-ready-20260930-cd7a7e4 2026-09-29T22:50:54.769615+00:00 2026-09-29T22:50:54.769615+00:00
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