Skip to content

feat: 接入原生视觉工作流与可信 CI,并优化多区域刷选 - #4708

Closed
Rui-Sun wants to merge 17 commits into
developfrom
codex/workflow-local-check
Closed

Rui-Sun wants to merge 17 commits into
developfrom
codex/workflow-local-check

Conversation

@Rui-Sun

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

Copy link
Copy Markdown
Contributor

提供核心与扩展独立的原生视觉套件导出、指定基准候选执行和固定 workflow_dispatch 受理入口。多区域 Brush 每轮布局统一重置状态,消除重复扫描全图;CI 复用同轮构建资源,保留原生分片与原报告,并明确检出 PR head。同步官方已合入的 VRender 1.1.12 / VUtils 1.0.28,修复斜体标注文字的布局差异。

当前 head:ca4a94eae5efbb291f22d940af58ae2dd4506a6d;本轮固定官方 develop 基线:e41a07fee23214f146698a5f8f3b30a96dc39339。

验证:

  • Node 22 标准 pre-push 检查通过。macOS 与 Linux 核心 264 + 扩展 3 全量官方比较均 267/267 匹配,零差异、零错误;阈值保持 maxDiffPixels=0。基准在 macOS 标准构建、Linux 实际截图,PNG 已由宿主重新比较。提交前暂存源码及冻结用例与当前提交逐项一致。
  • 标注文字问题做了双向校准:旧 Text 实现出现 1913 像素差异,只换入新版 Text 后归零,回退该类后原样复现。正式结果来自标准依赖升级,校准资源未写入产品。
  • 准确 head 的 GitHub StatPlots 原始报告 462/462 通过,零跳过/重试;检出 SHA、原始 JSON 与制品摘要已核对。原 56 万点 PairPlot 37.646 秒、真实 CDN 6.088 秒。该 PR 内工作流和 Node 22.23.3 属于联网辅助证据。
  • 固定 Node 22.22.2 / Playwright 1.63.0 的受控 Linux 全量 CI 已通过:9/9 构建、1245/1245 单测、462/462 浏览器、10 项 Node 检查,零失败/跳过/重试。原 56 万点 PairPlot 65.010 秒,原 90 秒断言及 1800 秒候选额度保持;真实 CDN 3.933 秒。两份原生分片、合并报告、全部产物及资源摘要经宿主独立重算。
  • 四个 Electron Jest 组原先未执行的原因已确认并修复:受控依赖副本仅补齐官方 8 字节入口元数据,关闭生命周期,旧冻结包和固定运行包保持。工具完整 Linux 356/356、零跳过通过;修复后上述 1245 项单测均已真实执行通过。

旧入口仍失败:Photo 为 2093 项 / 2037 成功,56 项未通过;官方参考 #4713 为 2093 / 2039,具体失败集合尚未比对。size 为 2.42 MB / 2 MB,官方参考也超限(422.45 kB,本分支 422.42 kB)。原失败保留,生产基准及阈值保持。

本 PR 继续等待管理员 review,未合入。固定运行包与受控依赖已取得 VChart 产品准入;可信宿主只允许有界 unpkg.com:443 TLS 隧道,worker 无通用网络或凭据,浏览器正常验证 TLS、不拦截请求或替换响应;内网/元数据/其他域拒绝及清理已实测。隧道按固定 CDN 端点授权,不能检查加密 HTTP 方法或路径。旧离线 CDN 失败及两次配置加载/工作目录失败证据保留,未改写成通过。固定 dispatch 收据仍为 testsExecuted=false;默认分支真实自动派发、生产接入和资产发布仍需独立验收。

@Rui-Sun
Rui-Sun marked this pull request as ready for review October 15, 2026 15:15
@Rui-Sun
Rui-Sun marked this pull request as draft October 15, 2026 16:15
@Rui-Sun
Rui-Sun marked this pull request as ready for review October 15, 2026 16:36

@xile611 xile611 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

审查提交:7dfb6f638cd338af596658148bb0918359be4278。发现 1 个已复现的 P2 问题,详见行内意见。

验证范围:Node.js 22 下,已有输出目录时,派发校验、套件导出和 JSON 输出共 31 项测试通过,候选执行 11 项测试通过(复用已有构建);移开已有 .vchart-visual 目录后,单独运行 JSON 专项稳定复现 ENOENT。未重跑全量视觉测试。


test('native JSON preserves preparation failure, source snapshots and cleanup', async () => {
// 使用独立 Git 工作区故意缺少依赖;设置模块改动模拟检查期间的源码变化。
const dir = await fs.mkdtemp(path.join(root, '.vchart-visual/json-contract-'));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[P2] 创建临时目录前先初始化父目录

这里直接调用 fs.mkdtemp(),但没有创建父目录 .vchart-visual。在全新检出、尚未运行视觉测试时,单独执行文档中的 node --test packages/vchart/scripts/visual-json.test.mjs 会立即报 ENOENT: no such file or directory, mkdtemp .../.vchart-visual/json-contract-...,因此无法验证后续 JSON 契约断言。已在 Node.js 22 下移开已有输出目录后复现。组合运行时 visual-suite.test.mjs 会提前创建该目录,掩盖这个依赖。建议在 mkdtemp 前执行 await fs.mkdir(path.join(root, '.vchart-visual'), { recursive: true }),让该专项能独立运行。

@Rui-Sun Rui-Sun changed the title feat: 接入原生冻结视觉套件与可信 CI 派发入口 feat: 接入原生视觉工作流与可信 CI,并优化多区域刷选 Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants