Skip to content

feat: support offline visual checks for BOE workflow - #4720

Open
Rui-Sun wants to merge 5 commits into
developfrom
codex/boe-workflow-smoke-20261020
Open

Rui-Sun wants to merge 5 commits into
developfrom
codex/boe-workflow-smoke-20261020

Conversation

@Rui-Sun

@Rui-Sun Rui-Sun commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

原生视觉入口增加 --offline,要求显式固定完整基线提交,并在共享依赖或命中缓存前核对完整 Rush 配置及根目录、各项目的 package.json。锁文件相同也不能复用不同的项目依赖声明;两侧工程链接分别指向各自源码,可在无网络环境完成真实基线比较。

同时校准混合系列与截断轴标签的交互定位:柱体优先使用未被面积遮挡的内点,轴标签使用实际可命中的目标。保留原始数据、spec、悬停及反向状态、完整文本提示断言。

执行结束时记录真实源码快照;执行或清理期间发生编辑、HEAD 变化或快照读取失败时,报告明确记录执行错误。

已完成验证:

  • Node.js 22 离线配置、缓存、目标定位和结束快照确定性测试:4/4;Linux 隔离运行同样通过。

  • 原生 CLI --check 通过,显式清单为 264 项。

  • 三项受影响用例各连续运行五轮,截图哈希分别一致;抑制动作及移除状态/禁用提示的六次反例均被拒绝。

  • 当前提交的全量原生视觉及 BOE 集成结果见下方自动维护的工作流区块。

本 PR 用于独立工作流接入验证,待四项门禁完成后由维护者合入。

VisActor 工作流(BOE):awaiting_approval

当前提交:8ccc7de1634dd8d1fa296b837b6eee18a0d6e133

门禁、差异解释和 Photo 基准更新清单

@visactor-review-bot

visactor-review-bot Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

结论:自动门禁已完成,等待人工批准并合入。
当前提交:8ccc7de1634dd8d1fa296b837b6eee18a0d6e133;比较基线:b644af49953a88c18e00b9bdac8422afceee7aba。
环境:BOE;更新时间:2026-10-21T04:28:31.249Z。

BOE 开发临时规则已启用:门禁与清单完成后,由 Rui-Sun 人工 Merge 视为已批准;其他合入者仍需有效 GitHub Approve。

CR:passed;待处理 0;接受风险 0。 查看结果
单测:passed;必要单测 job 必须实际执行并成功。 查看结果
Playwright:passed;截图 264;匹配 264;差异 0(已解释 0);错误 0。
Photo(原 BugServer / UNIC):differences_explained;用例 2;截图 4;匹配 0;差异 4(已解释 4);错误 0。

图片差异解释:

  • photo / boe-vchart-grouped-bar-select-20261020(可接受):分组柱图基础图:实际八柱颜色和高度符合 Alpha–Delta 的 Plan/Actual 数值;双图例和坐标轴完整。无历史 Photo 基准,应建立新基准。PR diff 修改离线本地视觉入口而非此 BOE Photo 用例或柱图渲染。
  • photo / boe-vchart-grouped-bar-select-20261020 / select-alpha-plan(可接受):点击 (153,300) 在 Alpha/Plan 柱内;基础图蓝柱变深并显示 Alpha/Plan/60 提示,其余七柱保留。选中目标正确,无旧基准,应建立新基准。PR 对本地 visual helper 增加柱体内点命中,不影响此 Photo 固定点击。
  • photo / boe-vchart-line-legend-20261020(可接受):双折线基础图完整呈现 Jan–Apr 的 Plan 蓝线 20/50/35/80、Actual 橙线 35/30/65/60、八点、双图例与轴。无历史 Photo 基准,应建立新基准。PR 离线依赖核对不更改此图渲染。
  • photo / boe-vchart-line-legend-20261020 / toggle-actual-series(可接受):点击 (414,34) 位于 Actual 图例;对照基础图橙线及四点消失、Actual 图例变淡,蓝 Plan 四点保留。确实隐藏了正确系列;无旧基准,应建立新基准。PR 改本地 visual 入口而非此 Photo 图例筛选。

合入后 Photo 基准更新清单:

  • 用例 36162de0c1aebafb8006f274 / 任务 01a15cb5-d727-7ddb-8688-f28ce16f6e11 / 报告 6ad83eef26b52811c52132cf:分组柱图基础图:实际八柱颜色和高度符合 Alpha–Delta 的 Plan/Actual 数值;双图例和坐标轴完整。无历史 Photo 基准,应建立新基准。PR diff 修改离线本地视觉入口而非此 BOE Photo 用例或柱图渲染。;pending。
  • 用例 36162de0c1aebafb8006f274 / 任务 01a15cb5-d837-7ddb-8688-f93ba4ba47dd / 报告 6ad83eef26b52811c52132ec:点击 (153,300) 在 Alpha/Plan 柱内;基础图蓝柱变深并显示 Alpha/Plan/60 提示,其余七柱保留。选中目标正确,无旧基准,应建立新基准。PR 对本地 visual helper 增加柱体内点命中,不影响此 Photo 固定点击。;pending。
  • 用例 e6805ee88a73fc0e67f63877 / 任务 01a15cb5-d928-7ddb-8689-026a51103300 / 报告 6ad83eef26b52811c5213301:双折线基础图完整呈现 Jan–Apr 的 Plan 蓝线 20/50/35/80、Actual 橙线 35/30/65/60、八点、双图例与轴。无历史 Photo 基准,应建立新基准。PR 离线依赖核对不更改此图渲染。;pending。
  • 用例 e6805ee88a73fc0e67f63877 / 任务 01a15cb5-da33-7ddb-8689-0af18501c9b5 / 报告 6ad83ef026b52811c5213315:点击 (414,34) 位于 Actual 图例;对照基础图橙线及四点消失、Actual 图例变淡,蓝 Plan 四点保留。确实隐藏了正确系列;无旧基准,应建立新基准。PR 改本地 visual 入口而非此 Photo 图例筛选。;pending。

BOE 结果仅证明上述实际范围;完整报告和原始差异继续保留。

@visactor-review-bot visactor-review-bot Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

最新复查提交: 8ccc7de

未发现可确认的新问题。

/** 缓存命中前也核对完整 Rush 配置,不能借旧依赖掩盖本次变化。 */
async function assertOfflineConfiguration(root, sha) {
if (
git(root, ['diff', sha, '--', 'common/config/rush', 'rush.json']) ||

@visactor-review-bot visactor-review-bot Bot Oct 21, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] 离线共享依赖前还需核对项目的 package.json

当两侧项目 package.json 的依赖声明有差异而 Rush 目录及 rush.json 不变时,这里仍判定配置一致,随后 offlineDependencies 直接把候选项目的 node_modules 复制到基线工作树。用相同锁文件的最小 Git 复现中,把基线 packages/vchart/package.json 的 alpha 换为候选侧的 beta 后,函数未报错,基线只得到 beta 而缺少 alpha;这是依赖链接复现,未运行真实图表构建。请在共享链接或命中缓存前校验相关项目的依赖清单与基线一致(或保证两侧各自按清单准备依赖),避免错误依赖参与视觉比较。


已确认修复 (8ccc7de): 原触发条件是基线和候选的项目 package.json 不同、Rush 配置及锁文件相同;现在离线共享链接前和基线缓存命中前均调用配置校验,校验将根目录及各级 package.json 纳入与固定 SHA 的 diff,并检查未跟踪清单。当前版本的确定性测试实际将候选 packages/vchart/package.json 改为不同依赖,验证两处调用均以“依赖配置不同”拒绝,原来错误复用依赖的路径已被阻断;未执行真实图表构建。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant