Files
MemRelay/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-30 07-23-04 UTC [b6fb44f08d].md
T
memrelay 55eacd66b3 create: Checkpoint 2026-09-30 07:23:04 UTC [b6fb44f08d]
MemRelay-Operation: checkpoint-save:u02-ckpt-20260930-5aa45b4
MemRelay-Resource: f0e962f7-a330-4a62-97b3-a7792744664f
2026-09-30 15:23:08 +08:00

2.7 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:23:04 UTC [b6fb44f08d] checkpoint main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-30-07-23-04-utc-b6fb44f08d f0e962f7-a330-4a62-97b3-a7792744664f project checkpoint 25464650-ed5d-440e-b362-190f2852d451 0c9feb46-d06e-43cd-9ef0-c5813c84a998 active 1 u02-ckpt-20260930-5aa45b4 2026-09-30T07:23:04.400612+00:00 2026-09-30T07:23:04.400612+00:00
ready-to-merge
U-02
lane/identity

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

线 / 任务

  • 线:身份 / 群
  • 任务:U-02(Gitea #40)
  • 未做:U-03(对话密码锁键,等 admin 线)
  • 分支:feat/fix-u02-group-tx(已普通推送到 origin,未强推、未合 main)
  • 工作树:E:\\code\\NixMsg-wt\\r2-u02
  • 基线:origin/feat/fix-message-c04-c07 @ 786fe35(含 C-04 ac90495)
  • 提交:5aa45b4 fix: 群写操作在事务内复核并去重建群成员

完成内容

  1. 加人/踢人/退群/转让/改名/解散在写事务内重读群主、成员关系、成员数;加人再复核目标端 enabled。argon2 仍在事务外。
  2. 建群/加人先去重、去掉自己,再按上限截断(超出 group_full),然后才密码校验。单请求成员数上限 2*max_group_members(至少 256),超出 bad_request。
  3. createAdmin 校验群主格式/存在/启用;成员去重;建成后 emit member_added(未改 emit 实现)。
  4. 迁移 internal/store/migrations/0003_group_members_fk.sql:group_members 指向 groups(id) ON DELETE CASCADE。当时最大号 0002,按 TASKS 4.2 取 0003。
  5. docs/DEVIATIONS.md 身份 I 节追加 ### 复审修复 U-02。

验证

  • go test ./internal/app/group/ ./internal/app/identity/ -count=1 通过。
  • 覆盖:TalkGate 回调里解散后加人 not_found 且无孤儿行;重复成员建群只一条;后台群主不存在/停用失败;并发加人不超过上限;解散后直接 INSERT 成员被外键拒绝。

未做 / 注意

  • 未改 emit(T-01 另一分支仍是 goroutine+20ms)。
  • 未修 U-03。
  • 未改 message RejectPendingTx;void.go 沿用 C-04 调用。
  • 未 merge main。
  • internal/store/db_test.go 仍 assertMigrationCount(..., 2),加 0003 后 go test ./internal/store/ 会失败(本线不准改 store 测试)。合入前总控或 P 线改为 3。若 C-03 先占用 0003,rebase 时给本迁移改号。

给下个会话

  • 复用工作树 E:\\code\\NixMsg-wt\\r2-u02 与分支 feat/fix-u02-group-tx。
  • 不要从落后的 main 改 group 作废路径。
  • 不要删 E:\\code\\NixMsg-wt\\fix3。