Repository navigation
feat: add native Blocks, Devframe MCP and deterministic E2E - #29
Conversation
🦋 Changeset detectedLatest commit: 26d00f0 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Important Review skippedToo many files! This PR contains 577 files, which is 477 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configuration
⛔ Files ignored due to path filters: 3
📒 Files selected for processing: 577
You can disable this status message by setting the
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
CI 文档路由校验修复修复提交: 原失败:CI run 37914122461 / Unit tests。Registry 检查把 现在仅使用 URL 的 验证:
原生 E2E、真机与剩余独立审查阻塞仍按本 PR 原记录处理;这不是全流程 CI 或设备认证声明。 |
后续 CI:Web E2E 启动失败已修复修复提交: CI run 38039991931 已通过先前失败的 Unit tests、构建、产物和 runner 反例检查。随后没有执行任何 Web 用例,原因来自保留的 修复归属 验证:
原生运行时的既有六项阻塞没有更改或跳过,PR 仍为 Draft;后续 CI 以此提交的实际执行结果为准。 |
已发布 7.5.0:#1172 下游与边界验证验证对象为 插槽边界使用发布提交
独立 verifier 未读取主矩阵结果;它从原 fixture 推导并运行了另外 3 个 native 场景、25 个检查点、977 次节点观测:基础投影、关闭 outlet 下的重排/晚插入/卸载重建,以及过滤 export 的 Provider 双向隔离。结论为接受这些有界 headless 声明;无 runtime exception,独占锁与临时脚本已清理。它没有独立重跑完整 13 项,也没有重跑 Varo 原 Form 场景或 augmented 对照。 Varo 原场景
整仓采用门禁仍不通过
本次范围是微信目标、编译后的 Wevu 组件及默认 attached setup。7.5 发布说明 已明确记录这一有界支持契约,不能再用旧 Issue 的待回复记录声称协议尚未发布。 PR 保持 Draft。当前提交 收尾与交付已恢复实验前的六份 package manifests 和原始 lockfile,并完成 恢复后的 7.4 基线已重新运行 |
7.5 升级与剩余验收边界提交: 这次不是仅保留升级实验: 已修复
实际验证
仍失败的 5 项:没有绕过
已用没有 Varo 组件或编译器的最小原生工程隔离:真实 button tap 计数为 1,submit 计数仍 0;普通 text 返回 原断言、必需 test-target 与非零退出均保留;不手动触发 submit、不读取业务状态伪装可见文本、不跳过用例、不改成全绿。完整 native parity、IDE/设备、软键盘/安全区和实际宿主权限仍是独立 Gate。详细历史与修复前/后证据见 |
新提交的远端 CI 核对对应提交 已通过:依赖安装、源码归属/生成检查、类型检查、单测、包/应用构建、17 项原生产物契约、5 项 runner 失败/取消反例,以及完整 Web E2E。 Ubuntu CI 的原生主包为 1,989,931 / 2,097,152 bytes,315 条同步脚本引用校验通过;与本地数值分别记录。 失败仍只列出同样五个必需 native 场景:
CI 的 Web run 为 消费者与 native profile 两个后续 CI 步骤因前序失败而 skipped;此前报告的六包新鲜消费者与七平台产物通过是本地实际执行结果,不把 CI skipped 写成 passed。PR 保持 Draft;剩余 headless 能力需要在驱动/宿主边界解决,不在 Varo 添加提交注入、文本回显或跳过。 |
改动
新增 Registry-first 的可编辑原生 Blocks、Agent 组合、开发侧 Devframe MCP 与确定性 E2E。Registry 保持 renderer 的唯一作者源,应用继续拥有网络、上传、审批、持久化和执行政策。
apps/e2e使用锁定依赖、无模型配置、retries: 0、独立证据目录和必需 test-target 验收;迁移已完成等价验证的三组浏览器 runner,原生旧入口保留至完整宿主 parity 验收。packages/devtools提供有权限边界的 Registry/source/plan 和 preview/check/E2E 工具,复用 CLI 与真实执行结果,不进入产品运行依赖。原生运行时修复
26d00f0修复此前 CI 中的全部五项原生失败:Application 的表单默认提交一项,以及 Chat/Model Compare 的富文本观察四项。补丁位于
patches/@weapp-vite__miniprogram-automator@1.3.0.patch,只作用于锁定的开发测试依赖。rich-text数组和 HTML 转为模拟器渲染树中的文本与允许节点,保留实体解码、内容更新和字面内容;不执行 WXML/WXS 或不支持的节点/事件。原生提交按钮通过模拟器默认动作派发表单事件,收集具名字段并遵守自定义 form behaviors。独立审查发现并修复了两个边界:null/undefined Boolean 绑定不能当作裸属性;复用按钮句柄时必须从当前渲染树读取字段值和禁用状态。两项均保留失败前/修复后回归。提交处理器错误正常传播,缺失的目标拒绝旧句柄操作。
原五项失败用例、必需 test-target 清单和业务驱动没有放宽或跳过;没有直接调用页面提交方法,也没有用业务状态替代渲染文本。
验证
26d00f0;最终结论以该次 Check 为准。d775746a-fae0-436b-a0b3-a5fcced64f94。84089b37-6040-4423-be46-6132fa24bd18。一次中间 Web 运行因验证命令隐式触发
prepare,重建 Markdown runtime 时产生 HMR 404,以 73/74、非零退出保留原报告。此后使用直接 Node 验证并隔离运行时写入,最终完整 Web suite 达到上述 74/74。剩余宿主边界
回退与参考
回退时同步处理 canonical 源、生成投影与 inventory、安装/工具依赖和命令迁移,不只回退生成文件。无数据库迁移或生产数据修改。
docs/plans/varo-native-blocks-devframe-e2e.md