编号:U-02 严重级:medium 工作线:身份、群、在线与认证基础(internal/app/identity、group、presence、internal/auth) 来源:审查 I-09 依赖:C-04 (#35)(同改 group 包,C-04 (#35) 先合) 被依赖:无
采用审查 I-09 的方案:
group_full
createAdmin
member_added
internal/app/group/app.go(可选新增迁移)。
internal/app/group/app.go
只改 group/app.go 的校验逻辑,不动 emit(T-01)与 void.go(C-04);与 U-03 在 checkAddMember 附近相邻,身份线内顺序合入。
emit
checkAddMember
以下是本次复审各区审查报告的原文段落。A、M、I、P、S 开头的是原始发现编号(A 管理后台与网页、M 消息核心、I 身份认证群在线、P 传输平台部署、S SDK)。解决方案以本 issue 上方的"结论与统一方案"为准;原文里的方案与之不一致时,按上方执行。
INSERT OR IGNORE INTO group_members
group.create
busy
group/app.go:181-187
208-220
230-266
270-304
307-334
364-396
636-657
group/app.go:120-133
155-160
protocol/validate.go:498-525
group/app.go:505-511
567-627
store/migrations/0002_schema.sql:42-47
group/app.go
复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。
4059a15
已合入 origin/main 0c9b459。落地提交 ad4f131 fix: 群写操作在事务内复核并去重建群成员 (#40)。迁移 0003 已与 C-03 的 0004 一并合入。
0c9b459
ad4f131
No dependencies set.
The note is not visible to the blocked user.
编号:U-02 严重级:medium 工作线:身份、群、在线与认证基础(internal/app/identity、group、presence、internal/auth) 来源:审查 I-09
依赖:C-04 (#35)(同改 group 包,C-04 (#35) 先合) 被依赖:无
结论与统一方案
采用审查 I-09 的方案:
group_full),然后才做密码校验;单个请求的成员数设上限。createAdmin校验群主格式、存在且已启用;成员去重;建成后补推member_added。改动文件
internal/app/group/app.go(可选新增迁移)。与其他问题的交互 / 冲突说明
只改 group/app.go 的校验逻辑,不动
emit(T-01)与 void.go(C-04);与 U-03 在checkAddMember附近相邻,身份线内顺序合入。验收与测试
问题明细(各区审查原文,证据含文件与行号)
[I-09] 群操作的校验不在写事务里;建群输入不去重;后台建群不校验群主
INSERT OR IGNORE INTO group_members会留下孤儿成员。group_members 没有外键,之后同编号新建的群会自带这些成员。group.create不去重:同一个编号出现两次,会做两次密码校验、计两次锁定,插入时主键冲突,整个建群失败并返回busy(客户端按可重试处理,会一直失败)。成员数没有上限,一个请求可以带上万个成员。createAdmin不校验 owner_id 的格式、是否存在、是否停用;成员也不去重;建群时不推 member_added。group/app.go:181-187、208-220、230-266、270-304、307-334、364-396,读池取群信息:636-657。group/app.go:120-133、155-160;协议校验不去重:protocol/validate.go:498-525。group/app.go:505-511、567-627。store/migrations/0002_schema.sql:42-47。group_full),然后才做密码校验。createAdmin校验群主格式、存在且已启用;成员去重;建成后补推member_added。group/app.go(可选新增迁移)。复审基线:main
4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。已合入 origin/main
0c9b459。落地提交ad4f131fix: 群写操作在事务内复核并去重建群成员 (#40)。迁移 0003 已与 C-03 的 0004 一并合入。