From 35a1aebf8a3a2a22e78ae207a6b4399b140ec825 Mon Sep 17 00:00:00 2001 From: MemRelay Date: Wed, 30 Sep 2026 07:26:06 +0800 Subject: [PATCH] create: Checkpoint 2026-09-29 23:26:04 UTC [fbeda10e36] MemRelay-Operation: checkpoint-save:ckpt-i2-i4-ba6cc9f-20260930 MemRelay-Resource: 2d4e1cd4-1697-4ea0-aa18-f0d19b270200 --- ...nt 2026-09-29 23-26-04 UTC [fbeda10e36].md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-26-04 UTC [fbeda10e36].md diff --git a/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-26-04 UTC [fbeda10e36].md b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-26-04 UTC [fbeda10e36].md new file mode 100644 index 0000000..0bde528 --- /dev/null +++ b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 23-26-04 UTC [fbeda10e36].md @@ -0,0 +1,53 @@ +--- +title: Checkpoint 2026-09-29 23:26:04 UTC [fbeda10e36] +type: checkpoint +permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-23-26-04-utc-fbeda10e36 +stable_id: 2d4e1cd4-1697-4ea0-aa18-f0d19b270200 +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: ckpt-i2-i4-ba6cc9f-20260930 +created_at: '2026-09-29T23:26:04.049600+00:00' +updated_at: '2026-09-29T23:26:04.049600+00:00' +tags: +- ready-to-merge +- I +- I2 +- I3 +- I4 +- feat/i-identity +--- + +# 检查点:身份 I I2–I4 完成(ready-to-merge) + +## 线 / 任务 +- 线:身份 I +- 任务:I2 自己的资料和对话密码、I3 在线与目录、I4 群 +- 分支:`feat/i-identity`(已推送 `origin/feat/i-identity`) +- 提交:`ba6cc9f` feat: 实现身份资料、对话密码、在线目录与群管理 +- 工作树:`e:\\code\\NixMsg-wt\\i2` +- 基线:`origin/main` = `d357082` + +## 完成内容 +- I2:`identity.App` — self.get/update/talk_password/login_password/logout、unlock、HasTalkGrant、CheckTalkPasswordForJoin、授权表 password/reply、锁定(对+对方 5m/10、对方总数 1h/50,改密清零) +- I3:`presence.App` — presence.get(≤200)、directory.list(编号排序/前缀或名称包含/limit≤200)、presence.watch(≤1000 或 all、覆盖、断线清空)、QoS0 通知;在线读库字段 + 可注入 ConnTable + SetOnline/SetOffline +- I4:`group.App` — create/add/remove/leave/transfer/rename/dissolve/list/get;部分失败仍建群;进群须当次密码;停用端不可入;群主不可直接退出;退群/踢人作废 pending+revoked;解散作废 pending 与 scheduled;群事件 QoS0 +- `docs/DEVIATIONS.md`「身份 I」增补 I2/I3/I4 节,保留其他节;未改 PRD + +## 验证 +- `task check`:通过(web build、go build、golangci-lint 0 issues、go test ./... 全绿) +- 包测:identity / presence / group 直接调用 + 临时 SQLite,覆盖 F15、F03/F04(不拔网线)、F06/F16 + +## 未接 MQTT 的部分 +- 未改 `cmd/nixmsg` / `wire.go`;无 HandleUplink 分发 +- presence/group_event/revoked 需注入 Downlink;logout 踢线需 ConnControl +- N3 真实连接事件未接;拔网线心跳离线未测 +- I5 停用/删除仍 ErrNotImplemented + +## 下一步 / 给下个会话 +- 总控审阅后 ff-only 合并 `feat/i-identity` +- 接线:注入 Hash/Locks/Sessions/Downlink/ConnTable,HandleUplink 调 Service +- 标签:ready-to-merge \ No newline at end of file