{ "schemaVersion": 1, "scope": "freecad-private-naming-and-parameter-followup", "orderedTasks": [ { "id": "SDK-01", "title": "Lock candidate FreeCAD wasm SDK baseline and build boundary", "status": "completed", "dependencies": [], "deliverables": ["Pinned source/toolchain plan", "Candidate-only build-plan checker"], "acceptance": ["FreeCAD commit and Emscripten version are verified", "Production publication remains false"], "evidence": ["check:freecad-wasm-sdk-build-plan"] }, { "id": "SDK-02A", "title": "Build the Qt wasm modules required by FreeCAD", "status": "completed", "dependencies": ["SDK-01"], "deliverables": ["Qt Core/Concurrent/Network/Xml archives", "Qt bundled Pcre2/ZLIB archives"], "acceptance": ["Every archive contains only wasm32 objects", "Thread support is enabled for QtConcurrent"], "evidence": ["check:freecad-naming-sdk-readiness"] }, { "id": "SDK-02B", "title": "Build remaining wasm dependencies and FreeCADBase/App/Part archives", "status": "completed", "dependencies": ["SDK-02A"], "deliverables": ["Python/ICU/Xerces/yaml-cpp/fmt wasm dependencies", "FreeCADBase/FreeCADApp/Part static archives"], "acceptance": ["No host ELF member is present", "CMake configuration performs no implicit network fetch"], "evidence": ["build:freecad-naming-sdk-candidate", "check:freecad-naming-sdk-readiness"] }, { "id": "SDK-04", "title": "Implement an isolated real FreeCAD private naming bridge", "status": "completed", "dependencies": ["SDK-02B"], "deliverables": ["Three versioned callback implementations", "MappedNameRef/StringHasher/ElementMap2 runtime evidence"], "acceptance": ["Candidate bridge passes strict Web validation", "Candidate is not published to the production Worker"], "evidence": ["build:freecad-naming-bridge-candidate", "test:freecad-naming-bridge-candidate", "check:freecad-naming-bridge-candidate", "check:freecad-private-naming-boundary"] }, { "id": "SDK-03", "title": "Generate and verify the complete SDK manifest", "status": "completed", "dependencies": ["SDK-02B", "SDK-04"], "deliverables": ["Hashed manifest", "Private header and symbol audit"], "acceptance": ["Manifest generator completes without missing inputs", "Complete SDK checker passes"], "evidence": ["generate:freecad-naming-sdk-manifest", "check:freecad-naming-sdk"] }, { "id": "SDK-05", "title": "Link and probe a candidate OCCT Worker", "status": "completed", "dependencies": ["SDK-03", "SDK-04"], "deliverables": ["Candidate Worker artifact", "Real Chrome callback and builder-history evidence"], "acceptance": ["All three callbacks are exported together", "Invalid or incomplete evidence fails closed"], "evidence": ["build:freecad-naming-worker", "test:freecad-naming-worker-candidate", "test:chrome-freecad-naming-worker-candidate", "check:chrome-freecad-naming-worker-candidate"] }, { "id": "PAR-01", "title": "Expand Datum/Attachment/ShapeBinder, multi-Body and parameter combinations", "status": "completed", "dependencies": ["SDK-05"], "deliverables": ["Native oracle corpus", "Edit/recompute/recovery/FCStd round-trip matrix"], "acceptance": ["Every family has success and failure evidence", "Support/Tip/references survive mutation without silent rebinding"], "evidence": ["check:freecad-sketcher-partdesign-abi", "check:freecad-partdesign-structure", "check:freecad-attachment-modes", "check:freecad-attachment-combinations", "check:freecad-xlink-relink", "check:chrome-partdesign-lifecycle", "check:chrome-partdesign-reference-lifecycle"] }, { "id": "QA-01", "title": "Close CI, offline-resource and browser matrix for the new production path", "status": "pending", "dependencies": ["PAR-01"], "deliverables": ["Execute/check-separated CI lanes", "Offline SDK resources", "Chrome/Firefox/WebKit reports"], "acceptance": ["Static reports cannot substitute for live harnesses", "A clean offline restore can rebuild and verify the candidate"], "evidence": ["ci:real:chrome", "ci:check:chrome", "offline:smoke", "check:browser-matrix"] } ], "boundary": { "freecadNamingBuildStatus": "production-linked", "exTsn02": "completed", "systemExact": false, "productionWorker": { "availability": "available", "callbacks": ["freecadNamingAbiVersion", "freecadNamingCapabilitiesJson", "freecadNamingEvidenceJson"] } } }