docs(plans): 记录 K3 互动实施与验收回执

This commit is contained in:
Zhou Weidong committed 2026-10-17 15:27:42 +08:00
1 parent a0156ee946
commit 969538e6c9
3 files changed
+493 -1

No files matched your search

+291
View File
@@ -1320,3 +1320,294 @@ jianghaifeng 口径作废,后续统一使用 Zhou Weidong,本回执提交已
- 文件分片落盘、断点续传、离线播放、`licenseKey` 本地校验不在 K2 范围,仍未实现,也不能验收。
- 收藏接口没有分页参数,本批按全量列表验收,不验收服务端分页。
- 搜索契约没有接口,本批不验收搜索。
---
## 2026-10-17 K3-A 评论实施(【Codex】)
叙述:按 K3 任务书先补计划文档基线,再按评论 API/controller/UI 顺序做 TDD。
首轮测试在实现前运行,用于确认红灯;实现后运行同一组定向测试转绿。
### 18.1 计划文档
命令:使用补丁工具增量更新 `docs/plans/2026-10-17-K3.md`。
原始结果:
```
Success. Updated the following files:
M /Users/jianghaifeng/Desktop/ReelShort/FruitServer/docs/plans/2026-10-17-K3.md
```
解读:保留既有 K3 计划,仅补记 ReelShort `45f5f25`、FruitServer `a0156ee`
和计划文件未跟踪的实测基线,没有覆盖已有内容。
### 18.2 K3-A 首次红灯
命令:
```
$ cd /Users/jianghaifeng/Desktop/ReelShort/ReelShort
$ flutter test test/comment/comment_api_test.dart test/comment/comment_controller_test.dart
```
原始输出(节选):
```
Error when reading 'lib/core/data/remote/comment_api.dart': No such file or directory
Error when reading 'lib/core/data/models/comment.dart': No such file or directory
Error when reading 'lib/core/data/services/comment_controller.dart': No such file or directory
00:00 +0 -2: Some tests failed.
```
解读:生产 API、模型和 controller 尚不存在,红灯原因符合预期。
### 18.3 K3-A 数据层绿灯
命令:实现评论模型、API、仓库和 controller 后,重跑同一组定向测试。
原始输出:
```
00:00 +9: All tests passed!
```
解读:评论游标分页、String ID、发布回复、替换内容、敏感词 BLOCK message、
删除成功与失败回滚均通过。
### 18.4 K3-A UI 红灯与绿灯
首次运行:
```
$ flutter test test/comment/drama_comments_sheet_test.dart
ProviderNotFoundException: Could not find the correct Provider<EngagementController>
00:00 +0 -5: Some tests failed.
```
解读:旧弹窗仍直接依赖本地 `EngagementController`,符合 UI 红灯预期。
替换为服务端 controller、三态和回复输入后:
```
00:01 +5: All tests passed!
```
随后运行整个评论测试目录:
```
$ flutter test test/comment
00:01 +14: All tests passed!
```
解读:API、controller 和弹窗测试共 14 项全部通过。
### 18.5 K3-A 静态分析
首次分析:
```
info - lib/core/data/remote/comment_api.dart:23:9 - use_null_aware_elements
info - lib/core/data/remote/comment_api.dart:24:9 - use_null_aware_elements
2 issues found.
```
按 lint 改为 null-aware map value 后:
```
$ dart analyze lib test
Analyzing lib, test...
No issues found!
```
解读:K3-A 达到零告警口径。真机交互未执行,设备侧取证仍由用户完成。
### 18.6 K3-B 点赞红灯
命令:
```
$ cd /Users/jianghaifeng/Desktop/ReelShort/ReelShort
$ flutter test test/interaction test/comment/drama_comments_sheet_test.dart
```
原始输出(节选):
```
Error when reading 'lib/core/data/services/interaction_controller.dart': No such file or directory
Method not found: 'InteractionController'.
00:01 +8 -1: Some tests failed.
```
解读:互动 API 已先通过,缺失的剧集点赞 controller 构成 K3-B 红灯。
### 18.7 K3-B 绿灯
实现 `InteractionController`、替换播放页右栏、去掉本地互动演示层后:
```
$ flutter test test/interaction test/comment/drama_comments_sheet_test.dart
00:01 +11: All tests passed!
```
补齐评论点赞成功/回滚和整机 AuthGate 断言后:
```
$ flutter test test/comment/comment_controller_test.dart test/widget_test.dart
00:04 +23: All tests passed!
```
静态分析:
```
$ dart analyze lib test
Analyzing lib, test...
No issues found!
```
解读:剧集与评论点赞均使用服务端结果校准;失败会回滚;未登录点剧集赞会打开
AuthGate 且仓库调用次数为 0。剧集点赞数字未展示,符合契约缺口降级方案。
### 18.8 K3-C 举报红灯
命令:
```
$ cd /Users/jianghaifeng/Desktop/ReelShort/ReelShort
$ flutter test test/interaction/report_dialog_test.dart test/comment/drama_comments_sheet_test.dart test/widget_test.dart
```
原始输出(节选):
```
Error when reading 'lib/pages/interaction/widgets/report_dialog.dart': No such file or directory
Found 0 widgets with key [<'comment-menu-10'>]
Found 0 widgets with key [<'detail-more'>]
00:05 +21 -5: Some tests failed.
```
解读:举报弹窗、评论更多菜单和详情页更多菜单均尚未实现,红灯符合 K3-C 范围。
### 18.9 K3-C 绿灯
实现固定五项 `SPAM/ABUSE/PORN/AD/OTHER` 单选、可选描述、评论与短剧举报入口后:
```
$ flutter test test/interaction/report_dialog_test.dart test/comment/drama_comments_sheet_test.dart test/widget_test.dart
00:05 +26: All tests passed!
```
解读:举报原因与描述提交、评论举报成功、重复举报 message 透传、未登录 AuthGate
和详情页举报短剧均通过。
### 18.10 K3-C 静态分析
首次分析:
```
info - lib/pages/drama_detail/drama_detail_view.dart:319:42 - use_build_context_synchronously
info - lib/pages/drama_detail/drama_detail_view.dart:321:26 - use_build_context_synchronously
info - lib/pages/drama_detail/drama_detail_view.dart:327:26 - use_build_context_synchronously
3 issues found.
```
改为 State 自身 `context` + `mounted` 守卫后:
```
$ dart analyze lib test
Analyzing lib, test...
No issues found!
```
解读:举报实现达到零告警口径。
### 18.11 K3-D 分享回归
命令:
```
$ cd /Users/jianghaifeng/Desktop/ReelShort/ReelShort
$ flutter test test/core/platform_share_service_test.dart test/formatting/localized_content_test.dart test/widget_test.dart
```
原始输出:
```
00:05 +25: All tests passed!
```
解读:系统分享文本保持“标题 → 简介 → footer”顺序;en/zh/id 三语均生成
非空标题、简介和 `FruitShorts` footer;播放页分享入口回归通过。
### 18.12 代码规模红线修正
提交前检查命令:
```
$ wc -l lib/pages/player/widgets/drama_comments_sheet.dart
535 lib/pages/player/widgets/drama_comments_sheet.dart
```
解读:主弹窗超过单文件 500 行红线。将评论条目与交互回调拆到
`comment_tile.dart` 后:
```
$ wc -l lib/pages/player/widgets/drama_comments_sheet.dart lib/pages/player/widgets/comment_tile.dart
396 lib/pages/player/widgets/drama_comments_sheet.dart
149 lib/pages/player/widgets/comment_tile.dart
```
拆分后复跑互动定向测试:
```
00:06 +51: All tests passed!
```
解读:行为未回归,两个文件均低于 500 行。
### 18.13 最终门禁
```
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test
00:11 +241 ~1: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'... 6.8s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:唯一跳过项是既有 live watch 用例,因客户端接口服务未启动而按测试机制跳过。
真机/设备侧集成、截图、设备日志仍未执行。
### 18.14 Git 合并与推送
ReelShort 功能提交:
```
d361034226ec2bc431548d45068dc60046e5e473
author: Zhou Weidong <502333560@qq.com>
committer: Zhou Weidong <502333560@qq.com>
subject: feat(flutter): 接入互动评论点赞举报
```
`--no-ff` 合并提交:
```
9db6935308e65342be46c81419c2992ed2df1df0
author: Zhou Weidong <502333560@qq.com>
committer: Zhou Weidong <502333560@qq.com>
subject: merge: 合并 K3 客户端互动能力
```
推送:
```
To http://git.reelshort2.com/jianghaifeng/ReelShort.git
45f5f25..9db6935 develop -> develop
```
解读:K3 已合并到 ReelShort `develop` 并推送,未操作 `main`。