18 KiB
CADFS → CDSL Engine 周报
周期:2026-09-07 ~ 2026-09-11
数据集: data/cadfs-sample/CADFS_test,共 9,347 个样本
最新全量工件: cadfs_to_cdsl/output,报告生成于 2026-09-11 18:28:01
历史工件: cadfs_to_cdsl/output-history/*
能力依据: cadfs_to_cdsl/ENGINE_CAPABILITY_GAPS_PROGRESS.local.md、CADFS_FULL_CAPABILITY_TARGET.md
1. 本周结论
- CADFS → CDSL 的转换覆盖继续提升。 最新全量结果中,
converted_complete为 6,626 个(70.89%),converted_partial为 2,325 个(24.87%);无可执行特征的样本降至 366 个(3.92%),解析/降级失败 30 个(0.32%)。 - 转换完整不等于可执行,也不等于几何相似。 最新结果有 8,126 个 STEP 工件,但其中包含失败样本保留的可执行前缀;真正完成一次 rebuild 的样本为 4,597 个,其中 RP 接受 1,781 个、strict 接受 744 个。
- 最新快照的 RP/strict 接受数低于 2026-09-09 快照。 这与本周 selector provenance、single-session replay 和 fallback 收紧同步发生;
selector_query_unsupported成为主要 rebuild 失败层。该变化不能只按百分比判定为几何能力退化,应结合失败 feature、前缀 STEP 和诊断逐层分析。 - 本周 engine 的主要增量集中在 provenance、拓扑历史和有界 source contract。 已落地的多数是窄范围、可证明的 contract;没有把单个样本的通过结果升级为通用 CADFS feature 完成。
2. 当前 CADFS → CDSL 数据转换情况
2.1 最新全量结果
| 层级 | 状态 | 数量 | 占 9,347 样本 | 说明 |
|---|---|---|---|---|
| 转换 | converted_complete |
6,626 | 70.89% | FeatureScript history 全部有 CDSL 表达,仍需单独看 runtime/comparison |
| 转换 | converted_partial |
2,325 | 24.87% | 保留可转换前缀,后续 feature 有 deferred/unsupported 等诊断 |
| 转换 | deferred_no_executable_feature |
366 | 3.92% | 没有可执行 feature checkpoint |
| 转换 | parse_failed |
30 | 0.32% | parser/lowering 层失败 |
| rebuild/比较 | rebuilt_strict |
744 | 7.96% | CDSL、STEP rebuild 和 strict comparison 均通过 |
| rebuild/比较 | rebuilt_approximate |
1,037 | 11.09% | RP 工程相似通过,strict 未通过 |
| rebuild/比较 | rebuilt_rejected |
2,778 | 29.72% | 有 rebuild/comparison,但不满足 RP 验收 |
| 执行 | rebuild_failed |
3,932 | 42.07% | runtime/selector/OCC 在完整或增量 replay 中失败 |
| 执行 | runtime_ineligible |
408 | 4.37% | CDSL 已产生,但能力预检拒绝完整 runtime execution |
| 基础设施 | comparison_timeout |
38 | 0.41% | 比较 worker 超过 60 秒 |
| 基础设施 | rebuild_timeout |
14 | 0.15% | rebuild 超时 |
接受口径:RP 接受 = rebuilt_strict + rebuilt_approximate = 1,781(19.05%);strict 接受 = 744(7.96%)。当前 4,559 个样本有 comparison report,其中 strict 占 16.32%,RP 占 39.07%;这个分母与全量样本不同,不能混用。
2.2 CDSL、STEP、比较工件覆盖
| 工件 | 数量 | 占全量 | 位置/说明 |
|---|---|---|---|
| candidate CDSL | 8,951 | 95.76% | output/samples/<sample_id>/candidate.cdsl.json |
| bound CDSL | 8,485 | 90.78% | 已完成 selector/body binding 的候选 |
| STEP | 8,126 | 86.94% | 包含完整 rebuild 和失败时保留的最佳 executable prefix |
| comparison | 4,559 | 48.77% | comparison.json 和 comparison_summary.csv |
| GLB | 0(全量目录扫描) | 0% | 最新全量 output 未生成 GLB;专项回归工件中的 GLB 不计入全量统计 |
所有样本的本地 annotation、FeatureScript、image、STEP、STL modality 均存在;JSONL 对齐 fallback 为 0。每个失败样本仍按当前流程保留 diagnostics.json、history.json、rebuild.json 以及可用的 rebuild.step 前缀。
2.3 历史快照对比
以下数据按各快照的 full_run_report.md 汇总。旧快照的 manifest 状态命名曾使用 rebuilt/rebuilt_approximate 等不同字段,因此不把旧 manifest 与最新 manifest 直接拼接;比较时以各自报告的 conversion、RP、strict 和工件计数为准。
| 报告时间(快照目录) | complete | partial | deferred | RP accepted | strict accepted | STEP | candidate | bound | comparison |
|---|---|---|---|---|---|---|---|---|---|
2026-09-02 (20260907-185128) |
2,427 | 4,315 | 2,602 | 1,159(12.40%) | 578(6.18%) | 1,812 | 8,108 | 1,773 | 1,719 |
2026-09-07 (20260907-235209) |
2,829 | 4,283 | 2,235 | 1,358(14.53%) | 654(7.00%) | 5,554 | 7,112 | 5,554 | 5,250 |
2026-09-08 (20260908-215959) |
5,367 | 3,266 | 693 | 2,031(21.73%) | 905(9.68%) | 6,134 | 8,633 | 6,134 | 6,090 |
2026-09-09 (20260909-191531) |
6,232 | 2,710 | 396 | 2,253(24.10%) | 989(10.58%) | 8,176 | 8,942 | 8,364 | 6,007 |
2026-09-11(最新 output) |
6,626 | 2,325 | 366 | 1,781(19.05%) | 744(7.96%) | 8,126 | 8,951 | 8,485 | 4,559 |
从 2026-09-02 到最新快照,完整转换增加 4,199 个(+44.92 个百分点),deferred 减少 2,236 个(-23.92 个百分点),candidate/bound CDSL 覆盖明显扩大。最新快照相较 2026-09-09 的 strict/RP 和 comparison 数下降,应归因到当前代码的更严格 provenance/selector gate、runtime 分类和本次全量执行边界,不能仅凭接受率得出“本周 engine 几何能力整体下降”的结论。
与 2026-09-09 快照逐项比较:converted_complete +394、converted_partial -385、deferred -30、candidate CDSL +9、bound CDSL +121;STEP -50、comparison -1,448、RP accepted -472、strict accepted -245。后四项反映本次全量执行的 replay/比较覆盖和 provenance gate 变化,需与保留的 prefix STEP、diagnostics 和 comparison 工件一起解读。
2.4 FeatureScript 操作覆盖与主要缺口
最新 source history 中的操作出现次数如下,说明当前回归集已覆盖较宽的 operation 分布:
| 操作 | 次数 | 操作 | 次数 |
|---|---|---|---|
newSketch |
20,857 | extrude |
18,168 |
fillet |
5,210 | revolve |
2,087 |
chamfer |
1,818 | cPlane |
1,620 |
hole |
1,203 | shell |
729 |
mirror |
483 | transform |
468 |
sweep |
378 | loft |
377 |
circularPattern |
252 | booleanBodies |
228 |
deleteBodies |
142 |
按受影响样本统计的主要 capability gaps(一个样本可能同时命中多个 gap)为:
| Gap | 受影响样本 | Gap | 受影响样本 |
|---|---|---|---|
fillet |
928 | extrude |
888 |
chamfer |
264 | revolve |
201 |
shell_face_selector |
162 | mirror |
139 |
extrude_profile_topology:cap_face |
112 | extrude_profile_topology:swept_face |
94 |
cPlane |
92 | extrude_profile_topology:cap_edge |
88 |
sweep_path |
71 | hole_location_vertex |
70 |
loft |
65 | circularPattern |
50 |
hole_scope_body_source |
44 | shell |
42 |
sweep |
40 | booleanBodies |
36 |
当前共记录 5,095 条 diagnostic record,分布为 feature_deferred 3,449、unsupported_engine_capability 1,004、sketch_deferred 612、parse_or_lowering_failed 30;这些是诊断条数,不是互斥样本数。主要 runtime 失败包括:selector_query_unsupported(F2 904、F4 593、F3 380、F6 278、F5 204)、OCC union invalid shape(157)、BRep_API: command not done(151)和 planar IMPRINT region 无界(116)。
3. 本周 engine 新增和完善的能力
3.1 Selector source preservation 与 query 语义
| 能力 | 本周新增/完善 | 已验证边界与证据 | 仍未覆盖 |
|---|---|---|---|
| 版本化 query AST | selector_intent 同时保留带行号的原始 source_query.ast 和 query_expr@1.0;递归保存 qUnion、qIntersection、qSubtraction、qAdjacent、qOwnerBody、qBodyType、qConstructionFilter、qCreatedBy 以及未知调用,未知语义保留为 opaque_call。schema/semantic validation 校验 expression 与 intent version 一致。 |
parser/lowering/selector/runtime 回归已覆盖;未知 query 不再被改写成近似 selector。 | 这是 source-preservation foundation,不等于这些 query family 已可 runtime 执行;通用 filter、created/modified/generated/deleted 关系仍 deferred。 |
| Provenance query set | fillet/chamfer 增加窄 QUERY_SET contract;direct qUnion、qIntersection、qSubtraction 通过 exact active record ID 做 union/intersection/subtraction,递归 set 在 9 月 11 日补齐;空集、partial、inactive、mixed kind/version、geometry/stable-ID/output-role 混用均拒绝。 |
backend.tests.test_selector_provenance_contract 35 passed;cadfs_to_cdsl.tests.test_lowering 117 passed;backend.tests.test_engine_runtime_foundation 140 passed、1 skipped。00000715 的变体证明 intersection 空集诊断和 subtraction left-only 语义。 |
全量 corpus 未发现 native qIntersection/qSubtraction call;仍仅限 FeatureScript 1511、direct provenance child、fillet/chamfer,不能称通用 query-set 能力。shell 对 nested/intersection/subtraction 仍拒绝。 |
qOwnerBody 精确 owner bridge |
为 UP_TO_BODY 增加递归 query_input 和 owner_body_contract: exact_input_owner;先解析唯一 proven topology child,再以完全相同 body ID 投影到唯一 active body record。 |
合成 00694309 变体完成 rebuilt;38 项 selector provenance 测试及 lowering 联跑 156 passed。 |
全量 corpus 暂无 native qOwnerBody;不支持多 member、multi-solid、later successor、其它 consumer 或 current aggregate/geometry fallback。 |
| fallback 与 replay 收紧 | selector_intent.version 成为唯一 canonical version;production rebuild_candidate 改为 single-session incremental replay;普通 context selector 只在 active context 中存在唯一同 kind record 时回退,COPY/instance selector 不回退。 |
失败统一保留 selector diagnostic 和 prefix checkpoint;selector_query_unsupported、selector_kernel_history_missing、selector_body_member_inactive 分层可归因。 |
仍缺通用 CAP/SWEPT/OFFSET/COPY/INTERSECT lineage,不能以 stable ID、最终 STEP 或 current body 补齐 source 语义。 |
3.2 OCC topology history、output role 与 body provenance
| 能力 | 本周新增/完善 | 已验证边界与证据 | 仍未覆盖 |
|---|---|---|---|
| 多 builder final-history bridge | planar IMPRINT 多区域 blind prism 先分别保留 BRepPrimAPI_MakePrism history,再用 BRepAlgoAPI_Fuse(SetToFillHistory) 映射到 final snapshot;只登记 IsSame 可证明的 source→final relation,deleted/missing branch 保留 partial/unknown。 |
00354246 的 7 个 SWEPT_FACE 由 native lineage 解析后在 OCC fillet feasibility 处失败;00403485 的 deleted side branch 正确报告 selector_kernel_history_missing 并保留 F1 STEP。最终聚合回归为 293 passed、1 skipped。 |
仅限 planar IMPRINT、至少两个 bounded region、无 draft、单向 blind;一般 fuse N:M、draft/trim/multi-body、boolean/COPY/pattern 后继仍未完成。 |
| output-role / all-fragments | direct prism/sweep/loft/shell 的 start/end cap、side、swept edge、offset/closing/wall 等 role 继续以 operation history 保存;all_fragments 要求每个 source fragment 都有 complete/proven final relation,不再返回部分集合冒充成功。 |
既有 direct CAP_FACE/CAP_EDGE/SWEPT_FACE/SWEPT_EDGE、shell、loft 回归均按 final snapshot 和 active member 绑定。 | 一般 CAP/SWEPT/OFFSET/MID_CAP、split/merge、复杂 dress-up 后继仍无完整 N:M resolver。 |
| body member / COPY provenance | boolean target/tool 现在接受 {pattern_feature_id, source_feature_id, instance_index};direct surviving new_body 的 mirror/circular/transform COPY、single-body successor、fused sole-body circular COPY 和 multi-source transform copy 均增加显式 member/provenance 校验。 |
00000385 F6、00293508 UNION 及 body graph/runtime 回归证明 target/tool 不再回退到 pattern aggregate;专项 GLB 由同一 rebuild STEP 生成,仅作预览。 |
第二个 new_body、aggregate/linear/nested pattern、excluded instance、multi-body boolean/delete/copy 的完整生命周期仍未完成;不能宣称完整 booleanBodies/circularPattern/mirror。 |
3.3 CADFS feature/source contract 扩展
| 能力 | 本周新增/完善 | 已验证边界与证据 | 仍未覆盖 |
|---|---|---|---|
| source-only segmented sweep path | 同一 source sketch 的 ordered line/arc/non-periodic B-spline 多段路径,及跨 source sketch 的 global 3D spatial path;要求 explicit source identity、connected/open/non-branching、无重复/退化段,runtime 用 BRepBuilderAPI_MakeWire + pipe-shell。circular pattern 会同步旋转 spatial points/normal/tangent。 |
00376556 为 executable approximate,00786708 的 filtered line/arc/line path 可执行但完整 history rejected;00610979 跨 sketch F4 prefix 可执行;00034285 的空消息 AssertionError 被稳定翻译为 OCC sweep operation raised while building the native sweep。 |
仍是 source-only lowering,不是 runtime qBodyType selector;closed/branched wire、guide/surface/profile consumer、sweep output lineage、一般 multi-sketch path 未完成。 |
| planar IMPRINT dispatch | 修正多 face IMPRINT FACE lowering 的 dispatch,避免把合法多区域 profile 错降成普通 analytic contour;保留 source entities、face side 和 fragment intent。 |
00354246 F1 现在保持 typed planar_imprint,F2 的 selector request 不再丢失,失败停在可归因 selector/OCC 层并保留 F1 STEP。 |
不增加 IMPRINT/SWEPT/INTERSECT family 的通用 success coverage;unbounded region、different sketch、trim/copy/pattern successor 仍拒绝。 |
| direct prism topology consumers | 扩展 direct CAP_FACE immediate UP_TO_SURFACE、SWEPT_FACE continuation、SWEPT_BODY immediate UP_TO_BODY、CAP_EDGE fillet/chamfer、CAP_FACE shell removal,以及 direct hole profile 的 SWEPT_EDGE/CAP_EDGE exact source anchors。 |
00835610 drafted CAP_FACE pipeline RP 通过;00694309 body target contract 有完整 history;00039669、00151159 等 direct prism hole lineage matrix 有 strict/RP 证据;未证明的 selector 继续拒绝。 |
复杂 profile、draft 内环、fused/multi-region、boolean/COPY/pattern 后继和通用 CAP/SWEPT selector 仍不在 allow-list。 |
| reference/semantic details | 完善 LINE_ANGLE direct skCircle axis 与 source gate、cPlane oppositeDirection signed offset、direct sketch-vertex hole location/sole scoped body、shell OFFSET_FACE/parts source-qualified contract 和 INTERSECT EDGE source-qualified section relation/transient tool history。 |
相关原子、selector/runtime suite 和受控 core/shard 回归已记录;INTERSECT 未证明的 SectionEdges 不会直接升级为 lineage。 |
任意曲线/面/connector axis、multi-body hole host、generic OFFSET、复杂 shell、primary/copy/pattern intersection 仍未完成。 |
3.4 诊断和离线工具完善
- native sweep 的空
AssertionError现在转成稳定、可归因的 OCC 诊断,不以 geometry fallback 伪造实体。 - single-session selector replay 和 prefix retention 使失败点、最后可执行 STEP、
history.json/rebuild.json/diagnostics.json保持一致;当前全量报告中的 F2/F4/F3 selector failures 可直接定位到 feature。 - engine 执行边界继续收敛到显式 schema/capability contract、按 family 的 executor/runtime 路径和 topology evidence export;这使 selector、body lifecycle 和 OCC failure 可以在同一条 replay history 上归因,而不是依赖旧的平行 runtime 路径。
- 新增
selector_candidate_demo.py的 geometry probe、strict replay、bounded branch search 和 query-group recovery。它只在隔离的 copied CDSL 上实验,并要求唯一 strict branch 后再 fresh replay;不改变 production resolver、RP 阈值或 capability matrix,因此不计为 engine selector 能力完成。
4. 本周能力边界与下周重点
已能对外说明的结果
- 转换器可以为大多数样本生成 candidate/bound CDSL,并在失败时保留 prefix STEP;完整转换率已达到 70.89%。
- selector source AST、版本和 body/provenance policy 不再被静默抹平;一部分 direct prism、IMPRINT、sweep、shell、boolean/pattern/transform 场景能够以 exact kernel history 执行。
- RP 与 strict comparison 已独立报告;source STEP 精度、拓扑不一致、比较超时和 OCC/runtime failure 不再混为 converter 失败。
不能宣称已经完成的范围
- 不能把
fillet、extrude、chamfer、revolve、shell、mirror、sweep、booleanBodies或circularPattern的单个窄 contract 说成整个 feature family 完成。 - 不能把 2026-09-10 的 query-group strict winner、专项 GLB 或单个 RP/strict 样本当作通用 selector mapping。
- 当前最大未覆盖面仍是 selector query unsupported、复杂 profile/拓扑后继、body lifecycle、OCC invalid shape/unbounded IMPRINT 以及 comparison timeout;这些都需要继续保持有界拒绝和可执行前缀。
建议下周优先级
- 先处理全量 runtime 中占比最高的
selector_query_unsupported,按 query family、producer history 和 consumer 分层推进,不用 geometry/current-body fallback 换取通过。 - 扩展 planar IMPRINT、CAP/SWEPT/OFFSET 和 boolean/pattern 的多实体 relation component,至少补齐多个真实 source/lifecycle 的 RP 回归后再升级 capability matrix。
- 针对 OCC union invalid shape、
BRep_API: command not done、unbounded IMPRINT 和 comparison timeout 分别建立 kernel/input/infrastructure 证据,继续保留每个失败样本的 STEP/diagnostic/compare 工件。
5. 证据入口
- 最新汇总:
cadfs_to_cdsl/output/full_run_report.md、summary.json、manifest.jsonl、capability_gaps.json、comparison_summary.csv - 最新样本工件:
cadfs_to_cdsl/output/samples/<sample_id>/ - 历史汇总:
cadfs_to_cdsl/output-history/<snapshot>/full_run_report.md - 能力进度台账(本地,不提交):
cadfs_to_cdsl/ENGINE_CAPABILITY_GAPS_PROGRESS.local.md - 全量能力目标:
cadfs_to_cdsl/CADFS_FULL_CAPABILITY_TARGET.md