diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 6187421..bf27f1a 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -258,12 +258,62 @@ Running Gradle task 'assembleDebug'... 6.6s `fix(ios): 刷新 Flutter SPM 包后再准备框架` - 合并:`ac706a4`,已推送 ReelShort `develop`。 -#### 6.8 已知边界 +#### 6.8 导航白线与观看历史缺陷修复 + +- 底部导航白线:M3 默认深色 `outlineVariant` 实测亮度为 `1.0`。 + 已新增显式 token: + `outlineDark=#3A3C45`、`outlineVariantDark=#242329`、 + `outlineLight=#8A8E99`、`outlineVariantLight=#D6D9E2`; + light/dark ColorScheme 均显式赋值,底栏边框使用主题 + `outlineVariant`。 +- 新增测试断言导航边框不是白色、深色亮度 `<0.2`, + 并覆盖 light/dark ColorScheme token。 +- 观看历史诊断: + - 只读查询 `UKZBA9IBE` 得到两条正常记录:剧 1/集 1、剧 5/集 7; + - 真实 8081 recent 返回结构正常,客户端诊断账号解析出 2 条记录并成功补详情; + - 未复现用户设备上的 401/100000、JSON 异常或详情失败; + - 当前代码缺陷是 `WatchRecordsController` 把 recent 异常统一折叠为 + `progressError`,后端原文无法定位。 +- 修复:controller 对 recent/详情异常打印真实类型、异常与堆栈; + `ApiException.message` 透传到页面错误态,页面新增稳定 retry Key。 +- 临时真实联调诊断文件已删除,不进入提交。 +- 用户设备上的具体错误仍待设备侧日志确认,未宣称根因已完全复现。 + +定向门禁: + +``` +$ flutter test test/theme test/home/home_nav_ui_test.dart test/watch/watch_records_controller_test.dart test/watch/watch_records_page_test.dart +00:01 +21: All tests passed! +``` + +全量门禁: + +``` +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:13 +266 ~1: All tests passed! + +$ flutter build apk --debug +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +Git: + +- 修复提交:`732483465ced2b28438585a4b2f1573e9a0529cb` + `fix(flutter): 修复导航白线与观看记录错误透传` +- `--no-ff` 合并:`b7b1c50`,已推送 `ac706a4..b7b1c50 develop -> develop` + +#### 6.9 已知边界 - 未增加震动开关;触觉遵循系统设置。 - 不做忘记密码、Google/Apple 登录、隐私勾选或新 tab。 - Xcode 首次包图解析早于 scheme PreActions;完全无 SPM 包时仍需先运行 `flutter pub get`,本轮未通过 scheme 实现冷启动自动生成。 +- 观看历史缺陷未在用户真机上复现;需用户更新后抓 + `[WatchRecordsController] recent failed` / `detail failed` 日志与页面原文。 - K4 未开始。 --- diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index d600932..333ccf9 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -1937,3 +1937,94 @@ fix(ios): 刷新 Flutter SPM 包后再准备框架 ``` 解读:scheme 修复已合并推送;author/committer 均为 Zhou Weidong。 + +### 20.8 K6 导航白线与观看历史缺陷修复 + +### 导航白线 + +首次红灯: + +``` +Expected: a value less than <0.2> + Actual: <1.0> +``` + +解读:当前深色 ColorScheme 默认 `outlineVariant` 实为白色,确认了白线根因。 + +修复:新增 light/dark outline token,两个 ColorScheme 显式设置 +`outline/outlineVariant`;导航边框继续使用主题 token。 + +### 观看历史真实诊断 + +后端日志: + +``` +2026-10-17T16:35:22.816+08:00 POST /app/auth/register 耗时 242ms +2026-10-17T16:35:37.123+08:00 POST /app/watch/progress 耗时 51ms +``` + +数据库只读查询: + +``` +uid | drama_id | episode_id | position_ms | duration_ms +UKZBA9IBE | 1 | 1 | 1522 | 91326 +UKZBA9IBE | 5 | 7 | 0 | 227880 +``` + +真实 recent 响应: + +``` +{"code":0,"message":"ok","data":[ + {"dramaId":"5","episodeId":"7",...}, + {"dramaId":"1","episodeId":"1",...} +]} +``` + +临时直连 controller 诊断: + +``` +watch-records-diagnostic error=null records=2 +record drama=5 episode=7 detail=闪婚后,傅先生每天都在撒糖 loading=false failed=false +record drama=1 episode=1 detail=替嫁新娘:总裁的掌心宠 loading=false failed=false +``` + +解读:真实用户同类数据在 API、JSON 解析、controller 和详情补取链路均正常, +未复现设备侧 401/100000、解析异常或详情失败。后端日志中的 429 仍属于 +其他联调设备,用户 watch 请求没有该错误。 + +确认的客户端缺陷是 controller 吞掉真实异常: + +``` +Expected: '账号不存在,请先注册' + Actual: 'progressError' +``` + +修复:debug 打印异常类型、原文与堆栈;ApiException message 透传页面错误态。 + +### 定向与全量门禁 + +``` +$ flutter test test/theme test/home/home_nav_ui_test.dart test/watch/watch_records_controller_test.dart test/watch/watch_records_page_test.dart +00:01 +21: All tests passed! + +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:13 +266 ~1: All tests passed! + +$ flutter build apk --debug +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +### Git + +``` +732483465ced2b28438585a4b2f1573e9a0529cb +fix(flutter): 修复导航白线与观看记录错误透传 + +ac706a4..b7b1c50 develop -> develop +``` + +解读:修复已合并推送;用户设备特定 error 仍需设备日志确认。