/** * 票 102 静态闸门(一):顶栏三个诊断读数下屏,且不留半截改动。 * * 接缝:外壳单文件源码契约 —— 模板节点 / import / 死状态 / CSS 类名必须同时消失。 * 只删模板会留下死样式与死 import,只删样式会留下「有节点没画法」的裸标签。 * 用法:node verify/t102-topbar-labels.mjs [源码路径](给路径可复核历史版本)。 */ import { readShell, check, checkAbsent, assertModeNavIntact, report } from './t102-shell-source.mjs' const source = readShell(process.argv[2]) // ---- 三个读数:模板、样式、数据来源一起下屏 ---- checkAbsent(source, '只读视图', '「只读视图」必须下屏') checkAbsent(source, '配置就绪', '「配置就绪 · 数据源」必须下屏') checkAbsent(source, 'cockpit-shell__config', '配置读数容器(模板/样式)不得残留') checkAbsent(source, 'configStatusView', '配置读数展示层不得残留') checkAbsent(source, 'StatusTag', 'StatusTag 只服务配置读数,必须一并移除') checkAbsent(source, 'cockpit-shell__meta', '「当前模式」读数不得残留') // ---- 配置判定本身仍在用,不能顺手删 ---- check(source.includes('configState.value'), '配置判定仍被地图配置/降级说明使用,不能删') // 反方向也要守:读数的「载入前不闪标签」闸门随读数一起变成死状态。 checkAbsent(source, 'configLoaded', '拉取态闸门随读数下屏,不得留下无人读的状态') // ---- 一级模式导航语义不动 ---- assertModeNavIntact(source) report('t102-topbar-labels')