Files
TPSchedule/docs/tpschedule-0.7.8-validation.md
T

3.1 KiB
Raw Blame History

TPSchedule 0.7.8+26:本科、研究生HTML反馈

2026-10-24,F:/program/app。用户要求两类学生均可选择附带导入HTML,并指定版本0.7.8、原证书MD5、公钥及备案号。本记录不包含学生原始网页、真实反馈内容或认证资料。

功能

反馈问题页面选项改为“附带最近一次学校导入页面HTML”,明确支持本科/研究生课表及考试;沿用默认关闭、日志联动和个人信息提示。共享内存缓存2MiB、10分钟,成功发送后清除;退出、重新认证、新查询清除,离开导入页转去反馈保留。邮件仍附TPSchedule-school-page.html,不占媒体名额,失败重试保持原编号与内容。

研究生在自动课表、手动读取和考试读取的解析前留存已验证的学校表格片段。清洗后保留tbl/sample-table-1、节次ID、drpxq/xqbh学期选择证据;剔除登录页面、无关账户区域、密码字段、网络资源、认证参数和活动脚本。允许原导航策略中学校精确域名/默认端口的HTTP研究生框架,排除其他域名、端口与userinfo。HTML并非整页逐字备份,缺少可识别表格时不会附带登录页。

反馈服务器扩展最小HTML白名单,保持本科协议和旧客户端兼容,研究生附件仍受同一大小、活动内容和幂等校验。Dockerfile明确只读程序权限,避免上传包权限影响普通用户。部署须更新原feedback服务的feedback_service.py与Dockerfile;更新管理后台updates无需重新配置。详见server/feedback/html-diagnostic-update.md。

回归

新增研究生课表/考试重解析、错误字段保留、HTTP框架、认证/事件剔除、期限、会话缓存生命周期、反馈勾选提交,以及客户端真实生成的合成HTML到服务端邮件附件的契约验证。

独立审查发现原生currentUrl等待期间注销导致旧片段重填缓存的问题,自动和手动两条路径均已先复现失败,再移至await返回后校验会话/generation;手动解析返回后再次校验。回归测试覆盖该等待窗口,审查复核通过。

最终Flutter完整套件302项通过,静态分析无问题;反馈与更新服务95项测试通过。正式APK构建成功;Android16/API36模拟器覆盖安装成功,冷启动Status ok、TotalTime2530ms,进程运行且未见AndroidRuntime致命错误。检查了首页、反馈选项和“我的”底部,0.7.8及备案号显示正确。模拟器沿用软件渲染启动参数;真机默认渲染方式未改。

版本及署名

应用TPSchedule,包名com.tpschedule.app,版本0.7.8、构建号26。“我的”展示蜀ICP备2025169276号-5A。apksigner验证成品APK签名有效,证书MD5为78DE9119AD14727FA1C5E5E4E68145EE;从新APK提取的证书与0.7.6逐字节相同,RSA公钥十进制模数与用户提供值完全一致。公开签名报告增加模数与指数,便于核对;未改私钥。软著0.5.4冻结材料和旧版安装包保持。

未登录生产服务器、未变更生产配置、未发送实际邮件;真实学校登录和邮件接收由用户安装更新并同步部署反馈服务后复测。