| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
杂务: cut v1.2.1.4 预发布 | 5 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
工具(打包): android_cli_install 支持 -Mode release(正式版打包+覆盖安装) 新增 release 模式,与 GitHub 发布构建逐参数对齐,且**保证不丢正式版数据**: - flavor=prod、applicationId=com.mutx163.qingyu(无后缀),包名与线上正式版一致; - 构建命令对齐 .github/workflows/android-build.yml: flutter build apk --release --flavor prod --target-platform android-arm64 - 用同一把 android/app/upload-keystore.jks 签名。已实测三方一致: 已安装正式版 APK 签名 SHA-256 = keystore 证书 SHA-256 = GitHub 发布包的签名 = 995892a3eceb7195eb52db1bea346d9dc485293c82cb9d918b19f194e41e79ce (DN 亦同为 CN=mikcb, OU=OpenSource, ...),因此可覆盖安装; - 安装改走 adb install -r(**绝不 uninstall**):签名一致且 versionCode 不降级时 数据完整保留;万一不符,Android 只会让安装失败并保留原应用,不会清数据。 - 构建前先校验 key.properties / upload-keystore.jks 是否存在,避免跑完几分钟才发现 没签名装不上。 - versionCode 实测吻合:pubspec 2.1.2+132 → build.gradle 的 +100000 → 100132, 与已安装正式版 100132 相同,覆盖安装允许。 debug / profile 两个模式的行为完全未改动。 | 1 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
收紧(工程化): lint 收紧至 strict-casts/strict-raw-types + 40 条扩展规则并全量清零,analyze --fatal-infos 门禁,CJK 硬编码审计棘轮接入 CI——analysis_options 启用 use_build_context_synchronously/cancel_subscriptions/avoid_print 等正确性规则与风格集(dart fix 批量修 1432 处 + 手工修 14 error/17 warning),两个高噪音规则 cascade_invocations(127)/discarded_futures(195) 注释保留待第二批;CI/安卓构建 analyze 收紧为 --fatal-infos 防劣化;audit_cjk_hardcode.py 新增 --baseline 棘轮模式(回归失败/改进自动下调),基线 68 文件 1070 行入库,CI 新增 CJK hardcode audit 步骤;附带 strict_raw_type 显式泛型、lan_edit_api_handlers ArgumentError.message 类型收窄、avoid_slow_async_io 24 处 exists()→existsSync()。flutter analyze 0 issues,services/providers/architecture/models/domain/utils/logging/data 测试全绿(壁纸 7 例失败为主分支既有,与本批无关)。 | 1 个月前 | |
官网(163366.xyz): 导入方式口径统一为四种——指南页拆出识图与表格模板 course-import.html 标题写「四种方式」但正文只列到方式三,与首页 FAQ「三种」、首页按钮「四种」三处互斥。按 App 内四个真实入口(教务系统 / .ics / 识图 / 表格模板)拆成方式三、方式四;生成器 TOPIC_PAGES 是唯一源,同批改源再重新生成产物,避免下次自动任务回滚。sitemap 首页 lastmod 随本次 index.html 改动更新。 | 2 天前 | |
修(CI): 修中文硬编码棘轮红线——兜底自检课改用共享常量 主干 CI 从 10-13 起连续红,c7373b2c(超级岛测试课智能挑选)往 live_testing_trigger.dart 新增 5 行含中文的代码,而基线文件 tool/cjk_hardcode_baseline.txt 在 10-10 之后没再同步,棘轮判为回归。 5 处命中分两类,不抬基线而是分别修: 一、行尾注释(误报)。break; // 找到该课程的最近可用周即可 —— 审计脚本 只跳过整行 // 开头的行(stripped.startswith("//")),行尾注释照计。 改成行首注释,零行为变化。不改审计脚本本身:它的保守取向(宁可多报、 人工复核)是刻意设计。 二、空课表兜底 Course(...) 的 4 条字面量(真命中)。这些是自检/测试用的 假课程数据,会显示在超级岛与设置页预览上,但不该走 l10n(6 语翻译对假数据 是过度设计),正解是共享常量。 顺带发现并修掉一处已存在的漂移:兜底那份与 LiveTestingFixtureService.buildPresetCourses 各写了一份同名课程,兜底是 location '自检教室 101'、预设课是 '自检教室 A';兜底的 id 也不在 courseIdPrefix(live_test_)命名空间内,会被 isFixtureCourse 判成「非测试课」。 现在把 4 条展示字段提到 LiveTestingFixtureService 的常量 (presetCourseAName 等),buildPresetCourses 与 resolveLivePreviewTestCourse 的 catch 分支共用,并新增 buildPresetCourseAFallback() 供兜底使用(临近午夜时 buildPresetCourses 会抛 「不跨日」错误,速览入口仍需能起岛)。 全仓无任何位置引用旧 id fixture_preset_fallback(已 grep 确认 0 处)。 基线文件只动 1 行:live_testing_fixture_screen.dart 27 -> 26,那是审计脚本 检测到基线偏高后自动下调的,非手改。 验证:dart analyze --fatal-infos 零问题;CJK 审计绿且连续两次结果稳定; HyperOS 审计绿;live_testing_fixture_service_test + live_testing_trigger_windows_test 27 条全过;全量 flutter test +3824 ~4 -3 与改动前逐项一致(那 3 条界面层存量失败在 origin/main 干净副本上同样复现, 与本条无关,未处理)。 注:本文件新增的中文字面量已全部消除,故无需登记进棘轮基线。 | 3 天前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
收紧(工程化): lint 收紧至 strict-casts/strict-raw-types + 40 条扩展规则并全量清零,analyze --fatal-infos 门禁,CJK 硬编码审计棘轮接入 CI——analysis_options 启用 use_build_context_synchronously/cancel_subscriptions/avoid_print 等正确性规则与风格集(dart fix 批量修 1432 处 + 手工修 14 error/17 warning),两个高噪音规则 cascade_invocations(127)/discarded_futures(195) 注释保留待第二批;CI/安卓构建 analyze 收紧为 --fatal-infos 防劣化;audit_cjk_hardcode.py 新增 --baseline 棘轮模式(回归失败/改进自动下调),基线 68 文件 1070 行入库,CI 新增 CJK hardcode audit 步骤;附带 strict_raw_type 显式泛型、lan_edit_api_handlers ArgumentError.message 类型收窄、avoid_slow_async_io 24 处 exists()→existsSync()。flutter analyze 0 issues,services/providers/architecture/models/domain/utils/logging/data 测试全绿(壁纸 7 例失败为主分支既有,与本批无关)。 | 1 个月前 | |
完善局域网 Web 控制台与表格导入(路线图 P0–P2) - LAN API:表格导入、周次表达式解析、合并备份、批量删课、同步当前周 - Web:表格/合并导入、周次表达式编辑、课程库批量删除、离线字体 - App:LanEditScreen 连接二维码(qr_flutter)、前台服务与 MainActivity 调整 - 表格导入与周次解析加固及 xlsx 测试夹具 - 文档:2026-06-29-lan-edit-web-roadmap.md | 3 个月前 | |
重构(启动画面): 系统启动画面剥为纯色底,品牌呈现改为应用自绘——Android 12+ 系统图标遮罩/缩放链路三轮真机翻车(方板圆盘双层鬼影 → 不透明源图缩放露方形边界 → 前景缩放裁切 artwork 后羽化成雾),不再与其缠斗。原生侧:windowSplashScreenAnimatedIcon 置 transparent、删除品牌图与 splash_icon/splash_branding 全部资源(系统启动窗口本身无法删除,仅承担进程拉起瞬间),generate_adaptive_icon.py 回归纯 launcher 图层生成。Flutter 侧新增 AppStartupSplash:2114 同款全出血 launcher 图标(HyperosRadius.chipRadius 圆角 + 717px 源图直出,清晰度/圆角/排版全走应用体系)+ 常规字重黑字「轻屿课表」,夜间白字、底色与原生启动井同色无感衔接。AppEntryScreen 首帧=启动画面(其首帧渲染后即放行 deferFirstFrame,覆盖初始化期),启动完成后 _revealHomeOnce 换入首页,HomeStartupVisualPrimer 与看门狗语义不变。测试补浅/深底图标与字色两用例。 | 1 个月前 | |
README: 应用图标改为内嵌 SVG 并裁切软件内同款圆角(关于页 84px/24px 比例),新增生成脚本 | 4 天前 | |
README: 贡献者头像改为圆形裁切的内置 SVG——脚本下载头像嵌入自绘 SVG 落盘 docs/contributors,文案改为正式表述 | 4 天前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
修复统计深度分析二级页内容顶进标题栏,并加静态审计规则防再犯 原因:StatisticsAnalysisScreen 的 HyperosListView 误传 includeHeaderInset:false。overlay 布局下标题栏悬浮于内容之上, 顶部 inset 本应由列表自带,传 false 后第一屏内容从 y=0 开始渲染, 被顶进毛玻璃标题栏。该参数唯一合法用法是「固定预览+下半列表」 分栏(同文件需有 HyperosBlurredBodyInset),此页并不符合。 顺带修复空状态未包 HyperosBlurredBodyInset 顶到状态栏的问题。 防再犯三道保险: 1. 审计规则 no-header-inset-false(warn):includeHeaderInset:false 且文件内无 HyperosBlurredBodyInset 即报违规,注释行豁免; 2. 回归测试:5 个模块 + 空状态断言列表 padding 必须清过标题 inset, 内容与空状态均不得渲染到毛玻璃后方; 3. hyperos-blurred-header spec 新增 header inset 使用契约表。 | 1 个月前 | |
完善局域网 Web 控制台与表格导入(路线图 P0–P2) - LAN API:表格导入、周次表达式解析、合并备份、批量删课、同步当前周 - Web:表格/合并导入、周次表达式编辑、课程库批量删除、离线字体 - App:LanEditScreen 连接二维码(qr_flutter)、前台服务与 MainActivity 调整 - 表格导入与周次解析加固及 xlsx 测试夹具 - 文档:2026-06-29-lan-edit-web-roadmap.md | 3 个月前 | |
logcat 脚本支持可调最低日志级别 默认仍为 Warn+,可通过 -MinLevel 切换到 Info/Debug/Verbose。 Co-authored-by: Cursor <cursoragent@cursor.com> | 2 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
收紧(工程化): lint 收紧至 strict-casts/strict-raw-types + 40 条扩展规则并全量清零,analyze --fatal-infos 门禁,CJK 硬编码审计棘轮接入 CI——analysis_options 启用 use_build_context_synchronously/cancel_subscriptions/avoid_print 等正确性规则与风格集(dart fix 批量修 1432 处 + 手工修 14 error/17 warning),两个高噪音规则 cascade_invocations(127)/discarded_futures(195) 注释保留待第二批;CI/安卓构建 analyze 收紧为 --fatal-infos 防劣化;audit_cjk_hardcode.py 新增 --baseline 棘轮模式(回归失败/改进自动下调),基线 68 文件 1070 行入库,CI 新增 CJK hardcode audit 步骤;附带 strict_raw_type 显式泛型、lan_edit_api_handlers ArgumentError.message 类型收窄、avoid_slow_async_io 24 处 exists()→existsSync()。flutter analyze 0 issues,services/providers/architecture/models/domain/utils/logging/data 测试全绿(壁纸 7 例失败为主分支既有,与本批无关)。 | 1 个月前 | |
feat(ui): migrate app surfaces to HyperOS UI kit Add lib/ui/hyperos components, page routes, sheets, dialogs, and snackbars; replace user-visible Forui widgets across settings and business screens. Include showcase screen, frosted-header Android plumbing, widget tests, and docs. Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
qa: 截图顺手出一张缩略图,避免全分辨率大图把 CLI 堆撑爆 2026-09-16 22:39 一次 CodeBuddy CLI 进程 OOM 崩掉,报告显示已用 4,292,400,120 字节,其中 large_object_space 占 3.87 GiB —— 是少量超大字符串,不是对象泄漏。 根因是会话用 Read 读了 18 张 1880x3008 手机截图(每条结果是 base64 PNG,磁盘 合计 36.3 MB),最后一张读完 2 秒后进程崩。 所以把「看界面」这条路的输入改小: - tool/shrink_image.py(Pillow):单张或批量缩图,默认 <名>-small.jpg,支持 --keep-only 缩完删源;可对存量截图补缩。只认真实 Python 解释器,不用 python3 (本机是微软商店占位 stub)。 - tool/qa.ps1 screenshot 在原有全分辨率 PNG 之外,顺手生成 720 宽 / 质量 80 的 JPEG(实测 5.2 MB -> 151 KB),并打印「Read this one (small)」;新增 -ThumbWidth / -ThumbQuality / -NoThumb。全分辨率 PNG 保留,供像素反解使用。 真机实测:Redmi 直连,PNG + small.jpg 均产出,参数生效,缩图后版面/文字仍可辨认。 只是把入口改小,CLI 侧的放大(每次请求重新序列化、副本不释放)仍需上游处理。 | 1 个月前 | |
qa: 截图顺手出一张缩略图,避免全分辨率大图把 CLI 堆撑爆 2026-09-16 22:39 一次 CodeBuddy CLI 进程 OOM 崩掉,报告显示已用 4,292,400,120 字节,其中 large_object_space 占 3.87 GiB —— 是少量超大字符串,不是对象泄漏。 根因是会话用 Read 读了 18 张 1880x3008 手机截图(每条结果是 base64 PNG,磁盘 合计 36.3 MB),最后一张读完 2 秒后进程崩。 所以把「看界面」这条路的输入改小: - tool/shrink_image.py(Pillow):单张或批量缩图,默认 <名>-small.jpg,支持 --keep-only 缩完删源;可对存量截图补缩。只认真实 Python 解释器,不用 python3 (本机是微软商店占位 stub)。 - tool/qa.ps1 screenshot 在原有全分辨率 PNG 之外,顺手生成 720 宽 / 质量 80 的 JPEG(实测 5.2 MB -> 151 KB),并打印「Read this one (small)」;新增 -ThumbWidth / -ThumbQuality / -NoThumb。全分辨率 PNG 保留,供像素反解使用。 真机实测:Redmi 直连,PNG + small.jpg 均产出,参数生效,缩图后版面/文字仍可辨认。 只是把入口改小,CLI 侧的放大(每次请求重新序列化、副本不释放)仍需上游处理。 | 1 个月前 | |
收紧(工程化): lint 收紧至 strict-casts/strict-raw-types + 40 条扩展规则并全量清零,analyze --fatal-infos 门禁,CJK 硬编码审计棘轮接入 CI——analysis_options 启用 use_build_context_synchronously/cancel_subscriptions/avoid_print 等正确性规则与风格集(dart fix 批量修 1432 处 + 手工修 14 error/17 warning),两个高噪音规则 cascade_invocations(127)/discarded_futures(195) 注释保留待第二批;CI/安卓构建 analyze 收紧为 --fatal-infos 防劣化;audit_cjk_hardcode.py 新增 --baseline 棘轮模式(回归失败/改进自动下调),基线 68 文件 1070 行入库,CI 新增 CJK hardcode audit 步骤;附带 strict_raw_type 显式泛型、lan_edit_api_handlers ArgumentError.message 类型收窄、avoid_slow_async_io 24 处 exists()→existsSync()。flutter analyze 0 issues,services/providers/architecture/models/domain/utils/logging/data 测试全绿(壁纸 7 例失败为主分支既有,与本批无关)。 | 1 个月前 | |
docs: add schools catalog page and sync workflow Publish browsable schools.json on GitHub Pages, wire navigation and styling, and add a workflow plus sync script to keep the catalog updated from upstream. Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
修复(CI): 门禁脚本支持子路径动作引用——verify_action_pins 把 owner/repo/path@sha 整体当仓库 slug 查 commits 必 404,actions/cache/restore@55cc 因此把每次 push 的 CI 全部挡红;仓库 slug 只取前两段,子路径留在标签里 | 1 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
docs(release): document pubspec-driven prerelease rules and add verify gate Clarify that CI reads the '-' segment in pubspec (not commit message) for GitHub Pre-release. Add three-part prerelease flow and verify_release_pubspec.sh prerelease/release mode checks. Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
全面国际化:轻屿课表文案、服务消息与运行日志多语言 补全中英日韩及繁体 ARB,新增服务消息/日志/导入结果本地化模块; 界面与原生诊断日志统一走 l10n,并补充 i18n 维护脚本。 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 |