This repository was archived by the owner on Aug 5, 2026. It is now read-only.
fix(courses): restore selection data pipeline - #74
Merged
Merged
Conversation
Member
Author
|
Preview smoke 已完成:
PR preview 使用 fresh/empty database,因此课程与教学班结果为空是预期;真实 D1 快照没有复制到 preview,16-table import/materialization 证据来自仓库外隔离数据库。第二轮 CI 的 backend/frontend/deploy、docs/lint/web/integration、Flutter Android 与 iOS 全部通过。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
需求与摘要
修复本地 D1 选课数据导入后搜索不可用、历史评分缺失、教学班安排/时间/教师/本地化字段物化不完整,以及模拟排课无法消费可信时段的问题。N/A(来自产品排障请求)。
产品行为与不变量
影响矩阵
影响说明:新增 migration 0071、D1 导入/物化流程、selection API 评分字段、Web/Flutter 课表展示和搜索投影恢复。没有新增依赖、PII、身份权限、积分或外部 provider 配置;旧 identity-bearing review 数据明确不进入本流程。
文档影响
已同步更新:
文档包含 16-table rollout、双 audit、重复 aggregate 风险、search readiness、真实快照证据和 forward-fix 回退原则。
验证
实际结果:
仓库外真实 D1 快照隔离复验:16 表 184,351 行;物化得到 4,816 catalogue courses、20,834 offerings、40,530 timeslots。8,206/8,434 个历史评分样本唯一映射到 catalogue;6,743 个 teaching classes 获得评分(teacher 3,772 / course 2,971)。重复物化结果稳定;selection fresh run 约 41.3 秒。
Migration、部署与回滚
Preview 与证据
PR preview 由 CI 创建后验证:课程/选课关键词搜索、calendar/major/time filters、评分 scope 展示和本地课表添加。真实 D1 数据不会提交或复制到 preview。
已知限制与 Review 重点