← Commit history

Document mechanical migration progress and AI Flow integration boundary

Drew Owens ·6f061db9a8 · ·parent 429dc09
4 files changed +307
docs/mechanical-progress/AI-FLOW-INTEGRATION.mdadded+45
@@ -0,0 +1,45 @@+# AI Flow Mechanical integration handoff++Checked against `adom/adom-aiflow-mechanical` main commit+`1195dc3f103cbf01a53ffaa85a414ef98be8fe53` on 16 October 2026.+This assessment covers published source, not unpushed work on John's machine.++John's version 0.1.0 prototype is a Rust JSON review CLI with `serde_json` as its+only dependency. Its two included tests passed in a locked build. It checks+fastener inventory, tool, approach, removal sequence and retention; it compares+declared hole diameter against the larger of tool envelope or extracted part,+plus twice the radial clearance. Angled access, swept-volume verification and+board revision verification rely on supplied verification booleans. Its skill+asks for real CAD evidence, but its executable does not yet validate linked+reports or source hashes.++There are no Fusion, SolidWorks, Adom Bridge, SDK, network, subprocess or CAD+import/export calls in the reviewed executable. It is complementary review+policy, not a replacement for the native CAD backend. The parent AIFlow project+has a documented Fusion electronics lane through the existing bridge; that+does not connect this mechanical prototype to the new Rust runtime.++## Proposed division of work++| Layer | Responsibility |+| --- | --- |+| AI Flow Mechanical | Review workflow, fastener/tool selection, approach/removal/retention policy, guidance and findings |+| Fusion bridge | CAD execution, exact model/revision identity, occurrence transforms, geometry, measurements, interference queries and durable execution evidence |+| Evidence adapter, not implemented | Translate verified native observations into a versioned review report with explicit unsupported checks |++The adapter should carry exact board and assembly identities/hashes, units,+occurrence identities, tool envelopes, measured clearances, check methods,+scope, provenance and unresolved checks. A successful CAD command is not proof+of fit. Do not set `sweptVolumeVerified` or `boardRevisionVerified` merely to+make lint pass. Physical imported assemblies, geometry measurements and collision+support are still required before a complete service-access workflow can pass.++Current relevant backend proof is the finite empty-component R20-fix3 assembly+qualification. R21 positioning is in progress; positioning alone does not prove+a removal path is collision-free. General collision and swept-volume checks+remain unimplemented in the native candidate. A second review UI or duplicate+policy engine is unnecessary.++Sources: [AI Flow Mechanical](https://wiki.adom.inc/adom/adom-aiflow-mechanical),+[AIFlow](https://wiki.adom.inc/adom/adom-aiflow), and the+[current bridge progress report](README.md).
docs/mechanical-progress/README.mdadded+94
@@ -0,0 +1,94 @@+# Mechanical build and Rust migration status++Verified 16 October 2026. The latest installable package is **1.11.39**, published+6 October. The new native mechanical implementation has **no public replacement+release**. Source publication, passing tests and installed functionality are+separate states.++## What is shared++The earlier Python-based mechanical work is available in open PRs+[#11: mechanical foundation](https://wiki.adom.inc/adom/fusion-bridge/prs/11),+[#12: render inspection](https://wiki.adom.inc/adom/fusion-bridge/prs/12),+[#14: exploded plans](https://wiki.adom.inc/adom/fusion-bridge/prs/14), and+[#15: exploded previews](https://wiki.adom.inc/adom/fusion-bridge/prs/15).+PR #10 was closed and replaced by the current-master foundation work. These+four PRs are unmerged; they are historical implementation references, not+approval to ship Python-backed additions under the Rust migration requirement.++The R20-fix3 native Rust checkpoint is available in [draft PR #19](https://wiki.adom.inc/adom/fusion-bridge/prs/19)+on the isolated `native-rust-checkpoint-2026-10-16` branch. It does not+replace or configure the installed bridge. The completed frozen product source+and assembly protocol verifier are included; R21 work in progress is excluded.++## Python to Rust++**17 of 61 legacy mechanical operations have limited native implementations;+44 do not yet have native handlers.** That is approximately 28% by operation+count, not 28% of engineering work or complete behavioral parity. Nine native+helper operations bring the completed candidate to 26 exposed operations.+No operation is being claimed as fully qualified across every legacy behavior.++The 17 implemented subsets are `assembly_properties`, `bom`, `bom_export`,+`component_create`, `component_metadata`, `feature_create`, `inspect`,+`material_list`, `mcmaster_discover`, `new_design`, `occurrence_insert`,+`parameter_create`, `parameter_set`, `sketch_constraint`, `sketch_create`,+`sketch_dimension`, and `sketch_geometry`.++The host executable was already Rust. The new in-process native candidate puts+mechanical policy, dispatch, transport, identity handling and durable operation+records in Rust, using typed C++ glue for Autodesk's SDK. Existing Python remains+in the preserved production installation. The historical migration inventory+contains 60 Python files: 47 add-in files, 10 embedded runtime templates, two+authoring/packaging tools and one retired host reference. This is a baseline+inventory, not a count of remaining files or completed ports. A trustworthy+whole-codebase conversion percentage has not yet been established.++## Feature buildout++| Area | Current native progress | Remaining scope |+| --- | --- | --- |+| Runtime and safety | Rust transport, owner-thread execution, document/revision checks, durable results, replay/conflict handling; bounded live campaigns | Broader restart/failure/soak tests, deployment and installer integration |+| Parameters and sketches | Parameter create/set, origin sketches, eight primitive types; finite horizontal/vertical constraint and 42 mm driving-dimension live tests | General solver graphs, other dimensions, edits, offsets, projection and broader persistence |+| Solids and physical properties | Basic one-sided new-body extrusion and bounded root physical-property reads exercised live | Independent geometry/material qualification gaps; additional solid features, arbitrary assemblies and editing |+| Assemblies | Empty flat component creation, shared occurrences and local purchasing metadata independently checked in Fusion | Physical child components, nesting, native online metadata; R21 absolute positioning under development; joints and motion |+| BOM | Rust collection/CSV core and native handlers implemented; portable/Windows core tests pass | Successful complete actual-app BOM traversal and CSV export qualification |+| McMaster | Native command registration discovery exercised live | Plugin launch, model download, CAD import and placement |+| Exploded views, animation and rendering | Standalone Rust exploded planner passes 31 tests on each platform; older Python feature PRs are available | Native preview lifecycle, presentation/animation/render workflows and persistence |+| Geometry and service access | Identity and revision foundations exist | Import/export, general measurements, interference/collision, configurations and connection to AI Flow Mechanical |+| Other bridge functions | Existing electronics and other production features remain available through the legacy bridge | Remaining Python runtime, embedded execution and tooling migration; full regression qualification |++## Latest completed verification++R20-fix3: **494 Linux tests and 498 Windows tests passed**, plus binding/SDK+checks. Its actual Fusion assembly campaign passed **52 requests, six durable+successful operations and zero uncertain attempts**. A separate SDK observer+confirmed the two empty definitions and three occurrences, shared identity,+local metadata, identity placements and exact revisions. Journal integrity and+normal stop/unload checks passed. These suites overlap earlier checkpoints and+must not be added together as unique test coverage.++See the [source-bound qualification receipt](r20-assembly-qualification.json).+This result is limited to the stated assembly fixture. It is not complete+mechanical support. Historical failed campaigns remain failed. Full semantic+save/reopen coverage, crash/restart and extended soak acceptance are incomplete.++Background application testing now uses bounded named campaigns and SDK evidence.+Repeated screenshots and Shotlog capture are disabled. The existing development+pin and production bridge configuration remain preserved.++## AI Flow Mechanical++[John's current prototype](https://wiki.adom.inc/adom/adom-aiflow-mechanical)+checks a declared JSON mechanical review. It currently has no calls to this+native bridge or CAD collision engine. The projects are complementary, but+**there is no implemented integration today**. See the+[integration assessment and proposed boundary](AI-FLOW-INTEGRATION.md).++The next useful delivery is a connected service-access workflow: complete the+finite positioning prerequisite, add the model-derived evidence adapter and+the physical geometry/measurement support it needs, and qualify that path in+Fusion. Unimplemented collision checks must remain explicitly unresolved.+Public releases require the relevant live tests plus package, installation,+regression and release-channel qualification; source publication alone does+not meet that gate.
docs/mechanical-progress/r20-assembly-qualification.jsonadded+24
@@ -0,0 +1,24 @@+{+  "at": "2026-10-16T15:53:13.445Z",+  "success": true,+  "scope": "Exact current-session empty flat root assembly: two definitions, three occurrences (A/B/A), identity placements, final local name/purchasing attributes; no online PN/description",+  "creationId": "06c8d3fe-44c7-44b6-9b4a-f97720975fbf",+  "protocolRequests": 52,+  "successfulDurableOperations": 6,+  "unknownOperations": 0,+  "independentSdkObservations": 5,+  "exactProtocolObserverRootAndComponentRevisions": true,+  "protocolResultSha256": "d13bec668737e57fc708c0f2c7f59ac12a982ec782616a1b012ab8a9490dbe2e",+  "observerResultSha256": "d5527587058a2d60c36c2165d99f5e969343ab18a481ab7fd513488953d7e953",+  "sourceManifestSha256": "9dd6f2f225a21b71cdc8cc51fe0b480b86f351dcc253939ac96b0354b7dc5208",+  "dllSha256": "9b19556dc5cd42e452ee3e3107c92418dd4c996f70817abe868504297e2ca461",+  "journalSha256": "4db4750649cfe883a39cde1b908a22d66b06f57918a749083ce6b3b3cc9c108f",+  "productAndObserverNormallyReleased": true,+  "bomQualified": false,+  "onlineNativeMetadataQualified": false,+  "physicalChildAssemblyQualified": false,+  "placementsQualified": false,+  "fullLegacyParity": false,+  "publicRelease": false,+  "historicalUnknownOperationsReconciled": false+}\ No newline at end of file
docs/mechanical-progress/status.jsonadded+144
@@ -0,0 +1,144 @@+{+  "asOf": "2026-10-16T16:07:08.200Z",+  "candidate": "R20-fix3",+  "sourceManifestSha256": "9dd6f2f225a21b71cdc8cc51fe0b480b86f351dcc253939ac96b0354b7dc5208",+  "counts": {+    "legacyMechanicalOperations": 61,+    "legacyOperationsWithFiniteNativeImplementation": 17,+    "legacyOperationsWithoutNativeHandler": 44,+    "nativeHelperOperations": 9,+    "nativeExposedOperations": 26,+    "totalMechanicalSchemas": 70,+    "fullyQualifiedLegacyParityOperations": 0,+    "publicReplacementReleases": 0+  },+  "latestInstallableVersion": "1.11.39",+  "nativePublicReplacementReleased": false,+  "linuxTests": 494,+  "windowsTests": 498,+  "implementedSubsets": [+    {+      "operation": "assembly_properties",+      "scope": "High-accuracy physical properties of exact document root local solids; two equal observations and scoped revision, checked kg/mm units; max128bodies/20000faces; no occurrences/configurations/meshes/entity selection. Actual-app finite read protocol/analytic geometry constants passed; independent mass/material density and full assembly qualification pending."+    },+    {+      "operation": "bom",+      "scope": "Bounded local hybrid assembly; online component metadata required; positive live traversal pending"+    },+    {+      "operation": "bom_export",+      "scope": "Immutable complete BOM CSV publication; positive live export pending"+    },+    {+      "operation": "component_create",+      "scope": "Exact owned empty flat root definitions/shared instances with identity placement and local name/purchasing metadata. R20-fix3 finite live protocol, journal and independent SDK checks passed. Online native PN/description, child solids, nesting, transforms and full legacy parity remain pending."+    },+    {+      "operation": "component_metadata",+      "scope": "Exact owned empty flat root definitions/shared instances with identity placement and local name/purchasing metadata. R20-fix3 finite live protocol, journal and independent SDK checks passed. Online native PN/description, child solids, nesting, transforms and full legacy parity remain pending."+    },+    {+      "operation": "feature_create",+      "scope": "One new-body numeric one-sided zero-taper extrusion of one published sole profile in empty-body root"+    },+    {+      "operation": "inspect",+      "scope": "Parameter projection, design summary and timeline health; no complete body/occurrence inspection"+    },+    {+      "operation": "material_list",+      "scope": "Bounded read-only document/loaded-library material IDs and names, query/limits and two-pass catalog revision; finite actual-app protocol passed in R14/R15. Assignment, physical material properties and independent catalog truth pending."+    },+    {+      "operation": "mcmaster_discover",+      "scope": "Exact native McMaster command registration and finite design intent only; no execution, applicability, download or import"+    },+    {+      "operation": "new_design",+      "scope": "Unnamed blank local parametric hybrid design; no box or full legacy initialization"+    },+    {+      "operation": "occurrence_insert",+      "scope": "Exact owned empty flat root definitions/shared instances with identity placement and local name/purchasing metadata. R20-fix3 finite live protocol, journal and independent SDK checks passed. Online native PN/description, child solids, nesting, transforms and full legacy parity remain pending."+    },+    {+      "operation": "parameter_create",+      "scope": "Single user parameter with exact document guards; no full legacy rollback"+    },+    {+      "operation": "parameter_set",+      "scope": "Single expression/recompute/readback; no automatic retry or full recovery parity"+    },+    {+      "operation": "sketch_constraint",+      "scope": "One horizontal or vertical relation on one native-owned isolated unfixed line; exact returned relation and full finite inventory; no arbitrary graph or other constraint kinds."+    },+    {+      "operation": "sketch_create",+      "scope": "Empty root XY/XZ/YZ default-name sketches only"+    },+    {+      "operation": "sketch_dimension",+      "scope": "One numeric driving aligned distance dimension on exact published endpoints of an isolated H/V line; no formulas/rename/other dimension types. Corrected creator exact native owning Sketch; fresh H/V campaigns and independent SDK observer passed42mm. XZ/YZ, other dimension types, arbitrary geometry, editing and dimension save/reopen semantic persistence remain unqualified."+    },+    {+      "operation": "sketch_geometry",+      "scope": "Eight bounded primitives into retained empty origin sketch; no constraint/transaction parity"+    }+  ],+  "missingNativeHandlers": [+    "cad_import",+    "configuration_inspect",+    "construction_axis",+    "entity_delete",+    "exploded_preview_create",+    "exploded_preview_dispose",+    "exploded_preview_inspect",+    "exploded_preview_sample",+    "exploded_preview_show",+    "exploded_view_plan",+    "export",+    "feature_edit",+    "geometry_query",+    "health",+    "inspect_entity",+    "interference",+    "joint_create",+    "joint_delete",+    "joint_edit",+    "joint_origin_create",+    "joint_origin_delete",+    "joint_origin_edit",+    "material_assign",+    "mcmaster_open",+    "measure",+    "motion_link_create",+    "motion_link_delete",+    "motion_link_edit",+    "occurrence_delete",+    "occurrence_update",+    "parameter_batch",+    "plane_create",+    "regular_joint_create",+    "regular_joint_edit",+    "render_scene_inspect",+    "rigid_group_create",+    "rigid_group_delete",+    "rigid_group_edit",+    "sketch_curve_edit",+    "sketch_diagnostics",+    "sketch_edit",+    "sketch_offset",+    "sketch_project",+    "transaction_probe"+  ],+  "positioning": {+    "candidate": "R21",+    "status": "in development; not included or live-qualified"+  },+  "johnIntegration": {+    "repo": "adom/adom-aiflow-mechanical",+    "commit": "1195dc3f103cbf01a53ffaa85a414ef98be8fe53",+    "implemented": false+  }+}