feat: add offline Qt6 naming prerequisites and boundary gates
This commit is contained in:
@@ -82,7 +82,7 @@
|
||||
"javascript": "native/occt-history/dist/bitbybit-occt-history.js",
|
||||
"wasm": "native/occt-history/dist/bitbybit-occt-history.wasm",
|
||||
"javascriptSha256": "78f1cdd17a6a7b61ff8435c0ff8c912a43c4517e6ef49f3f741521662a903557",
|
||||
"wasmSha256": "b6cb6307399b188cdf1377e9294b4af8e36b21783693101db8f985e41cff5fbe"
|
||||
"wasmSha256": "b52125bd2c4999f62d435f0a34664556b7f1feb23590ddc0503fc6d3c7f1c8d6"
|
||||
},
|
||||
"protocol": "native result and history records stay inside the provider; cross-WASM handles are forbidden; STEP text is the explicit transport boundary",
|
||||
"historyProtocol": {
|
||||
@@ -102,6 +102,7 @@
|
||||
},
|
||||
"freecadNamingBuild": {
|
||||
"status": "contract-only",
|
||||
"prerequisiteStatus": "qt6-wasm-core-and-locked-mapped-name-source-probe-pass",
|
||||
"sdkEnvironment": "FREECAD_WASM_SDK_DIR",
|
||||
"requiredManifest": "manifest.json",
|
||||
"requiredCallbacks": ["freecadNamingAbiVersion", "freecadNamingCapabilitiesJson", "freecadNamingEvidenceJson"],
|
||||
@@ -109,6 +110,10 @@
|
||||
"requiredSourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"requiredEmscriptenVersion": "3.1.69",
|
||||
"buildCommand": "./npmw run build:freecad-naming-worker",
|
||||
"qtCoreBuildCommand": "./npmw run build:qt6-wasm-core",
|
||||
"sourceProbeBuildCommand": "./npmw run build:freecad-naming-source-probe",
|
||||
"sourceProbeTestCommand": "./npmw run test:freecad-naming-source-probe",
|
||||
"boundaryCheckCommand": "./npmw run check:freecad-private-naming-boundary",
|
||||
"checkCommand": "./npmw run check:freecad-naming-sdk",
|
||||
"statusBoundary": "Missing SDK or callback probe keeps EX-TSN-02=in_progress and systemExact=false"
|
||||
},
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
{ "id": "EX-KER-01", "title": "Match OCCT construction, validation, tolerances and failure diagnostics", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-02"], "deliverables": ["Per-operation native differential", "Tolerance and placement contract", "Failure-code map"], "acceptance": ["Shape validity, topology, mass properties and diagnostics match locked FreeCAD fixtures", "Worker ownership returns to zero after every case"], "evidence": ["check:browser-occt", "check:chrome-geometry-features"], "exactBlockedBy": ["Not all FreeCAD builder flags and failure branches are represented"] },
|
||||
{ "id": "EX-TSN-00", "title": "Fail closed when native naming or builder evidence is absent", "priority": "P0", "status": "completed", "dependencies": [], "deliverables": ["Runtime naming evidence contract", "final-shape-only and ambiguous persistence", "ElementMap2 writer evidence guard"], "acceptance": ["Final geometry cannot mint a private FreeCAD token", "Unproven stage relations and isomorphic sources cannot become stable"], "evidence": ["check:freecad-native-naming-evidence", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": [] },
|
||||
{ "id": "EX-TSN-01", "title": "Capture native stage Shape and Generated/Modified/Deleted for every builder", "priority": "P0", "status": "completed", "dependencies": ["EX-KER-01", "EX-TSN-00"], "deliverables": ["All builder-stage captures", "Multi-input and one-to-many lineage", "Local feature recompute history"], "acceptance": ["Every feature result relation has a producing native stage", "No final-result index is applied to an intermediate Shape"], "evidence": ["check:freecad-composite-history-elementmap", "check:freecad-tsn-stage-evidence"], "exactBlockedBy": [] },
|
||||
{ "id": "EX-TSN-02", "title": "Expose native MappedNameRef and StringHasher decisions for every feature", "priority": "P0", "status": "in_progress", "dependencies": ["EX-TSN-01"], "deliverables": ["Native naming callback ABI", "Per-stage StringHasher evidence", "Lossless ElementMap2 token generation"], "acceptance": ["All new tokens originate in native evidence", "FreeCAD round-trip names remain byte and semantic stable"], "evidence": ["check:freecad-native-naming-evidence", "check:freecad-sketcher-partdesign-abi", "check:freecad-naming-sdk", "check:occt-history-artifact"], "exactBlockedBy": ["The shipped Worker does not link the FreeCAD private naming implementation for every builder"] },
|
||||
{ "id": "EX-TSN-02", "title": "Expose native MappedNameRef and StringHasher decisions for every feature", "priority": "P0", "status": "in_progress", "dependencies": ["EX-TSN-01"], "deliverables": ["Native naming callback ABI", "Per-stage StringHasher evidence", "Lossless ElementMap2 token generation"], "acceptance": ["All new tokens originate in native evidence", "FreeCAD round-trip names remain byte and semantic stable"], "evidence": ["check:freecad-native-naming-evidence", "check:freecad-sketcher-partdesign-abi", "check:freecad-naming-sdk", "check:freecad-private-naming-boundary", "check:occt-history-artifact"], "exactBlockedBy": ["The shipped Worker does not link the FreeCAD private naming implementation for every builder"] },
|
||||
{ "id": "EX-TSN-03", "title": "Resolve isomorphic topology only from unique native provenance", "priority": "P0", "status": "in_progress", "dependencies": ["EX-TSN-01", "EX-TSN-02"], "deliverables": ["Symmetric Boolean corpus", "Candidate provenance graph", "Ambiguity repair lifecycle"], "acceptance": ["Unique native sources resolve deterministically", "Non-unique sources remain ambiguous across save, undo and recompute"], "evidence": ["test:topology-replay", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Symmetric cases without unique native provenance remain intentionally ambiguous"] },
|
||||
{ "id": "EX-TSN-04", "title": "Close topology naming across all feature edits and FCStd round-trips", "priority": "P0", "status": "pending", "dependencies": ["EX-TSN-02", "EX-TSN-03"], "deliverables": ["Cross-feature mutation matrix", "ElementMap2 history migration", "Long-chain LinkSub stability report"], "acceptance": ["Wrong bindings, unexplained relations and name drift are zero for the exhaustive corpus"], "evidence": ["check:freecad-fcstd-roundtrip", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Exhaustive cross-feature naming corpus is incomplete"] }
|
||||
]
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"version": "8.0.0",
|
||||
"sourceCommit": "bb75017e915f6509a4bfa8b551f853352754c2da",
|
||||
"javascriptSha256": "78f1cdd17a6a7b61ff8435c0ff8c912a43c4517e6ef49f3f741521662a903557",
|
||||
"wasmSha256": "b6cb6307399b188cdf1377e9294b4af8e36b21783693101db8f985e41cff5fbe"
|
||||
"wasmSha256": "b52125bd2c4999f62d435f0a34664556b7f1feb23590ddc0503fc6d3c7f1c8d6"
|
||||
},
|
||||
"golden": {
|
||||
"manifestScenarioCount": 100,
|
||||
|
||||
@@ -139,6 +139,34 @@
|
||||
"libraryPath": "build-caches/occt-history-build.tar.zst",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "qt6-wasm-core-downloads",
|
||||
"source": ".cache/toolchains/qt6/downloads",
|
||||
"restore": ".cache/toolchains/qt6/downloads",
|
||||
"libraryPath": "sources/qtbase-6.8.2-downloads.tar.zst",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"id": "qt6-wasm-core-source",
|
||||
"source": ".cache/toolchains/qt6/src",
|
||||
"restore": ".cache/toolchains/qt6/src",
|
||||
"libraryPath": "sources/qtbase-6.8.2-source.tar.zst",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"id": "qt6-wasm-core-sdk",
|
||||
"source": ".cache/toolchains/qt6/install-wasm",
|
||||
"restore": ".cache/toolchains/qt6/install-wasm",
|
||||
"libraryPath": "toolchains/qt6-wasm-core-6.8.2.tar.zst",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"id": "qt6-wasm-core-build",
|
||||
"source": ".cache/toolchains/qt6/build-wasm",
|
||||
"restore": ".cache/toolchains/qt6/build-wasm",
|
||||
"libraryPath": "build-caches/qt6-wasm-core-build.tar.zst",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"id": "opencamlib-build",
|
||||
"source": ".cache/opencamlib-wasm",
|
||||
|
||||
@@ -344,8 +344,8 @@
|
||||
},
|
||||
{
|
||||
"path": "native/occt-history/bitbybit-occt-history.wasm",
|
||||
"bytes": 23091777,
|
||||
"sha256": "b6cb6307399b188cdf1377e9294b4af8e36b21783693101db8f985e41cff5fbe"
|
||||
"bytes": 23091986,
|
||||
"sha256": "b52125bd2c4999f62d435f0a34664556b7f1feb23590ddc0503fc6d3c7f1c8d6"
|
||||
},
|
||||
{
|
||||
"path": "native/occt-history/browser-harness-worker.js",
|
||||
@@ -402,7 +402,7 @@
|
||||
"status": "signed",
|
||||
"algorithm": "Ed25519",
|
||||
"keyId": "bitbybit-local-release-2026",
|
||||
"payloadSha256": "20fb0fbc84390befc6fa22358b25cc139fb9dde8829643b5fc4ab3e804c44181",
|
||||
"signature": "QyhRB17NFPFu9Nda1rU2KW+Lv5yROFM9Lo0vY9hOexecfwzb3PWw+XWHymLc1/hYjBm3Hw7dPdQ8Ou2KapWmBg=="
|
||||
"payloadSha256": "c8734e374954b614941eb295623252af2094e9de7e415a46a399936d1cc391a9",
|
||||
"signature": "vtnNIPTf3sCXN2F0c5lRVO7E76DXuolr+B5dZ8YQ34rWeWbJvgLqFVIqQ3IHke9nQVUhwYOR7SR2EyG3gucBAQ=="
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user