Files
TPSchedule/docs/superpowers/plans/2026-10-24-all-school-html-feedback.md
T

50 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 全学校HTML反馈 Implementation Plan
> **For agentic workers:** Use superpowers:executing-plans to implement this plan inline.
**Goal:** 本科和研究生均可将最近一次课表/考试页面作为可选反馈邮件附件。
**Architecture:** 共用SchoolPageDiagnostic,按学校收集已识别的表格与学期证据。扩展反馈服务的惰性HTML白名单,沿用原multipart和SMTP通道。
**Tech Stack:** Flutter/Dart、html、Android、Python/FastAPI。
**Spec:** ../specs/2026-10-24-all-school-html-feedback-design.md
## Global Constraints
- 0.7.8+26,com.tpschedule.app,原签名不变;备案号蜀ICP备2025169276号-5A。
- 默认关闭,日志+HTML独立同意,2MiB,10分钟内存留存。
- 不上传原始学生资料到仓库,不修改软著0.5.4备份。
## Review Focus
- 失败页面仍可排查,清洗后能重现原解析结果。
- 过期/学校切换/重认证/退出不能附带旧页面,离开导入页可反馈。
- 异步旧页面不能覆盖新页面证据。
- 服务端拒绝新的select/option标签中夹带事件、地址和无关字段。
- 版本与证书、公钥、备案信息和交付包一致。
### Task 1: 缓存、采集与反馈界面
Files: mobile/lib/services/school_page_diagnostic.dart、mobile/lib/features/school/school_session.dart、mobile/lib/features/feedback/feedback_page.dart;对应services、school_session_flow和feedback测试。
- [x] 添加并运行失败测试:研究生课表/考试清洗可重读、失败及HTTP可信页、认证剔除、缓存清理与研究生反馈提交。
- [x] 扩展受限片段采集,在研究生解析前留存;更新选项文案。
- [x] 运行针对性测试并核对旧本科行为。
### Task 2: 服务端结构兼容
Files: server/feedback/feedback_service.py、tests/test_feedback.py、tests/fixtures;部署说明。
- [x] 添加并运行失败测试:真实客户端生成的合成研究生附件可发送,活动内容与其他控件拒绝。
- [x] 按准确ID和学期选项扩展白名单;保留旧客户端兼容。
- [x] 运行反馈与更新服务完整回归。
### Task 3: 发布0.7.8
Files: mobile/pubspec.yaml、mobile/lib/app/app_version.dart、mobile/lib/features/profile/profile_page.dart、docs及dist交付。
- [x] 设置0.7.8+26及备案号,完整Flutter测试和静态分析通过。
- [x] 构建正式APK,核对包名、版本、签名MD5、原证书和用户指定RSA公钥。
- [ ] 输出同签名APK、源码、反馈服务更新包和部署说明;核对密钥、旧APK及18项冻结软著文件。