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