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

54 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:23:04 UTC [b6fb44f08d]
type: checkpoint
permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-30-07-23-04-utc-b6fb44f08d
stable_id: f0e962f7-a330-4a62-97b3-a7792744664f
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: u02-ckpt-20260930-5aa45b4
created_at: '2026-09-30T07:23:04.400612+00:00'
updated_at: '2026-09-30T07:23:04.400612+00:00'
tags:
- 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`。