Files
FreeCADWasmDev/docs/p6/full-parity-audit.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

237 lines
5.8 KiB
JSON

{
"schema": "freecad-web-full-parity-audit/v1",
"generatedAt": "2026-09-01",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"truth": "P6 module completed means bounded slice gate; Full Parity remains planned until every audit record has a conclusion.",
"baseline": {
"sourceModules": 32,
"appModules": 24,
"guiModules": 22,
"guiOnlyModules": 1,
"noAppNoGuiModules": 7,
"objectTypes": 403,
"objectModules": 18,
"formatRecords": 236,
"uniqueFormatExtensions": 21,
"pythonApiRecords": 13385,
"pythonApiModules": 29,
"web": {
"htmlEntrypoints": 77,
"workers": 71,
"facades": 140,
"nativeProbeSources": 54
},
"p6ModuleGatesCompleted": 32
},
"moduleStatus": {
"Assembly": "completed",
"BIM": "completed",
"CAM": "completed",
"Cloud": "completed",
"Draft": "completed",
"Fem": "completed",
"Help": "completed",
"Import": "completed",
"Inspection": "completed",
"JtReader": "completed",
"Material": "completed",
"Measure": "completed",
"Mesh": "completed",
"MeshPart": "completed",
"OpenSCAD": "completed",
"Part": "completed",
"PartDesign": "completed",
"Plot": "completed",
"Points": "completed",
"ReverseEngineering": "completed",
"Robot": "completed",
"Sandbox": "completed",
"Show": "completed",
"Sketcher": "completed",
"Spreadsheet": "completed",
"Start": "completed",
"Surface": "completed",
"TechDraw": "completed",
"TemplatePyMod": "completed",
"Test": "completed",
"Tux": "completed",
"Web": "completed"
},
"formatExtensions": [
".3mf",
".amf",
".ast",
".brep",
".brp",
".csv",
".dae",
".dxf",
".fcstd",
".ifc",
".iges",
".igs",
".json",
".obj",
".off",
".ply",
".step",
".stl",
".stp",
".svg",
".txt"
],
"gaps": [
{
"id": "FPA-CORE",
"area": "core-shell",
"priority": "P0",
"status": "planned",
"evidence": [
"web/src/main.ts",
"docs/current/FREECAD_WEB_MIGRATION_ANALYSIS.md"
],
"scope": "统一 React 工作区、Document actor、命令/错误/取消/进度、树/属性/选择/视图状态。",
"exit": "FW-P6-FPA-B + FW-P6-FPA-C"
},
{
"id": "FPA-DOC",
"area": "document-persistence",
"priority": "P0",
"status": "planned",
"evidence": [
"docs/p6/sketcher-action-04-kernel.json",
"docs/p6/techdraw-action-05-persistence-native.json"
],
"scope": "多对象图、跨模块链接、属性、重算、FCStd、Undo/Redo、事务和恢复。",
"exit": "FW-P6-FPA-C"
},
{
"id": "FPA-OBJ",
"area": "object-coverage",
"priority": "P0",
"status": "planned",
"count": 403,
"evidence": [
"docs/object-inventory.json",
"docs/web-parity-matrix.json"
],
"scope": "逐对象 native create/recompute/inspect/property/view/persistence 适用性。",
"exit": "FW-P6-FPA-D"
},
{
"id": "FPA-FMT",
"area": "format-coverage",
"priority": "P0",
"status": "planned",
"count": 236,
"evidence": [
"docs/format-api-inventory.json"
],
"scope": "逐记录 handler、参数、错误、恢复、互操作和浏览器回放。",
"exit": "FW-P6-FPA-E"
},
{
"id": "FPA-PY",
"area": "python-api",
"priority": "P0",
"status": "planned",
"count": 13385,
"evidence": [
"docs/format-api-inventory.json",
"docs/current/FREECAD_WEB_MIGRATION_ANALYSIS.md"
],
"scope": "完整 API 分类、binding、权限、参数/返回值、错误和受限执行。",
"exit": "FW-P6-FPA-F"
},
{
"id": "FPA-GUI",
"area": "workbench-gui",
"priority": "P0",
"status": "planned",
"count": 22,
"evidence": [
"docs/workbench-inventory.json",
"freecad-source/src/Gui"
],
"scope": "32 模块、22 GUI 模块的命令、任务面板、资源、选择和视图行为。",
"exit": "FW-P6-FPA-G"
},
{
"id": "FPA-UX",
"area": "rendering-interaction",
"priority": "P1",
"status": "planned",
"evidence": [
"web/src/main.ts",
"web/package.json"
],
"scope": "Three.js 渲染、选择/预选、相机、标准视图、属性编辑、快捷键、响应式和可访问性。",
"exit": "FW-P6-FPA-H"
},
{
"id": "FPA-QUAL",
"area": "quality-release",
"priority": "P1",
"status": "planned",
"evidence": [
"docs/current/FREECAD_WEB_MIGRATION_ANALYSIS.md",
"tools/run_p6_chrome_harness.mjs"
],
"scope": "性能、内存、CSP/权限、无障碍、兼容性和发布 gate。",
"exit": "FW-P6-FPA-I"
}
],
"roadmap": [
{
"task": "FW-P6-FPA-A",
"area": "audit",
"status": "in_progress"
},
{
"task": "FW-P6-FPA-B",
"area": "core-shell",
"status": "planned"
},
{
"task": "FW-P6-FPA-C",
"area": "document-persistence",
"status": "planned"
},
{
"task": "FW-P6-FPA-D",
"area": "object-coverage",
"status": "planned"
},
{
"task": "FW-P6-FPA-E",
"area": "format-coverage",
"status": "planned"
},
{
"task": "FW-P6-FPA-F",
"area": "python-api",
"status": "planned"
},
{
"task": "FW-P6-FPA-G",
"area": "workbench-gui",
"status": "planned"
},
{
"task": "FW-P6-FPA-H",
"area": "rendering-interaction",
"status": "planned"
},
{
"task": "FW-P6-FPA-I",
"area": "quality-release",
"status": "planned"
},
{
"task": "FW-P6-FPA-Y",
"area": "full-parity-gate",
"status": "planned"
}
]
}