Files
lixi a611acb358
CI / docs-build (push) Successful in 32s
docs: M3 第二波收口——报告 15~20 入档挂导航
- 15~17 社区后端纵切三单(帖子/Feed 作者链路/评论互动关注,226→310)
- 18 契约冻结 v1.3.0(31 路径/43 操作,26 项修正照单全收)
- 19 快照同步与全仓契约矩阵(173 格零漂移,修 allOf 校验盲区,→325)
- 20 收口总表:定型语义汇总(第三波接入依据)与质量事件记录

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-09 11:38:42 +08:00

2.8 KiB

20 M3 第二波收口:社区后端纵切与契约冻结 v1.3.0

执行日期:2026-09-08 ~ 2026-09-09 交付:community 域全部业务接口 + /internal 作者资料链路 + 契约冻结 v1.3.0 + 全仓契约矩阵扩展


0. 概要

工单 交付 提交(api dev) 测试
T3-04 帖子生命周期 5 端点、幂等专项、防枚举 40403、MediaAssetGateway 101ac0f 226→251
T3-05 Feed + 作者链路 FeedCard/AuthorSummary 定型、/internal 批量 + Feign 降级 40bac85 / 99a3c1f →282
T3-06/07/08 评论互动关注 11 端点、真并发幂等、计数同事务、三新码定型 19e8cba / 7f1dd33 →310
契约冻结 openapi v1.3.0(31 路径/43 操作/72 schema),26 项修正照单全收 doc main@f848476
快照同步 + 矩阵扩展 四模块快照 v1.3.0、community 64 格 + media 8 格、修 allOf 校验盲区 0569585 →325

波末状态:patbond-api 325 测试全绿(CI 直查 success)、契约矩阵 43/43 操作 173 格唯一豁免(care-reminders 并发 409)、实现-契约零漂移。

1. 定型的关键语义(第三波 Flutter 接入依据)

  • 媒体:两步上传(创建→预签名 PUT 直传→confirm ready);读取一律预签名 GET(1h TTL,URL 会过期客户端不得持久化);post_image/jpeg/png/webp/10 MiB
  • 帖子:发布走 PATCH draft→published;防枚举 404/40403(hidden 对作者亦不露、互动面=帖子公开面含本人草稿);Idempotency-Key 必带 + request_hash(40905 同键异 hash)
  • Feed:(published_at,id) 游标;FeedCard 含 contentPreview(200 码点)/coverImage/三计数/likedByMe/bookmarkedByMe/AuthorSummary;user 服务故障时作者退 id-only、Feed 照常 200
  • 互动:PUT/DELETE 语义幂等,响应权威终态 {liked,likeCount};自取关 200 no-op;42204 仅自关注
  • 评论:单层;仅评论作者可删(拍板);40404/40406 新码
  • 错误码 v1.3.0 新增 9 码:40301/40403/40404/40405/40406/40905/42203/42204/42205

2. 质量事件

  • auth 契约测试(第一波)与本波矩阵扩展累计抓修 2 处真实漂移(events reason NON_NULL、校验器 allOf 盲区),契约测试机制持续兑现
  • T3-04 agent 曾在等待测试构建时中断,SendMessage 续跑无损交付
  • 快照同步 agent 报告 Monitor 出现过与 Gitea API 直查矛盾的假 success 事件(含时间戳晚于实时时钟的不可能事件),其未采信、以 API 多次直查为准——多源核验纪律有效

3. 遗留与下波

  • uploading 超时清理定时任务(方案在 13 号)、429 Retry-After 分支(待后端限流)
  • 第三波(Flutter 社区接入):T3-12 community feature 数据层(契约 v1.3.0 已冻结可开工)→ T3-13 媒体上传客户端 → T3-14 Feed 替换 → T3-15/16 详情互动(乐观更新 ToggleSync)→ T3-17 发布页;字典 v3 埋点白名单与挂接随页面滚动