feat: complete production naming and reference lifecycle gates
This commit is contained in:
692
config/chrome-freecad-naming-production-verification.json
Normal file
692
config/chrome-freecad-naming-production-verification.json
Normal file
@@ -0,0 +1,692 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "pass",
|
||||
"implementation": "freecad-linked",
|
||||
"productionWorkerLinked": true,
|
||||
"occtVersion": "8.0.0",
|
||||
"freecadVersion": "1.1.1",
|
||||
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"callbacks": [
|
||||
"freecadNamingAbiVersion",
|
||||
"freecadNamingCapabilitiesJson",
|
||||
"freecadNamingEvidenceJson"
|
||||
],
|
||||
"operations": [
|
||||
"fuse",
|
||||
"cut",
|
||||
"common",
|
||||
"rotate",
|
||||
"pad",
|
||||
"pocket",
|
||||
"loft",
|
||||
"pipe",
|
||||
"revolution",
|
||||
"groove",
|
||||
"fillet",
|
||||
"chamfer",
|
||||
"hole",
|
||||
"draft",
|
||||
"thickness",
|
||||
"linear-pattern",
|
||||
"polar-pattern",
|
||||
"mirrored",
|
||||
"multi-transform"
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"operation": "fuse",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 52,
|
||||
"externallySourcedRecords": 52,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 7,
|
||||
"ambiguousResults": 16,
|
||||
"provenanceResults": 23,
|
||||
"mappedNames": 7,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "cut",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 42,
|
||||
"externallySourcedRecords": 42,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 3,
|
||||
"ambiguousResults": 9,
|
||||
"provenanceResults": 12,
|
||||
"mappedNames": 3,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "common",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 123,
|
||||
"externallySourcedRecords": 123,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 5,
|
||||
"ambiguousResults": 4,
|
||||
"provenanceResults": 9,
|
||||
"mappedNames": 5,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "rotate",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 78,
|
||||
"externallySourcedRecords": 78,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 20,
|
||||
"provenanceResults": 26,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "pad",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 25,
|
||||
"externallySourcedRecords": 25,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 9,
|
||||
"ambiguousResults": 8,
|
||||
"provenanceResults": 17,
|
||||
"mappedNames": 9,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "pocket",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 42,
|
||||
"externallySourcedRecords": 42,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 3,
|
||||
"ambiguousResults": 9,
|
||||
"provenanceResults": 12,
|
||||
"mappedNames": 3,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "loft",
|
||||
"status": "pass",
|
||||
"namingStatus": "ambiguous",
|
||||
"callbackExecuted": false,
|
||||
"historyRecords": 24,
|
||||
"externallySourcedRecords": 24,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 0,
|
||||
"ambiguousResults": 7,
|
||||
"provenanceResults": 7,
|
||||
"mappedNames": 0,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 0
|
||||
},
|
||||
{
|
||||
"operation": "pipe",
|
||||
"status": "pass",
|
||||
"namingStatus": "ambiguous",
|
||||
"callbackExecuted": false,
|
||||
"historyRecords": 28,
|
||||
"externallySourcedRecords": 28,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 4,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 0,
|
||||
"ambiguousResults": 10,
|
||||
"provenanceResults": 10,
|
||||
"mappedNames": 0,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 0
|
||||
},
|
||||
{
|
||||
"operation": "revolution",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 23,
|
||||
"externallySourcedRecords": 23,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 4,
|
||||
"ambiguousResults": 8,
|
||||
"provenanceResults": 12,
|
||||
"mappedNames": 4,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "groove",
|
||||
"status": "pass",
|
||||
"namingStatus": "native-evidence",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 2,
|
||||
"externallySourcedRecords": 2,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 1,
|
||||
"ambiguousResults": 0,
|
||||
"provenanceResults": 1,
|
||||
"mappedNames": 1,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "fillet",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 150,
|
||||
"externallySourcedRecords": 150,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 20,
|
||||
"provenanceResults": 26,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "chamfer",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 150,
|
||||
"externallySourcedRecords": 150,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 20,
|
||||
"provenanceResults": 26,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "hole",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 30,
|
||||
"externallySourcedRecords": 15,
|
||||
"internalRecordsExcluded": 15,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 3,
|
||||
"ambiguousResults": 3,
|
||||
"provenanceResults": 6,
|
||||
"mappedNames": 3,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "draft",
|
||||
"status": "pass",
|
||||
"namingStatus": "native-evidence",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 5,
|
||||
"externallySourcedRecords": 5,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 5,
|
||||
"ambiguousResults": 0,
|
||||
"provenanceResults": 5,
|
||||
"mappedNames": 5,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "thickness",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 38,
|
||||
"externallySourcedRecords": 38,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 8,
|
||||
"provenanceResults": 14,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "linear-pattern",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 90,
|
||||
"externallySourcedRecords": 45,
|
||||
"internalRecordsExcluded": 45,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 4,
|
||||
"ambiguousResults": 12,
|
||||
"provenanceResults": 16,
|
||||
"mappedNames": 4,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "polar-pattern",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 68,
|
||||
"externallySourcedRecords": 34,
|
||||
"internalRecordsExcluded": 34,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 10,
|
||||
"ambiguousResults": 12,
|
||||
"provenanceResults": 22,
|
||||
"mappedNames": 10,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "mirrored",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 66,
|
||||
"externallySourcedRecords": 33,
|
||||
"internalRecordsExcluded": 33,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 8,
|
||||
"ambiguousResults": 12,
|
||||
"provenanceResults": 20,
|
||||
"mappedNames": 8,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "multi-transform",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 311,
|
||||
"externallySourcedRecords": 311,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 8,
|
||||
"selectedRecords": 22,
|
||||
"ambiguousResults": 68,
|
||||
"provenanceResults": 90,
|
||||
"mappedNames": 22,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
}
|
||||
],
|
||||
"callbackExecutedCases": 17,
|
||||
"ambiguityOnlyCases": 2,
|
||||
"isomorphicCorpus": {
|
||||
"operation": "common",
|
||||
"fixture": "coincident-equal-boxes",
|
||||
"status": "pass",
|
||||
"historyRecords": 156,
|
||||
"uniqueResults": 0,
|
||||
"ambiguousResults": 26,
|
||||
"candidateSets": [
|
||||
{
|
||||
"result": "vertex:0",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex17:",
|
||||
"production-symmetric-object:Vertex19:",
|
||||
"production-symmetric-object:Vertex1:",
|
||||
"production-symmetric-object:Vertex33:",
|
||||
"production-symmetric-object:Vertex35:",
|
||||
"production-symmetric-object:Vertex3:",
|
||||
"production-symmetric-tool:Vertex17:",
|
||||
"production-symmetric-tool:Vertex19:",
|
||||
"production-symmetric-tool:Vertex1:",
|
||||
"production-symmetric-tool:Vertex33:",
|
||||
"production-symmetric-tool:Vertex35:",
|
||||
"production-symmetric-tool:Vertex3:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:1",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex20:",
|
||||
"production-symmetric-object:Vertex21:",
|
||||
"production-symmetric-object:Vertex2:",
|
||||
"production-symmetric-object:Vertex41:",
|
||||
"production-symmetric-object:Vertex43:",
|
||||
"production-symmetric-object:Vertex7:",
|
||||
"production-symmetric-tool:Vertex20:",
|
||||
"production-symmetric-tool:Vertex21:",
|
||||
"production-symmetric-tool:Vertex2:",
|
||||
"production-symmetric-tool:Vertex41:",
|
||||
"production-symmetric-tool:Vertex43:",
|
||||
"production-symmetric-tool:Vertex7:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:3",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex25:",
|
||||
"production-symmetric-object:Vertex27:",
|
||||
"production-symmetric-object:Vertex34:",
|
||||
"production-symmetric-object:Vertex39:",
|
||||
"production-symmetric-object:Vertex4:",
|
||||
"production-symmetric-object:Vertex5:",
|
||||
"production-symmetric-tool:Vertex25:",
|
||||
"production-symmetric-tool:Vertex27:",
|
||||
"production-symmetric-tool:Vertex34:",
|
||||
"production-symmetric-tool:Vertex39:",
|
||||
"production-symmetric-tool:Vertex4:",
|
||||
"production-symmetric-tool:Vertex5:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:5",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex28:",
|
||||
"production-symmetric-object:Vertex29:",
|
||||
"production-symmetric-object:Vertex42:",
|
||||
"production-symmetric-object:Vertex47:",
|
||||
"production-symmetric-object:Vertex6:",
|
||||
"production-symmetric-object:Vertex8:",
|
||||
"production-symmetric-tool:Vertex28:",
|
||||
"production-symmetric-tool:Vertex29:",
|
||||
"production-symmetric-tool:Vertex42:",
|
||||
"production-symmetric-tool:Vertex47:",
|
||||
"production-symmetric-tool:Vertex6:",
|
||||
"production-symmetric-tool:Vertex8:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:8",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex11:",
|
||||
"production-symmetric-object:Vertex18:",
|
||||
"production-symmetric-object:Vertex23:",
|
||||
"production-symmetric-object:Vertex36:",
|
||||
"production-symmetric-object:Vertex37:",
|
||||
"production-symmetric-object:Vertex9:",
|
||||
"production-symmetric-tool:Vertex11:",
|
||||
"production-symmetric-tool:Vertex18:",
|
||||
"production-symmetric-tool:Vertex23:",
|
||||
"production-symmetric-tool:Vertex36:",
|
||||
"production-symmetric-tool:Vertex37:",
|
||||
"production-symmetric-tool:Vertex9:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:9",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex10:",
|
||||
"production-symmetric-object:Vertex15:",
|
||||
"production-symmetric-object:Vertex22:",
|
||||
"production-symmetric-object:Vertex24:",
|
||||
"production-symmetric-object:Vertex44:",
|
||||
"production-symmetric-object:Vertex45:",
|
||||
"production-symmetric-tool:Vertex10:",
|
||||
"production-symmetric-tool:Vertex15:",
|
||||
"production-symmetric-tool:Vertex22:",
|
||||
"production-symmetric-tool:Vertex24:",
|
||||
"production-symmetric-tool:Vertex44:",
|
||||
"production-symmetric-tool:Vertex45:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:11",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex12:",
|
||||
"production-symmetric-object:Vertex13:",
|
||||
"production-symmetric-object:Vertex26:",
|
||||
"production-symmetric-object:Vertex31:",
|
||||
"production-symmetric-object:Vertex38:",
|
||||
"production-symmetric-object:Vertex40:",
|
||||
"production-symmetric-tool:Vertex12:",
|
||||
"production-symmetric-tool:Vertex13:",
|
||||
"production-symmetric-tool:Vertex26:",
|
||||
"production-symmetric-tool:Vertex31:",
|
||||
"production-symmetric-tool:Vertex38:",
|
||||
"production-symmetric-tool:Vertex40:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:13",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex14:",
|
||||
"production-symmetric-object:Vertex16:",
|
||||
"production-symmetric-object:Vertex30:",
|
||||
"production-symmetric-object:Vertex32:",
|
||||
"production-symmetric-object:Vertex46:",
|
||||
"production-symmetric-object:Vertex48:",
|
||||
"production-symmetric-tool:Vertex14:",
|
||||
"production-symmetric-tool:Vertex16:",
|
||||
"production-symmetric-tool:Vertex30:",
|
||||
"production-symmetric-tool:Vertex32:",
|
||||
"production-symmetric-tool:Vertex46:",
|
||||
"production-symmetric-tool:Vertex48:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:0",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge10:",
|
||||
"production-symmetric-object:Edge1:",
|
||||
"production-symmetric-tool:Edge10:",
|
||||
"production-symmetric-tool:Edge1:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:1",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge17:",
|
||||
"production-symmetric-object:Edge2:",
|
||||
"production-symmetric-tool:Edge17:",
|
||||
"production-symmetric-tool:Edge2:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:2",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge14:",
|
||||
"production-symmetric-object:Edge3:",
|
||||
"production-symmetric-tool:Edge14:",
|
||||
"production-symmetric-tool:Edge3:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:3",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge21:",
|
||||
"production-symmetric-object:Edge4:",
|
||||
"production-symmetric-tool:Edge21:",
|
||||
"production-symmetric-tool:Edge4:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:4",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge12:",
|
||||
"production-symmetric-object:Edge5:",
|
||||
"production-symmetric-tool:Edge12:",
|
||||
"production-symmetric-tool:Edge5:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:5",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge19:",
|
||||
"production-symmetric-object:Edge6:",
|
||||
"production-symmetric-tool:Edge19:",
|
||||
"production-symmetric-tool:Edge6:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:6",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge16:",
|
||||
"production-symmetric-object:Edge7:",
|
||||
"production-symmetric-tool:Edge16:",
|
||||
"production-symmetric-tool:Edge7:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:7",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge23:",
|
||||
"production-symmetric-object:Edge8:",
|
||||
"production-symmetric-tool:Edge23:",
|
||||
"production-symmetric-tool:Edge8:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:8",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge18:",
|
||||
"production-symmetric-object:Edge9:",
|
||||
"production-symmetric-tool:Edge18:",
|
||||
"production-symmetric-tool:Edge9:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:10",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge11:",
|
||||
"production-symmetric-object:Edge22:",
|
||||
"production-symmetric-tool:Edge11:",
|
||||
"production-symmetric-tool:Edge22:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:12",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge13:",
|
||||
"production-symmetric-object:Edge20:",
|
||||
"production-symmetric-tool:Edge13:",
|
||||
"production-symmetric-tool:Edge20:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:14",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge15:",
|
||||
"production-symmetric-object:Edge24:",
|
||||
"production-symmetric-tool:Edge15:",
|
||||
"production-symmetric-tool:Edge24:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:0",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face1:",
|
||||
"production-symmetric-tool:Face1:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:1",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face2:",
|
||||
"production-symmetric-tool:Face2:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:2",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face3:",
|
||||
"production-symmetric-tool:Face3:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:3",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face4:",
|
||||
"production-symmetric-tool:Face4:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:4",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face5:",
|
||||
"production-symmetric-tool:Face5:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:5",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face6:",
|
||||
"production-symmetric-tool:Face6:"
|
||||
]
|
||||
}
|
||||
],
|
||||
"arrayOrderFallbackUsed": false
|
||||
},
|
||||
"chainedStage": {
|
||||
"mappedNames": 1,
|
||||
"stringHasherEntries": 3
|
||||
},
|
||||
"invalidHistoryRejected": true,
|
||||
"systemExact": false,
|
||||
"runtime": "chrome",
|
||||
"browserId": "chrome",
|
||||
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36",
|
||||
"crossOriginIsolated": true,
|
||||
"artifacts": [
|
||||
{
|
||||
"name": "bitbybit-occt-history.js",
|
||||
"bytes": 359739,
|
||||
"sha256": "6a90575b81ceab5c00a2440e45e010bd62d3455b012541b4449f7b0e88a644c0"
|
||||
},
|
||||
{
|
||||
"name": "bitbybit-occt-history.wasm",
|
||||
"bytes": 37482285,
|
||||
"sha256": "c03cf553e71bf4e74667c5aada921769bb241d6021f28a5b166b49c738965515"
|
||||
},
|
||||
{
|
||||
"name": "bitbybit-occt-history.data",
|
||||
"bytes": 3322679,
|
||||
"sha256": "ada204b276208027a5cb1cc1288d4aab95b8ee1f28e3a43a00cd062720b87e99"
|
||||
}
|
||||
],
|
||||
"harness": {
|
||||
"path": "scripts/freecad-naming-production-matrix.mjs",
|
||||
"bytes": 19819,
|
||||
"sha256": "01532d8d3197aacddc0c18d4d8e41b4aee3b88bb4eb6636d8d0457a194651125"
|
||||
},
|
||||
"generatedAt": "2026-08-14T05:27:30.061Z"
|
||||
}
|
||||
1081
config/chrome-partdesign-reference-lifecycle-verification.json
Normal file
1081
config/chrome-partdesign-reference-lifecycle-verification.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -81,8 +81,10 @@
|
||||
"artifact": {
|
||||
"javascript": "native/occt-history/dist/bitbybit-occt-history.js",
|
||||
"wasm": "native/occt-history/dist/bitbybit-occt-history.wasm",
|
||||
"javascriptSha256": "78f1cdd17a6a7b61ff8435c0ff8c912a43c4517e6ef49f3f741521662a903557",
|
||||
"wasmSha256": "b52125bd2c4999f62d435f0a34664556b7f1feb23590ddc0503fc6d3c7f1c8d6"
|
||||
"data": "native/occt-history/dist/bitbybit-occt-history.data",
|
||||
"javascriptSha256": "6a90575b81ceab5c00a2440e45e010bd62d3455b012541b4449f7b0e88a644c0",
|
||||
"wasmSha256": "c03cf553e71bf4e74667c5aada921769bb241d6021f28a5b166b49c738965515",
|
||||
"dataSha256": "ada204b276208027a5cb1cc1288d4aab95b8ee1f28e3a43a00cd062720b87e99"
|
||||
},
|
||||
"protocol": "native result and history records stay inside the provider; cross-WASM handles are forbidden; STEP text is the explicit transport boundary",
|
||||
"historyProtocol": {
|
||||
@@ -97,11 +99,11 @@
|
||||
"status": "explicit-runtime-contract",
|
||||
"mappedNameRef": "optional provider evidence; final-shape-only stages are marked and cannot mint FreeCAD tokens",
|
||||
"stringHasher": "optional opaque native table; validated and preserved losslessly",
|
||||
"exactBlockers": ["shipped Worker lacks the FreeCAD-linked private naming ABI implementation", "browser builder naming evidence transport", "non-unique isomorphic source"]
|
||||
"exactBlockers": ["exhaustive cross-feature naming and FCStd round-trip corpus", "complete native document and property semantics"]
|
||||
}
|
||||
},
|
||||
"freecadNamingBuild": {
|
||||
"status": "contract-only",
|
||||
"status": "production-linked",
|
||||
"prerequisiteStatus": "real-isolated-freecad-private-naming-bridge-pass",
|
||||
"sdkReadinessStatus": "candidate-complete",
|
||||
"sdkEnvironment": "FREECAD_WASM_SDK_DIR",
|
||||
@@ -110,7 +112,8 @@
|
||||
"requiredFreecadVersion": "1.1.1",
|
||||
"requiredSourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"requiredEmscriptenVersion": "3.1.69",
|
||||
"buildCommand": "./npmw run build:freecad-naming-worker",
|
||||
"buildCommand": "./npmw run build:occt-history",
|
||||
"candidateBuildCommand": "./npmw run build:freecad-naming-worker",
|
||||
"qtCoreBuildCommand": "./npmw run build:qt6-wasm-core",
|
||||
"qtFreecadSdkBuildCommand": "./npmw run build:qt6-freecad-wasm",
|
||||
"yamlCppBuildCommand": "./npmw run build:yaml-cpp-wasm",
|
||||
@@ -127,16 +130,19 @@
|
||||
"candidateWorkerTestCommand": "./npmw run test:freecad-naming-worker-candidate",
|
||||
"candidateChromeRunCommand": "./npmw run test:chrome-freecad-naming-worker-candidate",
|
||||
"candidateChromeCheckCommand": "./npmw run check:chrome-freecad-naming-worker-candidate",
|
||||
"productionNodeTestCommand": "./npmw run test:freecad-naming-production",
|
||||
"productionChromeRunCommand": "./npmw run test:chrome-freecad-naming-production",
|
||||
"productionCheckCommand": "./npmw run check:freecad-naming-production",
|
||||
"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"
|
||||
"statusBoundary": "Production Node and Chrome matrices prove all 19 callbacks/builders for EX-TSN-02; systemExact remains false until the broader exact plan closes"
|
||||
},
|
||||
"browserWorker": {
|
||||
"entry": "src/facade/nativeHistoryWorkerEntry.ts",
|
||||
"client": "src/facade/nativeHistoryWorkerClient.ts",
|
||||
"moduleUrl": "/native/occt-history/bitbybit-occt-history.js",
|
||||
"runtimeConfiguration": "BitbybitGeometryRuntime.configureNativeHistory(provider, timeoutMs)",
|
||||
"artifactPublishCommand": "./npmw run build:occt-history",
|
||||
"artifactPublishCommand": "./npmw run build:occt-history",
|
||||
"status": "default-application-worker-with-fallback",
|
||||
"browserVerification": "config/occt-browser-verification.json",
|
||||
"threeWayVerification": "config/freecad-bitbybit-native-threeway.json",
|
||||
@@ -155,13 +161,13 @@
|
||||
"verification": { "level": "experimental", "provider": "FreeCADCmd 1.1.1 native headless Part oracle", "operations": ["locked-source-commit", "reproducible-native-build", "declarative-golden-contract", "part-geometry-replay", "numeric-tolerance-comparison", "execution-plan-validation", "source-inventory-validation", "type-property-inventory-validation"] }
|
||||
},
|
||||
"systemExactEvaluation": {
|
||||
"evaluatedAt": "2026-08-11",
|
||||
"evaluatedAt": "2026-08-14",
|
||||
"exact": false,
|
||||
"featureExactCount": 0,
|
||||
"plan": "config/freecad-web-exact-parity-plan.json",
|
||||
"promotionTask": "EX-REL-01",
|
||||
"taskStatus": { "completed": 2, "inProgress": 37, "pending": 13, "blocked": 0 },
|
||||
"blockers": ["shipped Worker lacks the FreeCAD-linked private naming ABI implementation", "browser builder naming evidence transport", "non-unique isomorphic source"]
|
||||
"taskStatus": { "completed": 5, "inProgress": 36, "pending": 11, "blocked": 0 },
|
||||
"blockers": ["exhaustive cross-feature naming and FCStd round-trip corpus", "complete native document and property semantics"]
|
||||
},
|
||||
"rules": [
|
||||
"UI status does not imply geometry or file compatibility.",
|
||||
|
||||
34974
config/freecad-attachment-combination-oracle.json
Normal file
34974
config/freecad-attachment-combination-oracle.json
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
197
config/freecad-composite-history-resave-verification.json
Normal file
197
config/freecad-composite-history-resave-verification.json
Normal file
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"baselineId": "freecad-1.1.1-composite-history-elementmap2",
|
||||
"freecadVersion": "1.1.1",
|
||||
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"status": "pass",
|
||||
"cases": [
|
||||
{
|
||||
"id": "boolean-fuse-1",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-fuse-2",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-fuse-3",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-cut-1",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-cut-2",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-cut-3",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-common-1",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-common-2",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "boolean-common-3",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-plain",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-midplane",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-reverse",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-taper",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-twoside",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-pocket",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-pocket-through",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-pocket-midplane",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-pocket-twoside",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-pocket-taper",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "partdesign-pocket-up-to-face",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "composite-01",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "composite-02",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "composite-03",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "composite-04",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "composite-05",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "composite-06",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "dressup-fillet-1",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "dressup-fillet-2",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "dressup-chamfer-1",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
},
|
||||
{
|
||||
"id": "dressup-chamfer-2",
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCovered": true
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"cases": 30,
|
||||
"passed": 30,
|
||||
"failed": 0,
|
||||
"roundtripNameDrift": 0,
|
||||
"resaveNameDrift": 0,
|
||||
"nativeDesktopResaveCases": 30
|
||||
}
|
||||
}
|
||||
195
config/freecad-isomorphic-provenance-verification.json
Normal file
195
config/freecad-isomorphic-provenance-verification.json
Normal file
@@ -0,0 +1,195 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "pass",
|
||||
"runtime": "node",
|
||||
"implementation": "freecad-linked",
|
||||
"productionWorkerLinked": true,
|
||||
"cases": {
|
||||
"symmetricCommon": {
|
||||
"status": "ambiguous",
|
||||
"stable": 0,
|
||||
"ambiguous": 26,
|
||||
"candidates": 156,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 0,
|
||||
"persistedCandidateSets": true
|
||||
},
|
||||
"mixedCut": {
|
||||
"status": "ambiguous",
|
||||
"stable": 3,
|
||||
"ambiguous": 9,
|
||||
"candidates": 18,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
"downstreamRotate": {
|
||||
"status": "ambiguous",
|
||||
"stable": 9,
|
||||
"ambiguous": 35,
|
||||
"candidates": 135,
|
||||
"stringHasherEntries": 3,
|
||||
"elementMaps": 1,
|
||||
"candidateObjects": [
|
||||
"cut-object",
|
||||
"cut-result",
|
||||
"cut-tool"
|
||||
]
|
||||
},
|
||||
"longChain": {
|
||||
"operations": [
|
||||
"cut",
|
||||
"rotate",
|
||||
"fillet",
|
||||
"mirrored",
|
||||
"linear-pattern"
|
||||
],
|
||||
"stages": [
|
||||
{
|
||||
"operation": "cut",
|
||||
"historyRecords": 42,
|
||||
"status": "ambiguous",
|
||||
"stable": 3,
|
||||
"ambiguous": 9,
|
||||
"candidates": 18,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1,
|
||||
"candidateObjects": [
|
||||
"cut-object",
|
||||
"cut-tool"
|
||||
],
|
||||
"persistedInputEvidence": false
|
||||
},
|
||||
{
|
||||
"operation": "rotate",
|
||||
"historyRecords": 135,
|
||||
"status": "ambiguous",
|
||||
"stable": 9,
|
||||
"ambiguous": 35,
|
||||
"candidates": 135,
|
||||
"stringHasherEntries": 3,
|
||||
"elementMaps": 1,
|
||||
"candidateObjects": [
|
||||
"cut-object",
|
||||
"cut-result",
|
||||
"cut-tool"
|
||||
],
|
||||
"referencedInputCandidateObjects": [
|
||||
"cut-object",
|
||||
"cut-tool"
|
||||
],
|
||||
"referencedCandidateObjectsRetained": true,
|
||||
"persistedInputEvidence": true
|
||||
},
|
||||
{
|
||||
"operation": "fillet",
|
||||
"historyRecords": 261,
|
||||
"status": "ambiguous",
|
||||
"stable": 9,
|
||||
"ambiguous": 35,
|
||||
"candidates": 226,
|
||||
"stringHasherEntries": 6,
|
||||
"elementMaps": 1,
|
||||
"candidateObjects": [
|
||||
"cut-object",
|
||||
"cut-result",
|
||||
"cut-tool",
|
||||
"rotate-result"
|
||||
],
|
||||
"referencedInputCandidateObjects": [
|
||||
"cut-object",
|
||||
"cut-result",
|
||||
"cut-tool"
|
||||
],
|
||||
"referencedCandidateObjectsRetained": true,
|
||||
"persistedInputEvidence": true
|
||||
},
|
||||
{
|
||||
"operation": "mirrored",
|
||||
"historyRecords": 326,
|
||||
"status": "ambiguous",
|
||||
"stable": 11,
|
||||
"ambiguous": 40,
|
||||
"candidates": 121,
|
||||
"stringHasherEntries": 9,
|
||||
"elementMaps": 1,
|
||||
"candidateObjects": [
|
||||
"cut-object",
|
||||
"cut-result",
|
||||
"cut-tool",
|
||||
"fillet-result",
|
||||
"rotate-result"
|
||||
],
|
||||
"referencedInputCandidateObjects": [
|
||||
"cut-object",
|
||||
"cut-result",
|
||||
"cut-tool",
|
||||
"rotate-result"
|
||||
],
|
||||
"referencedCandidateObjectsRetained": true,
|
||||
"persistedInputEvidence": true
|
||||
},
|
||||
{
|
||||
"operation": "linear-pattern",
|
||||
"historyRecords": 1090,
|
||||
"status": "ambiguous",
|
||||
"stable": 55,
|
||||
"ambiguous": 89,
|
||||
"candidates": 211,
|
||||
"stringHasherEntries": 17,
|
||||
"elementMaps": 1,
|
||||
"candidateObjects": [
|
||||
"cut-result",
|
||||
"cut-tool",
|
||||
"fillet-result",
|
||||
"mirrored-result",
|
||||
"rotate-result"
|
||||
],
|
||||
"referencedInputCandidateObjects": [
|
||||
"cut-result",
|
||||
"cut-tool",
|
||||
"fillet-result",
|
||||
"rotate-result"
|
||||
],
|
||||
"referencedCandidateObjectsRetained": true,
|
||||
"persistedInputEvidence": true
|
||||
}
|
||||
],
|
||||
"persistedFinalEvidence": true,
|
||||
"referencedCandidateObjectsRetained": true,
|
||||
"stringHasherMonotonic": true
|
||||
}
|
||||
},
|
||||
"fcstdAmbiguityRejected": true,
|
||||
"fcstdStableLinkRoundtrip": {
|
||||
"subElements": [
|
||||
"Face1"
|
||||
],
|
||||
"inspectRewritePreserved": true,
|
||||
"nativeDesktopResaveCovered": false
|
||||
},
|
||||
"artifacts": [
|
||||
{
|
||||
"name": "bitbybit-occt-history.js",
|
||||
"bytes": 359739,
|
||||
"sha256": "6a90575b81ceab5c00a2440e45e010bd62d3455b012541b4449f7b0e88a644c0"
|
||||
},
|
||||
{
|
||||
"name": "bitbybit-occt-history.wasm",
|
||||
"bytes": 37482285,
|
||||
"sha256": "c03cf553e71bf4e74667c5aada921769bb241d6021f28a5b166b49c738965515"
|
||||
},
|
||||
{
|
||||
"name": "bitbybit-occt-history.data",
|
||||
"bytes": 3322679,
|
||||
"sha256": "ada204b276208027a5cb1cc1288d4aab95b8ee1f28e3a43a00cd062720b87e99"
|
||||
}
|
||||
],
|
||||
"harness": {
|
||||
"path": "scripts/run-freecad-isomorphic-provenance.ts",
|
||||
"bytes": 16135,
|
||||
"sha256": "c61a23201585217309ceb88dcff4f7ea4d966e0d4140090a0ca1992c7d8a44ed"
|
||||
},
|
||||
"exactBlocker": "exhaustive cross-feature naming and native FreeCAD FCStd save-reopen-resave corpus",
|
||||
"systemExact": false,
|
||||
"generatedAt": "2026-08-14T12:21:09.187Z"
|
||||
}
|
||||
@@ -59,11 +59,11 @@
|
||||
{
|
||||
"id": "PAR-01",
|
||||
"title": "Expand Datum/Attachment/ShapeBinder, multi-Body and parameter combinations",
|
||||
"status": "in_progress",
|
||||
"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:chrome-partdesign-lifecycle"]
|
||||
"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",
|
||||
@@ -76,12 +76,12 @@
|
||||
}
|
||||
],
|
||||
"boundary": {
|
||||
"freecadNamingBuildStatus": "contract-only",
|
||||
"exTsn02": "in_progress",
|
||||
"freecadNamingBuildStatus": "production-linked",
|
||||
"exTsn02": "completed",
|
||||
"systemExact": false,
|
||||
"productionWorker": {
|
||||
"availability": "unavailable",
|
||||
"callbacks": []
|
||||
"availability": "available",
|
||||
"callbacks": ["freecadNamingAbiVersion", "freecadNamingCapabilitiesJson", "freecadNamingEvidenceJson"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
689
config/freecad-naming-production-verification.json
Normal file
689
config/freecad-naming-production-verification.json
Normal file
@@ -0,0 +1,689 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "pass",
|
||||
"implementation": "freecad-linked",
|
||||
"productionWorkerLinked": true,
|
||||
"occtVersion": "8.0.0",
|
||||
"freecadVersion": "1.1.1",
|
||||
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"callbacks": [
|
||||
"freecadNamingAbiVersion",
|
||||
"freecadNamingCapabilitiesJson",
|
||||
"freecadNamingEvidenceJson"
|
||||
],
|
||||
"operations": [
|
||||
"fuse",
|
||||
"cut",
|
||||
"common",
|
||||
"rotate",
|
||||
"pad",
|
||||
"pocket",
|
||||
"loft",
|
||||
"pipe",
|
||||
"revolution",
|
||||
"groove",
|
||||
"fillet",
|
||||
"chamfer",
|
||||
"hole",
|
||||
"draft",
|
||||
"thickness",
|
||||
"linear-pattern",
|
||||
"polar-pattern",
|
||||
"mirrored",
|
||||
"multi-transform"
|
||||
],
|
||||
"cases": [
|
||||
{
|
||||
"operation": "fuse",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 52,
|
||||
"externallySourcedRecords": 52,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 7,
|
||||
"ambiguousResults": 16,
|
||||
"provenanceResults": 23,
|
||||
"mappedNames": 7,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "cut",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 42,
|
||||
"externallySourcedRecords": 42,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 3,
|
||||
"ambiguousResults": 9,
|
||||
"provenanceResults": 12,
|
||||
"mappedNames": 3,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "common",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 123,
|
||||
"externallySourcedRecords": 123,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 5,
|
||||
"ambiguousResults": 4,
|
||||
"provenanceResults": 9,
|
||||
"mappedNames": 5,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "rotate",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 78,
|
||||
"externallySourcedRecords": 78,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 20,
|
||||
"provenanceResults": 26,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "pad",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 25,
|
||||
"externallySourcedRecords": 25,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 9,
|
||||
"ambiguousResults": 8,
|
||||
"provenanceResults": 17,
|
||||
"mappedNames": 9,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "pocket",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 42,
|
||||
"externallySourcedRecords": 42,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 3,
|
||||
"ambiguousResults": 9,
|
||||
"provenanceResults": 12,
|
||||
"mappedNames": 3,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "loft",
|
||||
"status": "pass",
|
||||
"namingStatus": "ambiguous",
|
||||
"callbackExecuted": false,
|
||||
"historyRecords": 24,
|
||||
"externallySourcedRecords": 24,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 0,
|
||||
"ambiguousResults": 7,
|
||||
"provenanceResults": 7,
|
||||
"mappedNames": 0,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 0
|
||||
},
|
||||
{
|
||||
"operation": "pipe",
|
||||
"status": "pass",
|
||||
"namingStatus": "ambiguous",
|
||||
"callbackExecuted": false,
|
||||
"historyRecords": 28,
|
||||
"externallySourcedRecords": 28,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 4,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 0,
|
||||
"ambiguousResults": 10,
|
||||
"provenanceResults": 10,
|
||||
"mappedNames": 0,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 0
|
||||
},
|
||||
{
|
||||
"operation": "revolution",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 23,
|
||||
"externallySourcedRecords": 23,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 4,
|
||||
"ambiguousResults": 8,
|
||||
"provenanceResults": 12,
|
||||
"mappedNames": 4,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "groove",
|
||||
"status": "pass",
|
||||
"namingStatus": "native-evidence",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 2,
|
||||
"externallySourcedRecords": 2,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 1,
|
||||
"ambiguousResults": 0,
|
||||
"provenanceResults": 1,
|
||||
"mappedNames": 1,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "fillet",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 150,
|
||||
"externallySourcedRecords": 150,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 20,
|
||||
"provenanceResults": 26,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "chamfer",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 150,
|
||||
"externallySourcedRecords": 150,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 20,
|
||||
"provenanceResults": 26,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "hole",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 30,
|
||||
"externallySourcedRecords": 15,
|
||||
"internalRecordsExcluded": 15,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 3,
|
||||
"ambiguousResults": 3,
|
||||
"provenanceResults": 6,
|
||||
"mappedNames": 3,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "draft",
|
||||
"status": "pass",
|
||||
"namingStatus": "native-evidence",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 5,
|
||||
"externallySourcedRecords": 5,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 5,
|
||||
"ambiguousResults": 0,
|
||||
"provenanceResults": 5,
|
||||
"mappedNames": 5,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "thickness",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 38,
|
||||
"externallySourcedRecords": 38,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 6,
|
||||
"ambiguousResults": 8,
|
||||
"provenanceResults": 14,
|
||||
"mappedNames": 6,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "linear-pattern",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 90,
|
||||
"externallySourcedRecords": 45,
|
||||
"internalRecordsExcluded": 45,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 4,
|
||||
"ambiguousResults": 12,
|
||||
"provenanceResults": 16,
|
||||
"mappedNames": 4,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "polar-pattern",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 68,
|
||||
"externallySourcedRecords": 34,
|
||||
"internalRecordsExcluded": 34,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 10,
|
||||
"ambiguousResults": 12,
|
||||
"provenanceResults": 22,
|
||||
"mappedNames": 10,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "mirrored",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 66,
|
||||
"externallySourcedRecords": 33,
|
||||
"internalRecordsExcluded": 33,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 0,
|
||||
"selectedRecords": 8,
|
||||
"ambiguousResults": 12,
|
||||
"provenanceResults": 20,
|
||||
"mappedNames": 8,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
},
|
||||
{
|
||||
"operation": "multi-transform",
|
||||
"status": "pass",
|
||||
"namingStatus": "mixed-native-and-ambiguous",
|
||||
"callbackExecuted": true,
|
||||
"historyRecords": 311,
|
||||
"externallySourcedRecords": 311,
|
||||
"internalRecordsExcluded": 0,
|
||||
"duplicateRecordsCollapsed": 0,
|
||||
"modifiedRelationPrecedence": 8,
|
||||
"selectedRecords": 22,
|
||||
"ambiguousResults": 68,
|
||||
"provenanceResults": 90,
|
||||
"mappedNames": 22,
|
||||
"stringHasherEntries": 0,
|
||||
"elementMaps": 1
|
||||
}
|
||||
],
|
||||
"callbackExecutedCases": 17,
|
||||
"ambiguityOnlyCases": 2,
|
||||
"isomorphicCorpus": {
|
||||
"operation": "common",
|
||||
"fixture": "coincident-equal-boxes",
|
||||
"status": "pass",
|
||||
"historyRecords": 156,
|
||||
"uniqueResults": 0,
|
||||
"ambiguousResults": 26,
|
||||
"candidateSets": [
|
||||
{
|
||||
"result": "vertex:0",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex17:",
|
||||
"production-symmetric-object:Vertex19:",
|
||||
"production-symmetric-object:Vertex1:",
|
||||
"production-symmetric-object:Vertex33:",
|
||||
"production-symmetric-object:Vertex35:",
|
||||
"production-symmetric-object:Vertex3:",
|
||||
"production-symmetric-tool:Vertex17:",
|
||||
"production-symmetric-tool:Vertex19:",
|
||||
"production-symmetric-tool:Vertex1:",
|
||||
"production-symmetric-tool:Vertex33:",
|
||||
"production-symmetric-tool:Vertex35:",
|
||||
"production-symmetric-tool:Vertex3:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:1",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex20:",
|
||||
"production-symmetric-object:Vertex21:",
|
||||
"production-symmetric-object:Vertex2:",
|
||||
"production-symmetric-object:Vertex41:",
|
||||
"production-symmetric-object:Vertex43:",
|
||||
"production-symmetric-object:Vertex7:",
|
||||
"production-symmetric-tool:Vertex20:",
|
||||
"production-symmetric-tool:Vertex21:",
|
||||
"production-symmetric-tool:Vertex2:",
|
||||
"production-symmetric-tool:Vertex41:",
|
||||
"production-symmetric-tool:Vertex43:",
|
||||
"production-symmetric-tool:Vertex7:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:3",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex25:",
|
||||
"production-symmetric-object:Vertex27:",
|
||||
"production-symmetric-object:Vertex34:",
|
||||
"production-symmetric-object:Vertex39:",
|
||||
"production-symmetric-object:Vertex4:",
|
||||
"production-symmetric-object:Vertex5:",
|
||||
"production-symmetric-tool:Vertex25:",
|
||||
"production-symmetric-tool:Vertex27:",
|
||||
"production-symmetric-tool:Vertex34:",
|
||||
"production-symmetric-tool:Vertex39:",
|
||||
"production-symmetric-tool:Vertex4:",
|
||||
"production-symmetric-tool:Vertex5:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:5",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex28:",
|
||||
"production-symmetric-object:Vertex29:",
|
||||
"production-symmetric-object:Vertex42:",
|
||||
"production-symmetric-object:Vertex47:",
|
||||
"production-symmetric-object:Vertex6:",
|
||||
"production-symmetric-object:Vertex8:",
|
||||
"production-symmetric-tool:Vertex28:",
|
||||
"production-symmetric-tool:Vertex29:",
|
||||
"production-symmetric-tool:Vertex42:",
|
||||
"production-symmetric-tool:Vertex47:",
|
||||
"production-symmetric-tool:Vertex6:",
|
||||
"production-symmetric-tool:Vertex8:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:8",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex11:",
|
||||
"production-symmetric-object:Vertex18:",
|
||||
"production-symmetric-object:Vertex23:",
|
||||
"production-symmetric-object:Vertex36:",
|
||||
"production-symmetric-object:Vertex37:",
|
||||
"production-symmetric-object:Vertex9:",
|
||||
"production-symmetric-tool:Vertex11:",
|
||||
"production-symmetric-tool:Vertex18:",
|
||||
"production-symmetric-tool:Vertex23:",
|
||||
"production-symmetric-tool:Vertex36:",
|
||||
"production-symmetric-tool:Vertex37:",
|
||||
"production-symmetric-tool:Vertex9:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:9",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex10:",
|
||||
"production-symmetric-object:Vertex15:",
|
||||
"production-symmetric-object:Vertex22:",
|
||||
"production-symmetric-object:Vertex24:",
|
||||
"production-symmetric-object:Vertex44:",
|
||||
"production-symmetric-object:Vertex45:",
|
||||
"production-symmetric-tool:Vertex10:",
|
||||
"production-symmetric-tool:Vertex15:",
|
||||
"production-symmetric-tool:Vertex22:",
|
||||
"production-symmetric-tool:Vertex24:",
|
||||
"production-symmetric-tool:Vertex44:",
|
||||
"production-symmetric-tool:Vertex45:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:11",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex12:",
|
||||
"production-symmetric-object:Vertex13:",
|
||||
"production-symmetric-object:Vertex26:",
|
||||
"production-symmetric-object:Vertex31:",
|
||||
"production-symmetric-object:Vertex38:",
|
||||
"production-symmetric-object:Vertex40:",
|
||||
"production-symmetric-tool:Vertex12:",
|
||||
"production-symmetric-tool:Vertex13:",
|
||||
"production-symmetric-tool:Vertex26:",
|
||||
"production-symmetric-tool:Vertex31:",
|
||||
"production-symmetric-tool:Vertex38:",
|
||||
"production-symmetric-tool:Vertex40:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "vertex:13",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Vertex14:",
|
||||
"production-symmetric-object:Vertex16:",
|
||||
"production-symmetric-object:Vertex30:",
|
||||
"production-symmetric-object:Vertex32:",
|
||||
"production-symmetric-object:Vertex46:",
|
||||
"production-symmetric-object:Vertex48:",
|
||||
"production-symmetric-tool:Vertex14:",
|
||||
"production-symmetric-tool:Vertex16:",
|
||||
"production-symmetric-tool:Vertex30:",
|
||||
"production-symmetric-tool:Vertex32:",
|
||||
"production-symmetric-tool:Vertex46:",
|
||||
"production-symmetric-tool:Vertex48:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:0",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge10:",
|
||||
"production-symmetric-object:Edge1:",
|
||||
"production-symmetric-tool:Edge10:",
|
||||
"production-symmetric-tool:Edge1:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:1",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge17:",
|
||||
"production-symmetric-object:Edge2:",
|
||||
"production-symmetric-tool:Edge17:",
|
||||
"production-symmetric-tool:Edge2:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:2",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge14:",
|
||||
"production-symmetric-object:Edge3:",
|
||||
"production-symmetric-tool:Edge14:",
|
||||
"production-symmetric-tool:Edge3:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:3",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge21:",
|
||||
"production-symmetric-object:Edge4:",
|
||||
"production-symmetric-tool:Edge21:",
|
||||
"production-symmetric-tool:Edge4:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:4",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge12:",
|
||||
"production-symmetric-object:Edge5:",
|
||||
"production-symmetric-tool:Edge12:",
|
||||
"production-symmetric-tool:Edge5:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:5",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge19:",
|
||||
"production-symmetric-object:Edge6:",
|
||||
"production-symmetric-tool:Edge19:",
|
||||
"production-symmetric-tool:Edge6:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:6",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge16:",
|
||||
"production-symmetric-object:Edge7:",
|
||||
"production-symmetric-tool:Edge16:",
|
||||
"production-symmetric-tool:Edge7:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:7",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge23:",
|
||||
"production-symmetric-object:Edge8:",
|
||||
"production-symmetric-tool:Edge23:",
|
||||
"production-symmetric-tool:Edge8:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:8",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge18:",
|
||||
"production-symmetric-object:Edge9:",
|
||||
"production-symmetric-tool:Edge18:",
|
||||
"production-symmetric-tool:Edge9:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:10",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge11:",
|
||||
"production-symmetric-object:Edge22:",
|
||||
"production-symmetric-tool:Edge11:",
|
||||
"production-symmetric-tool:Edge22:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:12",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge13:",
|
||||
"production-symmetric-object:Edge20:",
|
||||
"production-symmetric-tool:Edge13:",
|
||||
"production-symmetric-tool:Edge20:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "edge:14",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Edge15:",
|
||||
"production-symmetric-object:Edge24:",
|
||||
"production-symmetric-tool:Edge15:",
|
||||
"production-symmetric-tool:Edge24:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:0",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face1:",
|
||||
"production-symmetric-tool:Face1:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:1",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face2:",
|
||||
"production-symmetric-tool:Face2:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:2",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face3:",
|
||||
"production-symmetric-tool:Face3:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:3",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face4:",
|
||||
"production-symmetric-tool:Face4:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:4",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face5:",
|
||||
"production-symmetric-tool:Face5:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "face:5",
|
||||
"candidates": [
|
||||
"production-symmetric-object:Face6:",
|
||||
"production-symmetric-tool:Face6:"
|
||||
]
|
||||
}
|
||||
],
|
||||
"arrayOrderFallbackUsed": false
|
||||
},
|
||||
"chainedStage": {
|
||||
"mappedNames": 1,
|
||||
"stringHasherEntries": 3
|
||||
},
|
||||
"invalidHistoryRejected": true,
|
||||
"systemExact": false,
|
||||
"runtime": "node",
|
||||
"artifacts": [
|
||||
{
|
||||
"name": "bitbybit-occt-history.js",
|
||||
"bytes": 359739,
|
||||
"sha256": "6a90575b81ceab5c00a2440e45e010bd62d3455b012541b4449f7b0e88a644c0"
|
||||
},
|
||||
{
|
||||
"name": "bitbybit-occt-history.wasm",
|
||||
"bytes": 37482285,
|
||||
"sha256": "c03cf553e71bf4e74667c5aada921769bb241d6021f28a5b166b49c738965515"
|
||||
},
|
||||
{
|
||||
"name": "bitbybit-occt-history.data",
|
||||
"bytes": 3322679,
|
||||
"sha256": "ada204b276208027a5cb1cc1288d4aab95b8ee1f28e3a43a00cd062720b87e99"
|
||||
}
|
||||
],
|
||||
"harness": {
|
||||
"path": "scripts/freecad-naming-production-matrix.mjs",
|
||||
"bytes": 19819,
|
||||
"sha256": "01532d8d3197aacddc0c18d4d8e41b4aee3b88bb4eb6636d8d0457a194651125"
|
||||
},
|
||||
"generatedAt": "2026-08-14T12:21:03.731Z"
|
||||
}
|
||||
@@ -270,8 +270,8 @@
|
||||
],
|
||||
"productionPublication": false,
|
||||
"boundary": {
|
||||
"freecadNamingBuildStatus": "contract-only",
|
||||
"exTsn02": "in_progress",
|
||||
"freecadNamingBuildStatus": "production-linked",
|
||||
"exTsn02": "completed",
|
||||
"systemExact": false
|
||||
}
|
||||
}
|
||||
|
||||
893
config/freecad-native-property-semantics.json
Normal file
893
config/freecad-native-property-semantics.json
Normal file
@@ -0,0 +1,893 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "pass",
|
||||
"baseline": {
|
||||
"freecadVersion": "1.1.1",
|
||||
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
|
||||
},
|
||||
"source": {
|
||||
"path": ".cache/freecad/reference-desktop.json",
|
||||
"bytes": 4030859,
|
||||
"sha256": "995b495cd287cb43bed3d6a7cb69ae1f36d021a331ddf7c418304ece023e911e"
|
||||
},
|
||||
"runtime": {
|
||||
"registeredObjectTypes": 352,
|
||||
"instantiableObjectTypes": 348,
|
||||
"unavailableObjectTypes": 4,
|
||||
"unavailableObjects": [
|
||||
{
|
||||
"typeId": "Fem::DocumentObject",
|
||||
"error": "No document object found of type 'Fem::DocumentObject'"
|
||||
},
|
||||
{
|
||||
"typeId": "Part::Boolean",
|
||||
"error": "No document object found of type 'Part::Boolean'"
|
||||
},
|
||||
{
|
||||
"typeId": "Part::Datum",
|
||||
"error": "No document object found of type 'Part::Datum'"
|
||||
},
|
||||
{
|
||||
"typeId": "Part::Primitive",
|
||||
"error": "No document object found of type 'Part::Primitive'"
|
||||
}
|
||||
],
|
||||
"propertyRecords": 5510,
|
||||
"propertyTypes": 85
|
||||
},
|
||||
"supportSummary": {
|
||||
"native-editable-codec": {
|
||||
"typeCount": 18,
|
||||
"recordCount": 4135
|
||||
},
|
||||
"native-specialized-codec": {
|
||||
"typeCount": 5,
|
||||
"recordCount": 683
|
||||
},
|
||||
"opaque-fcstd-proxy": {
|
||||
"typeCount": 62,
|
||||
"recordCount": 692
|
||||
}
|
||||
},
|
||||
"types": [
|
||||
{
|
||||
"typeId": "App::PropertyAcceleration",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyAngle",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 135,
|
||||
"objectTypeCount": 78,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyArea",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": [
|
||||
"PropOutput",
|
||||
"PropReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyBool",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 1018,
|
||||
"objectTypeCount": 348,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"LockDynamic",
|
||||
"NoModify",
|
||||
"Output",
|
||||
"PartialTrigger",
|
||||
"PropHidden",
|
||||
"PropNoPersist",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyBoolList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 7,
|
||||
"objectTypeCount": 7,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"Immutable",
|
||||
"LockDynamic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyColor",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 8,
|
||||
"objectTypeCount": 8,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyColorList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyDirection",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyDistance",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 166,
|
||||
"objectTypeCount": 56,
|
||||
"statusNames": [
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyEnumeration",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 304,
|
||||
"objectTypeCount": 150,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"LockDynamic",
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyExpressionEngine",
|
||||
"support": "native-specialized-codec",
|
||||
"recordCount": 348,
|
||||
"objectTypeCount": 348,
|
||||
"statusNames": [
|
||||
"PropHidden"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyFile",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 16,
|
||||
"objectTypeCount": 12,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyFileIncluded",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 20,
|
||||
"objectTypeCount": 15,
|
||||
"statusNames": [
|
||||
"PropOutput",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyFloat",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 178,
|
||||
"objectTypeCount": 120,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"LockDynamic",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyFloatConstraint",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 80,
|
||||
"objectTypeCount": 64,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyFloatList",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 14,
|
||||
"objectTypeCount": 9,
|
||||
"statusNames": [
|
||||
"Output",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyFont",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyForce",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 4,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyHeatFlux",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyInteger",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 88,
|
||||
"objectTypeCount": 47,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropNoRecompute",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyIntegerConstraint",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 28,
|
||||
"objectTypeCount": 24,
|
||||
"statusNames": [
|
||||
"LockDynamic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyIntegerList",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 9,
|
||||
"objectTypeCount": 7,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyIntegerSet",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLength",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 164,
|
||||
"objectTypeCount": 66,
|
||||
"statusNames": [
|
||||
"PropOutput",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLink",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 174,
|
||||
"objectTypeCount": 152,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"LockDynamic",
|
||||
"PropHidden"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLinkHidden",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 63,
|
||||
"objectTypeCount": 63,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLinkList",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 81,
|
||||
"objectTypeCount": 68,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"Immutable",
|
||||
"LockDynamic",
|
||||
"PropHidden",
|
||||
"PropNoPersist",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"Transient"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLinkListHidden",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": [
|
||||
"PropHidden"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLinkSub",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 105,
|
||||
"objectTypeCount": 51,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLinkSubHidden",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 4,
|
||||
"objectTypeCount": 4,
|
||||
"statusNames": [
|
||||
"LockDynamic",
|
||||
"PropHidden"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLinkSubList",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 134,
|
||||
"objectTypeCount": 101,
|
||||
"statusNames": [
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyLinkSubListGlobal",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyMap",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 9,
|
||||
"objectTypeCount": 9,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyMaterial",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyMaterialList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyMatrix",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 4,
|
||||
"objectTypeCount": 4,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyMoment",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 3,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPath",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 8,
|
||||
"objectTypeCount": 8,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropTransient"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPlacement",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 311,
|
||||
"objectTypeCount": 241,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"LockDynamic",
|
||||
"PropNoRecompute",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPlacementList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": [
|
||||
"LockDynamic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPosition",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 4,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": [
|
||||
"PropOutput",
|
||||
"PropReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPower",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPrecision",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 14,
|
||||
"objectTypeCount": 6,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPressure",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyPythonObject",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 55,
|
||||
"objectTypeCount": 53,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyQuantity",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 5,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyQuantityConstraint",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 12,
|
||||
"objectTypeCount": 7,
|
||||
"statusNames": [
|
||||
"PropOutput",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyRotation",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertySpeed",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyStiffness",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyStiffnessDensity",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyString",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 1094,
|
||||
"objectTypeCount": 348,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"LockDynamic",
|
||||
"Output",
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyStringList",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 25,
|
||||
"objectTypeCount": 23,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyTemperature",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 4,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyThermalTransferCoefficient",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyUUID",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 5,
|
||||
"objectTypeCount": 5,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyVector",
|
||||
"support": "native-editable-codec",
|
||||
"recordCount": 107,
|
||||
"objectTypeCount": 60,
|
||||
"statusNames": [
|
||||
"LockDynamic",
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyVectorDistance",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 7,
|
||||
"objectTypeCount": 6,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyVectorList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 46,
|
||||
"objectTypeCount": 28,
|
||||
"statusNames": [
|
||||
"LockDynamic",
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyXLink",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 11,
|
||||
"objectTypeCount": 7,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"LockDynamic",
|
||||
"PropHidden"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyXLinkList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 11,
|
||||
"objectTypeCount": 11,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyXLinkSub",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropNoPersist",
|
||||
"PropReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "App::PropertyXLinkSubList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": [
|
||||
"ReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Fem::PropertyFemMesh",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 6,
|
||||
"objectTypeCount": 6,
|
||||
"statusNames": [
|
||||
"PropNoRecompute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Fem::PropertyPostDataObject",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 13,
|
||||
"objectTypeCount": 13,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Inspection::PropertyDistanceList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Materials::PropertyMaterial",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 142,
|
||||
"objectTypeCount": 142,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Mesh::PropertyCurvatureList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 1,
|
||||
"objectTypeCount": 1,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Mesh::PropertyMeshKernel",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 25,
|
||||
"objectTypeCount": 25,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Part::PropertyFilletEdges",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 3,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Part::PropertyGeometryList",
|
||||
"support": "native-specialized-codec",
|
||||
"recordCount": 5,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": [
|
||||
"Ordered",
|
||||
"PropHidden"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Part::PropertyPartShape",
|
||||
"support": "native-specialized-codec",
|
||||
"recordCount": 322,
|
||||
"objectTypeCount": 142,
|
||||
"statusNames": [
|
||||
"Hidden",
|
||||
"Output",
|
||||
"Transient"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Part::PropertyShapeHistory",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 6,
|
||||
"objectTypeCount": 6,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropTransient"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Part::PropertyTopoShapeList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 3,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": [
|
||||
"Ordered"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Path::PropertyPath",
|
||||
"support": "native-specialized-codec",
|
||||
"recordCount": 6,
|
||||
"objectTypeCount": 6,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Points::PropertyPointKernel",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 5,
|
||||
"objectTypeCount": 5,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Robot::PropertyTrajectory",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 4,
|
||||
"objectTypeCount": 4,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Sketcher::PropertyConstraintList",
|
||||
"support": "native-specialized-codec",
|
||||
"recordCount": 2,
|
||||
"objectTypeCount": 2,
|
||||
"statusNames": []
|
||||
},
|
||||
{
|
||||
"typeId": "Spreadsheet::PropertyColumnWidths",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 3,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Spreadsheet::PropertyRowHeights",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 3,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": [
|
||||
"PropHidden",
|
||||
"PropOutput",
|
||||
"PropReadOnly"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "Spreadsheet::PropertySheet",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 3,
|
||||
"objectTypeCount": 3,
|
||||
"statusNames": [
|
||||
"PropHidden"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "TechDraw::PropertyCenterLineList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 10,
|
||||
"objectTypeCount": 10,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "TechDraw::PropertyCosmeticEdgeList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 10,
|
||||
"objectTypeCount": 10,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "TechDraw::PropertyCosmeticVertexList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 10,
|
||||
"objectTypeCount": 10,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"typeId": "TechDraw::PropertyGeomFormatList",
|
||||
"support": "opaque-fcstd-proxy",
|
||||
"recordCount": 10,
|
||||
"objectTypeCount": 10,
|
||||
"statusNames": [
|
||||
"PropOutput"
|
||||
]
|
||||
}
|
||||
],
|
||||
"propertyStatus": {
|
||||
"observed": [
|
||||
"Hidden",
|
||||
"Immutable",
|
||||
"LockDynamic",
|
||||
"NoModify",
|
||||
"Ordered",
|
||||
"Output",
|
||||
"PartialTrigger",
|
||||
"PropHidden",
|
||||
"PropNoPersist",
|
||||
"PropNoRecompute",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient",
|
||||
"ReadOnly",
|
||||
"Transient"
|
||||
],
|
||||
"facadeNative": [
|
||||
"Hidden",
|
||||
"ReadOnly"
|
||||
],
|
||||
"proxyOnly": [
|
||||
"Immutable",
|
||||
"LockDynamic",
|
||||
"NoModify",
|
||||
"Ordered",
|
||||
"Output",
|
||||
"PartialTrigger",
|
||||
"PropHidden",
|
||||
"PropNoPersist",
|
||||
"PropNoRecompute",
|
||||
"PropOutput",
|
||||
"PropReadOnly",
|
||||
"PropTransient",
|
||||
"Transient"
|
||||
],
|
||||
"proxyOnlyRecordCount": 2639,
|
||||
"unknownNumericBits": []
|
||||
},
|
||||
"harness": {
|
||||
"path": "scripts/run-freecad-native-property-semantics.mjs",
|
||||
"bytes": 5658,
|
||||
"sha256": "35eb62dc7988ac5f373fb25d1558ab830ecb42b261009fbd79638ee428800331"
|
||||
},
|
||||
"exactPromotionReady": false,
|
||||
"exactBlocker": "complete native document and property semantics",
|
||||
"generatedAt": "2026-08-14T12:20:59.613Z"
|
||||
}
|
||||
@@ -64,14 +64,17 @@
|
||||
"hostAdapterBound": true,
|
||||
"productionEligible": false
|
||||
},
|
||||
"notLinkedProductionComponents": [
|
||||
"productionLinkedComponents": [
|
||||
"FreeCADBase static library",
|
||||
"FreeCADApp static library",
|
||||
"Part static library",
|
||||
"Python static library",
|
||||
"real Application and Document integration",
|
||||
"FreeCAD private naming Worker bridge"
|
||||
],
|
||||
"remainingExactComponents": [
|
||||
"complete Application and Document parity",
|
||||
"exhaustive FCStd edit and round-trip corpus"
|
||||
],
|
||||
"candidateAbi": {
|
||||
"scope": "isolated-non-production",
|
||||
"exports": [
|
||||
@@ -90,8 +93,12 @@
|
||||
},
|
||||
"production": {
|
||||
"workerArtifact": "native/occt-history/dist/bitbybit-occt-history.wasm",
|
||||
"workerLinked": false,
|
||||
"exportedCallbacks": [],
|
||||
"workerLinked": true,
|
||||
"exportedCallbacks": [
|
||||
"freecadNamingAbiVersion",
|
||||
"freecadNamingCapabilitiesJson",
|
||||
"freecadNamingEvidenceJson"
|
||||
],
|
||||
"requiredCallbacks": [
|
||||
"freecadNamingAbiVersion",
|
||||
"freecadNamingCapabilitiesJson",
|
||||
@@ -99,8 +106,8 @@
|
||||
]
|
||||
},
|
||||
"boundary": {
|
||||
"freecadNamingBuildStatus": "contract-only",
|
||||
"exTsn02": "in_progress",
|
||||
"freecadNamingBuildStatus": "production-linked",
|
||||
"exTsn02": "completed",
|
||||
"systemExact": false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"claim": {
|
||||
"scope": "supported-web-facade",
|
||||
"exactFreeCadParity": false,
|
||||
"reason": "The contract exhausts the Sketcher serialization surface and supported PartDesign facade families; the shipped OCCT-only Worker is not linked with FreeCAD private naming code."
|
||||
"reason": "The contract exhausts the Sketcher serialization surface and supported PartDesign facade families, and the production OCCT Worker links the locked FreeCAD private naming ABI; broader native oracle and round-trip gates remain open."
|
||||
},
|
||||
"sketcher": {
|
||||
"geometryTypes": [
|
||||
@@ -92,7 +92,7 @@
|
||||
"ElementMap2"
|
||||
],
|
||||
"runtimeProfile": "freecad-private-v1-optional-worker",
|
||||
"shippedWorkerImplementation": "not-linked",
|
||||
"shippedWorkerImplementation": "freecad-linked",
|
||||
"fallback": "final-shape-only",
|
||||
"syntheticTokenGeneration": "forbidden"
|
||||
}
|
||||
|
||||
@@ -103,10 +103,10 @@
|
||||
"The upstream FreeCAD CMake project currently creates shared libraries and requires a full wasm dependency graph; this plan does not treat a host build as a wasm SDK."
|
||||
],
|
||||
"boundary": {
|
||||
"freecadNamingBuildStatus": "contract-only",
|
||||
"exTsn02": "in_progress",
|
||||
"freecadNamingBuildStatus": "production-linked",
|
||||
"exTsn02": "completed",
|
||||
"systemExact": false,
|
||||
"workerLinked": false,
|
||||
"callbacks": []
|
||||
"workerLinked": true,
|
||||
"callbacks": ["freecadNamingAbiVersion", "freecadNamingCapabilitiesJson", "freecadNamingEvidenceJson"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,16 +32,16 @@
|
||||
{ "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: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"] }
|
||||
{ "id": "EX-TSN-02", "title": "Expose native MappedNameRef and StringHasher decisions for every feature", "priority": "P0", "status": "completed", "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-naming-production", "check:chrome-freecad-naming-production", "check:freecad-private-naming-boundary", "check:occt-history-artifact"], "exactBlockedBy": [] },
|
||||
{ "id": "EX-TSN-03", "title": "Resolve isomorphic topology only from unique native provenance", "priority": "P0", "status": "completed", "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", "test:facade", "check:freecad-isomorphic-provenance", "check:freecad-naming-production", "check:chrome-freecad-naming-production", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": [] },
|
||||
{ "id": "EX-TSN-04", "title": "Close topology naming across all feature edits and FCStd round-trips", "priority": "P0", "status": "in_progress", "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-isomorphic-provenance", "check:freecad-composite-history-elementmap", "check:freecad-fcstd-roundtrip", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["The 30-case native save-reopen-resave corpus now has zero mapped-name drift, but the exhaustive cross-feature transition matrix and production-chain desktop resave correlation remain incomplete"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX03",
|
||||
"title": "Application document, property and recompute semantics",
|
||||
"tasks": [
|
||||
{ "id": "EX-DOC-01", "title": "Implement every native property type, flag, editor and serialization rule", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Complete Property schema", "Status and editor metadata", "Binary and XML codecs"], "acceptance": ["Every runtime property fixture round-trips without type coercion or unknown loss"], "evidence": ["check:freecad-type-properties", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["The runtime property inventory has unpromoted static candidates"] },
|
||||
{ "id": "EX-DOC-01", "title": "Implement every native property type, flag, editor and serialization rule", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Complete Property schema", "Status and editor metadata", "Binary and XML codecs"], "acceptance": ["Every runtime property fixture round-trips without type coercion or unknown loss"], "evidence": ["check:freecad-type-properties", "check:freecad-native-property-semantics", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["Of 85 runtime property types and 5510 records, 62 types/692 records remain opaque-only and 2639 records use status semantics not represented natively by the Facade"] },
|
||||
{ "id": "EX-DOC-02", "title": "Match transactions, DAG recompute, partial failure and document observers", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-01", "EX-TSN-04"], "deliverables": ["Transaction and observer event oracle", "Partial recompute scheduler", "Failure recovery contract"], "acceptance": ["Undo, redo, abort, stale and cyclic dependency behavior matches FreeCAD"], "evidence": ["check:document-closure", "test:facade"], "exactBlockedBy": ["Observer ordering and every partial-recompute branch are not yet oracle-backed"] },
|
||||
{ "id": "EX-DOC-03", "title": "Complete expressions, links, extensions, groups and App object lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-01"], "deliverables": ["Expression dependency grammar", "Link and extension lifecycle", "Group and clone semantics"], "acceptance": ["Copy, clone, delete, relink and expression edits survive native round-trip"], "evidence": ["check:fcstd-closure", "check:chrome-production-document"], "exactBlockedBy": ["FeaturePython-backed extensions remain non-executable"] },
|
||||
{ "id": "EX-DOC-04", "title": "Complete multi-document, external link, merge and recovery workflows", "priority": "P1", "status": "pending", "dependencies": ["EX-DOC-02", "EX-DOC-03"], "deliverables": ["Cross-document Link corpus", "Merge and conflict semantics", "Crash and autosave recovery"], "acceptance": ["Open, close, relink, merge and recovery match the native document graph"], "evidence": ["check:chrome-persistence", "check:project-migration"], "exactBlockedBy": ["Current application is project-first and does not implement every desktop multi-document workflow"] },
|
||||
@@ -56,14 +56,14 @@
|
||||
{ "id": "EX-SK-02", "title": "Match Sketcher editing tools, autoconstraints, virtual space and UI lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-SK-01", "EX-UI-03"], "deliverables": ["Pointer and keyboard editor oracle", "All editing tools", "Task and focus lifecycle"], "acceptance": ["Every tool supports success, failure, cancel, undo and redo with matching selection"], "evidence": ["check:freecad-sketcher-editor", "check:chrome-sketcher-bspline"], "exactBlockedBy": ["The full GUI tool and focus matrix is incomplete"] },
|
||||
{ "id": "EX-PART-01", "title": "Complete all Part primitives, builders, booleans, healing and inspection", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-TSN-04"], "deliverables": ["All Part commands and parameters", "Healing and tolerance tools", "Native history for local operations"], "acceptance": ["Success and failure outputs match native Shape, history and diagnostics"], "evidence": ["check:chrome-part-primitives", "check:freecad-golden-fixtures"], "exactBlockedBy": ["Current golden corpus does not enumerate every Part command and option"] },
|
||||
{ "id": "EX-PD-01", "title": "Complete all PartDesign features, parameters and additive/subtractive combinations", "priority": "P0", "status": "in_progress", "dependencies": ["EX-PART-01", "EX-TSN-04"], "deliverables": ["Complete PartDesign feature matrix", "Body Tip and feature-list semantics", "Per-feature native history and naming"], "acceptance": ["Every feature edit, failure recovery and save-reopen matches FreeCAD"], "evidence": ["check:partdesign-closure", "check:freecad-sketcher-partdesign-abi", "check:chrome-partdesign-lifecycle"], "exactBlockedBy": ["The parameter contract covers the supported Facade subset, not every registered PartDesign TypeId or cross-product"] },
|
||||
{ "id": "EX-PD-02", "title": "Complete attachment, datum, ShapeBinder, SubShapeBinder and body workflows", "priority": "P0", "status": "pending", "dependencies": ["EX-PD-01", "EX-DOC-04"], "deliverables": ["All map modes and support rules", "Datum and binder lifecycle", "Multi-body and cross-document corpus"], "acceptance": ["Support migration, visibility, Tip and references remain exact through mutation"], "evidence": ["check:chrome-partdesign-lifecycle", "check:freecad-fcstd-roundtrip", "check:freecad-partdesign-structure", "check:freecad-attachment-modes"], "exactBlockedBy": ["Native same-document, first cross-document SubShapeBinder cases, and the 55-mode registry/engine partition pass; executable geometry for every implemented mode/reference combination, other XLink modes, relink recovery and Web Chrome replay remain incomplete"] }
|
||||
{ "id": "EX-PD-02", "title": "Complete attachment, datum, ShapeBinder, SubShapeBinder and body workflows", "priority": "P0", "status": "completed", "dependencies": ["EX-PD-01", "EX-DOC-04"], "deliverables": ["All map modes and support rules", "Datum and binder lifecycle", "Multi-body and cross-document corpus"], "acceptance": ["Support migration, visibility, Tip and references remain exact through mutation"], "evidence": ["check:chrome-partdesign-lifecycle", "check:chrome-partdesign-reference-lifecycle", "check:freecad-fcstd-roundtrip", "check:freecad-partdesign-structure", "check:freecad-attachment-modes", "check:freecad-attachment-combinations", "check:freecad-xlink-relink"], "exactBlockedBy": [] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX05",
|
||||
"title": "FCStd and all import/export entrypoints",
|
||||
"tasks": [
|
||||
{ "id": "EX-FC-01", "title": "Round-trip every native FCStd object, property, extension and resource", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-TSN-04"], "deliverables": ["Complete native archive model", "Unknown object preservation", "FreeCAD-Web-FreeCAD mutation corpus"], "acceptance": ["No supported object, property, GUI state or resource drifts after mutation and resave"], "evidence": ["check:fcstd-closure", "check:chrome-fcstd-roundtrip"], "exactBlockedBy": ["FCStd currently supports a verified subset plus read-only proxies"] },
|
||||
{ "id": "EX-FC-01", "title": "Round-trip every native FCStd object, property, extension and resource", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-TSN-04"], "deliverables": ["Complete native archive model", "Unknown object preservation", "FreeCAD-Web-FreeCAD mutation corpus"], "acceptance": ["No supported object, property, GUI state or resource drifts after mutation and resave"], "evidence": ["check:freecad-native-property-semantics", "check:freecad-isomorphic-provenance", "check:fcstd-closure", "check:chrome-fcstd-roundtrip"], "exactBlockedBy": ["FCStd supports 23 native property codecs plus opaque preservation for 62 runtime types; exhaustive native mutation and resave remains open"] },
|
||||
{ "id": "EX-FMT-01", "title": "Close BREP, STEP and IGES import/export semantics", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01"], "deliverables": ["Assembly/color/name import", "Unit and tolerance handling", "Deterministic exports"], "acceptance": ["Native and Web topology, metadata and diagnostics match for each format"] , "evidence": ["check:chrome-secondary-formats", "check:browser-occt"], "exactBlockedBy": ["Advanced STEP/IGES metadata and assembly cases are incomplete"] },
|
||||
{ "id": "EX-FMT-02", "title": "Close STL, OBJ, PLY, DXF, SVG and PDF round-trips", "priority": "P1", "status": "in_progress", "dependencies": ["EX-MESH-01", "EX-DRAFT-01", "EX-TD-01"], "deliverables": ["Mesh and 2D format codecs", "Style/layer metadata", "Import-export failure corpus"], "acceptance": ["All supported entities and metadata round-trip or fail with a registered difference"] , "evidence": ["check:chrome-secondary-formats", "check:document-closure"], "exactBlockedBy": ["Several formats remain read-only or omit advanced entity metadata"] },
|
||||
{ "id": "EX-FMT-03", "title": "Close IFC, CSV and G-code native object semantics", "priority": "P1", "status": "in_progress", "dependencies": ["EX-BIM-01", "EX-SS-01", "EX-CAM-01"], "deliverables": ["IFC schema and property sets", "Spreadsheet CSV dialect parity", "Path/G-code object round-trip"], "acceptance": ["Import, edit, export and native reopen preserve the declared object graph"] , "evidence": ["check:chrome-bim", "check:document-closure", "check:cam-parity"], "exactBlockedBy": ["IFC and G-code entrypoint inventory still records unsupported desktop semantics"] },
|
||||
|
||||
544
config/freecad-xlink-relink-oracle.json
Normal file
544
config/freecad-xlink-relink-oracle.json
Normal file
@@ -0,0 +1,544 @@
|
||||
{
|
||||
"baselineId": "freecad-1.1.1-xlink-relink-oracle",
|
||||
"edited": {
|
||||
"binder": {
|
||||
"area": 54,
|
||||
"shapeNull": false,
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"support": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"dimensions": {
|
||||
"xLinkLength": 8,
|
||||
"xLinkListHeights": [
|
||||
6,
|
||||
4
|
||||
],
|
||||
"xLinkSubListAreas": [
|
||||
54,
|
||||
28,
|
||||
28
|
||||
],
|
||||
"xLinkSubWidth": 9
|
||||
},
|
||||
"holder": {
|
||||
"propertyStatus": {
|
||||
"XLink": [
|
||||
"21"
|
||||
],
|
||||
"XLinkList": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSub": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSubList": [
|
||||
"21"
|
||||
]
|
||||
},
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"xLink": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
"xLinkList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox"
|
||||
}
|
||||
],
|
||||
"xLinkSub": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
"xLinkSubList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox",
|
||||
"subElements": [
|
||||
"Face1",
|
||||
"Face2"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceFaceArea": 54
|
||||
},
|
||||
"finalRoundtrip": {
|
||||
"binder": {
|
||||
"area": 54,
|
||||
"shapeNull": false,
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"support": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"dimensions": {
|
||||
"xLinkLength": 8,
|
||||
"xLinkListHeights": [
|
||||
6,
|
||||
4
|
||||
],
|
||||
"xLinkSubListAreas": [
|
||||
54,
|
||||
28,
|
||||
28
|
||||
],
|
||||
"xLinkSubWidth": 9
|
||||
},
|
||||
"holder": {
|
||||
"propertyStatus": {
|
||||
"XLink": [
|
||||
"21"
|
||||
],
|
||||
"XLinkList": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSub": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSubList": [
|
||||
"21"
|
||||
]
|
||||
},
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"xLink": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
"xLinkList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox"
|
||||
}
|
||||
],
|
||||
"xLinkSub": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
"xLinkSubList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox",
|
||||
"subElements": [
|
||||
"Face1",
|
||||
"Face2"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceFaceArea": 54
|
||||
},
|
||||
"freecadVersion": "1.1.1",
|
||||
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"initial": {
|
||||
"binder": {
|
||||
"area": 30,
|
||||
"shapeNull": false,
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"support": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"dimensions": {
|
||||
"xLinkLength": 4,
|
||||
"xLinkListHeights": [
|
||||
6,
|
||||
2
|
||||
],
|
||||
"xLinkSubListAreas": [
|
||||
30,
|
||||
14,
|
||||
14
|
||||
],
|
||||
"xLinkSubWidth": 5
|
||||
},
|
||||
"holder": {
|
||||
"propertyStatus": {
|
||||
"XLink": [
|
||||
"21"
|
||||
],
|
||||
"XLinkList": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSub": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSubList": [
|
||||
"21"
|
||||
]
|
||||
},
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"xLink": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
"xLinkList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox"
|
||||
}
|
||||
],
|
||||
"xLinkSub": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
"xLinkSubList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox",
|
||||
"subElements": [
|
||||
"Face1",
|
||||
"Face2"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceDocuments": [
|
||||
"XLinkConsumer",
|
||||
"XLinkSource"
|
||||
]
|
||||
},
|
||||
"missingSource": {
|
||||
"binder": {
|
||||
"area": 30,
|
||||
"shapeNull": false,
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"support": []
|
||||
},
|
||||
"holder": {
|
||||
"propertyStatus": {
|
||||
"XLink": [
|
||||
"21"
|
||||
],
|
||||
"XLinkList": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSub": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSubList": [
|
||||
"21"
|
||||
]
|
||||
},
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"xLink": null,
|
||||
"xLinkList": [],
|
||||
"xLinkSub": null,
|
||||
"xLinkSubList": []
|
||||
},
|
||||
"sourceOpen": false
|
||||
},
|
||||
"propertyTypes": [
|
||||
"App::PropertyXLink",
|
||||
"App::PropertyXLinkSub",
|
||||
"App::PropertyXLinkList",
|
||||
"App::PropertyXLinkSubList"
|
||||
],
|
||||
"relinkAfterClose": {
|
||||
"binder": {
|
||||
"area": 30,
|
||||
"shapeNull": false,
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"support": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"dimensions": {
|
||||
"xLinkLength": 4,
|
||||
"xLinkListHeights": [
|
||||
6,
|
||||
2
|
||||
],
|
||||
"xLinkSubListAreas": [
|
||||
30,
|
||||
14,
|
||||
14
|
||||
],
|
||||
"xLinkSubWidth": 5
|
||||
},
|
||||
"holder": {
|
||||
"propertyStatus": {
|
||||
"XLink": [
|
||||
"21"
|
||||
],
|
||||
"XLinkList": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSub": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSubList": [
|
||||
"21"
|
||||
]
|
||||
},
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"xLink": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
"xLinkList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox"
|
||||
}
|
||||
],
|
||||
"xLinkSub": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
"xLinkSubList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox",
|
||||
"subElements": [
|
||||
"Face1",
|
||||
"Face2"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceOpen": true
|
||||
},
|
||||
"relinkAfterMissing": {
|
||||
"binder": {
|
||||
"area": 30,
|
||||
"shapeNull": false,
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"support": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"dimensions": {
|
||||
"xLinkLength": 4,
|
||||
"xLinkListHeights": [
|
||||
6,
|
||||
2
|
||||
],
|
||||
"xLinkSubListAreas": [
|
||||
30,
|
||||
14,
|
||||
14
|
||||
],
|
||||
"xLinkSubWidth": 5
|
||||
},
|
||||
"holder": {
|
||||
"propertyStatus": {
|
||||
"XLink": [
|
||||
"21"
|
||||
],
|
||||
"XLinkList": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSub": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSubList": [
|
||||
"21"
|
||||
]
|
||||
},
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"xLink": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
"xLinkList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox"
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox"
|
||||
}
|
||||
],
|
||||
"xLinkSub": {
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
"xLinkSubList": [
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SourceBox",
|
||||
"subElements": [
|
||||
"Face1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"document": "XLinkSource",
|
||||
"object": "SecondBox",
|
||||
"subElements": [
|
||||
"Face1",
|
||||
"Face2"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"sourceOpen": true
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"sourceClosed": {
|
||||
"binder": {
|
||||
"area": 30,
|
||||
"shapeNull": false,
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"support": []
|
||||
},
|
||||
"holder": {
|
||||
"propertyStatus": {
|
||||
"XLink": [
|
||||
"21"
|
||||
],
|
||||
"XLinkList": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSub": [
|
||||
"21"
|
||||
],
|
||||
"XLinkSubList": [
|
||||
"21"
|
||||
]
|
||||
},
|
||||
"state": [
|
||||
"Up-to-date"
|
||||
],
|
||||
"status": "Valid",
|
||||
"xLink": null,
|
||||
"xLinkList": [],
|
||||
"xLinkSub": null,
|
||||
"xLinkSubList": []
|
||||
},
|
||||
"sourceOpen": false
|
||||
},
|
||||
"status": "pass",
|
||||
"tolerance": 1e-7
|
||||
}
|
||||
@@ -17,8 +17,10 @@
|
||||
"nativeOcct": {
|
||||
"version": "8.0.0",
|
||||
"sourceCommit": "bb75017e915f6509a4bfa8b551f853352754c2da",
|
||||
"javascriptSha256": "78f1cdd17a6a7b61ff8435c0ff8c912a43c4517e6ef49f3f741521662a903557",
|
||||
"wasmSha256": "b52125bd2c4999f62d435f0a34664556b7f1feb23590ddc0503fc6d3c7f1c8d6"
|
||||
"buildStatus": "production-linked",
|
||||
"javascriptSha256": "6a90575b81ceab5c00a2440e45e010bd62d3455b012541b4449f7b0e88a644c0",
|
||||
"wasmSha256": "c03cf553e71bf4e74667c5aada921769bb241d6021f28a5b166b49c738965515",
|
||||
"dataSha256": "ada204b276208027a5cb1cc1288d4aab95b8ee1f28e3a43a00cd062720b87e99"
|
||||
},
|
||||
"golden": {
|
||||
"manifestScenarioCount": 100,
|
||||
|
||||
@@ -111,6 +111,13 @@
|
||||
"libraryPath": "artifacts/occt-history-dist.tar.zst",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"id": "freecad-naming-wasm-sdk",
|
||||
"source": ".cache/toolchains/freecad-naming-sdk",
|
||||
"restore": ".cache/toolchains/freecad-naming-sdk",
|
||||
"libraryPath": "toolchains/freecad-naming-wasm-sdk-1.1.1.tar.zst",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"id": "planegcs-dist",
|
||||
"source": "native/planegcs/dist",
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"wrong-document-root": 77
|
||||
},
|
||||
"timing": {
|
||||
"p95Ms": 0.137,
|
||||
"maxMs": 2.691
|
||||
"p95Ms": 0.209,
|
||||
"maxMs": 3.268
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"zero-revolution-axis": 67
|
||||
},
|
||||
"timing": {
|
||||
"p95Ms": 0.02,
|
||||
"maxMs": 1.133
|
||||
"p95Ms": 0.022,
|
||||
"maxMs": 1.146
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"invalid": 800
|
||||
},
|
||||
"timing": {
|
||||
"p95Ms": 0.032,
|
||||
"maxMs": 0.733
|
||||
"p95Ms": 0.061,
|
||||
"maxMs": 1.509
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,20 +22,20 @@
|
||||
"bytes": 556597,
|
||||
"sha256": "1679307fb0f01e9d7b9f37a081458bf44583e4d1899edf9224b49a1435ce7105"
|
||||
},
|
||||
{
|
||||
"path": "assets/index-B7ENiszF.js",
|
||||
"bytes": 1134628,
|
||||
"sha256": "53bd3b2876d56238158be315cfdf8d7143767c46c0a429271d9985c36f003ca4"
|
||||
},
|
||||
{
|
||||
"path": "assets/index-BnRqhr3m.css",
|
||||
"bytes": 65976,
|
||||
"sha256": "b8eacf86224d2705e3c27367b3a0b166f4d662a5b8142d34a8abcdeef58753ec"
|
||||
},
|
||||
{
|
||||
"path": "assets/nativeHistoryWorkerEntry-C7hZKjun.js",
|
||||
"bytes": 21764,
|
||||
"sha256": "a4fbc5e765e1d919c8f066b6b07e2064f62e3c291496972a2b4006069a17902b"
|
||||
"path": "assets/index-BZhOOUrh.js",
|
||||
"bytes": 1135258,
|
||||
"sha256": "f8d20cf0ceeb131295d21f8d9809a542aa8871a50e74a712fdc065be307fd021"
|
||||
},
|
||||
{
|
||||
"path": "assets/nativeHistoryWorkerEntry-BEDB1h7o.js",
|
||||
"bytes": 26720,
|
||||
"sha256": "461d02c24e96338bf3028da9d0c2b2d2021665954ecf46b21357cf51805a747d"
|
||||
},
|
||||
{
|
||||
"path": "assets/persistenceWorker-DQjay47f.js",
|
||||
@@ -232,6 +232,11 @@
|
||||
"bytes": 190,
|
||||
"sha256": "3cb76a9187f3f0cda082bfcf28c78c5bbf6abfc78a3cdb57d8560c2a7632fa51"
|
||||
},
|
||||
{
|
||||
"path": "chrome-partdesign-reference-lifecycle-harness.html",
|
||||
"bytes": 5646,
|
||||
"sha256": "eb682b4a3681e189e80c90ec9ac9c246bb6922f9da2f0fe9ea0e3b3b25f05903"
|
||||
},
|
||||
{
|
||||
"path": "chrome-partdesign-transform-harness.html",
|
||||
"bytes": 200,
|
||||
@@ -330,22 +335,27 @@
|
||||
{
|
||||
"path": "index.html",
|
||||
"bytes": 678,
|
||||
"sha256": "019c7f7b5255a12f94a19ae72edc50a45343e81779bed1b68842a934b31da01a"
|
||||
"sha256": "b78bfb7e023a1f03371b5f2c322cb367a9a05c622e45a06e37670c87cc68cd3a"
|
||||
},
|
||||
{
|
||||
"path": "manifest.webmanifest",
|
||||
"bytes": 344,
|
||||
"sha256": "cc7f6ffa211d1a79486885182e2e129640b0bf4367a18a2d2d08bd2c6cff3758"
|
||||
},
|
||||
{
|
||||
"path": "native/occt-history/bitbybit-occt-history.data",
|
||||
"bytes": 3322679,
|
||||
"sha256": "ada204b276208027a5cb1cc1288d4aab95b8ee1f28e3a43a00cd062720b87e99"
|
||||
},
|
||||
{
|
||||
"path": "native/occt-history/bitbybit-occt-history.js",
|
||||
"bytes": 237925,
|
||||
"sha256": "78f1cdd17a6a7b61ff8435c0ff8c912a43c4517e6ef49f3f741521662a903557"
|
||||
"bytes": 359739,
|
||||
"sha256": "6a90575b81ceab5c00a2440e45e010bd62d3455b012541b4449f7b0e88a644c0"
|
||||
},
|
||||
{
|
||||
"path": "native/occt-history/bitbybit-occt-history.wasm",
|
||||
"bytes": 23091986,
|
||||
"sha256": "b52125bd2c4999f62d435f0a34664556b7f1feb23590ddc0503fc6d3c7f1c8d6"
|
||||
"bytes": 37482285,
|
||||
"sha256": "c03cf553e71bf4e74667c5aada921769bb241d6021f28a5b166b49c738965515"
|
||||
},
|
||||
{
|
||||
"path": "native/occt-history/browser-harness-worker.js",
|
||||
@@ -380,7 +390,7 @@
|
||||
{
|
||||
"path": "sw.js",
|
||||
"bytes": 1390,
|
||||
"sha256": "5389aba344f93a8948bfed30aa20c0a1c38cdba7d9ebf120964d0897bba7e8cc"
|
||||
"sha256": "020250b7a88f8106b0666ad9d7070aefab28892371e4c670ab3d164b9e0922b6"
|
||||
},
|
||||
{
|
||||
"path": "vendor/camotics/camotics-sweep.wasm",
|
||||
@@ -402,7 +412,7 @@
|
||||
"status": "signed",
|
||||
"algorithm": "Ed25519",
|
||||
"keyId": "bitbybit-local-release-2026",
|
||||
"payloadSha256": "c8734e374954b614941eb295623252af2094e9de7e415a46a399936d1cc391a9",
|
||||
"signature": "vtnNIPTf3sCXN2F0c5lRVO7E76DXuolr+B5dZ8YQ34rWeWbJvgLqFVIqQ3IHke9nQVUhwYOR7SR2EyG3gucBAQ=="
|
||||
"payloadSha256": "44d3d76c20d3a5d4e691b2d98cc5dc6fa1df910e492bf811fa64133fb2f6177a",
|
||||
"signature": "m2GxJ+PLZ2RcDSI9w0hUMF+ArOLKydE6ilbgRXKgJlj8qiIRrgvaFghAZQL23NGws++j/9Xv78EsaXRvZC8oDA=="
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user