v0.4.0 M3.5 体验补齐 #1
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
用户 Linux 桌面实测反馈「日期选择器全英文」。根因是 MaterialApp 从一迭代 建起就没配 localizationsDelegates/supportedLocales/locale,pubspec 也没有 flutter_localizations;Flutter 在缺 delegate 时静默回退内置的 DefaultMaterialLocalizations(只有英文),于是业务自绘文案全中文、Material 内置组件全英文,同一弹窗里中英混排: Select date → 选择日期 OK / Cancel → 确定 / 取消 Enter Date → 输入日期 Switch to input → 切换到输入模式 Invalid format. / Out of range. → 格式无效。/ 超出范围。 mm/dd/yyyy → yyyy/mm/dd(zh 顺序年在前) September 2026 → 2026年9月 处置: - pubspec 加 flutter_localizations(sdk)与 intl(日期符号底座,显式直接 依赖以锁定与 SDK 一致的版本)。 - 新增 lib/app/app_localization.dart 把 Global{Material,Cupertino,Widgets} 三件套 delegate、supportedLocales、locale 收在一处常量:widget 测试若只 pumpWidget(MaterialApp(home: ...)) 而不挂 delegate,测到的「中文」是假的, 测试直接引用同一份常量,生产与测试不会各配一套而漂移。 - 单语言 zh-CN,不列 en:避免设备语言为英文时回退英文,再造混排。 - pets 域三份 widget 测试的 MaterialApp 同步挂上 delegate, tap(find.text('OK')) 相应改 '确定'——让测试与生产一致,而不是在英文兜底下测。 新增 test/app/app_localization_test.dart 守住这一行不被回删:断言根 MaterialApp 实际挂上三件套 + locale zh-CN,并从运行期 MaterialLocalizations 取回中文文案。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>卡片标签硬编码「本月花费」,而服务端 summary.monthlyExpense 本就返回 month (ISO year-month,按 tz 归月)。用户看不到实际月份,所以无法自证「我这条记录 到底落在哪个月」,把正确的 ¥0 当成统计故障。 已核实不改后端聚合:用户记录落在 2026-04-09、当天是 2026-09-10, 「本月花费 ¥0」是正确行为。本单只让客户端把口径亮出来。 - health_record_display 新增纯函数 monthlyExpenseCardLabel(month, {now}): 同年「9 月花费」(窄卡一行放得下,故不取「2026-09 花费」);跨年(服务端 归月年份 ≠ 设备当前年份)「2026/12 花费」补年份消歧;串非法退回 「本月花费」不崩不显示脏值。 - 可点提示:_SummaryCard 在 onTap 非空时右上角补 chevron_right。四张卡本都 可点进明细页却无任何视觉提示(用户反馈不知道能点),提示形态沿用项目既有 可点行/卡(宠物列表卡、健康提醒卡、资料页设置行)的 chevron_right,不自创。 - 整卡包 MergeSemantics:读屏一次读全「¥128.50,9 月花费,按钮」而非两段 孤立文字。没有用 excludeSemantics——那会连带丢掉 InkWell 的可激活性。 既有测试口径调整:pet_detail_page_test 两处断言改为实际月份,且样本 monthlyExpense.month 改用当月串使断言不随年份漂移(跨年格式由纯函数单测覆盖)。 新增 integration_test/client_ux_live_test.dart(环境变量门控,默认 skip, 沿用 M3 既有 live 测试形态):compose 六容器 + 真实 App 走完三项修复—— 日期选择器全中文/品牌配色/手输录入/一键今天,以及花费卡实际月份 + chevron。 本机是 Wayland 会话、X11 import -window root 取不到根窗口,改为把整棵 App 包 一层 RepaintBoundary 后 toImage() 直出真实渲染像素落 build/ux-live/。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>