Files
MemRelay/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-30 07-24-38 UTC [fd8b91d2c7].md
T
memrelay 978cebb291 create: Checkpoint 2026-09-30 07:24:38 UTC [fd8b91d2c7]
MemRelay-Operation: checkpoint-save:chk-broker-b01-b12-20260930-1515
MemRelay-Resource: 0e41749e-828a-45e2-a309-5681dd2693e9
2026-09-30 15:24:40 +08:00

67 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Checkpoint 2026-09-30 07:24:38 UTC [fd8b91d2c7]
type: checkpoint
permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-30-07-24-38-utc-fd8b91d2c7
stable_id: 0e41749e-828a-45e2-a309-5681dd2693e9
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-broker-b01-b12-20260930-1515
created_at: '2026-09-30T07:24:38.343182+00:00'
updated_at: '2026-09-30T07:24:38.343182+00:00'
tags:
- ready-to-merge
- lane/broker
- B-01
- B-02
- B-03
- B-04
- B-05
- B-06
- B-07
- B-08
- B-09
- B-10
- B-11
- B-12
---
## broker 复审 B-01..B-12 已完成并推送(未 merge main)
- **工作树**:`E:\\code\\NixMsg-wt\\r2-b`
- **分支**:`feat/fix-broker-b01-b12`(已普通推送到 origin,非 force)
- **基于**:`origin/main` @ `4059a15`
- **未 merge main**,未关 Gitea issues
## 提交
- `da43385` fix: 在 OnConnect 把 mochi 发送配额置 0 规避死锁(B-01 #8)
- `b5b63ed` fix: 大帧名额按 PacketID 在 PUBACK 与断线时归还(B-02 #9)
- `4216072` fix: 认证失败不泄漏连接表并脱敏 mochi 整包日志(B-05 #12、B-07 #14)
- `8b84584` fix: 完成 broker 复审 B-03 至 B-12
## 关键实现
- B-03:每连接下行队列 256 帧/16MiB + 发送 goroutine;满则 ErrBackpressure。Publish 失败会重试以免静默抽空队列。
- B-06:PublishDown 只发给当前连接;未订 down 返回 ErrNotSubscribed;导出 EffectivePayloadLimit;uplink.publishResp 使用它;旧连接 superseded。
- B-04:PublishThenDisconnect 入队,OnPacketSent 后再 Disconnect。logout/fatalKick 走该原语。serve 里 identity.New ConnControl=nil。
- B-09:broker 与 appUplink 按端加锁;uplink 握手表,仅已 hello 连接按当前连接通知消息线。未改 presence/app.go。
- B-10:密码登录条件 UPDATE;hello TokenMatchesDB。未改 identity/self.go。
- B-11:闲置取 used/online/offline 较新者,在线视为未闲置。
- B-12:Authenticate 30s 超时;每端 Verify 并发 2。未改 auth 池/PHC。
- B-08:Broker.Shutdown 发 MQTT 5 0x8B 后 Close。serve 在 listener Close 前调用。HTTP Shutdown 留给 L-03。
## 验证
- `go test ./internal/broker/ -count=1` 通过(约 6.2s)
- `go test ./cmd/nixmsg/ -count=1` 通过(约 4.9s)
## 跳过(按裁定)
- 不改 identity/lifecycle.go、presence/app.go、auth pool/phc、listener L-03
- 不关 issues,不 merge main
## 下一步
总控审阅后 ff-merge;L-03 可接 B-08 Shutdown。不要删 `E:\\code\\NixMsg-wt\\fix3`。
## 给下个会话
复用工作树 `E:\\code\\NixMsg-wt\\r2-b` 与已推送分支 `feat/fix-broker-b01-b12`。不要在 e:\\code\\NixMsg 主工作区改。