Files
Web_FreeCAD_Bitbybit/config/freecad-naming-next-tasks.json
wangdequan f64b78865c
Some checks failed
real-verification / chrome (push) Has been cancelled
real-verification / freecad-oracle (push) Has been cancelled
real-verification / wasm (push) Has been cancelled
feat: complete production naming and reference lifecycle gates
2026-08-14 10:10:30 -04:00

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"]
}
}
}