跳转到内容

Aira CAD 底座复用、版本兼容与证据体系修正调查:维护运行时、AI SDK 与默认接线

主文档与完整目录。本分篇保留原调查日期的依据与实测记录;其中的当前状态、建议和授权仅属于历史快照,不是执行队列。

10.11 源码维护与默认运行时接入(2026-09-03)

Section titled “10.11 源码维护与默认运行时接入(2026-09-03)”

用户接受 §10.10 的浏览器路线,明确要求引入源码、由 Aira 后续维护、按需修改并推进正式版本。 这次授权取代 §10.6–10.9 的阶段性暂缓结论;实际实现基于 HEAD 0372efef3ddc6b6d6ffdad2a0b81e34341ea0cd3 及已有未提交工作树,没有将其他任务的契约/授权改动回退。以下是实现结果,不是新的独立实验路径。

真实需求。 减少今后重复编写通用 CAD 能力的工作,能在已支持的 Exact 工业零件链上持续建模、 改参、恢复、提交和重开;上游实现须能修改、构建并进入默认产品,不能只把仓库下载作参考。

上游设施与维护来源。

组件 锁定来源 现在的正式消费者
Replicad 1.0.1 / 90d176edde1cf3dec8db189d9228f34625ac84af,完整库 src/ 与 MIT LICENSE 保留 @aira/replicad 工作区包;产品直接调用维护版轮廓、拉伸、旋转、差集、薄壁、Fillet / Chamfer
PlaneGCS npm 1.2.0 / registry gitHead ee9b156da9827a91a56a888a53520f63d5cffaa6,TS / C++ / binding tools / Dockerfile 保留 @aira/planegcs 工作区包;Web 与 sketch solver 通过原包名 workspace alias 消费
OCCT / OCAF OCCT 8.0.1 / b8f597c677811d1f9f4d8a97f5ae2825c0353a42;TauCAD ebd263f15337b440b391492af073662707e86482 现有共享 WASM 增加 AiraFeatureDocument,直接使用 TDocStd、TFunction、TNaming

维护入口是 third_party/maintained/ 和现有 packages/aira-occt-spike/build/。Replicad / PlaneGCS 直接由源码构建,不再从 ignored reference checkout 取运行时库源。OCCT 仍使用锁定内核镜像,完整 源码保留在原锁定下载目录;本批修改其绑定层,没有声称已经建立另一个 OCCT 算法分支。 PlaneGCS native WASM 保持 508,141 bytes,SHA256 039601df53b11cd06d0f8626cd2e9422b07aca31b18db9ba437b7d26cf5594c5; 本次编译自己的 TS wrapper,尚未重新编译求解器原生算法。源 LICENSE/文件头为 LGPL-2.1-or-later, 原 npm metadata 的不同标签原样保存在 package.upstream.json,未擅自替换上游许可文本。

已证实差异与实施。

  • Replicad 原方法增加同步 before/after build 观察接口、借用的指定原生边、owned raw result、 明确临时句柄释放与 wrapper detach。Aira 在 builder 存活时读取原生 history,继续应用原有 单边接受域和产品错误投影。操作实现仍在原方法中,未新抄一份几何算法。
  • profile-exact-fillet.ts / profile-exact-chamfer.ts 删除 maker 创建、Add、Build 和释放代码, 通过约 45 行共用适配调用维护包。失败建模/历史观察会释放临时对象,源体及借用边保持有效。
  • OCAF 文档真实保存参数、依赖和各特征结果;TFunction 更新依赖、检出循环并决定可执行函数。 删除 Aira 的手写拓扑排序循环。执行由同一 JS Worker 调用现有操作;最终输出从 TNaming_NamedShape 读取。候选文档提交/撤销由 TDocStd 处理,产品 Revision 的 CAS/IndexedDB 提交继续由共享 Session 负责。
  • 修复集成中原生文档只析构、不调用 BeforeClose() 导致 undo delta 清理异常的问题;完整图链 成功、失败、重试及释放测试随后通过。不能把最初错误归因于 OCAF 不适用。
  • 新密封回执 occt-feature-graph-runtime-v0.7.json 与默认 /occt/feature-graph/v0.7/ 对齐; v0.6 回执不覆盖新字节。58 个自动绑定之外的自定义绑定在同一 manifest,未加载第二份 OCCT。

决定与边界。 采用上述默认路径,退役两项操作封装和图排序职责。Aira 继续承担公开设计意图、 来源角色/选择语义、AI 契约与提交保护。当前 OCAF 是可重建的派生执行文档,尚未迁移权威 AMIR/ 持久历史;TNaming 存储结果不等于完整选择演化;每次仍是整图重建,不宣称已经实现跨会话增量重算。 维护包中的其他 Replicad API 源码可修改,不等于当前裁剪 WASM 已绑定全部 API 或产品已开放扫掠/放样。

已执行验证。

  • pnpm --filter @aira/replicad test:5 tests;包含两种操作正常释放、建模失败及 history hook 失败释放。
  • pnpm --filter @aira/occt-spike test:21 文件 / 120 tests,其中 graph 39 项;壳体、孔、收边、改参、 引用拒绝和错误恢复均通过。原 6 项实几何收边测试包含在总数内,不能重复累计。
  • Web 定向 5 文件 / 105 tests:AMIR 图、PlaneGCS adapter、共享 Worker/client、密封 runtime loader。
  • 两个源码包及 OCCT 类型检查通过,pnpm --filter @aira/web build 通过。
  • node scripts/verify-sealed-occt-runtime-supply.mjs:全部 9 项密封运行时通过;数量包括历史兼容资源, 不等于默认页面下载 9 个内核。
  • 内置 Chromium,生产 preview 127.0.0.1:4188:默认草图 42→50 mm 经 PlaneGCS/OCAF 生成候选, 提交并重开后同一 head rev:sha256:ab1fefe4950d7e213b449e7d34b60b368d031bfa21b98b47c5807bb5131866d2。
  • 同一生产包独立 enclosure 项目:通过可见几何固定相邻外壁,0.5 mm Chamfer 得到 13 面,提交重开 为 rev:sha256:b2016dbc82e96e03e616522ad209655a2489037daf9c85af47f92a19c6b3d9ab,7 个特征保持; 40→48 mm 重新求值的候选仍为 13 面,提交重开为 rev:sha256:822d072a48808f48ce070a15bb813015cf9e2ed4191b578ff3ddb440ad31c272。 追加恢复到 40 mm 后再次重开,为 rev:sha256:30cc264b3a7af51555f617f0039e6361e798d46a0f41f6314f39852d089e21ba, 三次提交历史保留,浏览器无 error/warn。此处没有调用真实 AI,不能作为模型规划验收。

成本与正式版本边界。 新 WASM 14,068,705 bytes / gzip 4,909,191 bytes;JS glue 54,601 bytes。 相对 v0.6,WASM 增加 128,609 bytes,gzip 增加 36,783 bytes。这是采用后的实际包体,不是算法时延或全库横向排名。维护源码增加仓库体积,换来可直接 修改的上游实现;只报告具体退役职责,不以 vendored 行数增加/减少冒充净维护成本。 当前本地生产包通过不等于新 G0 已密封或 G3 云运行完成。完整 Agent 接线、真实模型预算/验收、 发布源代码与许可证材料、新候选发布和目标云回滚仍沿原上线计划执行,不把旧回执挪作本次完成证明。

发布检查补充:完整 required 首次运行在既有新增请求/响应 schema 未登记处失败。补齐统一注册表, 其库存版本由 0.17.0 增补为 0.18.0(50 项,其中 public 40 项),现有 schema ID/内容不变。 这属于已有接口实现的发布接线修正,不把库替换变成新的协议。另保留 pnpm 生成锁文件和历史 backup 原始字节,排除格式器改写;新 runtime 回执的 build-lock hash 与格式化后的同内容 lock 文件同步。 生产构建使用 Vite 自带依赖许可清单输出;它不等于原生库/源码 fork 的完整发布材料已经验收。

最终必需检查:target/aira-foundation-required-final.log 记录所有工作区生产构建、956 项 JS 测试、 Rust 全测试(含 include-ignored)、格式、JS lint 及契约并发生成通过。全量运行末段因 crates/aira-core/tests/exact_lineage_face.rs 两处已有 helper 值传参的 Clippy 告警退出;改为借用 参数后,原命令 node scripts/run-cargo.mjs clippy --workspace --all-targets --all-features -- -D warnings 通过,相关 3 项 Rust 测试及 fmt 复验通过;最后 pnpm -r --if-present typecheck 全工作区通过。 相应日志为 target/aira-foundation-clippy-final.log、target/aira-foundation-lineage-test-final.log 和 target/aira-foundation-typecheck-final.log。这是全量运行加失败末项修复后的定向复验,不把原失败日志改写为通过。 密封运行时供应复验和 git diff --check 通过。 代码未提交、未推送、未部署;没有真实 provider 调用。公开正式发布仍需完成上文列出的剩余工程与生产配置。

10.12 下一阶段前的代码与文档收敛审查(2026-09-03)

Section titled “10.12 下一阶段前的代码与文档收敛审查(2026-09-03)”

范围与结论。 按用户要求检查近期库复用相关的默认调用链、维护源码、构建/实验脚本及主线文档。 基线为 HEAD 0372efe 加本次审查开始时已有工作树。没有重做全库选型、重跑性能排行或改换运行时。 主要混乱来自历史建议仍被主线引用、接入范围被放大,以及历史实验与当前代码没有分清。 本次是所列路径的源码审查和材料核验,不是全仓无缺陷证明。

真实需求。 明确下一阶段可依赖什么、Aira 仍维护什么、哪些缺口确实存在, 避免每次继续工作都重新考核同一批库或机械扩大迁移范围。 上游设施。 沿 §10.11 锁定的 Replicad、PlaneGCS、OCCT/OCAF;本次未升级、另选或新增库。

发现与处置。

发现 代码/材料证据与影响 处置
主线同时要求“已接入”和“先比较/暂缓” 旧实施计划 §6.0–6.5、长期计划 §0/§10、进度 §6 和 probe README 保留相互冲突的执行语句 已重写实施计划 §6,并同步主线入口;历史测量保留,旧建议退出现行任务
OCAF 接入范围被放大为完整迁移前置 exact-feature-graph.ts 每次新建文档;原生桥记录结果,JS 仍分发操作;无持久 OCAF 项目读写或跨求值复用 已纠正计划和进度;完整持久文档、选择演化、增量重算按实际需求触发,不自动阻塞上线
旧对照脚本并非冻结重放 prepare-graph-candidate.mjs 读取当前 manifest;graph-comparison.mjs 加载当前 TS/原运行时路径,仅校验冻结输入文件 manifest、图执行源码、默认 WASM 的实际 hash 均与记录不符;README 已标为历史程序。原结果保留,当前重跑不能当作原实验复现
自动许可输出缺少维护库及原生资产 apps/web/vite.config.ts 启用 Vite license 输出;已安装插件仅收集 node_modules 内 chunk modules,跳过 assets;当前 dist 清单没有 Replicad/PlaneGCS/OCCT 条目 尚待新发布候选补齐相应源码、许可证、构建来源材料;沿原上线计划处理,本轮未实现新的发布打包流程
原生源码可维护与已重编并非同一状态 PlaneGCS build 编译 wrapper 并复制已有 JS/WASM;OCCT link 消费固定镜像,参考源码修改不会自动进入镜像 已在实施计划与维护说明明确。后续原生改动必须经过真实原生构建,不能只跑 wrapper build 宣称生效
历史发布检查不能证明新接管已上线 prepare-cloudflare-static-deployment.mjs 和 G0 verifier 仍指向 G0 v0.2 历史候选;本次默认 graph runtime 为 v0.7 保留旧收据,未把它们刷新为当前通过;新候选和云验收保持未完成

旧候选的 graph-candidate-final.yml 没有 AiraFeatureDocument,当前图执行器明确要求这个 ABI。 因此仅换回旧候选 WASM、继续加载当前源码也不是原实验重放。上下文文件只保存相关源码 hash, 不是完整未提交源码快照;若需要核对旧实验,先恢复匹配源码与字节,无法取得则保留“不可完整重放”。 这不构成对 TNaming 或 Replicad 本身的否定证据,也不要求现在重开实验。

当前代码职责核对。

  • Replicad:产品几何构造统一直接调用维护版源码,replicad-finish.ts 转发层已删除;轮廓、拉伸、 旋转、差集、薄壁、Fillet / Chamfer 的 builder 与临时句柄由维护包拥有。产品保留选择、接受域、 history 证据、验证和诊断,不再维护第二套等价 OCCT 操作实现。
  • PlaneGCS:此前已经使用该数值求解器,本次改变的是源码和依赖维护方式;保留的模型映射/残差检查 有产品用途,不能据包名从 npm 改成 workspace 就声称新替换了一套自研求解器。
  • OCAF:替代派生文档和排序职责,但新增了原生文档桥;byId/sources/nodeResults 与 JS 操作分发仍在。 这不能表述成“图执行器整体交给 OCAF”或“已证明净减码/提速”。TNaming_NamedShape 结果存储没有替代 现有跨修订意图解析,TDocStd 命令没有替代共享 Session 的 CAS/持久化事务。
  • 共享图 Worker、Session、原生接口/UI 仍共用产品执行路径;本轮没有新增第二条执行管线。 维护包所有 API 的源码存在,不等于裁剪 WASM 已全部绑定或产品已支持全部功能。

决定与边界。 保留已采纳路线和正确性/恢复回归;按具体需求接入更多成熟能力。 同一库不再反复全量比较,已关闭选择只因具体需求、上游差异、已复现缺陷或预算变化而重开。 本轮修改说明文档;未修改运行时代码、测试或项目规范; 未启动下一阶段、真实模型调用、提交、推送或部署。尚未完成的 AI 产品闭环和发布事项继续在原进度中维护。

本轮验证:文档本地链接/锚点核对及 git diff --check 通过。 运行时代码未改动,未重跑 §10.11 的几何、JS/Rust 全量、浏览器或模型实验,也未把旧结果记成本轮新验证。

提交前补充:首次暂存维护库与探针归档后,全量 staged whitespace 检查报告上游源码和三份历史 candidate YAML 的既有尾随空白;保留这些来源格式及历史构建输入。其余暂存文件的差异检查通过; 此前工作树 git diff --check 不包含这些尚未跟踪的文件,不能表述为全部新文件格式检查通过。

10.13 Vercel AI SDK 与现有 AI 接线的重叠核对(2026-09-03)

Section titled “10.13 Vercel AI SDK 与现有 AI 接线的重叠核对(2026-09-03)”

范围与状态。 用户新增提供 vercel/ai,要求判断能否减少自有实现。本轮基线为 fca3a983f7cbb21a90187d79519f5910945c316f,只核对项目和上游源码;结论为建议采用,尚未接入。 不重开 CAD 库选型,不改变实施计划 §1.1 的产品目标,不把 SDK 存在记为 Exact Agent 闭环已完成。

真实需求。 下一阶段需要将默认 Agent 接到完整原生接口,同时减少模型协议适配、消息往返、 工具循环及后续流式传输的通用实现;几何工具仍在浏览器执行,密钥与模型费用入口仍由服务端管理。

上游设施。 本轮核对 npm 版本 ai@7.0.91、@ai-sdk/openai@4.0.57;两者 Git tag 均指向 79b4ab869b38c5c702bc3a3bf055254b74648759,这是调查锁定点,不是项目已安装版本。 上游标记 Apache-2.0、Node >=22;项目 Node 要求满足该下限。 官方仓库提供统一 provider、generateText、streamText 和 Agent/UI 能力; 显式使用 provider 可直连模型服务,无须使用 Vercel 托管或 AI Gateway。

项目现有职责 上游对应设施 建议边界
apps/server/src/adapters/openai-responses.ts 手工组装 Responses 请求、解析工具与 usage @ai-sdk/openai provider、generateText / streamText 优先接管模型协议适配;保留 Aira 模型准入、费用结算、原始调用证据与响应限制所需薄适配
apps/web/src/ai/agent-client.ts 混合通用循环、消息和 CAD 状态保护 ToolLoopAgent、UI Chat 的 onToolCall / addToolOutput / sendAutomaticallyWhen 复用消息/循环设施,浏览器工具回调转交现有 Aira Interface;先区分通用机制和产品语义,再退役重复路径
后续流式消息和聊天交互 SDK Core 流、UI Chat 状态与可注入 transport 可省去未来自写传输和通用聊天状态;不将尚未实现的功能计作已删除代码
Exact discovery、候选、验证、提交、恢复及历史身份 SDK 工具入口和回调可承载调用,没有 Aira 产品语义 继续由现有原生接口和产品状态规则负责,不另外建一条 CAD 执行管线

已证实差异与未知。

  • 客户端 Chat 源码 支持客户端工具执行和结果回传,浏览器 WASM 不是继续自写全部 Agent 循环的理由。 ToolLoopAgent 源码 则在工具没有 execute 时停下;不能直接把服务端循环配置为二十步,就宣称浏览器工具已接通。
  • 重试源码 默认重试两次,Agent 默认最多二十步。接入先显式 maxRetries: 0,每次模型请求继续走现有 http-handler.ts 的 security.admit 与结算;轮数上限不能代替费用授权。
  • 工具执行源码 使用并行工具执行。CAD 副作用必须经现有串行调度和候选状态检查,不能仅依赖 provider 禁止并行调用的参数。
  • 当前 Aira 使用原始工具参数字节/hash、严格 JSON、canonical schema 与调用关联证据;SDK 通用解析不能直接 视为这些保护的等价替代。上游工具 schema 可显式控制 strict;原始参数证据、响应体上限、诊断映射及 Worker 构建的完整接入兼容性尚未验证,实施时围绕这些具体差异接线,不再开泛化库竞赛。
  • 未做运行时替换或性能测试,因此不宣称提速、净减码数量或维护成本百分比。

决定与边界。 建议下一阶段优先用 AI SDK 承担通用 AI 基础设施,再将完整 Exact dispatcher 接入其工具路径。 从核心包与实际使用的 provider 开始,按用户的可维护要求保留精确来源和必要补丁,不先搬入整仓示例与所有 provider。 采用后退役相应手工协议/消息机制;确有产品语义的保护以薄适配或回调保留。 本轮只补充该研究记录;未安装依赖、修改运行时、调用模型、提交、推送或部署。

10.14 AI SDK 采用与重复路径退役(2026-09-03)

Section titled “10.14 AI SDK 采用与重复路径退役(2026-09-03)”

授权与真实需求。 用户在 §10.13 调查后明确要求“全面采用这个库”。本轮将 SDK 接入现有 AI 运行链,接管通用模型协议、浏览器工具循环与消息累积;不只安装依赖或保留旁路演示。 基线仍为 fca3a98 加 §10.13 文档改动。SDK 采用是本轮工作,不等于 F-01/F-02 连续建模任务完成。

上游设施与维护。 锁定 ai@7.0.91、@ai-sdk/openai@4.0.57、浏览器适配类型 @ai-sdk/provider@4.0.10 及 peer zod@4.1.8,由现有 pnpm workspace 安装与 lockfile 固定完整依赖和 integrity。核心/provider 上游来源仍为 §10.13 的精确 tag/commit;包中含上游 TS 源码,当前无源码补丁。 后续差异优先采用包补丁或定向源码 fork,不复制所有 provider/示例,也不平行维护等价框架。 pnpm 添加依赖时按其现有策略生成了三个精确版本的 minimumReleaseAgeExclude 条目,记录在工作区配置中。

实际接管与保留边界。

位置 已接管 Aira 薄适配 / 产品职责
apps/server/src/adapters/openai-responses.ts createOpenAI().responses()、generateText、SDK tool schema 与标准响应/用量解析;旧 parseOpenAIResponse 已删除 模型 allowlist、单次准入、bounded Fetch、原始参数 hash、canonical 校验、双编码 request 兼容及公开网关 envelope
apps/web/src/ai/agent-client.ts ToolLoopAgent、SDK step limit、工具结果与下一轮消息;旧 for (turn...) 自有循环已删除 时间/token/费用预算、发现前置、读并行/写顺序、候选状态、恢复/提交证据、完成权与任务进度
apps/web/src/ai/sdk-gateway-model.ts 实现 SDK V4 model 边界,SDK messages 映射到已有 /api/agent events 一次 provider decision 作为一个内部 aira_turn 执行,先做 batch reduction 再调用原生接口;provider 仍只看到 canonical aira_invoke
现有工作台 coordinator 与 M3 入口 继续调用同一 runNativeAgentTask,实际使用新 SDK 路径 共享 Candidate/Session/CAS 权威不变;没有第二套 CAD runtime

两端都显式 maxRetries: 0,服务端每个 admitted 请求仅一次推理,浏览器按现有任务预算设置最大步骤。 SDK 工具异常默认被转换为工具结果,且 telemetry 回调会吞掉抛出的异常;因此产品检查在真实执行路径内 进行,终止性工具错误被记录并通过 stop condition 停止,再按现有错误/trace 抛出,不继续请求模型。 运行时已完成时同样停止,不额外请求模型确认。预取消和运行中取消保持 TASK_CANCELLED。

已证实的兼容变化。 /api/agent envelope、canonical schema/hash、模型身份与历史数据不变。 SDK 生成标准 Responses input messages,替代此前的单个 JSON 字符串 input;任务内容仍包含同样的 intent/protocol/events。兼容 provider 必须返回标准 function item 的 id/call_id 及 message content/annotations。 此前简化模拟数据已补为标准格式;只有顶层 output_text 的非标准响应不再接受,标准嵌套文本完成响应已验证。 原始参数在 SDK 归一化前验证和绑定,双编码 request、UTF-8、重复 JSON 键、响应体大小及错误体脱敏保护保留。 显式关闭 SDK 自动 reasoning summary,沿用配置中的 effort;未设置 SDK 默认 Vercel Gateway 路由。

范围限制。 保持现有非流式、逐次准入的 HTTP 协议;未新建 chat UI/流式端点,也未将非流式数据伪装成实时流。 SDK 的通用机制可用于后续功能,当前不为采用全部导出 API 增加产品功能。默认 constrained 页完整 Exact Agent 接线仍是 F-01/F-02;本轮浏览器 Agent 验证使用明确的 Fillet agentDryRun 入口,不能冒称空白连续建模已完成。 实现验证期间没有调用真实模型、启用生产 provider 或部署,也未声称净减码比例或推理提速。 随后按用户“提交推送”指示,本节实现已提交为 f3ea4c18f466251ee072465bd33e1588c6d5fd1f 并推送至 origin/main。

验证记录。 网关 Node 6 文件 / 77 tests(含两端真实 SDK + HTTP 准入/结算/工具结果回传集成)通过; Workerd 4 文件 / 53 tests 通过,新增用例在真实 Worker runtime 内执行 SDK provider、参数 hash 和用量映射。 Web 全量 48 文件 / 329 tests 通过;随后新增预取消回归,Agent/coordinator 定向 30 tests 通过。 Web 生产构建、两份 Worker dry-run、网关及 Worker typecheck 已通过;本轮没有运行 Rust/CAD 库全量测试。 测试和构建日志保留在 target/ai-sdk-*.log,不作为已密封的新发布候选或历史回执。 浏览器原用例因默认模型已变化、K7 标签及 provenance 文案过期而失败;已改用显式 Fillet 和实际 Candidate 对比中的 actor 信息,未削弱 head 不变、合法提交、失败保护及取消检查。 最终 Chromium workbench-agent.spec.ts 11/11 通过,覆盖预览后提交、缺失用量/非法工具/预算/超时/离线/ 权限/限流/不可用失败保护、取消与重试、切回人工路径,见 target/ai-sdk-workbench-e2e-verified.log。 最后 Web typecheck、网关/Worker typecheck、变更源码 ESLint/Prettier、网关 Node build 和最新 Web bundle 复验通过;Web 主工作台 chunk 2,144.66 kB / gzip 532.66 kB。构建保留既有原生包外部模块和 chunk 大小提示, Workerd 测试另有上游 @workflow/serde source map 缺失提示;均未作为运行失败,也未隐藏提示。

后续残留清理(基于 f3ea4c1,用户要求“清理退役代码,更新文档”)。 真实需求是让现行源码与 已采纳路径一致,不再保留无入口的旧服务器或中间工具格式。上游设施仍是锁定 SDK 的 tool、jsonSchema 与 Responses provider;已证实旧 OpenAI 工具 descriptor 仅在适配器内部用于再生成 SDK tool,故改为模块级 直接声明 SDK tools,去掉旧格式导出及每轮转换。canonical schema、投影/hash、strict: false 和原始参数校验不变。

  • 删除 apps/server/tests/scripted-gateway.mjs:没有现行脚本、测试或运行入口引用,只剩历史报告路径; 它手写 Core M3 决策并启动固定端口服务,不是当前 SDK 集成测试入口。历史报告原字节保留。
  • 保留在用 deterministic-client、deterministic-agent-gateway、M3 Gate,以及 HTTP/SDK 薄适配;它们分别 服务既有回归或公开传输边界。CAD 发现、权限、预算、取消、候选/提交保护有实际消费者,未当作框架重复实现删除。
  • 纠正 Agent 性能采集的隐式默认模型与 K7 标签,显式使用 Fillet/exact.fillet;旧 20 样本报告仍为历史测量, 本轮不重新采样或覆盖。README、实施/进度及历史验证入口已对齐 f3ea4c1 与当前职责。

本次清理验证:网关 Node 6 文件 / 77 tests、Web AI/M3/coordinator 5 文件 / 47 tests、 真实 Workerd SDK provider 1 test 通过;网关 Node/Worker typecheck、Node build、变更源码 ESLint/Prettier 及 git diff --check 通过。Playwright 性能配置 --list 能加载现行用例,未执行浏览器性能采样或重跑上一批 Chromium 11 项功能回归;没有真实模型调用或部署。Workerd 仍有上述上游 source map 提示。

10.15 默认工作台 Exact Agent 接线(2026-09-04,工程交付)

Section titled “10.15 默认工作台 Exact Agent 接线(2026-09-04,工程交付)”

真实需求。 按实施计划 §1.1.1,用户发起的可逆建模任务应逐操作显示结果、验证后自动应用, 可停止、撤销/重做和重开继续编辑。能力搜索成功不是建模完成;不得再让本地 intent 解析器替模型生成 Patch。

上游设施。 继续使用 ai@7.0.91 的 ToolLoopAgent、tool、jsonSchema 和 @ai-sdk/openai@4.0.57 的 Responses provider;循环、消息累积和模型协议没有新增等价实现。 Exact 请求 schema 的离线依赖闭包使用 @apidevtools/json-schema-ref-parser@11.9.3 的 bundle, 该版本已在 json-schema-to-typescript 依赖链内,现声明为 contracts 的直接开发依赖;复用生成脚本的 本地资源 resolver,禁用网络解析。运行时校验仍复用 Ajv 与现有 Exact 请求/结果 schema。

已证实差异。 原 SDK 路径使用 Core/Exact 0.2 请求契约,而共享图 Session 的模型接口采用 Exact authoring 契约;二者的 Patch、能力查询和结果结构不同,不能通过类型断言混用。 新增显式 aira.agent.exact-authoring/0.1.0 传输选择及 aira.exact-graph-response 事件, 旧未指定 profile 的消费者保持旧语义,历史 schema/hash 不重写。provider 原始参数、hash 和两端校验继续保留。 另发现工作台参数投影遗漏草图约束内的参数绑定,复用已有 workbenchParameterBindings 补全显示。

决定与边界。 默认页面各 driver 共用 createExactGraphJsonInterfaceV04 和原 Session。 宿主按任务签发限定 actor/有效期/能力类别的 grant 并限定 policy;模型仍提交自身产生的 Patch 字节。 界面从同一原生结果取得几何、参数和 Revision,不在模型结果内传渲染缓冲,不另建建模执行器。 撤销/重做只保留 Revision 引用并调用既有 append-only restore;SDK 任务停止时保留已提交步骤。 原默认 catalog.search 完成判定和随后调用 previewCandidate() 的路径已替换。

工程验证。 真实 Rust/OCCT/PlaneGCS + Session 的整文件集成 87 项通过,随后补充“回读错误历史 Revision 不得宣称完成”及相关恢复复验 6 项通过(现有文件共 88 项)。覆盖 Fillet、默认 constrained 零件的 50→48→撤销 50→重做 48→重开改 46、非法宽度诊断修正,以及 Enclosure 宽度、Revolve 角度经同一 SDK 自动应用。第一步 50 mm 后第二步取消/超时保留第一步;提交后重算或显示投影失败不再调用模型重发 Patch,恢复后仍可撤销。现有宿主 grant/过期/跨 actor、Candidate 到期与两 Session CAS 测试保持通过。恢复显示失败的提示不再被任务结束状态覆盖,历史恢复共用当前 Revision 的投影与撤销记录。

默认页 Chromium 12 项通过(完整 SDK/CAD 流程 1 项、离线失败/取消/手动恢复 11 项)。外部模型输出固定,但网关 Responses provider、浏览器 ToolLoopAgent、真实 Worker/Session 与 IndexedDB 正常执行;无 agentDryRun 或本地 intent parser 代写成功路径。生产构建默认页 Google Chrome 已通过同一完整流程,手动兼容套件完成 9 项首次通过 + 2 项修正旧标签后复验通过:旧 K7/隐式 Fillet 和伪 AI provenance 预期已纠正,Human 显式审阅、备份/导入、视口/特征树与可访问性仍通过。截图:生产页重开后 46 mm。网关 Node 83 项、Workerd 53 项、contracts 新请求闭包 9 项、Web 常规 332 项及后续 AI/M3/coordinator/参数 44 项通过;Web、网关 Node/Worker 类型检查和生产构建通过。变更源码 ESLint/Prettier 与 git diff --check 通过;没有重跑全仓所有历史 Gate。

反馈测量。 生产版 Google Chrome 单次连续任务,从实际点击开始,UI running 状态约 230 ms,50 mm Candidate 首次显示 994 ms、提交 Revision 显示 1127 ms,48 mm Candidate 1301 ms、提交 Revision 1424 ms;任务结束 1525 ms。按两个相邻原生结果观测,propose→preview 分别约 70/63 ms,它包括调度/模型夹具/传输,不能解释为纯内核耗时。每一步界面都在任务结束前刷新。原始观测:exact-agent-feedback-v0.1.json。这是离线模型输出、单机器单样本,不证明真实模型延迟、成功率或普遍提速。

退役与兼容。 删除无人消费的 ExactAgentDiscoveryInvoker 与对应测试(208 行);旧 catalog.search 完成判定、intent→自动代写 Patch 已退出默认 Agent。旧 523 行“搜索成功、Head 不变”性能采集器删除,既有 perf:workbench:agent:p0 改跑当前完整 SDK 流程并记录新文件;旧 20 样本报告原字节保留,历史验证器改核对其测量提交 9661267 的 Git 源码收据,明确只证明历史基线,不再将当前工作树误当旧测量源码。该历史收据验证需本地 Git 保有该提交,缺失时失败,不跳过哈希检查。旧 Core/M3 和网关错误夹具保留实际回归用途。手动 Human 参数/候选审阅入口仍是显式兼容交互;默认 AI 自动应用不经过它。新建 Enclosure 在 SDK 工作台按正常事务初始化,不先停在一个需要手工提交的 starter;无 Agent 的历史 Controller 用例保留显式候选方式。

未调用付费模型、提交、推送或部署;§1.1 的 F-03 关系保持/引用恢复及真实模型实验、公开上线均未因本次接线标记完成。构建保留上游 WASM/module 外置及大 chunk 提示,Workerd 有上游 source map 提示。

10.16 Replicad 单一几何层收口(2026-09-04)

Section titled “10.16 Replicad 单一几何层收口(2026-09-04)”

真实需求。 产品只能维护一处通用几何封装,避免 Aira 操作模块、转发文件和 Replicad 同时拥有 相同 OCCT builder、失败处理与生命周期。已有 AMIR、SemanticRef、验证和事务仍需保留,因为它们表达 产品语义而非几何算法。

上游设施。 使用现有 @aira/replicad 维护源码中的 _3DShape、basicFaceExtrusion、revolution 及 OCCT 句柄管理;差集、抽壳、轮廓构造所需 API 直接补入该维护分支。STEP 已有 importSTEP / exportSTEP,本轮未再建 Aira 版本。底层继续使用同一密封 OCCT 实例和现有非破坏 Cut 绑定。

已证实差异。 原产品只有 Fillet / Chamfer 经 replicad-finish.ts 转发,拉伸、旋转、差集和薄壁 仍在 Aira 模块中各自创建 builder;这会形成两套生命周期和错误路径。维护版 Replicad 原 API 又缺少 返回 owned native result、在 builder 存活期读取 history、接受已解析原生面边以及保留轮廓边身份的接口。 这些差异已在维护源码补齐,gp_Pnt / gp_Dir 构造也改为兼容裁剪运行时,不再依赖未绑定的 gp_XYZ。

决定与边界。 @aira/replicad 现在唯一拥有轮廓、拉伸、旋转、差集、薄壁、Fillet / Chamfer 的 几何构造、builder 和临时句柄。Aira 产品模块直接调用这些源码 API,只处理参数接受域、语义选择、 history 到 ArtifactGraph 的证据映射、有效性验证和结构化诊断。replicad-finish.ts 及生成文件删除, 不保留转发兼容层。旧 P0B occt.worker.ts 只用于复验固定包体/性能历史基准,未被产品导出或调用; 其原生 OCCT 调用不构成产品第二路径。后续通用几何能力必须先进入 Replicad 维护源码。

验证。 Replicad 源码构建和 OCCT adapter 类型检查通过;OCCT 包 21 文件 / 120 tests 通过, 覆盖真实拉伸、旋转、差集、薄壁、Fillet / Chamfer、history、错误和释放。旧 ArtifactGraph 的差集 证据及测试也改为直接调用 Replicad。Web 全量 48 文件 / 340 tests、类型检查及生产构建通过; 未调用模型、提交、推送或部署。OCAF 会话持久化、TNaming 选择演化、STEP 产品接线和工业零件验收 仍是 G-CAD 待办。