7f1dd33097
CI / backend-test (push) Successful in 7m33s
- POST /api/v1/posts/{postId}/comments:Idempotency-Key 必带,落
client_request_id + 规范化 request_hash(uq author×key,键按作者隔离);
同键同 payload 返回首条(201,不重复计数),异 payload 409/40905,
重试撞已删首评 404/40404(沿 T3-04 §2.4 先例);replyToUserId 可选
@ 回复,目标须为存活用户(404/40406);content trim 后 1~2000
- GET 评论列表:(created_at DESC, id DESC) 走 ix_comments_post_created
keyset 游标,仅 status=visible,作者与 @ 目标批量走 AuthorProfileGateway
(降级 id-only 同构复用)
- DELETE /api/v1/comments/{commentId} 顶层短路径:仅评论作者可删
(D3-7 拍板,帖主删他人评论不做);可见评论他人删 403/40301,
不存在/已删/所属帖不可见合并 404/40404;FOR UPDATE 锁定状态迁移,
comment_count 同事务 -1 恰一次
- 评论域同用互动门禁:帖子公开面之外(含作者本人草稿)一律 404/40403
逐字节一致
- ErrorCode 新增 40404 COMMENT_NOT_FOUND
- CommentIntegrationTest 14 例:六类路径、幂等矩阵专项、分页不丢不重、
计数对账专项(删评后列值 = visible 行数 = 列表长度)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>