docs(plans): 记录 K3 互动实施与验收回执
This commit is contained in:
1 parent
a0156ee946
commit
969538e6c9
3 files changed
+493
-1
No files matched your search
@@ -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`。
|
||||
Reference in new issue
Block a user