diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 226017d..7aff45a 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -2101,3 +2101,101 @@ b7b1c50..3e8703b develop -> develop ``` 解读:K7 已合并推送;author/committer 均为 Zhou Weidong。 + +--- + +## 2026-10-17 K7 真机缺陷修复:观看历史 Provider 与首页轮播数据源 + +### 22.1 范围与分支 + +叙述:用户真机验收后报告观看历史仍报错、首页轮播仍不显示。本轮只修客户端 +Provider 注册与首页轮播数据源,不改后端、Web、specs 或既有发现页分区逻辑。 +ReelShort 从 `develop 3e8703b` 拉 +`fix/flutter-home-watch-provider-banners`;FruitServer 从 `develop 9c6aaed` +拉 `docs/flutter-home-watch-device-fix`,本仓库只改 `docs/plans/PROGRESS.md`。 + +### 22.2 先红:复现设备报告 + +真实 `LumaDramaApp` Provider 树打开「我的 -> 观看历史」: + +```text +ProviderNotFoundException: +Could not find the correct Provider +above this _WatchRecordsBody Widget +``` + +首页 feed 返回 2 条 banner、discover feed 返回 0 条 banner: + +```text +Expected: exactly one matching candidate + Actual: Found 0 widgets with type "CoverCarousel" +``` + +解读:两处红灯分别复现了用户报告的 Provider 缺失和轮播为空。 + +### 22.3 修复 + +- `lib/app.dart` 在现有 Repository Provider 附近注册 + `Provider.value(value: _catalogRepository)`,与 + `CatalogController` 共用同一实例。 +- `lib/pages/discover/discover_view.dart` 改为监听 + `CatalogController.feed.banners`,修复后首页 tab 使用 `/app/home/feed` + 的 banners;发现页分区仍使用 `CategoryController`,没有新增接口。 +- 新增 `test/watch/watch_history_provider_test.dart`:在真实 Provider 树打开 + 观看历史,断言不抛错并展示空态。 +- 新增 `test/discover/home_banner_source_test.dart`:home banners 为 2、 + discover banners 为空时,断言渲染两个圆点、首图显示且 4.5 秒后自动切到次图。 + +### 22.4 门禁原始输出 + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! +``` + +```text +$ flutter test test/watch/watch_history_provider_test.dart test/discover/home_banner_source_test.dart +00:01 +2: All tests passed! +``` + +```text +$ flutter test test/discover/cover_carousel_test.dart test/watch/watch_records_page_test.dart +00:00 +12: All tests passed! +``` + +```text +$ flutter test +00:16 +286 ~1: All tests passed! +``` + +解读:完整套件 286 项通过,1 项联调测试因客户端接口服务未启动按设计跳过; +输出中的 `[WatchRecordsController] ...` 异常堆栈来自故意注入失败的既有测试。 + +### 22.5 Git + +```text +5058853 fix(flutter): 注册目录仓库并修正首页轮播数据源 +6cc5bfc merge: 合并首页轮播与观看历史真机修复 +3e8703b..6cc5bfc develop -> develop +``` + +修复提交与合并提交的 author/committer 均为 +`Zhou Weidong <502333560@qq.com>`。 + +### 22.6 用户真机验证步骤与预期 + +以下设备侧取证由用户执行,开发机测试不能替代真机证据。 + +1. 使用最新 `develop` 重新构建并安装,登录用户设备 + `d-mvc33zh5-pemv3e`。 + 预期:`flutter run` 终端不再出现 `ProviderNotFoundException`。 +2. 打开「我的 -> 观看历史」。 + 预期:页面正常打开;有历史时显示剧目与进度,无历史时显示空态,不再进入 + Provider 错误页。 +3. 回到发现页并等待首页 feed 加载完成。 + 预期:顶部轮播显示后端 `/app/home/feed` 返回的 2 张 banner,底部有两个圆点。 +4. 等待 4.5 秒。 + 预期:轮播自动切到第 2 张;手动拖动后仍可从当前页继续自动轮播。 + +设备侧截图、日志与最终验收结论由用户执行。