zhouyang.xie f79724026a 2.86.0 汇报定制章节正文移植: 原为空实现(factsHtml/blockHtml 返回空串) => 从 v2.9.2 app.js:531-571 原文移植 rptFacts/rptK/rptBlock 为 lib/reportBlocks.ts(工厂注入依赖, CH.x->chart("x",), D.->d., BD=d.fus.链盘); Report.vue 接线 + App 为 report 取 /api/facts; 验证点月报后 575 元素/10 块/4 图/4180 字, ERRS 0 hace 5 días
..
_check_500_empty.mjs ea2c4db507 2.85.0 清产物后友好空态(不暴露 HTTP 500): load() 对 4xx/5xx/异常一律视为暂无数据 + 顶部友好提示; 修 dataMissing 漏插与 System.vue 漏 onMounted; 500 模拟 7 页全过 hace 5 días
_check_behavior.mjs 040f9f0bbb 2.78.2 修登录进不了工作台: App.vue 补 /detail/v2 路径判定(此前只按 hash) + 修 TDZ(tab 赋值过早致 #tab 场景整页空白); 门户三入口(振动·CMS/交付文档/数据重算)与登录改 target=_top 指向 /detail/v2 对应页签; 实测 /detail/v2 进工作台(14 页签, 默认总览), #tab=vibration 显示 5 个子选项卡 hace 1 semana
_check_behavior2.mjs 040f9f0bbb 2.78.2 修登录进不了工作台: App.vue 补 /detail/v2 路径判定(此前只按 hash) + 修 TDZ(tab 赋值过早致 #tab 场景整页空白); 门户三入口(振动·CMS/交付文档/数据重算)与登录改 target=_top 指向 /detail/v2 对应页签; 实测 /detail/v2 进工作台(14 页签, 默认总览), #tab=vibration 显示 5 个子选项卡 hace 1 semana
_check_behavior3.mjs 040f9f0bbb 2.78.2 修登录进不了工作台: App.vue 补 /detail/v2 路径判定(此前只按 hash) + 修 TDZ(tab 赋值过早致 #tab 场景整页空白); 门户三入口(振动·CMS/交付文档/数据重算)与登录改 target=_top 指向 /detail/v2 对应页签; 实测 /detail/v2 进工作台(14 页签, 默认总览), #tab=vibration 显示 5 个子选项卡 hace 1 semana
_check_center.mjs 5e0a59c24c 2.78.0 门户整页化(iframe 铺满+去外壳+标题取门户) 修居中偏移; /detail/v2 接到 Vue 工作台(网关 detail 路由->静态服务器 + SetPath=/index.html, YAML 解析器改; Vue 支持 #tab=<id> 直达); 实测 /detail/v2 200·407B; 另修 Java 两进程重启未生效(显式结束旧 pid) hace 1 semana
_check_cms_bfull.mjs 0fff09922e 2.83.0 方案B: 「振动 CMS」按门户原页 19 条文字逐条保真(内联 v-html + 应用自身样式) + 按窗实时 chip(TCM 一条按原文保留) + windcms 内嵌/两入口改同源 /cms; 逐条比对 MISSING 0 hace 6 días
_check_cms_blob.mjs 0000e92a4e 修 TDZ(又一次): #tab=<tab>:<sub> 的 sub 赋值写在 const sub 之前 => setup 抛错, 整个工作台渲染不出(用户报"振动 CMS 展示不出"); 移到声明之后; 核验 blob iframe 渲染 + 挂载门禁通过 hace 6 días
_check_cms_frame.mjs 79f1929c65 补回被 p71 误删的 const F => bodyHtml 里 F.value 报错、振动页整块渲染失败(iframe 也没出来); 补齐后核验: portal_cms 走同源 iframe(门户 CSS + hero 标题 + .chips 行) hace 6 días
_check_cms_inline.mjs c58b76ab7b 2.82.2 「振动 CMS」决定性修法: 弃门户 CSS/Shadow DOM/iframe, 改用与其它 5 个子选项卡相同的 v-html + 应用自身样式(内联 chip); 内容=门户原文案 + 按窗实时值; 核验 #root 26 元素/标题/实时值/7 chip hace 6 días
_check_cms_livewin.mjs 0d460e1994 2.83.1 修「振动 CMS 不随时间窗变化」: 实测 fus.kpi(融合面) 不随窗变(门户原文: 振动证据窗固定), 随窗的是顶层 kpi 关注台/报警台(15/28→13/25→4/19); chip 改用顶层按窗 KPI + 口径说明; 就地切窗验证通过 hace 6 días
_check_cms_real.mjs 0597a6db58 2.80.1 振动融合分析(含 5 子页面)差异核定: struct_diff 增子视图支持(tab:sub) => 结构 5/5、内容 5/5 一致; 实逮真实差异并修复: cms 子页面应用从不取 /api/vibcms(旧页 app.js:980 按需取), 对拍工具喂数掩盖了它; 真行为验证: 点振动分析 => 实际请求 /api/vibcms 并渲染 39 行表格 hace 6 días
_check_cms_scoped.mjs 38ed4049a3 止损: 「振动 CMS」恢复为 2.82.2 内联版(门户原文案 + 按窗实时值, 已证可显示), 撤掉本轮未生效的作用域化尝试(删除 scopeCss.ts); 核验标题与实时值在场 hace 6 días
_check_empty_state.mjs 409b8816df 2.84.1 清产物/重算后工作台自动重取数: System 监听 /ops 内 #b_off/#b_rebuild/#b_start/#b_stop/#b_restart 点击 -> 4s 后 emit refresh; 加「刷新数据」按钮; App.reload() 清 apis/curves 缓存并重取; 空数据模拟实测六页 errs=0 且 energy 显示「无数据」 hace 5 días
_check_fus_click.mjs c9b2d40b47 修「振动融合分析」点子选项卡页面不变: v-unwrap 原先只在 mounted 解包一次, 之后 v-html 更新写进已脱离文档的宿主 => 改成挂载时留注释锚点 + updated 时把新子节点同步到锚点前(保持无宿主 DOM 口径) hace 6 días
_check_portal.mjs 5e0a59c24c 2.78.0 门户整页化(iframe 铺满+去外壳+标题取门户) 修居中偏移; /detail/v2 接到 Vue 工作台(网关 detail 路由->静态服务器 + SetPath=/index.html, YAML 解析器改; Vue 支持 #tab=<id> 直达); 实测 /detail/v2 200·407B; 另修 Java 两进程重启未生效(显式结束旧 pid) hace 1 semana
_check_portal2.mjs 1083241e99 2.78.1 修门户正文出现原始标记文字: 装配口径照 portal_build.py——模板包进 <template id>(内容才惰性), 资料索引只插 JSON(壳内已在 script[type=application/json] 里); jsdom 实检 28 模板/0 残留标记/正文无标记文字 hace 1 semana
_check_portal_cms.mjs c89dc99cfd 用户令: 门户「振动·CMS」迁入「振动融合分析」成为第 6 个并列子选项卡「振动 CMS」(受时间窗影响)。实现: 抽门户 #cms 节为 lib/portalCms.ts; vib.ts 增 portalCmsHtml(d) 把门户静态数字替换为按窗实时值(候选观察/全场取 d.fus.kpi, 当前窗取 d.win)并追加"当前时间窗"chip; FUS_SUBS 6 项; i18n 标签; 验证随窗变化 hace 6 días
_check_portal_links.mjs 040f9f0bbb 2.78.2 修登录进不了工作台: App.vue 补 /detail/v2 路径判定(此前只按 hash) + 修 TDZ(tab 赋值过早致 #tab 场景整页空白); 门户三入口(振动·CMS/交付文档/数据重算)与登录改 target=_top 指向 /detail/v2 对应页签; 实测 /detail/v2 进工作台(14 页签, 默认总览), #tab=vibration 显示 5 个子选项卡 hace 1 semana
_check_recalc.mjs 029c9d5c05 2.81.2 「系统维护」内「数据重算」改为 v2.9.2 原样: 抽门户 #recalc 节为 lib/portalRecalc.ts(hero+kicker+3chip+/ops 控制台 iframe+回退链接), System.vue 用 v-html 渲染; iframe src 写 /ops(门户由 JS 赋), 绝对地址改同源; 该新增块按 data-added 在 struct_diff 中排除 => system 仍 220 元素一致 hace 6 días
_check_recalc2.mjs 488ade7643 2.81.3 「系统维护」内「数据重算」改为同源 iframe + 门户 CSS(srcdoc) —— 修"与 v2.9.2 有差异"(实逮: 该节 hero/chip 由门户 CSS 渲染, 此前只 v-html 塞入 => 无样式); iframe 仍标 data-added 被一致性判据排除 hace 6 días
_check_recalc_src.mjs cbabeaa504 2.83.3 修「系统维护」数据重算按钮消失: 内嵌块由 Blob iframe 改为直接 <iframe src="/ops">(v2.9.2 门户同款; /ops 的 X-Frame-Options 已于 2.81.4 放开) hace 5 días
_check_recalc_style.mjs 488ade7643 2.81.3 「系统维护」内「数据重算」改为同源 iframe + 门户 CSS(srcdoc) —— 修"与 v2.9.2 有差异"(实逮: 该节 hero/chip 由门户 CSS 渲染, 此前只 v-html 塞入 => 无样式); iframe 仍标 data-added 被一致性判据排除 hace 6 días
_check_report_blocks.mjs f79724026a 2.86.0 汇报定制章节正文移植: 原为空实现(factsHtml/blockHtml 返回空串) => 从 v2.9.2 app.js:531-571 原文移植 rptFacts/rptK/rptBlock 为 lib/reportBlocks.ts(工厂注入依赖, CH.x->chart("x",), D.->d., BD=d.fus.链盘); Report.vue 接线 + App 为 report 取 /api/facts; 验证点月报后 575 元素/10 块/4 图/4180 字, ERRS 0 hace 5 días
_check_report_click.mjs 56f45ff5ca 2.83.2 修「汇报定制」按钮不可用: 模板无 @click/章节库 v-html => 按钮无事件; 照旧页逐条接线并改 v-for; 点击验证 预设(.paper 1→54, 16 章节按钮)/勾选/组装(/api/rpt_compose) 均可用 hace 5 días
_check_shadow.mjs cf84ee8df0 用户令: ① 门户去掉「振动·CMS」「交付文档」「数据重算」导航项; ② 「振动 CMS」内容展示不出 => 改用 Shadow DOM 渲染(门户 CSS 隔离生效, 不再依赖 iframe/srcdoc/blob); 核验导航已无三项、shadowRoot 含门户 CSS/hero/.chips/实时值 hace 6 días
_check_shadow2.mjs a4df48f553 修「振动 CMS」看着没内容: 影子树内门户 CSS 的 `:root{}` 匹配不到元素 => 变量(--ground/--ink)全失效, 深色底与文字色丢失; 改为 :host 并补宿主背景/文字色; 核验 :host 生效/无裸 :root/变量在/文本可见 hace 6 días
_check_shell.mjs c167c652dd 2.77.0 修不居中: App.vue 补 v2.9.2 shell 同构外层容器(div#app > div.wrap > header.top/nav.tabs/main#root/footer#foot, CSS .wrap max-width 1200 margin 0 auto); jsdom 真跑实检外壳链通过; 逐页面复跑 结构 #root 10/10 + 内容 10/10; 远端已部署 hace 1 semana
_check_system_real.mjs 3d57a39bb5 2.81.5 修「系统维护」等页签未加载: App 只取 /api/fleet => maint_survey/ask_models/curves 从未请求; 改为按页签按需取数(TAB_APIS + ensureTabApis + watch(tab))并传 apis/curves; 真实数据夹具验证巡检表渲染 hace 6 días
_check_tab_hash.mjs 5e0a59c24c 2.78.0 门户整页化(iframe 铺满+去外壳+标题取门户) 修居中偏移; /detail/v2 接到 Vue 工作台(网关 detail 路由->静态服务器 + SetPath=/index.html, YAML 解析器改; Vue 支持 #tab=<id> 直达); 实测 /detail/v2 200·407B; 另修 Java 两进程重启未生效(显式结束旧 pid) hace 1 semana
_check_tabapis.mjs 260752227b 修「系统维护」等页签内容未加载: App 此前只取 /api/fleet, 各视图要的 /api/maint_survey(系统维护)、/api/ask_models(决策/汇报)、/api/curves(发电性能) 从未被取 => 真实页面为空(对拍工具喂数掩盖); 改为按页签按需取数并传 apis/curves; 验证选中系统维护时确实发出 /api/maint_survey hace 6 días
_check_win.mjs 6acb3726a0 2.79.0 工作台补全套时间窗控件(照 v2.9.2 app.js:126-135: 重选 + 预设/自定义/月份三组下拉 + 起止日期 + 应用, WIN_PRESETS/WIN_SLUG 照抄; 实测 27 选项/2 分组, 结构对拍仍 10/10) + 门户装配改分阶段(壳先出秒渲, 6 路并发流式注入 28 个内嵌件, force-cache) hace 6 días
_err_check.mjs 1d2f3317f8 2.79.1 入库整页外壳对比工具 tools/full_diff.mjs(比 body 元素骨架)并记录工作台外壳与 v2.9.2 的差异清单(品牌区/右侧簇含返回门户/时间窗位置/页签栏在 main 外/多出的应用按钮/多一层 #app);一次批量对齐尝试改坏挂载,已回滚 App.vue 与 Workbench.vue 并重新部署恢复可用 hace 6 días
_err_report.mjs 56f45ff5ca 2.83.2 修「汇报定制」按钮不可用: 模板无 @click/章节库 v-html => 按钮无事件; 照旧页逐条接线并改 v-for; 点击验证 预设(.paper 1→54, 16 章节按钮)/勾选/组装(/api/rpt_compose) 均可用 hace 5 días
_err_system.mjs ea2c4db507 2.85.0 清产物后友好空态(不暴露 HTTP 500): load() 对 4xx/5xx/异常一律视为暂无数据 + 顶部友好提示; 修 dataMissing 漏插与 System.vue 漏 onMounted; 500 模拟 7 页全过 hace 5 días
_fleet_fixture.json 040f9f0bbb 2.78.2 修登录进不了工作台: App.vue 补 /detail/v2 路径判定(此前只按 hash) + 修 TDZ(tab 赋值过早致 #tab 场景整页空白); 门户三入口(振动·CMS/交付文档/数据重算)与登录改 target=_top 指向 /detail/v2 对应页签; 实测 /detail/v2 进工作台(14 页签, 默认总览), #tab=vibration 显示 5 个子选项卡 hace 1 semana
_mount_check.mjs cef79f1a02 外壳对齐(步骤4 完成): 页签栏 header 之外 nav.tabs#tabs(照 v2.9.2 shell);Workbench 去 nav.wb-tabs;页头去应用模式按钮;补 TABS/DONE import;新增选择器式挂载门禁 tools/_mount_check.mjs hace 6 días
_ops_fresh.mjs 71e3eea532 2.85.2 修「执行重算」第 ⑦ 步失败: kb_ingest.py 把模块级 _install_root 误写成 _p._install_root(AttributeError: pathlib has no attribute _install_root) => 整轮 rebuild 中断、/api/fleet 持续 500; 全仓仅此 1 处, 已修; 远端单独跑该步验证通过(产出 AlarmCode 555 等本体码表) hace 5 días
_ops_js.mjs 71e3eea532 2.85.2 修「执行重算」第 ⑦ 步失败: kb_ingest.py 把模块级 _install_root 误写成 _p._install_root(AttributeError: pathlib has no attribute _install_root) => 整轮 rebuild 中断、/api/fleet 持续 500; 全仓仅此 1 处, 已修; 远端单独跑该步验证通过(产出 AlarmCode 555 等本体码表) hace 5 días
_ops_rebuild.mjs 71e3eea532 2.85.2 修「执行重算」第 ⑦ 步失败: kb_ingest.py 把模块级 _install_root 误写成 _p._install_root(AttributeError: pathlib has no attribute _install_root) => 整轮 rebuild 中断、/api/fleet 持续 500; 全仓仅此 1 处, 已修; 远端单独跑该步验证通过(产出 AlarmCode 555 等本体码表) hace 5 días
_ops_state.mjs 71e3eea532 2.85.2 修「执行重算」第 ⑦ 步失败: kb_ingest.py 把模块级 _install_root 误写成 _p._install_root(AttributeError: pathlib has no attribute _install_root) => 整轮 rebuild 中断、/api/fleet 持续 500; 全仓仅此 1 处, 已修; 远端单独跑该步验证通过(产出 AlarmCode 555 等本体码表) hace 5 días
_page_check.mjs 19495c095c 2.80.0 页签精简(14→11: 去「架构与资料」「门户」, 数据重算并入系统维护) + 删页头模式按钮(与页签栏同名 nav.tabs 造成布局乱, 实逮根因) ; 实测 nav.tabs=1, 页签按钮 11, 无残留模式按钮, 排版计算样式与 v2.9.2 一致 hace 6 días
_peek_component.mjs 4592fa5fd4 2.74.0 对拍判据稳定化(warmup + 按完整 URL 缓存 + 等 DOM 稳定, 连跑两遍结果一致) + component 的 +1 定位(基线中融合提示块嵌在九系统卡 section 内; 剩余 +1 在 rel/cards 区域, 两种改法均已试并回退) hace 1 semana
_ping.mjs 5c8b754621 2.85.1 措辞政策定案(用户选A: 以实时接口/当前算法新词为准): 查清三处差异实为"基线旧快照用词 vs 当前算法新词"(实时侧新词内部一致, 旧词 0 处); 判据三条例外改判为预期差异; 并记录现状: 产物已被清除 => /api/fleet 500, 对拍必然 [X] 属预期, 待重算后复跑 hace 5 días
_rebuild_again.mjs 71e3eea532 2.85.2 修「执行重算」第 ⑦ 步失败: kb_ingest.py 把模块级 _install_root 误写成 _p._install_root(AttributeError: pathlib has no attribute _install_root) => 整轮 rebuild 中断、/api/fleet 持续 500; 全仓仅此 1 处, 已修; 远端单独跑该步验证通过(产出 AlarmCode 555 等本体码表) hace 5 días
_rebuild_full.mjs f79724026a 2.86.0 汇报定制章节正文移植: 原为空实现(factsHtml/blockHtml 返回空串) => 从 v2.9.2 app.js:531-571 原文移植 rptFacts/rptK/rptBlock 为 lib/reportBlocks.ts(工厂注入依赖, CH.x->chart("x",), D.->d., BD=d.fus.链盘); Report.vue 接线 + App 为 report 取 /api/facts; 验证点月报后 575 元素/10 块/4 图/4180 字, ERRS 0 hace 5 días
_sec_component.mjs 03c944a265 2.75.1 component +1 诊断记档: 基线整页仅 1 个 section(卡片/融合/rel/关注台同为其子级), Vue 用 4 个; 三次自动改写均破坏渲染(162/241), 结论=需人工重写并按改一处即验一次; 当前稳定态 结构 9/10 + 内容 10/10 hace 1 semana
_survey_fixture.json 3d57a39bb5 2.81.5 修「系统维护」等页签未加载: App 只取 /api/fleet => maint_survey/ask_models/curves 从未请求; 改为按页签按需取数(TAB_APIS + ensureTabApis + watch(tab))并传 apis/curves; 真实数据夹具验证巡检表渲染 hace 6 días
_vibcms_fixture.json 0597a6db58 2.80.1 振动融合分析(含 5 子页面)差异核定: struct_diff 增子视图支持(tab:sub) => 结构 5/5、内容 5/5 一致; 实逮真实差异并修复: cms 子页面应用从不取 /api/vibcms(旧页 app.js:980 按需取), 对拍工具喂数掩盖了它; 真行为验证: 点振动分析 => 实际请求 /api/vibcms 并渲染 39 行表格 hace 6 días
_wait_rebuild.mjs 71e3eea532 2.85.2 修「执行重算」第 ⑦ 步失败: kb_ingest.py 把模块级 _install_root 误写成 _p._install_root(AttributeError: pathlib has no attribute _install_root) => 整轮 rebuild 中断、/api/fleet 持续 500; 全仓仅此 1 处, 已修; 远端单独跑该步验证通过(产出 AlarmCode 555 等本体码表) hace 5 días
contract_smoke.mjs d67a673a03 2.17.0 前端 Vue 化(P11 起步): app_frontEnd/web (Vue3+Vite6+TS, npm 从 npmmirror 装) 构建产物 release/web + serve.json web=28110 + cli web 组件 + 网关 /web 同源; 契约侧 Python 门与 Node 冒烟各 42/42 一致; 契约支持异步构建态 json_keys_any; 设计说明 §3.6; 文档/版本表同步 hace 1 semana
dump_ssr.mjs af4faf705d 2.22.0 fault 页签迁移完成(4/10 过对拍): 补 Pareto 图 HTML 摘要/季节性图例/rate 示例守卫, 改正 ramChart(MTBF×MDT)与 attribBar(ok/unk/un2)口径; 对拍门加显式例外清单并登记后端 m8.mtbf.口径 两条路径文案不一致(待后端统一后删除); 文档/版本表同步 hace 1 semana
full_diff.mjs 1d2f3317f8 2.79.1 入库整页外壳对比工具 tools/full_diff.mjs(比 body 元素骨架)并记录工作台外壳与 v2.9.2 的差异清单(品牌区/右侧簇含返回门户/时间窗位置/页签栏在 main 外/多出的应用按钮/多一层 #app);一次批量对齐尝试改坏挂载,已回滚 App.vue 与 Workbench.vue 并重新部署恢复可用 hace 6 días
layout_diff.mjs 17048821b1 修不居中/排版差异: 门户内嵌 CSS(PortalSections.vue) 的 body{max-width:1440px} 等全局泄漏到工作台 => 在 styles.css 末尾加 !important 兜底(body max-width:none; main#root padding:0; header.top justify/wrap; .page-head padding/gap/align),计算样式与 v2.9.2 基线一致;新增 tools/layout_diff.mjs 排版对比工具 hace 6 días
legacy_chart_smoke.mjs 7d67bbeaf3 2.65.0 图表改为复用 v2.9.2 的 SVG 渲染器(基础设施): lib/legacy/charts.js 原文(31KB, window.__charts 工厂) + lib/legacyCharts.ts(按 app.js:523 同一 ctx: t/fmt/esc/dv/EN/displayText/verb, 导出 chart()/chartPanel()) + components/LegacyChart.vue + tools/legacy_chart_smoke.mjs(rateChart 出 SVG 1,564B OK); 旧页调用点已定位: report 550-558, fault 655/658/667, energy 685 hace 1 semana
parity_debug.mjs 89146efd70 2.19.0 Vue 总览页签迁移 + 呈现对拍门: Overview.vue(逐块搬 KPI/需关注/状态条) + lib/render.ts 口径同源 + i18n/zh.ts(105 键取自现网语言包) + tools/render_parity.mjs(jsdom 跑旧页面 beforeParse 装 fetch 桩 vs Vue SSR, 11 组锚点全一致) + npm run parity/build:ssr; 设计说明 §3.6 迁移进度; 文档/版本表同步 hace 1 semana
probe_baseline.mjs 709c7df3dc 2.21.2 fault 对拍 103->129/133: Pareto 图内 HTML 摘要(关键少数/前三)逐字复现 + 图数据改原值 + ramChart(MTBF×MDT)/attribBar(ok/unk/un2)口径改正; 仍差 4 条文本, fault 留在 IN_PROGRESS hace 1 semana
render_parity.mjs 9f7713c849 2.27.0 assistant/system 两页签迁移完成 => 已迁页签 9/10(仅余 report); system 登记 1 例数据文案差异; zh.ts 重新从现网语言包生成 hace 1 semana
render_parity_v292.mjs 5c8b754621 2.85.1 措辞政策定案(用户选A: 以实时接口/当前算法新词为准): 查清三处差异实为"基线旧快照用词 vs 当前算法新词"(实时侧新词内部一致, 旧词 0 处); 判据三条例外改判为预期差异; 并记录现状: 产物已被清除 => /api/fleet 500, 对拍必然 [X] 属预期, 待重算后复跑 hace 5 días
spa_smoke.mjs 53628312c8 2.60.1 两个 Java 进程纳入 serve 托管(java-backend/java-gateway + JDK 解析顺序 + serve.json.java_home) => 远端重启 guanlan 服务后 20s 内 28084/28120/18050/28110/28086 全部就绪, / = Vue(X-Portal-Source: vue), /api/fleet 200; 全门禁通过 hace 1 semana
struct_diff.mjs 1c103591d2 修「振动分析」(cms) 子页面真实无数据: 照旧页 app.js:980 在选中 cms 时按需取 /api/vibcms(prop 优先用于对拍同源); 此前应用从不取该接口, 对拍工具喂数掩盖了该差异 hace 6 días
struct_diff_ctx.mjs e3af1943a7 2.69.0 新增 v-unwrap 指令(消除 v-html 宿主多出的一层, 运行时 DOM 与 v2.9.2 一致) => vibration/assistant 结构一致; decision 元素数已相等(34=34)余 pills 顺序; 至此 5/10 页签结构与 v2.9.2 完全一致 hace 1 semana