feat: classify recovered naming drift
Some checks failed
real-verification / chrome (push) Has been cancelled
real-verification / freecad-oracle (push) Has been cancelled
real-verification / wasm (push) Has been cancelled

This commit is contained in:
2026-08-15 01:01:54 -04:00
parent 5bbd7b9d4f
commit ea3706bd3d
21 changed files with 18736 additions and 15778 deletions

View File

@@ -4,7 +4,7 @@
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"updatedAt": "2026-08-14",
"updatedAt": "2026-08-15",
"generatedBy": "scripts/generate-freecad-active-work-queue.mjs",
"policy": {
"maxInProgress": 1,
@@ -12,12 +12,12 @@
"transitionUnit": "one ordered operation pair",
"driftUnit": "one native case"
},
"nextTask": "ORA-GUI-WF-002",
"nextTask": "TSN-DRIFT-002",
"summary": {
"tasks": 487,
"completed": 112,
"completed": 119,
"inProgress": 1,
"pending": 374
"pending": 367
},
"milestones": [
{
@@ -1375,7 +1375,7 @@
{
"id": "ORA-GUI-WORKFLOWS",
"exactTask": "EX-ORA-01",
"status": "in_progress",
"status": "completed",
"tasks": [
{
"id": "ORA-GUI-WF-000",
@@ -1409,46 +1409,67 @@
{
"id": "ORA-GUI-WF-002",
"title": "Capture the native disabled workflow",
"status": "in_progress",
"status": "completed",
"dependencies": [
"ORA-GUI-WF-001"
],
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
],
"exit": "one native workflow fixture and its focused assertion pass"
},
{
"id": "ORA-GUI-WF-003",
"title": "Capture the native failure workflow",
"status": "pending",
"status": "completed",
"dependencies": [
"ORA-GUI-WF-002"
],
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
],
"exit": "one native workflow fixture and its focused assertion pass"
},
{
"id": "ORA-GUI-WF-004",
"title": "Capture the native cancel workflow",
"status": "pending",
"status": "completed",
"dependencies": [
"ORA-GUI-WF-003"
],
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
],
"exit": "one native workflow fixture and its focused assertion pass"
},
{
"id": "ORA-GUI-WF-005",
"title": "Capture recovery after failure or cancel",
"status": "pending",
"status": "completed",
"dependencies": [
"ORA-GUI-WF-004"
],
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
],
"exit": "one native workflow fixture and its focused assertion pass"
},
{
"id": "ORA-GUI-WF-006",
"title": "Update the exact blocker and focused checks",
"status": "pending",
"status": "completed",
"dependencies": [
"ORA-GUI-WF-005"
],
"evidence": [
"config/freecad-web-exact-parity-plan.json",
"scripts/check-freecad-gui-workflow-plan.mjs",
"scripts/generate-freecad-active-work-queue.mjs"
],
"exit": "one native workflow fixture and its focused assertion pass"
}
]
@@ -1456,12 +1477,12 @@
{
"id": "TSN-RECOVERY-DRIFT",
"exactTask": "EX-TSN-04",
"status": "pending",
"status": "in_progress",
"tasks": [
{
"id": "TSN-DRIFT-000",
"title": "Classify recovered naming evolution for partdesign-plain",
"status": "pending",
"status": "completed",
"dependencies": [
"ORA-GUI-WF-006"
],
@@ -1471,12 +1492,17 @@
0,
9
],
"classification": "allowed_evolution",
"evidence": [
"config/freecad-recovered-naming-classification.json",
"native-history-stabilizes-after-edit-restore"
],
"exit": "the case is classified as stable semantics, allowed evolution, or an implementation defect"
},
{
"id": "TSN-DRIFT-001",
"title": "Classify recovered naming evolution for partdesign-midplane",
"status": "pending",
"status": "completed",
"dependencies": [
"TSN-DRIFT-000"
],
@@ -1486,12 +1512,17 @@
0,
9
],
"classification": "allowed_evolution",
"evidence": [
"config/freecad-recovered-naming-classification.json",
"native-history-stabilizes-after-edit-restore"
],
"exit": "the case is classified as stable semantics, allowed evolution, or an implementation defect"
},
{
"id": "TSN-DRIFT-002",
"title": "Classify recovered naming evolution for partdesign-reverse",
"status": "pending",
"status": "in_progress",
"dependencies": [
"TSN-DRIFT-001"
],

File diff suppressed because it is too large Load Diff

View File

@@ -716,8 +716,8 @@
"name": "Common07",
"ordinal": 2,
"relationCount": 8,
"relationDigest": "295286347d8935ff0fc96fe706a211f55c042edd96c5f714a6ef31d2b9eac359",
"semanticNameDigest": "bad23fbf57f26098673a1e702fad4011f7fa332e96c2d415d32063b8b934d3ed",
"relationDigest": "7794560879873d1dd1468a41ff9a0fed2e5912ac6ebf493d0de6725aede5d014",
"semanticNameDigest": "9d9b0bb54f9c3cc9d1bacbcb9d4e48a9014844b888085edb0b4cbc0dd9a28a22",
"typeId": "Part::Common"
}
],
@@ -751,8 +751,8 @@
"name": "Common07",
"ordinal": 2,
"relationCount": 8,
"relationDigest": "295286347d8935ff0fc96fe706a211f55c042edd96c5f714a6ef31d2b9eac359",
"semanticNameDigest": "bad23fbf57f26098673a1e702fad4011f7fa332e96c2d415d32063b8b934d3ed",
"relationDigest": "7794560879873d1dd1468a41ff9a0fed2e5912ac6ebf493d0de6725aede5d014",
"semanticNameDigest": "9d9b0bb54f9c3cc9d1bacbcb9d4e48a9014844b888085edb0b4cbc0dd9a28a22",
"typeId": "Part::Common"
}
],
@@ -786,8 +786,8 @@
"name": "Common07",
"ordinal": 2,
"relationCount": 8,
"relationDigest": "295286347d8935ff0fc96fe706a211f55c042edd96c5f714a6ef31d2b9eac359",
"semanticNameDigest": "bad23fbf57f26098673a1e702fad4011f7fa332e96c2d415d32063b8b934d3ed",
"relationDigest": "7794560879873d1dd1468a41ff9a0fed2e5912ac6ebf493d0de6725aede5d014",
"semanticNameDigest": "9d9b0bb54f9c3cc9d1bacbcb9d4e48a9014844b888085edb0b4cbc0dd9a28a22",
"typeId": "Part::Common"
}
]
@@ -829,8 +829,8 @@
"name": "Common08",
"ordinal": 2,
"relationCount": 20,
"relationDigest": "dfdf72915217455c1b31cc7c5ba1e7ada26c2311bbb5a566cc64b61e217f65b9",
"semanticNameDigest": "9d429381d7597415c59081bdaf14a9d2de1f5aada3f2c323f81811d9fea22c08",
"relationDigest": "d6ab1196f3f4caec17c35f901fefec1f62e9d1034e2118bbbb4be8377e90dc86",
"semanticNameDigest": "14d3f53fbcd4f2a1b595eba4ac8c49dc5e0ac3515f799d2acdcf595dd11549dd",
"typeId": "Part::Common"
}
],
@@ -864,8 +864,8 @@
"name": "Common08",
"ordinal": 2,
"relationCount": 20,
"relationDigest": "dfdf72915217455c1b31cc7c5ba1e7ada26c2311bbb5a566cc64b61e217f65b9",
"semanticNameDigest": "9d429381d7597415c59081bdaf14a9d2de1f5aada3f2c323f81811d9fea22c08",
"relationDigest": "d6ab1196f3f4caec17c35f901fefec1f62e9d1034e2118bbbb4be8377e90dc86",
"semanticNameDigest": "14d3f53fbcd4f2a1b595eba4ac8c49dc5e0ac3515f799d2acdcf595dd11549dd",
"typeId": "Part::Common"
}
],
@@ -899,8 +899,8 @@
"name": "Common08",
"ordinal": 2,
"relationCount": 20,
"relationDigest": "dfdf72915217455c1b31cc7c5ba1e7ada26c2311bbb5a566cc64b61e217f65b9",
"semanticNameDigest": "9d429381d7597415c59081bdaf14a9d2de1f5aada3f2c323f81811d9fea22c08",
"relationDigest": "d6ab1196f3f4caec17c35f901fefec1f62e9d1034e2118bbbb4be8377e90dc86",
"semanticNameDigest": "14d3f53fbcd4f2a1b595eba4ac8c49dc5e0ac3515f799d2acdcf595dd11549dd",
"typeId": "Part::Common"
}
]
@@ -2713,8 +2713,8 @@
"name": "Body15",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "835e0cf6f0102faf415757a4b21e47cedf21f35329898ff417f8d7bedc6d9798",
"semanticNameDigest": "9707309dde4d9bda56609872fd2e8d88ea9e7a69313fe8cca3ce33871e97b619",
"relationDigest": "48ca1f5bc04d2b40dee361740cea63e5d7f40bd447abd97af63a6cff9c33ae44",
"semanticNameDigest": "2c5e4fc67634c300b98cdc62c51d57a6248428ef0b9b0973b3a37ffed3336418",
"typeId": "PartDesign::Body"
},
{
@@ -2830,8 +2830,8 @@
"name": "Pocket15",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "adffd9c88c511bb64a85b993d5fb13f30668df6f0c6c1877ba4f1b0826287782",
"semanticNameDigest": "6f05ebd5436a54724d02365700524cc3f13e8979408d51f646e07f870f4ecd19",
"relationDigest": "37cc4db7c553219ced9d96419849ebfab4bad1bb49e33f7406da753a3eb88f95",
"semanticNameDigest": "90c517098693f8d01c88f618db28d8063ab41de7d34c7bebd9fbdaa56aeb24e8",
"typeId": "PartDesign::Pocket"
}
],
@@ -2848,8 +2848,8 @@
"name": "Body15",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "835e0cf6f0102faf415757a4b21e47cedf21f35329898ff417f8d7bedc6d9798",
"semanticNameDigest": "9707309dde4d9bda56609872fd2e8d88ea9e7a69313fe8cca3ce33871e97b619",
"relationDigest": "48ca1f5bc04d2b40dee361740cea63e5d7f40bd447abd97af63a6cff9c33ae44",
"semanticNameDigest": "2c5e4fc67634c300b98cdc62c51d57a6248428ef0b9b0973b3a37ffed3336418",
"typeId": "PartDesign::Body"
},
{
@@ -2965,8 +2965,8 @@
"name": "Pocket15",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "adffd9c88c511bb64a85b993d5fb13f30668df6f0c6c1877ba4f1b0826287782",
"semanticNameDigest": "6f05ebd5436a54724d02365700524cc3f13e8979408d51f646e07f870f4ecd19",
"relationDigest": "37cc4db7c553219ced9d96419849ebfab4bad1bb49e33f7406da753a3eb88f95",
"semanticNameDigest": "90c517098693f8d01c88f618db28d8063ab41de7d34c7bebd9fbdaa56aeb24e8",
"typeId": "PartDesign::Pocket"
}
],
@@ -2983,8 +2983,8 @@
"name": "Body15",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "835e0cf6f0102faf415757a4b21e47cedf21f35329898ff417f8d7bedc6d9798",
"semanticNameDigest": "9707309dde4d9bda56609872fd2e8d88ea9e7a69313fe8cca3ce33871e97b619",
"relationDigest": "48ca1f5bc04d2b40dee361740cea63e5d7f40bd447abd97af63a6cff9c33ae44",
"semanticNameDigest": "2c5e4fc67634c300b98cdc62c51d57a6248428ef0b9b0973b3a37ffed3336418",
"typeId": "PartDesign::Body"
},
{
@@ -3100,8 +3100,8 @@
"name": "Pocket15",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "adffd9c88c511bb64a85b993d5fb13f30668df6f0c6c1877ba4f1b0826287782",
"semanticNameDigest": "6f05ebd5436a54724d02365700524cc3f13e8979408d51f646e07f870f4ecd19",
"relationDigest": "37cc4db7c553219ced9d96419849ebfab4bad1bb49e33f7406da753a3eb88f95",
"semanticNameDigest": "90c517098693f8d01c88f618db28d8063ab41de7d34c7bebd9fbdaa56aeb24e8",
"typeId": "PartDesign::Pocket"
}
]
@@ -3126,8 +3126,8 @@
"name": "Body16",
"ordinal": 0,
"relationCount": 50,
"relationDigest": "2d719df5714859cd44047b2e1df1e8fea9b106aaff263981b48cd31c7f55f998",
"semanticNameDigest": "1a26a90f5303344243a006e0b8c5b6685dc0a713e0ede6046b6529267bcc61b4",
"relationDigest": "789f08ee93078a4993256f4f84aaeebeda55b1e4b85ba320bc3bf1660f61424f",
"semanticNameDigest": "a43643c71e07a6f3cf199cf37eda3d1048f7cdbb62c4b069ad64a42d98380d38",
"typeId": "PartDesign::Body"
},
{
@@ -3243,8 +3243,8 @@
"name": "Pocket16",
"ordinal": 11,
"relationCount": 50,
"relationDigest": "df296e78d31bcb9e05107e9c90c4b5d3ab6b9e5118e65b26d827f4aa0b0c42d5",
"semanticNameDigest": "4f4e7febf92fb183e5aebba6f92b295a71c8333c96030907347a64365afe13b4",
"relationDigest": "5342570780854a405f82bfef7a11730681d8f6b71dfd318e482096b1be058678",
"semanticNameDigest": "406cb7e44499069fbb747666aa20b9fc3070698d033d6becc6ed582f5394981b",
"typeId": "PartDesign::Pocket"
}
],
@@ -3261,8 +3261,8 @@
"name": "Body16",
"ordinal": 0,
"relationCount": 50,
"relationDigest": "2d719df5714859cd44047b2e1df1e8fea9b106aaff263981b48cd31c7f55f998",
"semanticNameDigest": "1a26a90f5303344243a006e0b8c5b6685dc0a713e0ede6046b6529267bcc61b4",
"relationDigest": "789f08ee93078a4993256f4f84aaeebeda55b1e4b85ba320bc3bf1660f61424f",
"semanticNameDigest": "a43643c71e07a6f3cf199cf37eda3d1048f7cdbb62c4b069ad64a42d98380d38",
"typeId": "PartDesign::Body"
},
{
@@ -3378,8 +3378,8 @@
"name": "Pocket16",
"ordinal": 11,
"relationCount": 50,
"relationDigest": "df296e78d31bcb9e05107e9c90c4b5d3ab6b9e5118e65b26d827f4aa0b0c42d5",
"semanticNameDigest": "4f4e7febf92fb183e5aebba6f92b295a71c8333c96030907347a64365afe13b4",
"relationDigest": "5342570780854a405f82bfef7a11730681d8f6b71dfd318e482096b1be058678",
"semanticNameDigest": "406cb7e44499069fbb747666aa20b9fc3070698d033d6becc6ed582f5394981b",
"typeId": "PartDesign::Pocket"
}
],
@@ -3396,8 +3396,8 @@
"name": "Body16",
"ordinal": 0,
"relationCount": 50,
"relationDigest": "2d719df5714859cd44047b2e1df1e8fea9b106aaff263981b48cd31c7f55f998",
"semanticNameDigest": "1a26a90f5303344243a006e0b8c5b6685dc0a713e0ede6046b6529267bcc61b4",
"relationDigest": "789f08ee93078a4993256f4f84aaeebeda55b1e4b85ba320bc3bf1660f61424f",
"semanticNameDigest": "a43643c71e07a6f3cf199cf37eda3d1048f7cdbb62c4b069ad64a42d98380d38",
"typeId": "PartDesign::Body"
},
{
@@ -3513,8 +3513,8 @@
"name": "Pocket16",
"ordinal": 11,
"relationCount": 50,
"relationDigest": "df296e78d31bcb9e05107e9c90c4b5d3ab6b9e5118e65b26d827f4aa0b0c42d5",
"semanticNameDigest": "4f4e7febf92fb183e5aebba6f92b295a71c8333c96030907347a64365afe13b4",
"relationDigest": "5342570780854a405f82bfef7a11730681d8f6b71dfd318e482096b1be058678",
"semanticNameDigest": "406cb7e44499069fbb747666aa20b9fc3070698d033d6becc6ed582f5394981b",
"typeId": "PartDesign::Pocket"
}
]
@@ -3539,8 +3539,8 @@
"name": "Body17",
"ordinal": 0,
"relationCount": 51,
"relationDigest": "28160a0ab8b121b4637d821a472da5a3185218b7e6ec13152eec5ea0b1c9afba",
"semanticNameDigest": "c780d168d3ceaf75ce64dd09012e09a6ccf65e2b66faa339eef3aefde20b0233",
"relationDigest": "18f04373fb3582655d5e225456f985d7c20a0142ffe28ebd325aaf93479007cb",
"semanticNameDigest": "5b0acd2a833d282517f489087eb32b9098dd37092dc93ce41cf62f43e5ec60e1",
"typeId": "PartDesign::Body"
},
{
@@ -3656,8 +3656,8 @@
"name": "Pocket17",
"ordinal": 11,
"relationCount": 51,
"relationDigest": "f5e86d9c1e288997a787cb8faaf9a0e89c4143fb68259c96272723166e3d18c3",
"semanticNameDigest": "a18bf0085100e35287dc55da036619ca6b8675e066ddb1bbd345775572049b67",
"relationDigest": "b4cb276cb4aaa207e7e681898324f517794a3003f8ae49d0c221161f423c4504",
"semanticNameDigest": "2cd5034a729734056e855cc31d2e8652221923fe8a2387aeadf770e406e17369",
"typeId": "PartDesign::Pocket"
}
],
@@ -3674,8 +3674,8 @@
"name": "Body17",
"ordinal": 0,
"relationCount": 51,
"relationDigest": "28160a0ab8b121b4637d821a472da5a3185218b7e6ec13152eec5ea0b1c9afba",
"semanticNameDigest": "c780d168d3ceaf75ce64dd09012e09a6ccf65e2b66faa339eef3aefde20b0233",
"relationDigest": "18f04373fb3582655d5e225456f985d7c20a0142ffe28ebd325aaf93479007cb",
"semanticNameDigest": "5b0acd2a833d282517f489087eb32b9098dd37092dc93ce41cf62f43e5ec60e1",
"typeId": "PartDesign::Body"
},
{
@@ -3791,8 +3791,8 @@
"name": "Pocket17",
"ordinal": 11,
"relationCount": 51,
"relationDigest": "f5e86d9c1e288997a787cb8faaf9a0e89c4143fb68259c96272723166e3d18c3",
"semanticNameDigest": "a18bf0085100e35287dc55da036619ca6b8675e066ddb1bbd345775572049b67",
"relationDigest": "b4cb276cb4aaa207e7e681898324f517794a3003f8ae49d0c221161f423c4504",
"semanticNameDigest": "2cd5034a729734056e855cc31d2e8652221923fe8a2387aeadf770e406e17369",
"typeId": "PartDesign::Pocket"
}
],
@@ -3809,8 +3809,8 @@
"name": "Body17",
"ordinal": 0,
"relationCount": 51,
"relationDigest": "28160a0ab8b121b4637d821a472da5a3185218b7e6ec13152eec5ea0b1c9afba",
"semanticNameDigest": "c780d168d3ceaf75ce64dd09012e09a6ccf65e2b66faa339eef3aefde20b0233",
"relationDigest": "18f04373fb3582655d5e225456f985d7c20a0142ffe28ebd325aaf93479007cb",
"semanticNameDigest": "5b0acd2a833d282517f489087eb32b9098dd37092dc93ce41cf62f43e5ec60e1",
"typeId": "PartDesign::Body"
},
{
@@ -3926,8 +3926,8 @@
"name": "Pocket17",
"ordinal": 11,
"relationCount": 51,
"relationDigest": "f5e86d9c1e288997a787cb8faaf9a0e89c4143fb68259c96272723166e3d18c3",
"semanticNameDigest": "a18bf0085100e35287dc55da036619ca6b8675e066ddb1bbd345775572049b67",
"relationDigest": "b4cb276cb4aaa207e7e681898324f517794a3003f8ae49d0c221161f423c4504",
"semanticNameDigest": "2cd5034a729734056e855cc31d2e8652221923fe8a2387aeadf770e406e17369",
"typeId": "PartDesign::Pocket"
}
]
@@ -3952,8 +3952,8 @@
"name": "Body18",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "c7ff8a40c0d46636da7adfae5790056fca26cd6cfb1a4ed4764e69fb13bda510",
"semanticNameDigest": "30f99433b9fb972746315f6833df916e44638090ee4660a0d4d475c108b8c0e5",
"relationDigest": "ac09a053ed37c89a51ff719fd8dbd3d2995a57046f2a0966bd216d4e43c403e7",
"semanticNameDigest": "6dd306ccbeb4bab8bac339ccbaf7ba1b31277502c2d2575b70ed9fc6292586ac",
"typeId": "PartDesign::Body"
},
{
@@ -4069,8 +4069,8 @@
"name": "Pocket18",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "75aad02d9e5d9292306a954633ab61b5cbd7c527babc918fe6c5f8da9174fa78",
"semanticNameDigest": "3f9d77793d7497e2cb3fa763c437ce1653db71cd335405c7452079abcd4691df",
"relationDigest": "17b7e1a8bf07c76449457915d1054099e92b783a37fb47fa25fbd7332b2e739a",
"semanticNameDigest": "2576a581360b1033746428f0e1092c2f952b4dd3515c615787d151c9a69b1371",
"typeId": "PartDesign::Pocket"
}
],
@@ -4087,8 +4087,8 @@
"name": "Body18",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "c7ff8a40c0d46636da7adfae5790056fca26cd6cfb1a4ed4764e69fb13bda510",
"semanticNameDigest": "30f99433b9fb972746315f6833df916e44638090ee4660a0d4d475c108b8c0e5",
"relationDigest": "ac09a053ed37c89a51ff719fd8dbd3d2995a57046f2a0966bd216d4e43c403e7",
"semanticNameDigest": "6dd306ccbeb4bab8bac339ccbaf7ba1b31277502c2d2575b70ed9fc6292586ac",
"typeId": "PartDesign::Body"
},
{
@@ -4204,8 +4204,8 @@
"name": "Pocket18",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "75aad02d9e5d9292306a954633ab61b5cbd7c527babc918fe6c5f8da9174fa78",
"semanticNameDigest": "3f9d77793d7497e2cb3fa763c437ce1653db71cd335405c7452079abcd4691df",
"relationDigest": "17b7e1a8bf07c76449457915d1054099e92b783a37fb47fa25fbd7332b2e739a",
"semanticNameDigest": "2576a581360b1033746428f0e1092c2f952b4dd3515c615787d151c9a69b1371",
"typeId": "PartDesign::Pocket"
}
],
@@ -4222,8 +4222,8 @@
"name": "Body18",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "c7ff8a40c0d46636da7adfae5790056fca26cd6cfb1a4ed4764e69fb13bda510",
"semanticNameDigest": "30f99433b9fb972746315f6833df916e44638090ee4660a0d4d475c108b8c0e5",
"relationDigest": "ac09a053ed37c89a51ff719fd8dbd3d2995a57046f2a0966bd216d4e43c403e7",
"semanticNameDigest": "6dd306ccbeb4bab8bac339ccbaf7ba1b31277502c2d2575b70ed9fc6292586ac",
"typeId": "PartDesign::Body"
},
{
@@ -4339,8 +4339,8 @@
"name": "Pocket18",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "75aad02d9e5d9292306a954633ab61b5cbd7c527babc918fe6c5f8da9174fa78",
"semanticNameDigest": "3f9d77793d7497e2cb3fa763c437ce1653db71cd335405c7452079abcd4691df",
"relationDigest": "17b7e1a8bf07c76449457915d1054099e92b783a37fb47fa25fbd7332b2e739a",
"semanticNameDigest": "2576a581360b1033746428f0e1092c2f952b4dd3515c615787d151c9a69b1371",
"typeId": "PartDesign::Pocket"
}
]
@@ -4365,8 +4365,8 @@
"name": "Body19",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "7ac48255312af69f45b240feb6e2485d81097a8478eb4e61a227812d9d483b0d",
"semanticNameDigest": "d0a87438a01563d7077b011624fb5a10d60f3914fdc9540171bb833a614d1e53",
"relationDigest": "7c1b00fdf204b6bf50cc126fa488aa048bf528ce3d34cd79028eeb1aeca37587",
"semanticNameDigest": "32b62497980ecd089a353b0aeb7c1f6d0681784ee3fafa2b4b0f277696c439d9",
"typeId": "PartDesign::Body"
},
{
@@ -4482,8 +4482,8 @@
"name": "Pocket19",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "f78a86217cd5baac5c480052f092bc7dad9ae743002b1f1ec81adba0451e6c5e",
"semanticNameDigest": "b199cc1fb725b8269da79831c777bd817683c218387ff70e19e61865106aa96e",
"relationDigest": "bd52e5138be030f440045de2c5b1282ccc97bb45ed47c318307632c97a53eb76",
"semanticNameDigest": "c5e1ad7e6d66764cbc7b457b3dddb90051f27aca8464c4cac7cd185d76108b53",
"typeId": "PartDesign::Pocket"
}
],
@@ -4500,8 +4500,8 @@
"name": "Body19",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "7ac48255312af69f45b240feb6e2485d81097a8478eb4e61a227812d9d483b0d",
"semanticNameDigest": "d0a87438a01563d7077b011624fb5a10d60f3914fdc9540171bb833a614d1e53",
"relationDigest": "7c1b00fdf204b6bf50cc126fa488aa048bf528ce3d34cd79028eeb1aeca37587",
"semanticNameDigest": "32b62497980ecd089a353b0aeb7c1f6d0681784ee3fafa2b4b0f277696c439d9",
"typeId": "PartDesign::Body"
},
{
@@ -4617,8 +4617,8 @@
"name": "Pocket19",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "f78a86217cd5baac5c480052f092bc7dad9ae743002b1f1ec81adba0451e6c5e",
"semanticNameDigest": "b199cc1fb725b8269da79831c777bd817683c218387ff70e19e61865106aa96e",
"relationDigest": "bd52e5138be030f440045de2c5b1282ccc97bb45ed47c318307632c97a53eb76",
"semanticNameDigest": "c5e1ad7e6d66764cbc7b457b3dddb90051f27aca8464c4cac7cd185d76108b53",
"typeId": "PartDesign::Pocket"
}
],
@@ -4635,8 +4635,8 @@
"name": "Body19",
"ordinal": 0,
"relationCount": 52,
"relationDigest": "7ac48255312af69f45b240feb6e2485d81097a8478eb4e61a227812d9d483b0d",
"semanticNameDigest": "d0a87438a01563d7077b011624fb5a10d60f3914fdc9540171bb833a614d1e53",
"relationDigest": "7c1b00fdf204b6bf50cc126fa488aa048bf528ce3d34cd79028eeb1aeca37587",
"semanticNameDigest": "32b62497980ecd089a353b0aeb7c1f6d0681784ee3fafa2b4b0f277696c439d9",
"typeId": "PartDesign::Body"
},
{
@@ -4752,8 +4752,8 @@
"name": "Pocket19",
"ordinal": 11,
"relationCount": 52,
"relationDigest": "f78a86217cd5baac5c480052f092bc7dad9ae743002b1f1ec81adba0451e6c5e",
"semanticNameDigest": "b199cc1fb725b8269da79831c777bd817683c218387ff70e19e61865106aa96e",
"relationDigest": "bd52e5138be030f440045de2c5b1282ccc97bb45ed47c318307632c97a53eb76",
"semanticNameDigest": "c5e1ad7e6d66764cbc7b457b3dddb90051f27aca8464c4cac7cd185d76108b53",
"typeId": "PartDesign::Pocket"
}
]
@@ -4778,8 +4778,8 @@
"name": "Body20",
"ordinal": 0,
"relationCount": 51,
"relationDigest": "8500775ec365d405ce5742c1797724a4d7d0fdcc614b45920d595fe70d107280",
"semanticNameDigest": "b469a4746b4b3ad270d35f15fdbadf79144bfce4f4fcb85fcafc695b0a6ca598",
"relationDigest": "d2c546c1b376c3e3e086e52ec2cbbf631126cacd44fccde2480d1ebc87a1e247",
"semanticNameDigest": "a23e1ffaad552432ef689925f97acfe32a0e379e506dc7eb8f5143f3428d20db",
"typeId": "PartDesign::Body"
},
{
@@ -4895,8 +4895,8 @@
"name": "Pocket20",
"ordinal": 11,
"relationCount": 51,
"relationDigest": "da1a0a03b51a789ae779f02be6a5b1baffdca80673909b1b02e1a85963556cdc",
"semanticNameDigest": "8bed43e2124b82ff3c3548f3be6941b288ce2684ecda993a83b640e36dfc45de",
"relationDigest": "7438bef8b5f9d6f1162ba373d1773cdd62af2ebc52c86b35400bf83c5171f5b1",
"semanticNameDigest": "1462a3875d27d44f54e718dd87c347c2beef89c897744b8ebd59a8fc7943dee9",
"typeId": "PartDesign::Pocket"
}
],
@@ -4913,8 +4913,8 @@
"name": "Body20",
"ordinal": 0,
"relationCount": 51,
"relationDigest": "8500775ec365d405ce5742c1797724a4d7d0fdcc614b45920d595fe70d107280",
"semanticNameDigest": "b469a4746b4b3ad270d35f15fdbadf79144bfce4f4fcb85fcafc695b0a6ca598",
"relationDigest": "d2c546c1b376c3e3e086e52ec2cbbf631126cacd44fccde2480d1ebc87a1e247",
"semanticNameDigest": "a23e1ffaad552432ef689925f97acfe32a0e379e506dc7eb8f5143f3428d20db",
"typeId": "PartDesign::Body"
},
{
@@ -5030,8 +5030,8 @@
"name": "Pocket20",
"ordinal": 11,
"relationCount": 51,
"relationDigest": "da1a0a03b51a789ae779f02be6a5b1baffdca80673909b1b02e1a85963556cdc",
"semanticNameDigest": "8bed43e2124b82ff3c3548f3be6941b288ce2684ecda993a83b640e36dfc45de",
"relationDigest": "7438bef8b5f9d6f1162ba373d1773cdd62af2ebc52c86b35400bf83c5171f5b1",
"semanticNameDigest": "1462a3875d27d44f54e718dd87c347c2beef89c897744b8ebd59a8fc7943dee9",
"typeId": "PartDesign::Pocket"
}
],
@@ -5048,8 +5048,8 @@
"name": "Body20",
"ordinal": 0,
"relationCount": 51,
"relationDigest": "8500775ec365d405ce5742c1797724a4d7d0fdcc614b45920d595fe70d107280",
"semanticNameDigest": "b469a4746b4b3ad270d35f15fdbadf79144bfce4f4fcb85fcafc695b0a6ca598",
"relationDigest": "d2c546c1b376c3e3e086e52ec2cbbf631126cacd44fccde2480d1ebc87a1e247",
"semanticNameDigest": "a23e1ffaad552432ef689925f97acfe32a0e379e506dc7eb8f5143f3428d20db",
"typeId": "PartDesign::Body"
},
{
@@ -5165,8 +5165,8 @@
"name": "Pocket20",
"ordinal": 11,
"relationCount": 51,
"relationDigest": "da1a0a03b51a789ae779f02be6a5b1baffdca80673909b1b02e1a85963556cdc",
"semanticNameDigest": "8bed43e2124b82ff3c3548f3be6941b288ce2684ecda993a83b640e36dfc45de",
"relationDigest": "7438bef8b5f9d6f1162ba373d1773cdd62af2ebc52c86b35400bf83c5171f5b1",
"semanticNameDigest": "1462a3875d27d44f54e718dd87c347c2beef89c897744b8ebd59a8fc7943dee9",
"typeId": "PartDesign::Pocket"
}
]
@@ -5390,8 +5390,8 @@
"name": "Cut22",
"ordinal": 2,
"relationCount": 32,
"relationDigest": "313e61ab643adc1fc132732847c963004f7312c3d35307e5e8abc148c51268a1",
"semanticNameDigest": "0e5cd8a02bc1dbf68d1af01e559cc0766a92c5d58975615f26cd32f166f4044b",
"relationDigest": "996db922ea9b879f9f166d344a02e2113e08405c2f7e3bd2c2c30435891e52c5",
"semanticNameDigest": "ae506e04fc0cc271258f65ef5f83d4db416a88ca0aa24c4a2716fd88428dab04",
"typeId": "Part::Cut"
},
{
@@ -5413,8 +5413,8 @@
"name": "CompositeCut22",
"ordinal": 4,
"relationCount": 32,
"relationDigest": "6f68b991611eb08fa97211478b3ad4ecdef5e79fa5e68cf394cd716f94afcffc",
"semanticNameDigest": "e3075f73dfc637c6f0df4c728ccee90f5178100ef4f51b4c60dd99e0f6e02f5a",
"relationDigest": "590320fac4c896df47311594fe48465129ae822f076d2c13f8631fcc21ec6c50",
"semanticNameDigest": "3ee8ce68cce26a0e5695cfa40a50d484b6b934fd2fb87ba727482d7c7d22eb9d",
"typeId": "Part::Cut"
}
],
@@ -5448,8 +5448,8 @@
"name": "Cut22",
"ordinal": 2,
"relationCount": 32,
"relationDigest": "313e61ab643adc1fc132732847c963004f7312c3d35307e5e8abc148c51268a1",
"semanticNameDigest": "0e5cd8a02bc1dbf68d1af01e559cc0766a92c5d58975615f26cd32f166f4044b",
"relationDigest": "996db922ea9b879f9f166d344a02e2113e08405c2f7e3bd2c2c30435891e52c5",
"semanticNameDigest": "ae506e04fc0cc271258f65ef5f83d4db416a88ca0aa24c4a2716fd88428dab04",
"typeId": "Part::Cut"
},
{
@@ -5471,8 +5471,8 @@
"name": "CompositeCut22",
"ordinal": 4,
"relationCount": 32,
"relationDigest": "6f68b991611eb08fa97211478b3ad4ecdef5e79fa5e68cf394cd716f94afcffc",
"semanticNameDigest": "e3075f73dfc637c6f0df4c728ccee90f5178100ef4f51b4c60dd99e0f6e02f5a",
"relationDigest": "590320fac4c896df47311594fe48465129ae822f076d2c13f8631fcc21ec6c50",
"semanticNameDigest": "3ee8ce68cce26a0e5695cfa40a50d484b6b934fd2fb87ba727482d7c7d22eb9d",
"typeId": "Part::Cut"
}
],
@@ -5506,8 +5506,8 @@
"name": "Cut22",
"ordinal": 2,
"relationCount": 32,
"relationDigest": "313e61ab643adc1fc132732847c963004f7312c3d35307e5e8abc148c51268a1",
"semanticNameDigest": "0e5cd8a02bc1dbf68d1af01e559cc0766a92c5d58975615f26cd32f166f4044b",
"relationDigest": "996db922ea9b879f9f166d344a02e2113e08405c2f7e3bd2c2c30435891e52c5",
"semanticNameDigest": "ae506e04fc0cc271258f65ef5f83d4db416a88ca0aa24c4a2716fd88428dab04",
"typeId": "Part::Cut"
},
{
@@ -5529,8 +5529,8 @@
"name": "CompositeCut22",
"ordinal": 4,
"relationCount": 32,
"relationDigest": "6f68b991611eb08fa97211478b3ad4ecdef5e79fa5e68cf394cd716f94afcffc",
"semanticNameDigest": "e3075f73dfc637c6f0df4c728ccee90f5178100ef4f51b4c60dd99e0f6e02f5a",
"relationDigest": "590320fac4c896df47311594fe48465129ae822f076d2c13f8631fcc21ec6c50",
"semanticNameDigest": "3ee8ce68cce26a0e5695cfa40a50d484b6b934fd2fb87ba727482d7c7d22eb9d",
"typeId": "Part::Cut"
}
]
@@ -5572,8 +5572,8 @@
"name": "Fuse23",
"ordinal": 2,
"relationCount": 66,
"relationDigest": "fb5f594e7ecfd1af640e03fd611c3dcfe307a0b73984a84c5f166cdf1bda8b37",
"semanticNameDigest": "27303087c0b01d8d12cf49d74cce534b6fab860be18f8b3e1cacd39c00352265",
"relationDigest": "968f251a6eb6f3ae7dd3238fff6a4df0da78ce59e04834c0e173fe09b379aa72",
"semanticNameDigest": "0c26153700cd1251e4a8f16adc7a704027e7cd1906781864139b3e8f80b0436b",
"typeId": "Part::Fuse"
},
{
@@ -5595,8 +5595,8 @@
"name": "CompositeCut23",
"ordinal": 4,
"relationCount": 92,
"relationDigest": "5bb05cfc4ff94ba18542e1dd528881023d9432a370bd6bf56356688da522f6de",
"semanticNameDigest": "17abafbaffa74dff1962deb78a26083dcfe3cf61e8b4e12ce62199d0eefa41f5",
"relationDigest": "a77f2e171ed54e5f8cfeba97480a3daddf6ce259da1451940c5759e883177d21",
"semanticNameDigest": "6fc68881ed87e4bfde05198303c7334d0f8a7d98900dbf7f7352342a471d5927",
"typeId": "Part::Cut"
}
],
@@ -5630,8 +5630,8 @@
"name": "Fuse23",
"ordinal": 2,
"relationCount": 66,
"relationDigest": "fb5f594e7ecfd1af640e03fd611c3dcfe307a0b73984a84c5f166cdf1bda8b37",
"semanticNameDigest": "27303087c0b01d8d12cf49d74cce534b6fab860be18f8b3e1cacd39c00352265",
"relationDigest": "968f251a6eb6f3ae7dd3238fff6a4df0da78ce59e04834c0e173fe09b379aa72",
"semanticNameDigest": "0c26153700cd1251e4a8f16adc7a704027e7cd1906781864139b3e8f80b0436b",
"typeId": "Part::Fuse"
},
{
@@ -5653,8 +5653,8 @@
"name": "CompositeCut23",
"ordinal": 4,
"relationCount": 92,
"relationDigest": "5bb05cfc4ff94ba18542e1dd528881023d9432a370bd6bf56356688da522f6de",
"semanticNameDigest": "17abafbaffa74dff1962deb78a26083dcfe3cf61e8b4e12ce62199d0eefa41f5",
"relationDigest": "a77f2e171ed54e5f8cfeba97480a3daddf6ce259da1451940c5759e883177d21",
"semanticNameDigest": "6fc68881ed87e4bfde05198303c7334d0f8a7d98900dbf7f7352342a471d5927",
"typeId": "Part::Cut"
}
],
@@ -5688,8 +5688,8 @@
"name": "Fuse23",
"ordinal": 2,
"relationCount": 66,
"relationDigest": "fb5f594e7ecfd1af640e03fd611c3dcfe307a0b73984a84c5f166cdf1bda8b37",
"semanticNameDigest": "27303087c0b01d8d12cf49d74cce534b6fab860be18f8b3e1cacd39c00352265",
"relationDigest": "968f251a6eb6f3ae7dd3238fff6a4df0da78ce59e04834c0e173fe09b379aa72",
"semanticNameDigest": "0c26153700cd1251e4a8f16adc7a704027e7cd1906781864139b3e8f80b0436b",
"typeId": "Part::Fuse"
},
{
@@ -5711,8 +5711,8 @@
"name": "CompositeCut23",
"ordinal": 4,
"relationCount": 92,
"relationDigest": "5bb05cfc4ff94ba18542e1dd528881023d9432a370bd6bf56356688da522f6de",
"semanticNameDigest": "17abafbaffa74dff1962deb78a26083dcfe3cf61e8b4e12ce62199d0eefa41f5",
"relationDigest": "a77f2e171ed54e5f8cfeba97480a3daddf6ce259da1451940c5759e883177d21",
"semanticNameDigest": "6fc68881ed87e4bfde05198303c7334d0f8a7d98900dbf7f7352342a471d5927",
"typeId": "Part::Cut"
}
]
@@ -5754,8 +5754,8 @@
"name": "Cut24",
"ordinal": 2,
"relationCount": 32,
"relationDigest": "05f84541c1424e27110b860941ad4d17c2120c5b1f874a8572218eca31993e46",
"semanticNameDigest": "ae506e04fc0cc271258f65ef5f83d4db416a88ca0aa24c4a2716fd88428dab04",
"relationDigest": "1ed5f1320e33ded3a77834fdb9d943ee7b234db13649c8a9e51f5acd35031626",
"semanticNameDigest": "e57854d68a7acdcdef26c8cbdc6173317eeb040d08331848717165c8294e685f",
"typeId": "Part::Cut"
},
{
@@ -5777,8 +5777,8 @@
"name": "CompositeCut24",
"ordinal": 4,
"relationCount": 32,
"relationDigest": "0a40b440a48e5ae101c9d7c050170a0bfddb5495b84c4c27f8c80ac85cce73e9",
"semanticNameDigest": "3ee8ce68cce26a0e5695cfa40a50d484b6b934fd2fb87ba727482d7c7d22eb9d",
"relationDigest": "3536dcc7f7c1d21f91e6ca952ffdcc7d06581376a807860fda3bee1f34f68519",
"semanticNameDigest": "57985accd97b0ed3c94f0f8b40227bcf86974fafe5ad3a502e64f30d0f138943",
"typeId": "Part::Cut"
}
],
@@ -5812,8 +5812,8 @@
"name": "Cut24",
"ordinal": 2,
"relationCount": 32,
"relationDigest": "05f84541c1424e27110b860941ad4d17c2120c5b1f874a8572218eca31993e46",
"semanticNameDigest": "ae506e04fc0cc271258f65ef5f83d4db416a88ca0aa24c4a2716fd88428dab04",
"relationDigest": "1ed5f1320e33ded3a77834fdb9d943ee7b234db13649c8a9e51f5acd35031626",
"semanticNameDigest": "e57854d68a7acdcdef26c8cbdc6173317eeb040d08331848717165c8294e685f",
"typeId": "Part::Cut"
},
{
@@ -5835,8 +5835,8 @@
"name": "CompositeCut24",
"ordinal": 4,
"relationCount": 32,
"relationDigest": "0a40b440a48e5ae101c9d7c050170a0bfddb5495b84c4c27f8c80ac85cce73e9",
"semanticNameDigest": "3ee8ce68cce26a0e5695cfa40a50d484b6b934fd2fb87ba727482d7c7d22eb9d",
"relationDigest": "3536dcc7f7c1d21f91e6ca952ffdcc7d06581376a807860fda3bee1f34f68519",
"semanticNameDigest": "57985accd97b0ed3c94f0f8b40227bcf86974fafe5ad3a502e64f30d0f138943",
"typeId": "Part::Cut"
}
],
@@ -5870,8 +5870,8 @@
"name": "Cut24",
"ordinal": 2,
"relationCount": 32,
"relationDigest": "05f84541c1424e27110b860941ad4d17c2120c5b1f874a8572218eca31993e46",
"semanticNameDigest": "ae506e04fc0cc271258f65ef5f83d4db416a88ca0aa24c4a2716fd88428dab04",
"relationDigest": "1ed5f1320e33ded3a77834fdb9d943ee7b234db13649c8a9e51f5acd35031626",
"semanticNameDigest": "e57854d68a7acdcdef26c8cbdc6173317eeb040d08331848717165c8294e685f",
"typeId": "Part::Cut"
},
{
@@ -5893,8 +5893,8 @@
"name": "CompositeCut24",
"ordinal": 4,
"relationCount": 32,
"relationDigest": "0a40b440a48e5ae101c9d7c050170a0bfddb5495b84c4c27f8c80ac85cce73e9",
"semanticNameDigest": "3ee8ce68cce26a0e5695cfa40a50d484b6b934fd2fb87ba727482d7c7d22eb9d",
"relationDigest": "3536dcc7f7c1d21f91e6ca952ffdcc7d06581376a807860fda3bee1f34f68519",
"semanticNameDigest": "57985accd97b0ed3c94f0f8b40227bcf86974fafe5ad3a502e64f30d0f138943",
"typeId": "Part::Cut"
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -56,7 +56,7 @@
"cancel": {
"setup": "Create an active Body with a valid closed Sketch and open PartDesign_Pad.",
"action": "Change Length, observe preview, then cancel the Task.",
"expected": "Preview state is discarded, no Pad is committed and selection, active Body and focus return to their pre-command state."
"expected": "Preview state is discarded, no Pad is committed, the selected profile remains consumed as in native FreeCAD, the active Body is preserved and focus moves from the Pad length field to TaskView."
},
"recovery": {
"setup": "Continue from the failed or cancelled Pad workflow in the same document.",
@@ -83,28 +83,44 @@
},
{
"taskId": "ORA-GUI-WF-002",
"status": "in_progress",
"evidence": []
"status": "completed",
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
]
},
{
"taskId": "ORA-GUI-WF-003",
"status": "pending",
"evidence": []
"status": "completed",
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
]
},
{
"taskId": "ORA-GUI-WF-004",
"status": "pending",
"evidence": []
"status": "completed",
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
]
},
{
"taskId": "ORA-GUI-WF-005",
"status": "pending",
"evidence": []
"status": "completed",
"evidence": [
"config/freecad-gui-workflow-oracle.json",
"scripts/check-freecad-gui-workflow-oracle.mjs"
]
},
{
"taskId": "ORA-GUI-WF-006",
"status": "pending",
"evidence": []
"status": "completed",
"evidence": [
"config/freecad-web-exact-parity-plan.json",
"scripts/check-freecad-gui-workflow-plan.mjs",
"scripts/generate-freecad-active-work-queue.mjs"
]
}
]
}

View File

@@ -0,0 +1,468 @@
{
"schemaVersion": 1,
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"oracleId": "freecad-1.1.1-composite-history-elementmap2"
},
"generatedBy": "./npmw run probe:freecad-recovered-naming-classification",
"checkedBy": "./npmw run check:freecad-recovered-naming-classification",
"nativeProbe": {
"path": "scripts/freecad-composite-history-elementmap-oracle.py",
"bytes": 30200,
"sha256": "8280a3da7396734659399789d7d6878294be7057628a7f18cb2ebeb8c2cdafd7",
"independentRuns": 2
},
"classifications": [
{
"taskId": "TSN-DRIFT-000",
"caseId": "partdesign-plain",
"classification": "allowed_evolution",
"reasonCode": "native-history-stabilizes-after-edit-restore",
"rationale": "FreeCAD changes the Body and Pad naming history after the first Length edit/restore while restoring geometry exactly; the evolved names repeat deterministically and remain stable through save, reopen, and resave.",
"reference": {
"caseId": "partdesign-plain",
"contract": {
"targetObject": "Pad10",
"targetTypeId": "PartDesign::Pad",
"propertyPath": "Length",
"propertyType": "App::PropertyLength",
"finalObject": "Pad10"
},
"values": {
"before": 7,
"edited": 7.75,
"restored": 7
},
"driftOrdinals": [
0,
9
],
"stages": [
{
"ordinal": 0,
"name": "Body10",
"typeId": "PartDesign::Body",
"nominal": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"before": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "fa52eaf3d694f274c37bedfaa576d883eb04d15a8bb4c46b5070dd249e4f77e4",
"semanticNameDigest": "e07d8f0ab682e495d52c97a9d6b90e5118a60b25266785f1fc5b9cf85744ef7d"
},
"edited": {
"geometryDigest": "fed2b972ec166149c219536523b05f1741885d073a6c5dbc7c36e92e047c2a85",
"relationDigest": "48e9b7d748311a779d2c3e84d882ebb0b3023bf33000015f57ed19cbc5a209ac",
"semanticNameDigest": "8f307d5ca4c52c1887be472b56e18442b32d61713c815ca48ca5ab42c49b1ce4"
},
"restored": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"persistence": {
"initial": {
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"reopened": {
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"resaved": {
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
}
}
},
{
"ordinal": 9,
"name": "Pad10",
"typeId": "PartDesign::Pad",
"nominal": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"before": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "66fe58ac4a4e582e5ce5026f59af7afcfbc8b12bd8efc233e66d36e716fea025",
"semanticNameDigest": "7016833e7f7d1ea833c88070c3976df629b312251c0b45da355b937ca2425eaa"
},
"edited": {
"geometryDigest": "fed2b972ec166149c219536523b05f1741885d073a6c5dbc7c36e92e047c2a85",
"relationDigest": "c87b2a99e65ad7ca1f7f42863c6c75ef21b92a7cd5fb04722a9d7fe5fb61509d",
"semanticNameDigest": "e60c184158a6d432b63a52e686588e64b204949b19118add959d63c15895a2b4"
},
"restored": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"persistence": {
"initial": {
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"reopened": {
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"resaved": {
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
}
}
}
],
"checks": {
"propertyRestored": true,
"geometryRestored": true,
"namingEvolved": true,
"restoredMatchesNominal": true,
"persistenceStable": true
}
},
"replay": {
"caseId": "partdesign-plain",
"contract": {
"targetObject": "Pad10",
"targetTypeId": "PartDesign::Pad",
"propertyPath": "Length",
"propertyType": "App::PropertyLength",
"finalObject": "Pad10"
},
"values": {
"before": 7,
"edited": 7.75,
"restored": 7
},
"driftOrdinals": [
0,
9
],
"stages": [
{
"ordinal": 0,
"name": "Body10",
"typeId": "PartDesign::Body",
"nominal": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"before": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "fa52eaf3d694f274c37bedfaa576d883eb04d15a8bb4c46b5070dd249e4f77e4",
"semanticNameDigest": "e07d8f0ab682e495d52c97a9d6b90e5118a60b25266785f1fc5b9cf85744ef7d"
},
"edited": {
"geometryDigest": "fed2b972ec166149c219536523b05f1741885d073a6c5dbc7c36e92e047c2a85",
"relationDigest": "48e9b7d748311a779d2c3e84d882ebb0b3023bf33000015f57ed19cbc5a209ac",
"semanticNameDigest": "8f307d5ca4c52c1887be472b56e18442b32d61713c815ca48ca5ab42c49b1ce4"
},
"restored": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"persistence": {
"initial": {
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"reopened": {
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"resaved": {
"relationDigest": "df337229bd80a0b7942ecc9c4fbb7146cbe9eb3dca9459c093674f02eaee3c65",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
}
}
},
{
"ordinal": 9,
"name": "Pad10",
"typeId": "PartDesign::Pad",
"nominal": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"before": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "66fe58ac4a4e582e5ce5026f59af7afcfbc8b12bd8efc233e66d36e716fea025",
"semanticNameDigest": "7016833e7f7d1ea833c88070c3976df629b312251c0b45da355b937ca2425eaa"
},
"edited": {
"geometryDigest": "fed2b972ec166149c219536523b05f1741885d073a6c5dbc7c36e92e047c2a85",
"relationDigest": "c87b2a99e65ad7ca1f7f42863c6c75ef21b92a7cd5fb04722a9d7fe5fb61509d",
"semanticNameDigest": "e60c184158a6d432b63a52e686588e64b204949b19118add959d63c15895a2b4"
},
"restored": {
"geometryDigest": "2470d037ef123af6ca1a5ff874a20f55d07a66bf56cd92bf3235b3029511be94",
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"persistence": {
"initial": {
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"reopened": {
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"resaved": {
"relationDigest": "999099e645e2fe946dcc016eb3ee0271821854853545306b3d1c06a22f32ad2c",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
}
}
}
],
"checks": {
"propertyRestored": true,
"geometryRestored": true,
"namingEvolved": true,
"restoredMatchesNominal": true,
"persistenceStable": true
}
},
"replayStable": true,
"implementationDefect": false
},
{
"taskId": "TSN-DRIFT-001",
"caseId": "partdesign-midplane",
"classification": "allowed_evolution",
"reasonCode": "native-history-stabilizes-after-edit-restore",
"rationale": "FreeCAD applies the same deterministic history evolution to a Midplane Pad Length edit/restore: Body and Pad geometry returns exactly, and the evolved names remain stable through save, reopen, and resave.",
"reference": {
"caseId": "partdesign-midplane",
"contract": {
"targetObject": "Pad11",
"targetTypeId": "PartDesign::Pad",
"propertyPath": "Length",
"propertyType": "App::PropertyLength",
"finalObject": "Pad11"
},
"values": {
"before": 8,
"edited": 8.75,
"restored": 8
},
"driftOrdinals": [
0,
9
],
"stages": [
{
"ordinal": 0,
"name": "Body11",
"typeId": "PartDesign::Body",
"nominal": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"before": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "0af3ea2e0a408ecb48e05cdb6fe9d8c902448a0fcd5de032b9d277fc18c3506c",
"semanticNameDigest": "e07d8f0ab682e495d52c97a9d6b90e5118a60b25266785f1fc5b9cf85744ef7d"
},
"edited": {
"geometryDigest": "8c54f6f4cca5d847f3a5573265e141a6ba9b073523f7e9bfc2b534c122ac262b",
"relationDigest": "c582774f25bda9641a075a0dd0849138d58a4964f47d9ac23af2e7296e20dfe6",
"semanticNameDigest": "8f307d5ca4c52c1887be472b56e18442b32d61713c815ca48ca5ab42c49b1ce4"
},
"restored": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"persistence": {
"initial": {
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"reopened": {
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"resaved": {
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
}
}
},
{
"ordinal": 9,
"name": "Pad11",
"typeId": "PartDesign::Pad",
"nominal": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"before": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "85322bc9601e07fd55571161c64c91950e5f57303c3d349aeaac2d3f3f1b6dd8",
"semanticNameDigest": "7016833e7f7d1ea833c88070c3976df629b312251c0b45da355b937ca2425eaa"
},
"edited": {
"geometryDigest": "8c54f6f4cca5d847f3a5573265e141a6ba9b073523f7e9bfc2b534c122ac262b",
"relationDigest": "b37bd6d5a67f283d645e407f4f2a71bb9676d8d61fe37ab694ec5b524e6a233c",
"semanticNameDigest": "e60c184158a6d432b63a52e686588e64b204949b19118add959d63c15895a2b4"
},
"restored": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"persistence": {
"initial": {
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"reopened": {
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"resaved": {
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
}
}
}
],
"checks": {
"propertyRestored": true,
"geometryRestored": true,
"namingEvolved": true,
"restoredMatchesNominal": true,
"persistenceStable": true
}
},
"replay": {
"caseId": "partdesign-midplane",
"contract": {
"targetObject": "Pad11",
"targetTypeId": "PartDesign::Pad",
"propertyPath": "Length",
"propertyType": "App::PropertyLength",
"finalObject": "Pad11"
},
"values": {
"before": 8,
"edited": 8.75,
"restored": 8
},
"driftOrdinals": [
0,
9
],
"stages": [
{
"ordinal": 0,
"name": "Body11",
"typeId": "PartDesign::Body",
"nominal": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"before": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "0af3ea2e0a408ecb48e05cdb6fe9d8c902448a0fcd5de032b9d277fc18c3506c",
"semanticNameDigest": "e07d8f0ab682e495d52c97a9d6b90e5118a60b25266785f1fc5b9cf85744ef7d"
},
"edited": {
"geometryDigest": "8c54f6f4cca5d847f3a5573265e141a6ba9b073523f7e9bfc2b534c122ac262b",
"relationDigest": "c582774f25bda9641a075a0dd0849138d58a4964f47d9ac23af2e7296e20dfe6",
"semanticNameDigest": "8f307d5ca4c52c1887be472b56e18442b32d61713c815ca48ca5ab42c49b1ce4"
},
"restored": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"persistence": {
"initial": {
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"reopened": {
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
},
"resaved": {
"relationDigest": "9a9b06f6a9ed4e0960ca994e30be5dcc46b106c040fb3de214c1ad9e04a32df6",
"semanticNameDigest": "0aea366491ac416aec8e6e055434063d2e0645f1f347b1f3b60363ac135c3e85"
}
}
},
{
"ordinal": 9,
"name": "Pad11",
"typeId": "PartDesign::Pad",
"nominal": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"before": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "85322bc9601e07fd55571161c64c91950e5f57303c3d349aeaac2d3f3f1b6dd8",
"semanticNameDigest": "7016833e7f7d1ea833c88070c3976df629b312251c0b45da355b937ca2425eaa"
},
"edited": {
"geometryDigest": "8c54f6f4cca5d847f3a5573265e141a6ba9b073523f7e9bfc2b534c122ac262b",
"relationDigest": "b37bd6d5a67f283d645e407f4f2a71bb9676d8d61fe37ab694ec5b524e6a233c",
"semanticNameDigest": "e60c184158a6d432b63a52e686588e64b204949b19118add959d63c15895a2b4"
},
"restored": {
"geometryDigest": "cd9766573816715b02d2f470bf39f7d25903d9ebd899216f4ca0b1e5b7f5ec61",
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"persistence": {
"initial": {
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"reopened": {
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
},
"resaved": {
"relationDigest": "9681bb9e87e6ac36a624592e0758a16ebca09dcb2a784da2c068ab4d0471e833",
"semanticNameDigest": "6590487bf8f5e5962b6c640db274d950f0fa6d6a44fa97231e72d7587e3aac3e"
}
}
}
],
"checks": {
"propertyRestored": true,
"geometryRestored": true,
"namingEvolved": true,
"restoredMatchesNominal": true,
"persistenceStable": true
}
},
"replayStable": true,
"implementationDefect": false
}
],
"summary": {
"classifiedCases": 2,
"classifiedStages": 4,
"stableSemantics": 0,
"allowedEvolution": 2,
"implementationDefects": 0,
"unknown": 0
}
}

View File

@@ -20,7 +20,7 @@
"id": "EX01",
"title": "Exhaustive FreeCAD oracle and optional dependency baseline",
"tasks": [
{ "id": "EX-ORA-01", "title": "Capture exhaustive runtime objects, properties, commands and GUI states", "priority": "P0", "status": "in_progress", "dependencies": [], "deliverables": ["Runtime oracle for every registered TypeId and command", "Success, failure, disabled and cancel fixtures", "Source-to-runtime trace"], "acceptance": ["All inventory candidates are promoted or explicitly excluded", "No command or property has an unknown runtime state"], "evidence": ["check:freecad-inventory", "check:freecad-type-properties", "check:freecad-gui-commands", "check:freecad-oracle-coverage", "check:freecad-gui-workflow"], "exactBlockedBy": ["The isolated desktop oracle covers 1111 workbench-startup commands in 100 fail-closed shards, 19 source-only commands and 2 context-only commands; the PartDesign Pad success Task workflow is captured, while disabled, failure, cancel, recovery and the remaining command-family workflows are still open"] },
{ "id": "EX-ORA-01", "title": "Capture exhaustive runtime objects, properties, commands and GUI states", "priority": "P0", "status": "in_progress", "dependencies": [], "deliverables": ["Runtime oracle for every registered TypeId and command", "Success, failure, disabled and cancel fixtures", "Source-to-runtime trace"], "acceptance": ["All inventory candidates are promoted or explicitly excluded", "No command or property has an unknown runtime state"], "evidence": ["check:freecad-inventory", "check:freecad-type-properties", "check:freecad-gui-commands", "check:freecad-oracle-coverage", "check:freecad-gui-workflow"], "exactBlockedBy": ["The isolated desktop oracle covers 1111 workbench-startup commands in 100 fail-closed shards, 19 source-only commands and 2 context-only commands; the first PartDesign Pad family now has native success, disabled, failure, cancel and recovery workflows, while the remaining command-family workflows and runtime object/property exclusions are still open"] },
{ "id": "EX-ORA-02", "title": "Expand geometry, history and FCStd golden corpus to every feature family", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Parameterized success and failure corpus", "Native Shape, history, ElementMap2 and StringHasher evidence", "FreeCAD save-reopen-resave evidence"], "acceptance": ["Every editable feature family has boundary and mutation fixtures", "Unknown semantic differences are zero"], "evidence": ["check:freecad-golden-fixtures", "check:freecad-composite-history-elementmap", "check:freecad-golden-coverage", "check:freecad-parameter-mutations", "check:freecad-partdesign-failures", "check:freecad-partdesign-revolution-groove", "check:freecad-partdesign-transform", "check:freecad-part-builders"], "exactBlockedBy": ["Parameter mutation matrix is fail-closed until every family has explicit edit/recompute/recovery and round-trip evidence"] },
{ "id": "EX-ORA-03", "title": "Lock all optional libraries, platform capabilities and license boundaries", "priority": "P1", "status": "pending", "dependencies": ["EX-ORA-01"], "deliverables": ["Optional dependency manifest", "Browser, sidecar or proxy decision per dependency", "Reproducible hashes and licenses"], "acceptance": ["Every optional FreeCAD capability has one executable strategy", "No undeclared host-only dependency affects a claim"], "evidence": ["check:baseline", "check:sbom"], "exactBlockedBy": ["Several desktop-only optional libraries remain proxy or sidecar capabilities"] }
]
@@ -34,7 +34,7 @@
{ "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": "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-tsn-stage-correlation", "check:freecad-fcstd-roundtrip", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["The locked 30-case corpus now passes 30/30 native property mutations, final-shape propagation and 219/219 geometry-stage restores, but 11 PartDesign cases evolve 28 recovered naming-stage digests; the five-stage chain still has 3/5 generic Shape proxies, no rotate mutation family, 5 semantic topology restore drifts, and only 4/361 ordered operation pairs classified"] }
{ "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-tsn-stage-correlation", "check:freecad-fcstd-roundtrip", "check:freecad-exact-history-elementmap-gate", "check:freecad-recovered-naming-classification"], "exactBlockedBy": ["The locked 30-case corpus passes 30/30 native property mutations, final-shape propagation and 219/219 geometry-stage restores; partdesign-plain has classified 2 recovered naming stages as allowed native evolution from two deterministic runs with stable resave, while 10 PartDesign cases/26 recovered naming stages remain unclassified; the five-stage chain still has 3/5 generic Shape proxies, no rotate mutation family, 5 semantic topology restore drifts, and only 4/361 ordered operation pairs classified"] }
]
},
{
@@ -76,7 +76,7 @@
"tasks": [
{ "id": "EX-UI-01", "title": "Complete automated FreeCAD GUI oracle for all application states", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Menu, toolbar, dialog and focus manifest", "Selection-state fixtures", "Desktop screenshots and accessibility trees"], "acceptance": ["Empty, document, selection, task, failure and recovery states have no unknown command state"] , "evidence": ["check:freecad-gui-commands", "check:chrome-app-e2e"], "exactBlockedBy": ["Current GUI oracle does not cover every dynamic state"] },
{ "id": "EX-UI-02", "title": "Match application shell, workbench switching, tree, docks and MDI lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-01", "EX-DOC-04"], "deliverables": ["Dynamic workbench contributions", "Tree and dock lifecycle", "Multi-document tab behavior"], "acceptance": ["Visible, enabled, ordering and focus states match the GUI oracle"] , "evidence": ["check:chrome-app-e2e"], "exactBlockedBy": ["Dynamic command states and full MDI behavior are incomplete"] },
{ "id": "EX-UI-03", "title": "Match Task panels, property editors, dialogs and validation lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-02", "EX-DOC-01"], "deliverables": ["Generic native editor mapping", "Apply/OK/Cancel transactions", "Keyboard and focus traps"], "acceptance": ["All dialogs and tasks match validation, preview, commit, cancel and recovery behavior"] , "evidence": ["check:chrome-app-e2e", "check:chrome-partdesign-lifecycle"], "exactBlockedBy": ["Only representative tasks and dialogs have complete browser replay"] },
{ "id": "EX-UI-03", "title": "Match Task panels, property editors, dialogs and validation lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-02", "EX-DOC-01"], "deliverables": ["Generic native editor mapping", "Apply/OK/Cancel transactions", "Keyboard and focus traps"], "acceptance": ["All dialogs and tasks match validation, preview, commit, cancel and recovery behavior"] , "evidence": ["check:freecad-gui-workflow", "check:chrome-app-e2e", "check:chrome-partdesign-lifecycle"], "exactBlockedBy": ["PartDesign Pad has a complete native success, disabled, failure, cancel and recovery Task lifecycle, but the remaining Task panels, property editors and dialogs do not yet have exhaustive native and browser replay"] },
{ "id": "EX-UI-04", "title": "Match 3D selection, context, shortcuts, status, report and long tasks", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-02", "EX-TSN-04"], "deliverables": ["Object/subshape selection oracle", "Shortcut conflict map", "Progress, cancel and diagnostics lifecycle"], "acceptance": ["Pointer, keyboard, preselection and report states match for every command context"] , "evidence": ["check:chrome-topology", "check:chrome-app-e2e"], "exactBlockedBy": ["All workbench context combinations and browser-reserved shortcuts are not closed"] },
{ "id": "EX-UI-05", "title": "Replay complete workflows for every workbench and close visual/accessibility diffs", "priority": "P1", "status": "pending", "dependencies": ["EX-UI-03", "EX-UI-04", "EX-PLATFORM-01"], "deliverables": ["Per-workbench recordings", "Desktop and mobile visual baselines", "Accessibility and localization matrix"], "acceptance": ["No unregistered UI difference, overlap, unnamed control or blocked core workflow"] , "evidence": ["check:chrome-app-e2e", "check:chrome-qa08"], "exactBlockedBy": ["Per-workbench exact workflow replay is incomplete"] }
]

View File

@@ -390,7 +390,7 @@
{
"path": "sw.js",
"bytes": 1390,
"sha256": "98ec667a774f8370ed654e457b86d4943b2f1eb89e228bd4e7e652b31a51b982"
"sha256": "8b0477955514535bb11cef3733135b67422cc8c085b4331c3b9cb1a1adc9d852"
},
{
"path": "vendor/camotics/camotics-sweep.wasm",
@@ -412,7 +412,7 @@
"status": "signed",
"algorithm": "Ed25519",
"keyId": "bitbybit-local-release-2026",
"payloadSha256": "5172b35d4d194483ac1934a1653259b1c7f5bb78c5ab4a68f7e5033cf2a22b86",
"signature": "FoaYFhliT+/njf8hXECKj5IoCeHPj1MnpbTBIw/FxzYpfyrgQ01nuPkwslM4okUk3d97cncjaXnEkDA7lZBtDw=="
"payloadSha256": "ad5f25aeb7e1382b3172d9919357a9831ac198841e54304a6789665cd21cda31",
"signature": "c8xaS8E7BOThrQKOK9WlCLpMazuqlBZ6eMKbCTt+tzeC0b4TyEEaiVvjelUtFDjo5PK0fVYPeYISrS2895LTDA=="
}
}