diff --git a/project.md b/project.md index dcd02ed..f2aaf1e 100644 --- a/project.md +++ b/project.md @@ -832,9 +832,13 @@ storage:SQLite WAL,单写线程 | 32 | **P3 Telegram 通知** | 真实 Bot 发送成功;发现重复结果后已修复按 aid 去重,离线测试覆盖 | | 33 | **P3 同步联动** | 候选被人工加入收藏夹后,同步识别 1 条新增并当天补采快照;候选行自动删除 | | 34 | **P2 预览数据** | 复制真实库回填 7 天:796 条视频、4,606 条合成快照、3 条失败、4 条候选、1 条预览黑名单 | -| 35 | **P2 只读页面** | 首页/榜单/视频/UP/粉丝/候选/系统 7 个页面在 390px 与 1280px 下无脚本错误 | +| 35 | **只读页面** | 首页/视频/UP主/视频详情/UP 详情/粉丝/数据说明/候选/系统页面可访问;390px 与 1280px 下无脚本错误 | | 36 | **P2 只读边界** | 业务 POST/PUT/PATCH/DELETE 均返回 405,请求前后数据库行数不变 | | 37 | **粉丝历史回填(CSV)** | 从 B 站粉丝历史 CSV 导入 2020-06-03~2026-10-31 共 1788 条,替换旧 91 条;155 个缺失日保持断开 | +| 38 | **迁移 v4 与时长效率榜** | 预览库升级到 schema 4;`/api/videos?sort=efficiency`、`/api/ups?sort=efficiency` 正确排序,`min_duration_seconds=600` 与 `maturity_days=14` 过滤生效,`duration` 缺失不参与 | +| 39 | **粉丝快照回填(真实性)** | 预览库 488 个 UP、796/796 视频补齐 `up_follower`,0 失败;历史视频标记 `backfilled=1` | +| 40 | **导航拆分与数据说明页** | `/videos`、`/ups`、`/about` 均返回 200;`/api/about` 返回 schema 4、当前阈值、权重与粉丝覆盖度 | +| 41 | **全量离线测试** | 32 个 `tests/test_*.py` 全部通过(含新增 `test_up_profile.py` 与迁移/数据库断言更新) | **未验证(需授权或外部配合)**: @@ -843,7 +847,10 @@ storage:SQLite WAL,单写线程 - 手机扫码 `auth` 完整链路; - 各通知渠道的按钮/链接实际表现; - 长期(>72h)每小时扫描的风控表现; -- 收藏夹真实上限是否 1000。 +- 收藏夹真实上限是否 1000; +- 本地真实数据副本删除后,未在生产库上执行 `sync --full`;预览库的 `video.pages` 仍为 NULL,需在真实库跑一次全量同步才会填充(不影响效率榜,效率榜只用 `duration`)。 + +**本轮有意不做**:基于粉丝数的"破圈"榜单(只采集与回填数据,见 §14)。 ---