88 lines
4.6 KiB
JSON
88 lines
4.6 KiB
JSON
{
|
|
"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"]
|
|
}
|
|
}
|
|
}
|