fix(app-iced): M95 r3 摘要页脚占比 4:2 + 演示数据自洽 + 样例解析不再 panic
视觉复审 r2 的 P2-A 与两个顺手的 p3。
**P2-A 摘要页脚占比过大(3:2 → 4:2)**:1180×760 下诊断卡 338px,摘要页脚固定吃掉 ~150px
(标签+按钮 40 + 摘要折 5 行 80 + 间距/分割 30),滚动视口只剩 141px,而一条完整结论
(分组标题 → 建议动作 → 置信度)要 165px ⇒ 首屏看不到「建议动作」,那是任务清单 T1/T3 要求的
可见项。改成 `DIAGNOSIS_SHARE = 4`(`LOGS_SHARE` 仍 2)。**数值实测**(`r3-crash-light.png`
逐像素量,非估算):诊断卡 376px、滚动视口 **178px**(y 201–378,两侧 1px 分割线的位置)、
一条完整结论块 **165px**、底部余量 **13px** —— 建议动作与 `Confidence 85%` 整块在首屏可见。
**p3 演示数据自相矛盾**:`live` 状态页头写「Finished normally」却配崩溃日志尾行
(`启动失败:exit code 1`)。新增 `sample_live.log`(一场正常跑完的会话:加载 → 进世界 →
停服),`State::Live` 用它,不再复用崩溃样例。
**p3 `demo::parse` 对非 ASCII 首字符 panic**:`raw.split_at(1)` 会切在多字节序列中间。
改成按字符取前缀(`chars().next()` + `chars.as_str()`);顺带把它提成 `pub(super)` 以便测。
新增 `the_fixture_parser_survives_a_non_ascii_first_char`:非 ASCII 首字符不 panic(静默跳过),
并钉住 `I/W/E` 前缀与注释/空行的解析。
测试:**278 passed / 0 failed**(lib)+ 6(`no_hardcoded_tokens`)+ 23(i18n)全绿;
`fmt --check` 通过;`clippy -p unlucky-app-iced -p unlucky-i18n --all-targets -D warnings` 干净。
出图:`C:\Temp\ull-shots-m95\r3-{crash-light,crash-dark,live-light,empty-light}.png`(1180×760)。
This commit is contained in:
1 parent
62d4af150e
commit
5ed2bf3a7d
5 files changed
+65
-12
No files matched your search
@@ -215,6 +215,27 @@ fn empty_state_is_driven_by_both_lists_being_empty() {
|
||||
assert!(live.findings.is_empty(), "live 状态没有诊断");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn the_fixture_parser_survives_a_non_ascii_first_char() {
|
||||
// 抓得住:`parse` 用 `split_at(1)` 切多字节序列会直接 panic(视觉复审 r2 的 p3 实测过)。
|
||||
// 抓不住:样例文件本身写坏(比如等级前缀写成小写 `e`)——那会被静默跳过,只体现为行数变少。
|
||||
assert!(!demo::parse("日本語の行")
|
||||
.iter()
|
||||
.any(|line| line.level == Level::Info));
|
||||
|
||||
let parsed = demo::parse(
|
||||
"I 正常一行
|
||||
W 警告一行
|
||||
# 注释
|
||||
|
||||
E 错误一行",
|
||||
);
|
||||
assert_eq!(parsed.len(), 3);
|
||||
assert_eq!(parsed[0].text, "正常一行");
|
||||
assert_eq!(parsed[1].level, Level::Warn);
|
||||
assert_eq!(parsed[2].level, Level::Error);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn demo_state_comes_from_the_fixture_variable() {
|
||||
// 抓得住:环境变量取值拼错(截图会静默退成 crash,出图的人以为拍到了空态)。
|
||||
|
||||
Reference in new issue
Block a user