--- title: Checkpoint 2026-09-29 23:25:57 UTC [a8807dc613] type: checkpoint permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-23-25-57-utc-a8807dc613 stable_id: 64c5657e-8be3-4970-945a-19248fbccb79 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: n3-ready-20260930-34e7c28 created_at: '2026-09-29T23:25:57.146375+00:00' updated_at: '2026-09-29T23:25:57.146375+00:00' tags: - ready-to-merge - N3 - 连接N - feat/n3-login --- # 检查点:连接 N · N3 ready-to-merge ## 完成内容 - N3 登录/会话令牌/握手/顶号/logout/管理员踢线入口 - `broker.Login`:nst_ 令牌 SHA-256 常量时间比较、闲置天数、密码登录+两种锁定、内部故障返回 error - `broker.Session`:hello(含 session_token)、30s 超时、未订 down 断开、not_ready、online/offline_since、PresenceSink、self.logout、Disable/Deleted/ResetPassword/Kick - 连接代号区分顶号旧连接;InlineClient OnPublish 放行修复 PublishDown - F02 测试覆盖;`task check` 通过 ## 分支 / 路径 - 分支:`feat/n3-login`(已推送 origin,未推 main) - 工作树:`e:\\code\\NixMsg-wt\\n3` - tip:`34e7c2827f0321a18768786a6904af4b3f450211` - 基于:`origin/main` @ `d357082` ## 验证 - `task check` 通过(含 broker F02) ## 没做完 - 未改 `cmd/nixmsg`/`wire.go` 接线 - self.login_password 属 I2 - presence MQTT 推送属 I3(仅 PresenceSink + port 回调) - OnPublishDropped 清推送标记属 M ## 给下个会话 - 总控可审阅后 ff-merge;接线注入 Login+Session - session_hash 为 hex - 勿强推 main