docs(ui/nav): 台架复核落地——收列键语义、回根按 depth、限度取证结论(#69)
台架实机会话 2026-11-02(bench 档 fw 22:25:12 / 产品档 22:29:56,均经 /serial-boot-test 闭环:身份戳匹配 + 回读 no-difference): - 复核② 收列键语义:菜单态按 s 与按 l 同走 menu_back、均收 一级且父列选中留在原地(depth 1→0、sel 不变)——旧断言 「菜单态按 s 不收列」是把待机态 s 无效(task-24 实证)误 读成菜单行为。to_root() 据此在 STATUS depth>0 时按 s 逐级 收(弹框被屏裁时像素 n_cols 漏计、固件 depth 不漏),老固 件像素路径保留 l 兜底仪式。§7.2 纪律与 board-ui-nav skill 恢复配方同步改写。 - 复核① 被裁弹框两叶:菜单步进依旧吃不到(枚举落同胞页, 落点由 STATUS 如实报出、不再谎称到达);GOTO 直开两叶到 达且完整渲染(自检记录 ink 4073 / 运行记录 ink 3559)→ KNOWN_UNREACHABLE 对 --to 保留,绕行路径 --goto。§7.4 改写。 - 产品档(未加宏)实测:STATUS 照常应答(不设闸)、GOTO 回 status=4——生产/bench 行为差异真机钉死;§7.6 增实机验证记 录段。回归:--selftest-quick 66/66+闸 7/7;--selftest 闭环 失败集与 master 基线逐项一致(6 存量像素 + 2 执行类拒绝)。
This commit is contained in:
+17
-4
@@ -147,7 +147,7 @@ cmake --build simulator/build --config Debug # 0) 构建模拟器(须 0 警
|
||||
|
||||
另两条实测纪律(理由写死在代码注释里,此处不重述):
|
||||
|
||||
- **收级联列按 `l`、不按 `s`**:菜单态按 `s` 不收列,用 `ssssssss` 回根正是深页错位的来源之一;
|
||||
- **收级联列的键语义已台架复核定型(2026-11-02,#69)**:菜单态按 `s` 与 `l` 同走 `menu_back`,**都收一级**且父列选中留在原位(实测 depth 1→0、sel 不变)——旧断言「菜单态按 `s` 不收列」是把**待机态 `s` 无效**(task-24 实证)误读成了菜单行为;`ssssssss` 盲按回根不可信这个结论仍然成立,不可信的是"不看回读连按",不是键本身。有 STATUS 时按 depth 收(弹框被屏裁时像素 `n_cols` 会漏数、固件 depth 不会),老固件继续按 `l` 收 + 验终点;
|
||||
- 菜单树的 `#P` 注记可能写在 `#page=` **之前**(`网口设置 #P #page=net_cfg`),解析顺序错了就
|
||||
剥不掉,那一叶的页面 id 也永远认不出来。
|
||||
|
||||
@@ -196,9 +196,13 @@ cmake --build simulator/build --config Debug # 0) 构建模拟器(须 0 警
|
||||
身份裁定,所以它会大声报错而不是静默走错页。实测 `自检记录` / `运行记录` 两页在模拟器
|
||||
上 5 次枚举内没吃到,现场帧见
|
||||
[popup_clipped](../测试说明/测试数据/boot_log_data/20261025_uinav_popup_clipped.png);
|
||||
**真机上那层弹框究竟画在哪,留台架窗口取证后再定修法**——这是取证题,不是编码题。
|
||||
#69 之后:真机(新固件)侧该漏计已被 STATUS 的 `depth` 事实顶掉——"回根"直接认
|
||||
`depth==0`,不再依赖数得到列数;`KNOWN_UNREACHABLE` 两条按对称设计留待台架走到后销项。
|
||||
**真机上弹框位置的取证已完成(2026-11-02 台架,#69)**:菜单步进**依旧**吃不到这两叶
|
||||
(末列枚举落到同胞页 `alarm` / `selftest`——但落点现在由 STATUS 如实报出,不再谎称到达);
|
||||
GOTO 直开两叶都到达且完整渲染(自检记录 ink 4073 / 运行记录 ink 3559,证据在 PR #70
|
||||
台架段)。故 `KNOWN_UNREACHABLE` 对 `--to` 步进**保留**(对称设计的销项条件"真走到"
|
||||
尚未满足),已验证的绕行路径是 `--goto`;真机(新固件)侧"回根"改认 STATUS `depth`:
|
||||
`depth==0` 直接返根、`depth>0` 按 s 逐级收(弹框被裁时像素漏计、固件 depth 不漏),
|
||||
旧的"补按 `l` 兜底"仪式只留给无 STATUS 的老固件像素路径。
|
||||
2. 同一标题的多个显示态(网口设置的 只读 / 编辑 / 保存)在分类里都是同一个页面 id
|
||||
`net_cfg`;要区分得看行内文本,写路径判据需要时再加。
|
||||
3. 认屏复用黄金参考的文案:改了页面文案而没同步 `simulator/tests/` 的文本断言表,本节脚本
|
||||
@@ -245,3 +249,12 @@ cmake --build simulator/build --config Debug # 0) 构建模拟器(须 0 警
|
||||
- **留档帧目录已并一**:`WALK_DIR` 与 `--walk` 存证目录同指 `ci-artifacts/uinav/walk/`
|
||||
(#69 前指 `ci-artifacts/uiwalk/`,走的新帧 BOARD_TRUTH 段永远读不到,静默"跳过(无
|
||||
留档)")。
|
||||
- **实机验证记录(2026-11-02 台架,两档实烧,输出全文贴在 PR #70 的台架证据评论)**:
|
||||
bench 档(`fw build: Nov 2 2026 22:25:12`)上 STATUS 首答 `{kind=MENU depth=0 path=[0]
|
||||
sel=[0]}`;GOTO `wave_play` 一次往返到达——#38 那趟"进故障录波看波形"的级联盲走就此降为
|
||||
一条命令;`selftest` / `runlog` 直开渲染完整(见 §7.4 第 1 条取证结论);PAGE 上按 s 回根
|
||||
由 STATUS 证实;级联收列按 s 逐级收回(§7.2 纪律据此改写);根列光标可经 STATUS `sel`
|
||||
对位(记录查询 = 根行 6,对齐一击命中再 ENTER)。换回**产品档**(`fw build: Nov 2 2026
|
||||
22:29:56 suite=NONE`,同一提交、未加宏)复烧后:STATUS 照常应答(它不设编译期闸),
|
||||
GOTO 回 **status=4(不支持)**——同一对命令在生产/bench 两侧的行为差异由真机钉死,不止
|
||||
纸面推理。烧录两轮均过 `/serial-boot-test` 闭环(身份戳匹配 + 回读 `no difference`)。
|
||||
|
||||
Reference in New Issue
Block a user