Files
MemRelay/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-30 07-33-32 UTC [01dfe35b7a].md
T
memrelay a0b156b3c7 create: U-03 对话密码锁键不含 IP
MemRelay-Operation: memory-save:u03-decision-talk-lock-key-20260930
MemRelay-Resource: f6893f51-1f95-480c-9038-84eab43afb72
2026-09-30 15:33:35 +08:00

3.2 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-30 07:33:32 UTC [01dfe35b7a] checkpoint main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-30-07-33-32-utc-01dfe35b7a 5ad2d6bb-cc23-47b9-8520-ca169019d1b5 project checkpoint 25464650-ed5d-440e-b362-190f2852d451 0c9feb46-d06e-43cd-9ef0-c5813c84a998 active 1 u03-checkpoint-20260930-a0a24b2 2026-09-30T07:33:33.569308+00:00 2026-09-30T07:33:33.569308+00:00
ready-to-merge
U-03
lane/identity
review-fix

检查点:身份线复审 U-03 完成(未 merge main)

线 / 任务

  • 线:身份 / 对话密码锁定
  • 任务:U-03(Gitea #41)
  • 分支:feat/fix-u03-talk-lock(已普通推送到 origin,未强推、未合 main)
  • 工作树:E:\\code\\NixMsg-wt\\r2-u03
  • 未 merge main;未关 issue;未改 emit;未修 H-02

基线与合并

  1. git worktree add -b feat/fix-u03-talk-lock E:\\code\\NixMsg-wt\\r2-u03 origin/feat/fix-u02-group-tx(含 C-04/C-05 submit.go、U-02 group tx)
  2. git merge origin/feat/fix-identity-u01-u05 → 干净(含 U-04 locks.go 过期清理)
  3. git merge origin/feat/fix-admin-web → 干净(H 的 endpoints.go;未合本地 r2-h 上可能已有的 H-02 afe6a77,按指令用 origin/feat/fix-admin-web)
  • 冲突:无。DEVIATIONS 自动合并双方追加;group/app.go、submit.go、endpoints.go、locks.go 无冲突,未删别人修复。

提交

  • 合并提交:73408ab merge: identity u01-u05;c15e8dc merge: admin-web
  • U-03:a0a24b29b0f0f7a3b7e2743521b6fa8b5eac313a fix: 统一对话密码锁键为发送方加对方不含 IP

完成内容(issue 统一方案)

  1. LockTalkPair 键统一为 {Kind, 发送方, 对方},不含 IP。unlock / send / 进群 / 成功清零共用。UnlockTalk/CheckTalkPasswordForJoin 仍留 remoteIP 以免改接线签名。group checkAddMember 仍传 DefaultRemoteIP,identity 侧忽略。
  2. 没带密码先返回 talk_password_required,不计次、不因已锁改成 rate_limited;带错才 Fail;已锁且带密码才 rate_limited。
  3. 后台 PUT talk-password:有 Identity 时调 SelfSetTalkPassword(已清 LockTalkTarget,not_found→404);无 Identity 时改库后 Clear(LockTalkTarget)。
  4. LoginLocks.ClearAllForEndpoint:删该编号作为 EndpointID 或 PeerID 的全部锁定。identity.Delete 与无 Identity 的 admin 删除都会调用。ClearEndpoint 仍只清登录锁(admin memlock 已对齐)。
  5. docs/DEVIATIONS.md 身份 I 节追加 ### 复审修复 U-03。

验证

go test ./internal/app/identity/ ./internal/app/group/ ./internal/app/message/ ./internal/admin/ ./internal/auth/ -count=1 一次通过(identity 1.1s / group 0.18s / message 0.30s / admin 2.8s / auth 0.17s)。

未做 / 给下个会话

  • 不要 merge main;不要强推 main。
  • 不要改 group emit;不要修 H-02。
  • 总控可审阅后 ff-only 合 feat/fix-u03-talk-lock(建议在 U-02、identity u01-u05、admin-web 之后,因本分支已把它们 merge 进来)。
  • 不要删 E:\\code\\NixMsg-wt\\fix3。
  • 标签:ready-to-merge