feat: close ordered pairs and property codec batches
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-17 04:58:46 -04:00
parent 00ed27b7b8
commit d11566403d
265 changed files with 92107 additions and 809 deletions

View File

@@ -90,7 +90,7 @@
}
],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -139,7 +139,7 @@
"binder": {
"support": [],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -237,7 +237,7 @@
}
],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -286,7 +286,7 @@
"binder": {
"support": [],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -335,7 +335,7 @@
"binder": {
"support": [],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -433,7 +433,7 @@
}
],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -531,7 +531,7 @@
}
],
"area": 54,
"shapeId": "shape-mstl5fv3-3",
"shapeId": "shape-mswzv1y3-3",
"state": [
"Up-to-date"
],
@@ -629,7 +629,7 @@
}
],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -727,7 +727,7 @@
}
],
"area": 54,
"shapeId": "shape-mstl5fv3-3",
"shapeId": "shape-mswzv1y3-3",
"state": [
"Up-to-date"
],
@@ -825,7 +825,7 @@
}
],
"area": 54,
"shapeId": "shape-mstl5fv3-3",
"shapeId": "shape-mswzv1y3-3",
"state": [
"Up-to-date"
],
@@ -923,7 +923,7 @@
}
],
"area": 30,
"shapeId": "shape-mstl5fuc-1",
"shapeId": "shape-mswzv1xd-1",
"state": [
"Up-to-date"
],
@@ -1021,7 +1021,7 @@
}
],
"area": 54,
"shapeId": "shape-mstl5fv3-3",
"shapeId": "shape-mswzv1y3-3",
"state": [
"Up-to-date"
],
@@ -1059,8 +1059,8 @@
},
{
"path": "src/facade/mockFacade.ts",
"bytes": 160856,
"sha256": "998605cd6b17b82a2567006e6e34fba89f0a425afd383abad541dae03aebf478"
"bytes": 171839,
"sha256": "5124f81066ec2a292d4c770d9f48b4908e844ac874542f2af34c70c5514514a6"
},
{
"path": "src/facade/geometryRuntime.ts",

View File

@@ -0,0 +1,64 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"inputType": "number",
"label": "Acceleration",
"unit": "mm/s^2",
"beforeValue": 1000,
"afterValue": 500,
"documentVersion": 2,
"dirty": true,
"objectState": "touched",
"errors": []
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedValue": 500,
"loadedType": "App::PropertyAcceleration",
"checkpointVersion": 2,
"recoveryIntegrity": "ok",
"fcstdElement": "Float",
"fcstdValue": "500"
},
"resource": {
"byteLength": 36,
"roundTrip": true,
"released": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:43769/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

View File

@@ -0,0 +1,71 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"areaReadOnly": true,
"beforeText": "20 mm^2",
"afterText": "0 mm^2",
"beforeArea": 20,
"afterArea": 0,
"beforeElementCount": 2,
"afterElementCount": 0,
"triggerLabel": "Clear subshape links",
"documentVersion": 2,
"dirty": true,
"objectState": "touched",
"errors": []
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedArea": 0,
"loadedAreaType": "App::PropertyArea",
"loadedElementCount": 0,
"loadedElementsType": "App::PropertyLinkSubList",
"checkpointVersion": 2,
"recoveryIntegrity": "ok",
"fcstdAreaElement": "Float",
"fcstdAreaValue": "0",
"fcstdElementsElement": "LinkSubList",
"fcstdElementCount": 0
},
"resource": {
"byteLength": 28,
"roundTrip": true,
"released": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:38423/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

View File

@@ -0,0 +1,77 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"inputType": "text",
"label": "Bool list",
"beforeText": "false",
"afterText": "true, false, true, false",
"beforeValue": [
false
],
"afterValue": [
true,
false,
true,
false
],
"documentVersion": 2,
"dirty": true,
"objectState": "touched",
"errors": []
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedValue": [
true,
false,
true,
false
],
"loadedType": "App::PropertyBoolList",
"checkpointVersion": 2,
"recoveryIntegrity": "ok",
"fcstdElement": "BoolList",
"fcstdValue": "[true,false,true,false]"
},
"resource": {
"byteLength": 32,
"roundTrip": true,
"released": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:38629/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

View File

@@ -0,0 +1,84 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"rgbInputType": "color",
"alphaInputType": "number",
"rgbLabel": "Colour RGB",
"alphaLabel": "Colour alpha",
"beforeHex": "#000000",
"afterHex": "#336699",
"beforeAlpha": "1",
"afterAlpha": 0.8,
"beforeValue": [
0,
0,
0,
1
],
"afterValue": [
0.2,
0.4,
0.6,
0.8
],
"documentVersion": 3,
"dirty": true,
"objectState": "touched",
"errors": []
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedValue": [
0.2,
0.4,
0.6,
0.8
],
"loadedType": "App::PropertyColor",
"checkpointVersion": 3,
"recoveryIntegrity": "ok",
"fcstdElement": "PropertyColor",
"fcstdValue": "862362060"
},
"resource": {
"byteLength": 29,
"roundTrip": true,
"released": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:36501/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

View File

@@ -0,0 +1,131 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"rgbInputTypes": [
"color",
"color"
],
"alphaInputTypes": [
"number",
"number"
],
"rgbLabels": [
"Colour list 1 RGB",
"Colour list 2 RGB"
],
"alphaLabels": [
"Colour list 1 alpha",
"Colour list 2 alpha"
],
"addLabel": "Add Colour list color",
"removeLabel": "Remove Colour list 3",
"beforeHex": [
"#000000"
],
"afterHex": [
"#336699",
"#112233"
],
"beforeAlpha": [
"1"
],
"afterAlpha": [
0.8,
0.4
],
"beforeValue": [
[
0,
0,
0,
1
]
],
"afterValue": [
[
0.2,
0.4,
0.6,
0.8
],
[
0.06666666666666667,
0.13333333333333333,
0.2,
0.4
]
],
"beforeItemCount": 1,
"peakItemCount": 3,
"afterItemCount": 2,
"documentVersion": 8,
"dirty": true,
"objectState": "touched",
"errors": []
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedValue": [
[
0.2,
0.4,
0.6,
0.8
],
[
0.06666666666666667,
0.13333333333333333,
0.2,
0.4
]
],
"loadedType": "App::PropertyColorList",
"checkpointVersion": 8,
"recoveryIntegrity": "ok",
"fcstdElement": "ColorList",
"fcstdValue": "[[0.2,0.4,0.6,0.8],[0.06666666666666667,0.13333333333333333,0.2,0.4]]",
"fcstdResourcePath": "ColourList",
"fcstdResourceBytes": 12
},
"resource": {
"byteLength": 33,
"roundTrip": true,
"released": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:40471/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

View File

@@ -0,0 +1,83 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"inputTypes": [
"number",
"number",
"number"
],
"labels": [
"Normal x",
"Normal y",
"Normal z"
],
"beforeValue": {
"x": 0,
"y": 0,
"z": 1
},
"afterValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"documentVersion": 4,
"dirty": true,
"objectState": "touched",
"errors": []
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"loadedType": "App::PropertyDirection",
"checkpointVersion": 4,
"recoveryIntegrity": "ok",
"fcstdElement": "PropertyVector",
"fcstdValue": "{\"x\":0.25,\"y\":-0.5,\"z\":1.5}"
},
"resource": {
"byteLength": 33,
"roundTrip": true,
"released": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:43033/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

View File

@@ -0,0 +1,63 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"inputType": "text",
"label": "File name",
"beforeValue": "project-files/initial.obj",
"afterValue": "project-files/chrome-updated.obj",
"documentVersion": 2,
"dirty": true,
"objectState": "touched",
"errors": []
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedValue": "project-files/chrome-updated.obj",
"loadedType": "App::PropertyFile",
"checkpointVersion": 2,
"recoveryIntegrity": "ok",
"fcstdElement": "String",
"fcstdValue": "project-files/chrome-updated.obj"
},
"resource": {
"byteLength": 63,
"roundTrip": true,
"released": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:45939/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

View File

@@ -0,0 +1,85 @@
{
"schemaVersion": 1,
"status": "pass",
"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,
"ui": {
"inputType": "file",
"label": "Embedded file",
"beforeName": "Empty",
"afterName": "chrome-resource.bin",
"afterValue": {
"schemaVersion": 1,
"archiveName": "chrome-resource.bin",
"resourceHash": "934b31426acd0c2b98cddae880e72404534f5656e5e82cf1ab15ad661f8f3b2b",
"byteLength": 16,
"mediaType": "application/octet-stream"
},
"documentVersion": 2,
"dirty": true,
"objectState": "touched",
"notices": [
"chrome-resource.bin embedded"
]
},
"persistence": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"savedMode": "sqlite-opfs",
"loadedValue": {
"schemaVersion": 1,
"archiveName": "chrome-resource.bin",
"resourceHash": "934b31426acd0c2b98cddae880e72404534f5656e5e82cf1ab15ad661f8f3b2b",
"byteLength": 16,
"mediaType": "application/octet-stream"
},
"loadedType": "App::PropertyFileIncluded",
"checkpointVersion": 2,
"recoveryIntegrity": "ok",
"fcstdElement": "FileIncluded",
"fcstdResourcePath": "chrome-resource.bin",
"fcstdResourceBytes": 16,
"fcstdResourceMatches": true
},
"resource": {
"documentByteLength": 16,
"documentRoundTrip": true,
"independentByteLength": 48,
"independentRoundTrip": true,
"independentReleased": true,
"markerRemoved": true
},
"worker": {
"constructed": [
{
"name": "bitbybit-persistence",
"url": "http://127.0.0.1:37353/src/facade/persistenceWorker.ts?worker_file&type=module"
}
],
"requestTypes": [
"initialize",
"put-resource",
"save-document",
"load-document",
"load-checkpoint",
"recovery-report",
"get-resource",
"get-resource",
"put-resource",
"get-resource",
"release-resource",
"get-resource",
"dispose"
],
"terminated": [
"bitbybit-persistence"
]
},
"release": {
"shapeCount": 0,
"kernelReferenceCount": 0,
"workerTerminated": true
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -8,5 +8,540 @@
"ordering": "completed task IDs must form a contiguous prefix of the generated follow-up queue",
"evidence": "every completed task must name at least one machine-checkable artifact or focused check"
},
"completedTasks": []
"completedTasks": [
{
"id": "PROP-app-propertyacceleration-A",
"evidence": [
"config/freecad-property-acceleration-inventory.json",
"check:freecad-property-acceleration-inventory"
]
},
{
"id": "PROP-app-propertyacceleration-B",
"evidence": [
"config/freecad-property-acceleration-success.json",
"check:freecad-property-acceleration-success"
]
},
{
"id": "PROP-app-propertyacceleration-C",
"evidence": [
"config/freecad-property-acceleration-failure.json",
"check:freecad-property-acceleration-failure"
]
},
{
"id": "PROP-app-propertyacceleration-D",
"evidence": [
"config/freecad-property-acceleration-mutation.json",
"check:freecad-property-acceleration-mutation"
]
},
{
"id": "PROP-app-propertyacceleration-E",
"evidence": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"test:freecad-property-acceleration-facade"
]
},
{
"id": "PROP-app-propertyacceleration-F",
"evidence": [
"tests/propertyAccelerationTransaction.test.ts",
"test:freecad-property-acceleration-transaction"
]
},
{
"id": "PROP-app-propertyacceleration-G",
"evidence": [
"config/freecad-property-acceleration-roundtrip.json",
"check:freecad-property-acceleration-roundtrip"
]
},
{
"id": "PROP-app-propertyacceleration-H",
"evidence": [
"config/chrome-property-acceleration-verification.json",
"check:chrome-property-acceleration"
]
},
{
"id": "PROP-app-propertyacceleration-I",
"evidence": [
"config/freecad-property-acceleration-promotion.json",
"check:freecad-property-acceleration-promotion"
]
},
{
"id": "PROP-app-propertyarea-A",
"evidence": [
"config/freecad-property-area-inventory.json",
"check:freecad-property-area-inventory"
]
},
{
"id": "PROP-app-propertyarea-B",
"evidence": [
"config/freecad-property-area-success.json",
"check:freecad-property-area-success"
]
},
{
"id": "PROP-app-propertyarea-C",
"evidence": [
"config/freecad-property-area-failure.json",
"check:freecad-property-area-failure"
]
},
{
"id": "PROP-app-propertyarea-D",
"evidence": [
"config/freecad-property-area-mutation.json",
"check:freecad-property-area-mutation"
]
},
{
"id": "PROP-app-propertyarea-E",
"evidence": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"tests/propertyAreaFacade.test.ts",
"test:freecad-property-area-facade"
]
},
{
"id": "PROP-app-propertyarea-F",
"evidence": [
"tests/propertyAreaTransaction.test.ts",
"test:freecad-property-area-transaction"
]
},
{
"id": "PROP-app-propertyarea-G",
"evidence": [
"config/freecad-property-area-roundtrip.json",
"check:freecad-property-area-roundtrip"
]
},
{
"id": "PROP-app-propertyarea-H",
"evidence": [
"config/chrome-property-area-verification.json",
"check:chrome-property-area"
]
},
{
"id": "PROP-app-propertyarea-I",
"evidence": [
"config/freecad-property-area-promotion.json",
"check:freecad-property-area-promotion"
]
},
{
"id": "PROP-app-propertyboollist-A",
"evidence": [
"config/freecad-property-boollist-inventory.json",
"check:freecad-property-boollist-inventory"
]
},
{
"id": "PROP-app-propertyboollist-B",
"evidence": [
"config/freecad-property-boollist-success.json",
"check:freecad-property-boollist-success"
]
},
{
"id": "PROP-app-propertyboollist-C",
"evidence": [
"config/freecad-property-boollist-failure.json",
"check:freecad-property-boollist-failure"
]
},
{
"id": "PROP-app-propertyboollist-D",
"evidence": [
"config/freecad-property-boollist-mutation.json",
"check:freecad-property-boollist-mutation"
]
},
{
"id": "PROP-app-propertyboollist-E",
"evidence": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyBoolListFacade.test.ts",
"test:freecad-property-boollist-facade"
]
},
{
"id": "PROP-app-propertyboollist-F",
"evidence": [
"tests/propertyBoolListTransaction.test.ts",
"test:freecad-property-boollist-transaction"
]
},
{
"id": "PROP-app-propertyboollist-G",
"evidence": [
"config/freecad-property-boollist-roundtrip.json",
"check:freecad-property-boollist-roundtrip"
]
},
{
"id": "PROP-app-propertyboollist-H",
"evidence": [
"config/chrome-property-boollist-verification.json",
"check:chrome-property-boollist"
]
},
{
"id": "PROP-app-propertyboollist-I",
"evidence": [
"config/freecad-property-boollist-promotion.json",
"check:freecad-property-boollist-promotion"
]
},
{
"id": "PROP-app-propertycolor-A",
"evidence": [
"config/freecad-property-color-inventory.json",
"check:freecad-property-color-inventory"
]
},
{
"id": "PROP-app-propertycolor-B",
"evidence": [
"config/freecad-property-color-success.json",
"check:freecad-property-color-success"
]
},
{
"id": "PROP-app-propertycolor-C",
"evidence": [
"config/freecad-property-color-failure.json",
"check:freecad-property-color-failure"
]
},
{
"id": "PROP-app-propertycolor-D",
"evidence": [
"config/freecad-property-color-mutation.json",
"check:freecad-property-color-mutation"
]
},
{
"id": "PROP-app-propertycolor-E",
"evidence": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyColorFacade.test.ts",
"test:freecad-property-color-facade"
]
},
{
"id": "PROP-app-propertycolor-F",
"evidence": [
"tests/propertyColorTransaction.test.ts",
"test:freecad-property-color-transaction"
]
},
{
"id": "PROP-app-propertycolor-G",
"evidence": [
"config/freecad-property-color-roundtrip.json",
"check:freecad-property-color-roundtrip"
]
},
{
"id": "PROP-app-propertycolor-H",
"evidence": [
"config/chrome-property-color-verification.json",
"check:chrome-property-color"
]
},
{
"id": "PROP-app-propertycolor-I",
"evidence": [
"config/freecad-property-color-promotion.json",
"check:freecad-property-color-promotion"
]
},
{
"id": "PROP-app-propertycolorlist-A",
"evidence": [
"config/freecad-property-colorlist-inventory.json",
"check:freecad-property-colorlist-inventory"
]
},
{
"id": "PROP-app-propertycolorlist-B",
"evidence": [
"config/freecad-property-colorlist-success.json",
"check:freecad-property-colorlist-success"
]
},
{
"id": "PROP-app-propertycolorlist-C",
"evidence": [
"config/freecad-property-colorlist-failure.json",
"check:freecad-property-colorlist-failure"
]
},
{
"id": "PROP-app-propertycolorlist-D",
"evidence": [
"config/freecad-property-colorlist-mutation.json",
"check:freecad-property-colorlist-mutation"
]
},
{
"id": "PROP-app-propertycolorlist-E",
"evidence": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyColorListFacade.test.ts",
"test:freecad-property-colorlist-facade"
]
},
{
"id": "PROP-app-propertycolorlist-F",
"evidence": [
"tests/propertyColorListTransaction.test.ts",
"test:freecad-property-colorlist-transaction"
]
},
{
"id": "PROP-app-propertycolorlist-G",
"evidence": [
"config/freecad-property-colorlist-roundtrip.json",
"check:freecad-property-colorlist-roundtrip"
]
},
{
"id": "PROP-app-propertycolorlist-H",
"evidence": [
"config/chrome-property-colorlist-verification.json",
"check:chrome-property-colorlist"
]
},
{
"id": "PROP-app-propertycolorlist-I",
"evidence": [
"config/freecad-property-colorlist-promotion.json",
"check:freecad-property-colorlist-promotion"
]
},
{
"id": "PROP-app-propertydirection-A",
"evidence": [
"config/freecad-property-direction-inventory.json",
"check:freecad-property-direction-inventory"
]
},
{
"id": "PROP-app-propertydirection-B",
"evidence": [
"config/freecad-property-direction-success.json",
"check:freecad-property-direction-success"
]
},
{
"id": "PROP-app-propertydirection-C",
"evidence": [
"config/freecad-property-direction-failure.json",
"check:freecad-property-direction-failure"
]
},
{
"id": "PROP-app-propertydirection-D",
"evidence": [
"config/freecad-property-direction-mutation.json",
"check:freecad-property-direction-mutation"
]
},
{
"id": "PROP-app-propertydirection-E",
"evidence": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyDirectionFacade.test.ts",
"test:freecad-property-direction-facade"
]
},
{
"id": "PROP-app-propertydirection-F",
"evidence": [
"tests/propertyDirectionTransaction.test.ts",
"test:freecad-property-direction-transaction"
]
},
{
"id": "PROP-app-propertydirection-G",
"evidence": [
"config/freecad-property-direction-roundtrip.json",
"check:freecad-property-direction-roundtrip"
]
},
{
"id": "PROP-app-propertydirection-H",
"evidence": [
"config/chrome-property-direction-verification.json",
"check:chrome-property-direction"
]
},
{
"id": "PROP-app-propertydirection-I",
"evidence": [
"config/freecad-property-direction-promotion.json",
"check:freecad-property-direction-promotion"
]
},
{
"id": "PROP-app-propertyfile-A",
"evidence": [
"config/freecad-property-file-inventory.json",
"check:freecad-property-file-inventory"
]
},
{
"id": "PROP-app-propertyfile-B",
"evidence": [
"config/freecad-property-file-success.json",
"check:freecad-property-file-success"
]
},
{
"id": "PROP-app-propertyfile-C",
"evidence": [
"config/freecad-property-file-failure.json",
"check:freecad-property-file-failure"
]
},
{
"id": "PROP-app-propertyfile-D",
"evidence": [
"config/freecad-property-file-mutation.json",
"check:freecad-property-file-mutation"
]
},
{
"id": "PROP-app-propertyfile-E",
"evidence": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyFileFacade.test.ts",
"test:freecad-property-file-facade"
]
},
{
"id": "PROP-app-propertyfile-F",
"evidence": [
"tests/propertyFileTransaction.test.ts",
"test:freecad-property-file-transaction"
]
},
{
"id": "PROP-app-propertyfile-G",
"evidence": [
"config/freecad-property-file-roundtrip.json",
"check:freecad-property-file-roundtrip"
]
},
{
"id": "PROP-app-propertyfile-H",
"evidence": [
"config/chrome-property-file-verification.json",
"check:chrome-property-file"
]
},
{
"id": "PROP-app-propertyfile-I",
"evidence": [
"config/freecad-property-file-promotion.json",
"check:freecad-property-file-promotion"
]
},
{
"id": "PROP-app-propertyfileincluded-A",
"evidence": [
"config/freecad-property-fileincluded-inventory.json",
"check:freecad-property-fileincluded-inventory"
]
},
{
"id": "PROP-app-propertyfileincluded-B",
"evidence": [
"config/freecad-property-fileincluded-success.json",
"check:freecad-property-fileincluded-success"
]
},
{
"id": "PROP-app-propertyfileincluded-C",
"evidence": [
"config/freecad-property-fileincluded-failure.json",
"check:freecad-property-fileincluded-failure"
]
},
{
"id": "PROP-app-propertyfileincluded-D",
"evidence": [
"config/freecad-property-fileincluded-mutation.json",
"check:freecad-property-fileincluded-mutation"
]
},
{
"id": "PROP-app-propertyfileincluded-E",
"evidence": [
"src/facade/includedFile.ts",
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyFileIncludedFacade.test.ts",
"test:freecad-property-fileincluded-facade"
]
},
{
"id": "PROP-app-propertyfileincluded-F",
"evidence": [
"tests/propertyFileIncludedTransaction.test.ts",
"test:freecad-property-fileincluded-transaction"
]
},
{
"id": "PROP-app-propertyfileincluded-G",
"evidence": [
"config/freecad-property-fileincluded-roundtrip.json",
"check:freecad-property-fileincluded-roundtrip"
]
},
{
"id": "PROP-app-propertyfileincluded-H",
"evidence": [
"config/chrome-property-fileincluded-verification.json",
"check:chrome-property-fileincluded"
]
},
{
"id": "PROP-app-propertyfileincluded-I",
"evidence": [
"config/freecad-property-fileincluded-promotion.json",
"check:freecad-property-fileincluded-promotion"
]
}
]
}

View File

@@ -7,8 +7,8 @@
},
"source": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 4699380,
"sha256": "30ffbbdb4139a682486e6fed482a8d8d8a88c287a38dfec8d814e38f4e70fc80"
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"runtime": {
"registeredObjectTypes": 352,
@@ -37,22 +37,22 @@
},
"supportSummary": {
"native-editable-codec": {
"typeCount": 22,
"recordCount": 4304
"typeCount": 30,
"recordCount": 4361
},
"native-specialized-codec": {
"typeCount": 5,
"recordCount": 683
},
"opaque-fcstd-proxy": {
"typeCount": 58,
"recordCount": 523
"typeCount": 50,
"recordCount": 466
}
},
"types": [
{
"typeId": "App::PropertyAcceleration",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 1,
"objectTypeCount": 1,
"statusNames": []
@@ -71,7 +71,7 @@
},
{
"typeId": "App::PropertyArea",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 1,
"objectTypeCount": 1,
"statusNames": [
@@ -100,7 +100,7 @@
},
{
"typeId": "App::PropertyBoolList",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 7,
"objectTypeCount": 7,
"statusNames": [
@@ -111,21 +111,21 @@
},
{
"typeId": "App::PropertyColor",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 8,
"objectTypeCount": 8,
"statusNames": []
},
{
"typeId": "App::PropertyColorList",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 2,
"objectTypeCount": 2,
"statusNames": []
},
{
"typeId": "App::PropertyDirection",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 2,
"objectTypeCount": 2,
"statusNames": []
@@ -165,14 +165,14 @@
},
{
"typeId": "App::PropertyFile",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 16,
"objectTypeCount": 12,
"statusNames": []
},
{
"typeId": "App::PropertyFileIncluded",
"support": "opaque-fcstd-proxy",
"support": "native-editable-codec",
"recordCount": 20,
"objectTypeCount": 15,
"statusNames": [
@@ -902,10 +902,10 @@
},
"harness": {
"path": "scripts/run-freecad-native-property-semantics.mjs",
"bytes": 6166,
"sha256": "f6fcab14a46c9e7597f10808b31eb10cd5196bd90144c5b6a7a50e6993a1c3f6"
"bytes": 6615,
"sha256": "fad232fd5a013d40639069df2f8752f04fc5d373c6a7a7ece8ed3276612af9f3"
},
"exactPromotionReady": false,
"exactBlocker": "58 runtime property types and 523 records remain opaque-only; complete native document and property semantics",
"generatedAt": "2026-08-14T22:37:52.376Z"
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics",
"generatedAt": "2026-08-17T08:49:24.621Z"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,193 @@
{
"baselineId": "freecad-1.1.1-property-acceleration-failure",
"cancellationBoundary": {
"classification": "synchronous-property-setter",
"reason": "no-native-cancel-hook",
"replacement": "abort-active-document-transaction",
"supported": false
},
"disabled": {
"after": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"afterObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"before": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"beforeObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"classification": "editor-read-only-and-python-immutable",
"editorMode": [
"ReadOnly"
],
"exception": {
"message": "Object attribute 'Acceleration' is read-only",
"type": "AttributeError"
},
"objectsPreserved": true,
"requested": "750 mm/s^2",
"restoredEditorMode": [],
"restoredStatus": [],
"status": [
"Immutable",
"ReadOnly"
],
"valuePreserved": true
},
"documentIntegrity": {
"finalObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"initialObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"objectCount": 1,
"objectsPreserved": true
},
"failures": [
{
"after": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"afterObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"before": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"beforeObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"exception": {
"message": "Not matching Unit!",
"type": "ArithmeticError"
},
"id": "wrong-dimension",
"objectsPreserved": true,
"polluted": false,
"requested": "5 mm",
"valuePreserved": true
},
{
"after": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"afterObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"before": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"beforeObjects": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"exception": {
"message": "syntax error",
"type": "ParserError"
},
"id": "malformed-text",
"objectsPreserved": true,
"polluted": false,
"requested": "not-a-quantity",
"valuePreserved": true
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"initial": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"object": {
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
},
"property": {
"name": "Acceleration",
"typeId": "App::PropertyAcceleration"
},
"schemaVersion": 1,
"status": "pass",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 1,
"name": "property-acceleration-cancel"
},
"afterAbort": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"before": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"edited": {
"numeric": 250,
"raw": "250.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
},
"objectsAfter": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"objectsBefore": [
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"objectsRestored": true,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"restored": true,
"undoMode": 1
}
}

View File

@@ -0,0 +1,49 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyAcceleration",
"recordCount": 1,
"records": [
{
"objectTypeId": "Robot::TrajectoryDressUpObject",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Acceleration",
"group": "TrajectoryDressUp",
"status": [],
"defaultRaw": "1000.0 mm/s^2",
"valueModel": {
"kind": "quantity",
"dimension": "length/time^2",
"defaultValue": 1000,
"defaultUnit": "mm/s^2",
"acceptedBoundaryEvidence": "inventory-only; value and boundary acceptance remain pending in phase B/C"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "Robot::TrajectoryDressUpObject",
"source": "Document.supportedTypes runtime inventory"
}
}
],
"source": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

View File

@@ -0,0 +1,347 @@
{
"baselineId": "freecad-1.1.1-property-acceleration-mutation",
"before": {
"editorMode": [],
"mustExecute": false,
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"shape": {
"applicable": false
},
"source": {
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
"statusString": "Valid",
"trajectory": {
"contentSha256": "1a29d89dac9b062e0ea210375b9aeb1f7ada2ed763939e339eb31c05d4ee678f",
"duration": 0.141421356,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 1000,
"base": 0,
"continuous": false,
"name": "Pt",
"position": [
1,
2,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 1000,
"base": 0,
"continuous": false,
"name": "Pt1",
"position": [
4,
6,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
}
]
},
"useAcceleration": true,
"value": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
"classification": {
"geometry": "not-applicable-no-shape-property",
"propertyChanged": true,
"propertyRestored": true,
"semanticStateRestored": true,
"trajectoryChanged": true,
"trajectoryRestored": true
},
"document": {
"objectsBefore": [
{
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"objectsPreserved": true,
"objectsRestored": [
{
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
]
},
"edited": {
"editorMode": [],
"mustExecute": false,
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"shape": {
"applicable": false
},
"source": {
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
"statusString": "Valid",
"trajectory": {
"contentSha256": "a7febf338d0c6527d9ad31e709f379092fd6f0144714ee29f973cd77567ecf2c",
"duration": 0.2,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 500,
"base": 0,
"continuous": false,
"name": "Pt",
"position": [
1,
2,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 500,
"base": 0,
"continuous": false,
"name": "Pt1",
"position": [
4,
6,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
}
]
},
"useAcceleration": true,
"value": {
"numeric": 500,
"raw": "500.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"object": {
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
},
"property": {
"name": "Acceleration",
"typeId": "App::PropertyAcceleration"
},
"recompute": {
"edit": 1,
"initial": 2,
"restore": 1
},
"restored": {
"editorMode": [],
"mustExecute": false,
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"shape": {
"applicable": false
},
"source": {
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
"statusString": "Valid",
"trajectory": {
"contentSha256": "1a29d89dac9b062e0ea210375b9aeb1f7ada2ed763939e339eb31c05d4ee678f",
"duration": 0.141421356,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 1000,
"base": 0,
"continuous": false,
"name": "Pt",
"position": [
1,
2,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 1000,
"base": 0,
"continuous": false,
"name": "Pt1",
"position": [
4,
6,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
}
]
},
"useAcceleration": true,
"value": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
"schemaVersion": 1,
"source": {
"before": {
"contentSha256": "cb93c2855ce67ed800416d985edfe22d80035a3313015573d78252bc17619db9",
"duration": 0.447213595,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 100,
"base": 0,
"continuous": false,
"name": "Pt",
"position": [
1,
2,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 100,
"base": 0,
"continuous": false,
"name": "Pt1",
"position": [
4,
6,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
}
]
},
"edited": {
"contentSha256": "cb93c2855ce67ed800416d985edfe22d80035a3313015573d78252bc17619db9",
"duration": 0.447213595,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 100,
"base": 0,
"continuous": false,
"name": "Pt",
"position": [
1,
2,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 100,
"base": 0,
"continuous": false,
"name": "Pt1",
"position": [
4,
6,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
}
]
},
"preserved": true,
"restored": {
"contentSha256": "cb93c2855ce67ed800416d985edfe22d80035a3313015573d78252bc17619db9",
"duration": 0.447213595,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 100,
"base": 0,
"continuous": false,
"name": "Pt",
"position": [
1,
2,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 100,
"base": 0,
"continuous": false,
"name": "Pt1",
"position": [
4,
6,
3
],
"tool": 0,
"type": "LIN",
"velocity": 2000
}
]
}
},
"status": "pass",
"touchedAfterEdit": {
"mustExecute": false,
"objectState": [
"Touched"
],
"value": {
"numeric": 500,
"raw": "500.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
}
}

View File

@@ -0,0 +1,66 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertyacceleration-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyAcceleration",
"recordCount": 1,
"phaseEvidence": {
"A": [
"config/freecad-property-acceleration-inventory.json",
"check:freecad-property-acceleration-inventory"
],
"B": [
"config/freecad-property-acceleration-success.json",
"check:freecad-property-acceleration-success"
],
"C": [
"config/freecad-property-acceleration-failure.json",
"check:freecad-property-acceleration-failure"
],
"D": [
"config/freecad-property-acceleration-mutation.json",
"check:freecad-property-acceleration-mutation"
],
"E": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"test:freecad-property-acceleration-facade"
],
"F": [
"tests/propertyAccelerationTransaction.test.ts",
"test:freecad-property-acceleration-transaction"
],
"G": [
"config/freecad-property-acceleration-roundtrip.json",
"check:freecad-property-acceleration-roundtrip"
],
"H": [
"config/chrome-property-acceleration-verification.json",
"check:chrome-property-acceleration"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "finite-number-mm/s^2",
"fcstdElement": "Float",
"nativeRoundTripValue": 500,
"browserRoundTripValue": 500,
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.800Z"
}

View File

@@ -0,0 +1,331 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-acceleration-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-acceleration-roundtrip/native-initial.FCStd",
"bytes": 1625,
"sha256": "121b9ef55520cbea76f85d4a462791f22593743680c7c8813c84a06ed092695e"
},
"webEdited": {
"path": ".cache/freecad/property-acceleration-roundtrip/web-edited.FCStd",
"bytes": 1455,
"sha256": "6c9f69279012adfaba3e3093448d343a5829a5c34df7fc3f2f3799a625fb8a70"
},
"nativeResaved": {
"path": ".cache/freecad/property-acceleration-roundtrip/native-resaved.FCStd",
"bytes": 1629,
"sha256": "0a6d34aba0c69b6dd52424f3d1c35bc096b8ca6087e96903b9ada9a1b257cbd9"
}
},
"nativeInitial": {
"object": {
"editorMode": [],
"name": "AccelerationProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyAcceleration",
"source": {
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"trajectory": {
"contentSha256": "1a29d89dac9b062e0ea210375b9aeb1f7ada2ed763939e339eb31c05d4ee678f",
"duration": 0.141421356,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 1000,
"name": "Pt",
"position": [
1,
2,
3
],
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 1000,
"name": "Pt1",
"position": [
4,
6,
3
],
"type": "LIN",
"velocity": 2000
}
]
},
"typeId": "Robot::TrajectoryDressUpObject",
"useAcceleration": true,
"value": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
"objectSet": [
{
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"sourceTrajectory": {
"contentSha256": "cb93c2855ce67ed800416d985edfe22d80035a3313015573d78252bc17619db9",
"duration": 0.447213595,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 100,
"name": "Pt",
"position": [
1,
2,
3
],
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 100,
"name": "Pt1",
"position": [
4,
6,
3
],
"type": "LIN",
"velocity": 2000
}
]
}
},
"web": {
"before": {
"name": "Acceleration",
"typeId": "App::PropertyAcceleration",
"element": "Float",
"value": "1000.0000000000000000"
},
"after": {
"name": "Acceleration",
"typeId": "App::PropertyAcceleration",
"element": "Float",
"value": "500"
},
"objectSetPreserved": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 0,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"object": {
"editorMode": [],
"name": "AccelerationProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyAcceleration",
"source": {
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"trajectory": {
"contentSha256": "a7febf338d0c6527d9ad31e709f379092fd6f0144714ee29f973cd77567ecf2c",
"duration": 0.2,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 500,
"name": "Pt",
"position": [
1,
2,
3
],
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 500,
"name": "Pt1",
"position": [
4,
6,
3
],
"type": "LIN",
"velocity": 2000
}
]
},
"typeId": "Robot::TrajectoryDressUpObject",
"useAcceleration": true,
"value": {
"numeric": 500,
"raw": "500.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
"objectSet": [
{
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"sourceTrajectory": {
"contentSha256": "cb93c2855ce67ed800416d985edfe22d80035a3313015573d78252bc17619db9",
"duration": 0.447213595,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 100,
"name": "Pt",
"position": [
1,
2,
3
],
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 100,
"name": "Pt1",
"position": [
4,
6,
3
],
"type": "LIN",
"velocity": 2000
}
]
}
},
"resaved": {
"object": {
"editorMode": [],
"name": "AccelerationProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyAcceleration",
"source": {
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"trajectory": {
"contentSha256": "a7febf338d0c6527d9ad31e709f379092fd6f0144714ee29f973cd77567ecf2c",
"duration": 0.2,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 500,
"name": "Pt",
"position": [
1,
2,
3
],
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 500,
"name": "Pt1",
"position": [
4,
6,
3
],
"type": "LIN",
"velocity": 2000
}
]
},
"typeId": "Robot::TrajectoryDressUpObject",
"useAcceleration": true,
"value": {
"numeric": 500,
"raw": "500.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
"objectSet": [
{
"name": "SourceTrajectory",
"typeId": "Robot::TrajectoryObject"
},
{
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
}
],
"sourceTrajectory": {
"contentSha256": "cb93c2855ce67ed800416d985edfe22d80035a3313015573d78252bc17619db9",
"duration": 0.447213595,
"length": 5,
"waypointCount": 2,
"waypoints": [
{
"acceleration": 100,
"name": "Pt",
"position": [
1,
2,
3
],
"type": "LIN",
"velocity": 2000
},
{
"acceleration": 100,
"name": "Pt1",
"position": [
4,
6,
3
],
"type": "LIN",
"velocity": 2000
}
]
}
}
},
"classification": {
"webValue": "500",
"reopenedValue": 500,
"resavedValue": 500,
"nativeOutputMatches": true,
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

View File

@@ -0,0 +1,101 @@
{
"baselineId": "freecad-1.1.1-property-acceleration-success",
"cases": [
{
"editorMode": [],
"group": "TrajectoryDressUp",
"id": "default",
"objectState": [
"Up-to-date"
],
"requested": null,
"shape": {
"applicable": false
},
"status": [],
"typeId": "App::PropertyAcceleration",
"value": {
"numeric": 1000,
"raw": "1000.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
{
"editorMode": [],
"group": "TrajectoryDressUp",
"id": "nominal",
"objectState": [
"Touched",
"Invalid"
],
"requested": "500 mm/s^2",
"shape": {
"applicable": false
},
"status": [],
"typeId": "App::PropertyAcceleration",
"value": {
"numeric": 500,
"raw": "500.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
{
"editorMode": [],
"group": "TrajectoryDressUp",
"id": "lower-bound",
"objectState": [
"Touched",
"Invalid"
],
"requested": "0 mm/s^2",
"shape": {
"applicable": false
},
"status": [],
"typeId": "App::PropertyAcceleration",
"value": {
"numeric": 0,
"raw": "0.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
},
{
"editorMode": [],
"group": "TrajectoryDressUp",
"id": "negative-boundary",
"objectState": [
"Touched",
"Invalid"
],
"requested": "-500 mm/s^2",
"shape": {
"applicable": false
},
"status": [],
"typeId": "App::PropertyAcceleration",
"value": {
"numeric": -500,
"raw": "-500.0 mm/s^2",
"unit": "Unit: mm/s^2 (1,0,-2,0,0,0,0,0) [Acceleration]"
}
}
],
"diagnostics": {
"documentObjectCount": 1,
"exception": null
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"object": {
"name": "AccelerationProbe",
"typeId": "Robot::TrajectoryDressUpObject"
},
"property": {
"group": "TrajectoryDressUp",
"name": "Acceleration",
"typeId": "App::PropertyAcceleration"
},
"schemaVersion": 1,
"status": "pass"
}

View File

@@ -0,0 +1,544 @@
{
"baselineId": "freecad-1.1.1-property-area-failure",
"cancellationBoundary": {
"classification": "synchronous-measure-recompute",
"reason": "no-native-cancel-hook",
"replacement": "abort-active-document-transaction",
"supported": false
},
"disabled": {
"before": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"classification": "editor-readonly-python-mutable-until-immutable",
"editorMode": [
"ReadOnly"
],
"editorReadOnlyAfter": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 20,
"raw": "20.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"editorReadOnlyException": null,
"editorReadOnlyRequested": "20 mm^2",
"immutableAfter": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 20,
"raw": "20.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"immutableException": {
"message": "Object attribute 'Area' is read-only",
"type": "AttributeError"
},
"immutableRequested": "30 mm^2",
"immutableStatus": [
"Immutable",
"24",
"27"
],
"immutableValuePreserved": true,
"objectsPreserved": true,
"propertyStatus": [
"24",
"27"
],
"pythonBypassesEditorReadOnly": true,
"restored": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"restoredEditorMode": [
"ReadOnly"
],
"restoredStatus": [
"24",
"27"
],
"valueRestored": true
},
"documentIntegrity": {
"finalObjects": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"initialObjects": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"objectCount": 5,
"objectsPreserved": true
},
"failures": [
{
"after": {
"elements": [
{
"object": "AreaPoint",
"subElements": [
"Vertex1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Touched",
"Invalid"
],
"statusString": "Cannot calculate area",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"afterObjects": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"assignmentException": null,
"before": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"beforeObjects": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"expectedDiagnostic": "Cannot calculate area",
"id": "unsupported-point",
"objectsPreserved": true,
"recomputeException": null,
"recomputeResult": true,
"recovered": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"recoveredExactly": true,
"source": {
"name": "AreaPoint",
"shapeType": "Vertex",
"subElement": "Vertex1",
"typeId": "Part::Feature"
},
"valuePreserved": true
},
{
"after": {
"elements": [
{
"object": "AreaLine",
"subElements": [
"Edge1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Touched",
"Invalid"
],
"statusString": "Cannot calculate area",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"afterObjects": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"assignmentException": null,
"before": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"beforeObjects": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"expectedDiagnostic": "Cannot calculate area",
"id": "unsupported-line",
"objectsPreserved": true,
"recomputeException": null,
"recomputeResult": true,
"recovered": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"recoveredExactly": true,
"source": {
"name": "AreaLine",
"shapeType": "Edge",
"subElement": "Edge1",
"typeId": "Part::Feature"
},
"valuePreserved": true
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"initial": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"input": {
"name": "Elements",
"typeId": "App::PropertyLinkSubList"
},
"object": {
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
},
"property": {
"name": "Area",
"typeId": "App::PropertyArea"
},
"schemaVersion": 1,
"status": "pass",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 1,
"name": "property-area-cancel"
},
"afterAbort": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Touched"
],
"statusString": "Touched",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"afterRecompute": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"before": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
]
}
],
"numeric": 10,
"raw": "10.0 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"edited": {
"elements": [
{
"object": "AreaCylinder",
"subElements": [
"Face1"
]
}
],
"numeric": 75.398223877,
"raw": "75.39822387695312 mm^2",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"objectsAfter": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"objectsBefore": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaPoint",
"typeId": "Part::Feature"
},
{
"name": "AreaLine",
"typeId": "Part::Feature"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"objectsRestored": true,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"restored": true,
"undoMode": 1
}
}

View File

@@ -0,0 +1,108 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyArea",
"recordCount": 1,
"records": [
{
"objectTypeId": "Measure::MeasureArea",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Area",
"group": "Measurement",
"status": [
24,
27
],
"normalizedStatus": [
"PropReadOnly",
"PropOutput"
],
"defaultRaw": "0.0 mm^2",
"valueModel": {
"kind": "quantity",
"dimension": "length^2",
"defaultValue": 0,
"defaultUnit": "mm^2",
"derived": true,
"writable": false
},
"inputs": [
{
"propertyName": "Elements",
"typeId": "App::PropertyLinkSubList",
"group": "Measurement",
"defaultValue": [],
"scope": "Global",
"allowExternal": true,
"cardinality": "one-or-more"
}
],
"dependencies": [
{
"sourceProperty": "Elements",
"targetProperty": "Area",
"relation": "link-sub-list",
"effect": "immediate-recompute-on-change"
}
],
"applicability": {
"selectionMustBeNonEmpty": true,
"everyElementMustBeValid": true,
"supportedMeasureElementTypes": [
"PLANE",
"CYLINDER",
"SURFACE",
"VOLUME"
],
"unsupportedMeasureElementTypes": [
"INVALID",
"POINT",
"LINE",
"CURVE"
],
"externalDocumentElementsAllowed": true
},
"execution": {
"aggregation": "sum-area",
"resultProperty": "Area",
"invalidGeometryDiagnostic": "Cannot calculate area",
"shape": "not-applicable-derived-measurement"
}
}
],
"provenance": {
"runtime": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"sources": [
{
"path": ".cache/freecad/FreeCAD/src/Mod/Measure/App/MeasureArea.cpp",
"bytes": 5328,
"sha256": "86506348c36a9a440881da0b605a74c38079c3c606ca6f7660df53665eda5281"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/Measure/App/MeasureArea.h",
"bytes": 3125,
"sha256": "5bae7a21e82e73490a8b63cc234f1bd17e019df0d7cfcf7aa23fe91d2dc13305"
}
]
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

View File

@@ -0,0 +1,342 @@
{
"baselineId": "freecad-1.1.1-property-area-mutation",
"before": {
"editorMode": [
"ReadOnly"
],
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
],
"typeId": "Part::Box"
}
],
"mustExecute": false,
"objectState": [
"Up-to-date"
],
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"statusString": "Valid",
"value": {
"numeric": 10,
"raw": "10.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
"classification": {
"derivedValueChanged": true,
"derivedValueRestored": true,
"geometry": "source-shapes-preserved-derived-measurement-has-no-shape",
"inputChanged": true,
"inputRestored": true,
"semanticStateRestored": true,
"sourceGeometryPreserved": true
},
"document": {
"objectsBefore": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"objectsPreserved": true,
"objectsRestored": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"typeId": "Part::Cylinder"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
]
},
"edited": {
"editorMode": [
"ReadOnly"
],
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1",
"Face2"
],
"typeId": "Part::Box"
},
{
"object": "AreaCylinder",
"subElements": [
"Face1"
],
"typeId": "Part::Cylinder"
}
],
"mustExecute": false,
"objectState": [
"Up-to-date"
],
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"statusString": "Valid",
"value": {
"numeric": 95.398223877,
"raw": "95.39822387695312 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"input": {
"name": "Elements",
"typeId": "App::PropertyLinkSubList"
},
"object": {
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
},
"property": {
"name": "Area",
"typeId": "App::PropertyArea"
},
"recompute": {
"edit": 1,
"initial": 3,
"restore": 1
},
"restored": {
"editorMode": [
"ReadOnly"
],
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
],
"typeId": "Part::Box"
}
],
"mustExecute": false,
"objectState": [
"Up-to-date"
],
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"statusString": "Valid",
"value": {
"numeric": 10,
"raw": "10.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
"schemaVersion": 1,
"sources": {
"before": [
{
"area": 160,
"bounds": [
0,
0,
0,
10,
5,
2
],
"edges": 12,
"faces": 6,
"name": "AreaBox",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Box",
"valid": true,
"vertices": 8,
"volume": 100
},
{
"area": 131.946891451,
"bounds": [
-3,
-3,
0,
3,
3,
4
],
"edges": 3,
"faces": 3,
"name": "AreaCylinder",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Cylinder",
"valid": true,
"vertices": 2,
"volume": 113.097335529
}
],
"edited": [
{
"area": 160,
"bounds": [
0,
0,
0,
10,
5,
2
],
"edges": 12,
"faces": 6,
"name": "AreaBox",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Box",
"valid": true,
"vertices": 8,
"volume": 100
},
{
"area": 131.946891451,
"bounds": [
-3,
-3,
0,
3,
3,
4
],
"edges": 3,
"faces": 3,
"name": "AreaCylinder",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Cylinder",
"valid": true,
"vertices": 2,
"volume": 113.097335529
}
],
"preserved": true,
"restored": [
{
"area": 160,
"bounds": [
0,
0,
0,
10,
5,
2
],
"edges": 12,
"faces": 6,
"name": "AreaBox",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Box",
"valid": true,
"vertices": 8,
"volume": 100
},
{
"area": 131.946891451,
"bounds": [
-3,
-3,
0,
3,
3,
4
],
"edges": 3,
"faces": 3,
"name": "AreaCylinder",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Cylinder",
"valid": true,
"vertices": 2,
"volume": 113.097335529
}
]
},
"status": "pass",
"touchedAfterEdit": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1",
"Face2"
],
"typeId": "Part::Box"
},
{
"object": "AreaCylinder",
"subElements": [
"Face1"
],
"typeId": "Part::Cylinder"
}
],
"mustExecute": false,
"objectState": [
"Touched"
],
"value": {
"numeric": 95.398223877,
"raw": "95.39822387695312 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
"touchedAfterRestore": {
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
],
"typeId": "Part::Box"
}
],
"mustExecute": false,
"objectState": [
"Touched"
],
"value": {
"numeric": 10,
"raw": "10.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
}
}

View File

@@ -0,0 +1,71 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertyarea-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyArea",
"recordCount": 1,
"phaseEvidence": {
"A": [
"config/freecad-property-area-inventory.json",
"check:freecad-property-area-inventory"
],
"B": [
"config/freecad-property-area-success.json",
"check:freecad-property-area-success"
],
"C": [
"config/freecad-property-area-failure.json",
"check:freecad-property-area-failure"
],
"D": [
"config/freecad-property-area-mutation.json",
"check:freecad-property-area-mutation"
],
"E": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"tests/propertyAreaFacade.test.ts",
"test:freecad-property-area-facade"
],
"F": [
"tests/propertyAreaTransaction.test.ts",
"test:freecad-property-area-transaction"
],
"G": [
"config/freecad-property-area-roundtrip.json",
"check:freecad-property-area-roundtrip"
],
"H": [
"config/chrome-property-area-verification.json",
"check:chrome-property-area"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "read-only-derived-mm^2-with-link-sub-list-input",
"inputType": "App::PropertyLinkSubList",
"fcstdAreaElement": "Float",
"fcstdElementsElement": "LinkSubList",
"nativeRoundTripArea": 20,
"browserRoundTripArea": 0,
"browserRoundTripElementCount": 0,
"sourceGeometryPreserved": true,
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.776Z"
}

View File

@@ -0,0 +1,305 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-area-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-area-roundtrip/native-initial.FCStd",
"bytes": 2635,
"sha256": "2c50a95d69ab8069be75a92dbd35531cb6089ce2bb2fe420cff1e8e4ca523bd4"
},
"webEdited": {
"path": ".cache/freecad/property-area-roundtrip/web-edited.FCStd",
"bytes": 2523,
"sha256": "3b37fb932987756ea69c4f6ee784056ade0625f7c6504c11fb59bca55b95b595"
},
"nativeResaved": {
"path": ".cache/freecad/property-area-roundtrip/native-resaved.FCStd",
"bytes": 2650,
"sha256": "09b15d8d030c15dddc20f9a89b8a1244ecd2e279eb973ab2b572e382dcc062d0"
}
},
"nativeInitial": {
"measure": {
"area": {
"numeric": 10,
"raw": "10.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1"
],
"typeId": "Part::Box"
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"name": "AreaProbe",
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Measure::MeasureArea"
},
"objectSet": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"source": {
"area": 160,
"bounds": [
0,
0,
0,
10,
5,
2
],
"edges": 12,
"faces": 6,
"height": 2,
"length": 10,
"name": "AreaBox",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Box",
"valid": true,
"vertices": 8,
"volume": 100,
"width": 5
}
},
"web": {
"before": {
"area": {
"name": "Area",
"typeId": "App::PropertyArea",
"element": "Float",
"value": "10.0000000000000000",
"nativeStatus": 150994944,
"statusNames": [
"PropReadOnly",
"PropOutput"
]
},
"elements": {
"name": "Elements",
"typeId": "App::PropertyLinkSubList",
"element": "LinkSubList",
"value": "{\"schemaVersion\":1,\"entries\":[{\"objectId\":\"AreaBox\",\"subElement\":\"Face1\"}]}",
"linkSubs": [
{
"objectId": "AreaBox",
"subElement": "Face1"
}
]
}
},
"after": {
"area": {
"name": "Area",
"typeId": "App::PropertyArea",
"element": "Float",
"value": "20",
"nativeStatus": 150994944,
"statusNames": [
"PropReadOnly",
"PropOutput"
]
},
"elements": {
"name": "Elements",
"typeId": "App::PropertyLinkSubList",
"element": "LinkSubList",
"value": "{\"schemaVersion\":1,\"entries\":[{\"objectId\":\"AreaBox\",\"subElement\":\"Face1\"},{\"objectId\":\"AreaBox\",\"subElement\":\"Face2\"}]}",
"linkSubs": [
{
"objectId": "AreaBox",
"subElement": "Face1"
},
{
"objectId": "AreaBox",
"subElement": "Face2"
}
]
}
},
"objectSetPreserved": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 1,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"measure": {
"area": {
"numeric": 20,
"raw": "20.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1",
"Face2"
],
"typeId": "Part::Box"
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"name": "AreaProbe",
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Measure::MeasureArea"
},
"objectSet": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"source": {
"area": 160,
"bounds": [
0,
0,
0,
10,
5,
2
],
"edges": 12,
"faces": 6,
"height": 2,
"length": 10,
"name": "AreaBox",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Box",
"valid": true,
"vertices": 8,
"volume": 100,
"width": 5
}
},
"resaved": {
"measure": {
"area": {
"numeric": 20,
"raw": "20.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
},
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"object": "AreaBox",
"subElements": [
"Face1",
"Face2"
],
"typeId": "Part::Box"
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"name": "AreaProbe",
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Measure::MeasureArea"
},
"objectSet": [
{
"name": "AreaBox",
"typeId": "Part::Box"
},
{
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
}
],
"source": {
"area": 160,
"bounds": [
0,
0,
0,
10,
5,
2
],
"edges": 12,
"faces": 6,
"height": 2,
"length": 10,
"name": "AreaBox",
"shapeType": "Solid",
"solids": 1,
"typeId": "Part::Box",
"valid": true,
"vertices": 8,
"volume": 100,
"width": 5
}
}
},
"classification": {
"webArea": 20,
"webElementCount": 2,
"reopenedArea": 20,
"resavedArea": 20,
"nativeOutputMatches": true,
"sourceGeometryPreserved": true,
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

View File

@@ -0,0 +1,315 @@
{
"baselineId": "freecad-1.1.1-property-area-success",
"cases": [
{
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [],
"elementsTypeId": "App::PropertyLinkSubList",
"expectedArea": 0,
"id": "empty-default",
"object": {
"name": "AreaProbe",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Measure::MeasureArea"
},
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"value": {
"numeric": 0,
"raw": "0.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
{
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"area": 10,
"edges": 4,
"faces": 1,
"object": "AreaBox",
"shapeNull": false,
"shapeType": "Face",
"shapeValid": true,
"subElement": "Face1",
"vertices": 4
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"expectedArea": 10,
"id": "planar-face",
"object": {
"name": "AreaProbe",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Measure::MeasureArea"
},
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"value": {
"numeric": 10,
"raw": "10.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
{
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"area": 75.398223686,
"edges": 3,
"faces": 1,
"object": "AreaCylinder",
"shapeNull": false,
"shapeType": "Face",
"shapeValid": true,
"subElement": "Face1",
"vertices": 2
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"expectedArea": 75.398223686,
"id": "cylindrical-face",
"object": {
"name": "AreaProbe",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Measure::MeasureArea"
},
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"value": {
"numeric": 75.398223877,
"raw": "75.39822387695312 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
{
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"area": 50.265482457,
"edges": 3,
"faces": 1,
"object": "AreaSphere",
"shapeNull": false,
"shapeType": "Face",
"shapeValid": true,
"subElement": "Face1",
"vertices": 2
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"expectedArea": 50.265482457,
"id": "surface-face",
"object": {
"name": "AreaProbe",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Measure::MeasureArea"
},
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"value": {
"numeric": 50.265483856,
"raw": "50.26548385620117 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
{
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"area": 160,
"edges": 12,
"faces": 6,
"object": "AreaBox",
"shapeNull": false,
"shapeType": "Solid",
"shapeValid": true,
"subElement": "",
"vertices": 8
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"expectedArea": 160,
"id": "solid-volume",
"object": {
"name": "AreaProbe",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Measure::MeasureArea"
},
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"value": {
"numeric": 160,
"raw": "160.0 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
},
{
"areaTypeId": "App::PropertyArea",
"editorMode": [
"ReadOnly"
],
"elements": [
{
"area": 10,
"edges": 4,
"faces": 1,
"object": "AreaBox",
"shapeNull": false,
"shapeType": "Face",
"shapeValid": true,
"subElement": "Face1",
"vertices": 4
},
{
"area": 10,
"edges": 4,
"faces": 1,
"object": "AreaBox",
"shapeNull": false,
"shapeType": "Face",
"shapeValid": true,
"subElement": "Face2",
"vertices": 4
},
{
"area": 75.398223686,
"edges": 3,
"faces": 1,
"object": "AreaCylinder",
"shapeNull": false,
"shapeType": "Face",
"shapeValid": true,
"subElement": "Face1",
"vertices": 2
}
],
"elementsTypeId": "App::PropertyLinkSubList",
"expectedArea": 95.398223686,
"id": "multi-element-sum",
"object": {
"name": "AreaProbe",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Measure::MeasureArea"
},
"propertyStatus": [
"24",
"27"
],
"shape": {
"applicable": false
},
"value": {
"numeric": 95.398223877,
"raw": "95.39822387695312 mm^2",
"unit": "Unit: mm^2 (2,0,0,0,0,0,0,0) [Area]"
}
}
],
"diagnostics": {
"documentObjectCount": 4,
"exception": null
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"input": {
"group": "Measurement",
"name": "Elements",
"typeId": "App::PropertyLinkSubList"
},
"object": {
"name": "AreaProbe",
"typeId": "Measure::MeasureArea"
},
"property": {
"group": "Measurement",
"name": "Area",
"typeId": "App::PropertyArea"
},
"schemaVersion": 1,
"sources": [
{
"name": "AreaBox",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Part::Box"
},
{
"name": "AreaCylinder",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Part::Cylinder"
},
{
"name": "AreaSphere",
"state": [
"Up-to-date"
],
"status": "Valid",
"typeId": "Part::Sphere"
}
],
"status": "pass"
}

View File

@@ -0,0 +1,729 @@
{
"baselineId": "freecad-1.1.1-property-boollist-failure",
"cancellationBoundary": {
"classification": "synchronous-property-setter-and-link-extension",
"reason": "no-native-cancel-hook",
"replacement": "abort-active-document-transaction",
"supported": false
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"links": [
{
"directWrite": {
"after": [
true,
true
],
"exception": {
"message": "Object attribute 'VisibilityList' is read-only",
"type": "AttributeError"
},
"preserved": true,
"requested": [
false,
true
]
},
"editorMode": [
"Hidden"
],
"initial": [
true,
true
],
"invalidElement": {
"after": [
true,
true
],
"name": "MissingElement",
"preserved": true,
"result": -1
},
"objectState": [
"Up-to-date"
],
"objectTypeId": "App::Link",
"objectsAfter": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkProbe",
"typeId": "App::Link"
}
],
"objectsBefore": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkProbe",
"typeId": "App::Link"
}
],
"objectsPreserved": true,
"propertyTypeId": "App::PropertyBoolList",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"statusString": "Valid",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 2,
"name": "property-boollist-link-cancel"
},
"afterAbort": [
true,
true
],
"before": [
true,
true
],
"edited": [
false,
true
],
"hideResult": 1,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"recoveryRecomputeResult": true,
"restored": true,
"stateAfterAbort": [
"Touched"
],
"stateAfterRecovery": [
"Up-to-date"
],
"statusAfterAbort": "Touched",
"statusAfterRecovery": "Valid"
}
},
{
"directWrite": {
"after": [
true,
true
],
"exception": {
"message": "Object attribute 'VisibilityList' is read-only",
"type": "AttributeError"
},
"preserved": true,
"requested": [
false,
true
]
},
"editorMode": [
"Hidden"
],
"initial": [
true,
true
],
"invalidElement": {
"after": [
true,
true
],
"name": "MissingElement",
"preserved": true,
"result": -1
},
"objectState": [
"Up-to-date"
],
"objectTypeId": "App::LinkGroup",
"objectsAfter": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkGroupProbe",
"typeId": "App::LinkGroup"
}
],
"objectsBefore": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkGroupProbe",
"typeId": "App::LinkGroup"
}
],
"objectsPreserved": true,
"propertyTypeId": "App::PropertyBoolList",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"statusString": "Valid",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 3,
"name": "property-boollist-link-cancel"
},
"afterAbort": [
true,
true
],
"before": [
true,
true
],
"edited": [
false,
true
],
"hideResult": 1,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"recoveryRecomputeResult": true,
"restored": true,
"stateAfterAbort": [
"Touched"
],
"stateAfterRecovery": [
"Up-to-date"
],
"statusAfterAbort": "Touched",
"statusAfterRecovery": "Valid"
}
},
{
"directWrite": {
"after": [
true,
true
],
"exception": {
"message": "Object attribute 'VisibilityList' is read-only",
"type": "AttributeError"
},
"preserved": true,
"requested": [
false,
true
]
},
"editorMode": [
"Hidden"
],
"initial": [
true,
true
],
"invalidElement": {
"after": [
true,
true
],
"name": "MissingElement",
"preserved": true,
"result": -1
},
"objectState": [
"Up-to-date"
],
"objectTypeId": "App::LinkGroupPython",
"objectsAfter": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkGroupPythonProbe",
"typeId": "App::LinkGroupPython"
}
],
"objectsBefore": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkGroupPythonProbe",
"typeId": "App::LinkGroupPython"
}
],
"objectsPreserved": true,
"propertyTypeId": "App::PropertyBoolList",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"statusString": "Valid",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 4,
"name": "property-boollist-link-cancel"
},
"afterAbort": [
true,
true
],
"before": [
true,
true
],
"edited": [
false,
true
],
"hideResult": 1,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"recoveryRecomputeResult": true,
"restored": true,
"stateAfterAbort": [
"Touched"
],
"stateAfterRecovery": [
"Up-to-date"
],
"statusAfterAbort": "Touched",
"statusAfterRecovery": "Valid"
}
},
{
"directWrite": {
"after": [
true,
true
],
"exception": {
"message": "Object attribute 'VisibilityList' is read-only",
"type": "AttributeError"
},
"preserved": true,
"requested": [
false,
true
]
},
"editorMode": [
"Hidden"
],
"initial": [
true,
true
],
"invalidElement": {
"after": [
true,
true
],
"name": "MissingElement",
"preserved": true,
"result": -1
},
"objectState": [
"Up-to-date"
],
"objectTypeId": "App::LinkPython",
"objectsAfter": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkPythonProbe",
"typeId": "App::LinkPython"
}
],
"objectsBefore": [
{
"name": "TargetA",
"typeId": "Part::Feature"
},
{
"name": "TargetB",
"typeId": "Part::Feature"
},
{
"name": "TargetGroup",
"typeId": "App::DocumentObjectGroup"
},
{
"name": "LinkPythonProbe",
"typeId": "App::LinkPython"
}
],
"objectsPreserved": true,
"propertyTypeId": "App::PropertyBoolList",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"statusString": "Valid",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 5,
"name": "property-boollist-link-cancel"
},
"afterAbort": [
true,
true
],
"before": [
true,
true
],
"edited": [
false,
true
],
"hideResult": 1,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"recoveryRecomputeResult": true,
"restored": true,
"stateAfterAbort": [
"Touched"
],
"stateAfterRecovery": [
"Up-to-date"
],
"statusAfterAbort": "Touched",
"statusAfterRecovery": "Valid"
}
}
],
"propertyType": "App::PropertyBoolList",
"schemaVersion": 1,
"status": "pass",
"writable": {
"acceptedCoercions": [
{
"after": [
true
],
"afterObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
false
],
"beforeObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "scalar-integer",
"objectsPreserved": true,
"requested": "7"
},
{
"after": [
true,
false,
false,
false,
true
],
"afterObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
false
],
"beforeObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "bitstring",
"objectsPreserved": true,
"requested": "'10201'"
}
],
"disabled": {
"after": [
false
],
"afterObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
false
],
"beforeObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"classification": "editor-read-only-and-python-immutable",
"editorMode": [
"ReadOnly"
],
"exception": {
"message": "Object attribute 'BoolList' is read-only",
"type": "AttributeError"
},
"objectsPreserved": true,
"requested": [
true,
false
],
"restoredEditorMode": [],
"restoredStatus": [],
"status": [
"Immutable",
"ReadOnly"
],
"valuePreserved": true
},
"documentIntegrity": {
"finalObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"initialObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"objectsPreserved": true
},
"failures": [
{
"after": [
false
],
"afterObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
false
],
"beforeObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type in list must be bool or int, not NoneType",
"type": "TypeError"
},
"id": "none",
"objectsPreserved": true,
"polluted": false,
"requested": "None",
"valuePreserved": true
},
{
"after": [
false
],
"afterObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
false
],
"beforeObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type in list must be bool or int, not float",
"type": "TypeError"
},
"id": "float-item",
"objectsPreserved": true,
"polluted": false,
"requested": "[True, 1.5]",
"valuePreserved": true
},
{
"after": [
false
],
"afterObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
false
],
"beforeObjects": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type in list must be bool or int, not str",
"type": "TypeError"
},
"id": "string-item",
"objectsPreserved": true,
"polluted": false,
"requested": "[False, 'bad']",
"valuePreserved": true
}
],
"initial": [
false
],
"object": {
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
},
"property": {
"name": "BoolList",
"typeId": "App::PropertyBoolList"
},
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 1,
"name": "property-boollist-cancel"
},
"afterAbort": [
false
],
"before": [
false
],
"edited": [
true,
false,
true
],
"objectsAfter": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"objectsBefore": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
],
"objectsRestored": true,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"restored": true,
"undoMode": 1
}
}
}

View File

@@ -0,0 +1,190 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyBoolList",
"recordCount": 7,
"records": [
{
"objectTypeId": "App::FeatureTest",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "BoolList",
"group": "",
"status": [],
"defaultValue": [
false
],
"valueModel": {
"kind": "boolean-list",
"writable": true,
"elementType": "bool",
"cardinality": "variable"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::FeatureTest",
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "App::FeatureTestException",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "BoolList",
"group": "",
"status": [],
"defaultValue": [
false
],
"valueModel": {
"kind": "boolean-list",
"writable": true,
"elementType": "bool",
"cardinality": "variable"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::FeatureTestException",
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "App::Link",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "VisibilityList",
"group": " Link",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"defaultValue": [],
"valueModel": {
"kind": "boolean-list",
"writable": false,
"elementType": "bool",
"cardinality": "variable"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::Link",
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "App::LinkGroup",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "VisibilityList",
"group": " Link",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"defaultValue": [],
"valueModel": {
"kind": "boolean-list",
"writable": false,
"elementType": "bool",
"cardinality": "variable"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::LinkGroup",
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "App::LinkGroupPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "VisibilityList",
"group": " Link",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"defaultValue": [],
"valueModel": {
"kind": "boolean-list",
"writable": false,
"elementType": "bool",
"cardinality": "variable"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::LinkGroupPython",
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "App::LinkPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "VisibilityList",
"group": " Link",
"status": [
"Immutable",
"Hidden",
"LockDynamic"
],
"defaultValue": [],
"valueModel": {
"kind": "boolean-list",
"writable": false,
"elementType": "bool",
"cardinality": "variable"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::LinkPython",
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "Surface::GeomFillSurface",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "ReversedList",
"group": "",
"status": [],
"defaultValue": [
false
],
"valueModel": {
"kind": "boolean-list",
"writable": true,
"elementType": "bool",
"cardinality": "variable"
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "Surface::GeomFillSurface",
"source": "Document.supportedTypes runtime inventory"
}
}
],
"source": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertyboollist-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyBoolList",
"recordCount": 7,
"phaseEvidence": {
"A": [
"config/freecad-property-boollist-inventory.json",
"check:freecad-property-boollist-inventory"
],
"B": [
"config/freecad-property-boollist-success.json",
"check:freecad-property-boollist-success"
],
"C": [
"config/freecad-property-boollist-failure.json",
"check:freecad-property-boollist-failure"
],
"D": [
"config/freecad-property-boollist-mutation.json",
"check:freecad-property-boollist-mutation"
],
"E": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyBoolListFacade.test.ts",
"test:freecad-property-boollist-facade"
],
"F": [
"tests/propertyBoolListTransaction.test.ts",
"test:freecad-property-boollist-transaction"
],
"G": [
"config/freecad-property-boollist-roundtrip.json",
"check:freecad-property-boollist-roundtrip"
],
"H": [
"config/chrome-property-boollist-verification.json",
"check:chrome-property-boollist"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "variable-boolean-array",
"writableRecords": 3,
"immutableHiddenRecords": 4,
"fcstdElement": "BoolList",
"nativeRoundTripValue": [
true,
false,
true,
false
],
"browserRoundTripValue": [
true,
false,
true,
false
],
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.825Z"
}

View File

@@ -0,0 +1,137 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-boollist-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-boollist-roundtrip/native-initial.FCStd",
"bytes": 2508,
"sha256": "8522c2c4b77c177deb9f19be98ecb8367ee1b803e8da1ec752f1406c0cc87e8d"
},
"webEdited": {
"path": ".cache/freecad/property-boollist-roundtrip/web-edited.FCStd",
"bytes": 2326,
"sha256": "1e351de85a66dfa7946422387a035ac9b05b337842db453360a0b7296b69b2c5"
},
"nativeResaved": {
"path": ".cache/freecad/property-boollist-roundtrip/native-resaved.FCStd",
"bytes": 2508,
"sha256": "a496ce0e2c5f987c11515e53d3bc8ff8b52471b2087483e1ef123373ac508293"
}
},
"nativeInitial": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "BoolListProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyBoolList",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
false
]
},
"objectSet": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
]
},
"web": {
"before": {
"name": "BoolList",
"typeId": "App::PropertyBoolList",
"element": "BoolList",
"value": "[false]"
},
"after": {
"name": "BoolList",
"typeId": "App::PropertyBoolList",
"element": "BoolList",
"value": "[true,false,true,false]"
},
"objectSetPreserved": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 4,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "BoolListProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyBoolList",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
true,
false,
true,
false
]
},
"objectSet": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
]
},
"resaved": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "BoolListProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyBoolList",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
true,
false,
true,
false
]
},
"objectSet": [
{
"name": "BoolListProbe",
"typeId": "App::FeatureTest"
}
]
}
},
"classification": {
"webValue": "[true,false,true,false]",
"reopenedValue": [
true,
false,
true,
false
],
"resavedValue": [
true,
false,
true,
false
],
"nativeOutputMatches": true,
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,639 @@
{
"baselineId": "freecad-1.1.1-property-color-failure",
"cancellationBoundary": {
"classification": "synchronous-property-setter",
"reason": "no-native-cancel-hook",
"replacement": "abort-active-document-transaction",
"supported": false
},
"coercions": [
{
"accepted": true,
"after": [
2.0,
-1.0,
0.5,
1.5
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "float-out-of-range",
"objectsPreserved": true,
"requested": "(2.0, -1.0, 0.5, 1.5)",
"valuePreserved": false
},
{
"accepted": true,
"after": [
-0.003921569,
1.003921628,
2.003921509,
-1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "integer-out-of-range",
"objectsPreserved": true,
"requested": "(-1, 256, 511, -255)",
"valuePreserved": false
},
{
"accepted": true,
"after": [
0.003921569,
0.0,
0.003921569,
0.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "boolean-tuple",
"objectsPreserved": true,
"requested": "(True, False, True, False)",
"valuePreserved": false
},
{
"accepted": true,
"after": [
1.0,
1.0,
1.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "packed-max",
"objectsPreserved": true,
"requested": "4294967295",
"valuePreserved": false
},
{
"accepted": true,
"after": [
0.0,
0.0,
0.0,
0.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "packed-wrap",
"objectsPreserved": true,
"requested": "4294967296",
"valuePreserved": false
},
{
"accepted": true,
"after": [
1.0,
1.0,
1.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": null,
"id": "packed-negative",
"objectsPreserved": true,
"requested": "-1",
"valuePreserved": false
}
],
"disabled": {
"before": [
0.0,
0.0,
0.0,
1.0
],
"classification": "editor-readonly-python-mutable-until-immutable",
"editorMode": [
"ReadOnly"
],
"editorReadOnlyAfter": [
0.200000003,
0.300000012,
0.400000006,
0.5
],
"editorReadOnlyException": null,
"editorReadOnlyRequested": [
0.2,
0.3,
0.4,
0.5
],
"immutableAfter": [
0.0,
0.0,
0.0,
1.0
],
"immutableException": {
"message": "Object attribute 'Colour' is read-only",
"type": "AttributeError"
},
"immutableRequested": [
0.6,
0.7,
0.8,
0.9
],
"immutableStatus": [
"Immutable",
"ReadOnly"
],
"immutableValuePreserved": true,
"objectsPreserved": true,
"pythonBypassesEditorReadOnly": true,
"restoredEditorMode": [],
"restoredStatus": []
},
"documentIntegrity": {
"finalObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"initialObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"objectsPreserved": true
},
"failures": [
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type must be integer or tuple of float or tuple integer, not NoneType",
"type": "TypeError"
},
"id": "none",
"objectsPreserved": true,
"polluted": false,
"requested": "None",
"valuePreserved": true
},
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type must be integer or tuple of float or tuple integer, not list",
"type": "TypeError"
},
"id": "list",
"objectsPreserved": true,
"polluted": false,
"requested": "[0.1, 0.2, 0.3]",
"valuePreserved": true
},
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type must be integer or tuple of float or tuple integer, not tuple",
"type": "TypeError"
},
"id": "short-tuple",
"objectsPreserved": true,
"polluted": false,
"requested": "(0.1, 0.2)",
"valuePreserved": true
},
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type must be integer or tuple of float or tuple integer, not tuple",
"type": "TypeError"
},
"id": "long-tuple",
"objectsPreserved": true,
"polluted": false,
"requested": "(0.1, 0.2, 0.3, 0.4, 0.5)",
"valuePreserved": true
},
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "Type in tuple must be float or integer",
"type": "TypeError"
},
"id": "string-first",
"objectsPreserved": true,
"polluted": false,
"requested": "('bad', 0.2, 0.3)",
"valuePreserved": true
},
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "Type in tuple must be consistent (float)",
"type": "TypeError"
},
"id": "mixed-after-float",
"objectsPreserved": true,
"polluted": false,
"requested": "(0.1, 2, 0.3)",
"valuePreserved": true
},
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "Type in tuple must be consistent (integer)",
"type": "TypeError"
},
"id": "mixed-after-integer",
"objectsPreserved": true,
"polluted": false,
"requested": "(1, 0.2, 3)",
"valuePreserved": true
},
{
"after": [
0.0,
0.0,
0.0,
1.0
],
"afterObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"beforeObjects": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"exception": {
"message": "type must be integer or tuple of float or tuple integer, not float",
"type": "TypeError"
},
"id": "scalar-float",
"objectsPreserved": true,
"polluted": false,
"requested": "0.5",
"valuePreserved": true
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"initial": [
0.0,
0.0,
0.0,
1.0
],
"object": {
"name": "ColorProbe",
"typeId": "App::FeatureTest"
},
"property": {
"name": "Colour",
"typeId": "App::PropertyColor"
},
"propertyType": "App::PropertyColor",
"schemaVersion": 1,
"status": "pass",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 1,
"name": "property-color-cancel"
},
"afterAbort": [
0.0,
0.0,
0.0,
1.0
],
"afterRecompute": [
0.0,
0.0,
0.0,
1.0
],
"before": [
0.0,
0.0,
0.0,
1.0
],
"edited": [
0.75,
0.5,
0.25,
0.125
],
"objectsAfter": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"objectsBefore": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
],
"objectsRestored": true,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"recoveryRecomputeResult": true,
"restored": true,
"stateAfterAbort": {
"state": [
"Touched"
],
"statusString": "Touched"
},
"stateAfterEdit": {
"state": [
"Touched"
],
"statusString": "Touched"
},
"stateAfterRecompute": {
"state": [
"Up-to-date"
],
"statusString": "Valid"
},
"undoMode": 1
}
}

View File

@@ -0,0 +1,523 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyColor",
"recordCount": 8,
"records": [
{
"objectTypeId": "App::FeatureTest",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Colour",
"group": "",
"status": [],
"defaultValue": [
0,
0,
0,
1
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::FeatureTest",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "App::FeatureTestException",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Colour",
"group": "",
"status": [],
"defaultValue": [
0,
0,
0,
1
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::FeatureTestException",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "App::Part",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Color",
"group": "",
"status": [],
"defaultValue": [
1,
1,
1,
0
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::Part",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "Assembly::AssemblyLink",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Color",
"group": "",
"status": [],
"defaultValue": [
1,
1,
1,
0
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "Assembly::AssemblyLink",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "Assembly::AssemblyObject",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Color",
"group": "",
"status": [],
"defaultValue": [
1,
1,
1,
0
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "Assembly::AssemblyObject",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "TechDraw::DrawViewAnnotation",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "TextColor",
"group": "Annotation",
"status": [],
"defaultValue": [
0,
0,
0,
1
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewAnnotation",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "TechDraw::DrawViewDraft",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Color",
"group": "Draft view",
"status": [],
"defaultValue": [
0,
0,
0,
1
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewDraft",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "TechDraw::DrawViewSpreadsheet",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "TextColor",
"group": "Spreadsheet",
"status": [],
"defaultValue": [
0,
0,
0,
1
],
"valueModel": {
"kind": "rgba-color",
"channels": [
"red",
"green",
"blue",
"alpha"
],
"canonicalRepresentation": "four-channel-float-tuple",
"packedRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": [
{
"kind": "float-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"omittedAlpha": 1
},
{
"kind": "integer-tuple",
"cardinality": [
3,
4
],
"componentsMustHaveSameType": true,
"normalizationDivisor": 255,
"omittedAlpha": 1
},
{
"kind": "packed-integer",
"encoding": "0xRRGGBBAA"
}
],
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSpreadsheet",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
}
],
"storage": {
"xmlElement": "PropertyColor",
"attribute": "value",
"encoding": "unsigned-decimal-packed-0xRRGGBBAA",
"legacyBeforeVersion": "1.1",
"legacyConversion": "invert-alpha-byte"
},
"provenance": {
"runtime": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"sources": [
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyStandard.h",
"bytes": 37529,
"sha256": "3555ab386b4815329b09604bbd70626c2b24b66f90a7ff2c31052b55fd3c9244"
},
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyStandard.cpp",
"bytes": 99757,
"sha256": "eeefbbd7020c85c21e2e6b5f777088261668492845cf4d172e31f600fe9b96fd"
},
{
"path": ".cache/freecad/FreeCAD/src/Base/Color.h",
"bytes": 8885,
"sha256": "4d4630c87209f0df85db30608026fc4389936719a301136c3eb389f0e48bf864"
},
{
"path": ".cache/freecad/FreeCAD/src/Base/Color.cpp",
"bytes": 5857,
"sha256": "19f55140ccc547a194fcf49b090a7648089e4ea1ee0406d4f0a591dd5abc6d7c"
}
]
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertycolor-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyColor",
"recordCount": 8,
"phaseEvidence": {
"A": [
"config/freecad-property-color-inventory.json",
"check:freecad-property-color-inventory"
],
"B": [
"config/freecad-property-color-success.json",
"check:freecad-property-color-success"
],
"C": [
"config/freecad-property-color-failure.json",
"check:freecad-property-color-failure"
],
"D": [
"config/freecad-property-color-mutation.json",
"check:freecad-property-color-mutation"
],
"E": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyColorFacade.test.ts",
"test:freecad-property-color-facade"
],
"F": [
"tests/propertyColorTransaction.test.ts",
"test:freecad-property-color-transaction"
],
"G": [
"config/freecad-property-color-roundtrip.json",
"check:freecad-property-color-roundtrip"
],
"H": [
"config/chrome-property-color-verification.json",
"check:chrome-property-color"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "four-finite-rgba-channels-with-8-bit-fcstd-packing",
"writableRecords": 8,
"fcstdElement": "PropertyColor",
"fcstdPackedValue": "862362060",
"nativeRoundTripValue": [
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
"browserRoundTripValue": [
0.2,
0.4,
0.6,
0.8
],
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.829Z"
}

View File

@@ -0,0 +1,146 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-color-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-color-roundtrip/native-initial.FCStd",
"bytes": 2508,
"sha256": "93d6c2b60ffdd65f10bd4ca13e5dfcedf19c3a1b2c452d1e6a087e99be259c85"
},
"webEdited": {
"path": ".cache/freecad/property-color-roundtrip/web-edited.FCStd",
"bytes": 2324,
"sha256": "0572127ba788503c7c2bbe8d2b0f1ae1796fb5946ddc6c3610d8d6b15fbba37d"
},
"nativeResaved": {
"path": ".cache/freecad/property-color-roundtrip/native-resaved.FCStd",
"bytes": 2505,
"sha256": "e665faea155fb2d1aaa6a7c02bb07a060280098d4a92f52f568b8e37b5c3249d"
}
},
"nativeInitial": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "ColorProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyColor",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
0.06666667,
0.13333334,
0.200000003,
0.266666681
]
},
"objectSet": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
]
},
"web": {
"before": {
"name": "Colour",
"typeId": "App::PropertyColor",
"element": "PropertyColor",
"value": "287454020"
},
"after": {
"name": "Colour",
"typeId": "App::PropertyColor",
"element": "PropertyColor",
"value": "862362060"
},
"objectSetPreserved": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 4,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "ColorProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyColor",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
0.200000003,
0.400000006,
0.600000024,
0.800000012
]
},
"objectSet": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
]
},
"resaved": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "ColorProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyColor",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
0.200000003,
0.400000006,
0.600000024,
0.800000012
]
},
"objectSet": [
{
"name": "ColorProbe",
"typeId": "App::FeatureTest"
}
]
}
},
"classification": {
"requestedValue": [
0.2,
0.4,
0.6,
0.8
],
"webValue": "862362060",
"reopenedValue": [
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
"resavedValue": [
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
"nativeOutputMatches": true,
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,174 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyColorList",
"recordCount": 2,
"records": [
{
"objectTypeId": "App::FeatureTest",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "ColourList",
"group": "",
"status": [],
"defaultValue": [
[
0,
0,
0,
1
]
],
"valueModel": {
"kind": "ordered-rgba-color-list",
"elementRepresentation": "four-channel-float-tuple",
"packedElementRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": {
"collection": [
"sequence",
"iterable",
"single-tuple-color-value",
"single-non-sequence-color-value",
"integer-index-dictionary"
],
"dictionaryAppendIndexes": [
-1,
"current-size"
],
"elementSetters": [
"float-tuple-3-or-4",
"integer-tuple-3-or-4",
"packed-integer-0xRRGGBBAA"
]
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::FeatureTest",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
},
{
"objectTypeId": "App::FeatureTestException",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "ColourList",
"group": "",
"status": [],
"defaultValue": [
[
0,
0,
0,
1
]
],
"valueModel": {
"kind": "ordered-rgba-color-list",
"elementRepresentation": "four-channel-float-tuple",
"packedElementRepresentation": "0xRRGGBBAA",
"alphaSemantics": "1-opaque-0-transparent",
"writable": true
},
"inputs": {
"collection": [
"sequence",
"iterable",
"single-tuple-color-value",
"single-non-sequence-color-value",
"integer-index-dictionary"
],
"dictionaryAppendIndexes": [
-1,
"current-size"
],
"elementSetters": [
"float-tuple-3-or-4",
"integer-tuple-3-or-4",
"packed-integer-0xRRGGBBAA"
]
},
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "App::FeatureTestException",
"source": "Document.supportedTypes runtime inventory",
"shapeRequired": false
}
}
],
"storage": {
"xmlElement": "ColorList",
"fileAttribute": "file",
"nonEmptyExternalResourceName": "property-name",
"emptyResourceName": "",
"externalBinary": {
"byteOrder": "little-endian",
"count": "uint32",
"element": "uint32-packed-0xRRGGBBAA"
},
"legacyBeforeVersion": "1.1",
"legacyConversion": "invert-alpha-channel"
},
"provenance": {
"runtime": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"sources": [
{
"path": ".cache/freecad/FreeCAD/src/App/Property.h",
"bytes": 38213,
"sha256": "a1e7320ff880133a2131db148dc6c87659de5c765387c2d41995c9650f12d8b6"
},
{
"path": ".cache/freecad/FreeCAD/src/App/Property.cpp",
"bytes": 12499,
"sha256": "7d229c0a781694f3c507afbdaae25c8ee7f316088ce25e8e487bb7112bff5c70"
},
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyStandard.h",
"bytes": 37529,
"sha256": "3555ab386b4815329b09604bbd70626c2b24b66f90a7ff2c31052b55fd3c9244"
},
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyStandard.cpp",
"bytes": 99757,
"sha256": "eeefbbd7020c85c21e2e6b5f777088261668492845cf4d172e31f600fe9b96fd"
},
{
"path": ".cache/freecad/FreeCAD/src/Base/Color.h",
"bytes": 8885,
"sha256": "4d4630c87209f0df85db30608026fc4389936719a301136c3eb389f0e48bf864"
},
{
"path": ".cache/freecad/FreeCAD/src/Base/Stream.h",
"bytes": 19302,
"sha256": "6e38309e26a986c4d6c6c09a78815c6e854ee40b9057590f992fc321525e4203"
},
{
"path": ".cache/freecad/FreeCAD/src/Base/Stream.cpp",
"bytes": 22807,
"sha256": "52762550a00e94b737ebd866e6d649828a4517d143a1f0313844f57b7affa577"
}
]
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

View File

@@ -0,0 +1,418 @@
{
"baselineId": "freecad-1.1.1-property-colorlist-mutation",
"caseCount": 2,
"cases": [
{
"before": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestColorListMutation",
"typeId": "App::FeatureTest"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "Valid",
"value": [
[
0.0,
0.0,
0.0,
1.0
]
]
},
"editRecomputeResult": true,
"edited": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestColorListMutation",
"typeId": "App::FeatureTest"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "Valid",
"value": [
[
0.125,
0.375,
0.625,
0.875
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
],
[
1.0,
0.0,
0.501960814,
0.250980407
],
[
0.0,
0.0,
0.0,
0.0
]
]
},
"hostExecution": "normal",
"mutationDetected": true,
"objectName": "FeatureTestColorListMutation",
"objectTypeId": "App::FeatureTest",
"propertyName": "ColourList",
"restoreRecomputeResult": true,
"restored": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestColorListMutation",
"typeId": "App::FeatureTest"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "Valid",
"value": [
[
0.0,
0.0,
0.0,
1.0
]
]
},
"restoredExactly": true,
"target": [
[
0.125,
0.375,
0.625,
0.875
],
287454020,
[
255,
0,
128,
64
],
[
0.0,
0.0,
0.0,
0.0
]
],
"touchedAfterEdit": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestColorListMutation",
"typeId": "App::FeatureTest"
}
],
"objectState": [
"Touched"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "Touched",
"value": [
[
0.125,
0.375,
0.625,
0.875
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
],
[
1.0,
0.0,
0.501960814,
0.250980407
],
[
0.0,
0.0,
0.0,
0.0
]
]
},
"touchedAfterRestore": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestColorListMutation",
"typeId": "App::FeatureTest"
}
],
"objectState": [
"Touched"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "Touched",
"value": [
[
0.0,
0.0,
0.0,
1.0
]
]
}
},
{
"before": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestExceptionColorListMutation",
"typeId": "App::FeatureTestException"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "Valid",
"value": [
[
0.0,
0.0,
0.0,
1.0
]
]
},
"editRecomputeResult": true,
"edited": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestExceptionColorListMutation",
"typeId": "App::FeatureTestException"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "FeatureTestException::execute(): Testexception ;-)",
"value": [
[
0.125,
0.375,
0.625,
0.875
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
],
[
1.0,
0.0,
0.501960814,
0.250980407
],
[
0.0,
0.0,
0.0,
0.0
]
]
},
"hostExecution": "intrinsic-test-exception",
"mutationDetected": true,
"objectName": "FeatureTestExceptionColorListMutation",
"objectTypeId": "App::FeatureTestException",
"propertyName": "ColourList",
"restoreRecomputeResult": true,
"restored": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestExceptionColorListMutation",
"typeId": "App::FeatureTestException"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "FeatureTestException::execute(): Testexception ;-)",
"value": [
[
0.0,
0.0,
0.0,
1.0
]
]
},
"restoredExactly": true,
"target": [
[
0.125,
0.375,
0.625,
0.875
],
287454020,
[
255,
0,
128,
64
],
[
0.0,
0.0,
0.0,
0.0
]
],
"touchedAfterEdit": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestExceptionColorListMutation",
"typeId": "App::FeatureTestException"
}
],
"objectState": [
"Touched"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "Touched",
"value": [
[
0.125,
0.375,
0.625,
0.875
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
],
[
1.0,
0.0,
0.501960814,
0.250980407
],
[
0.0,
0.0,
0.0,
0.0
]
]
},
"touchedAfterRestore": {
"editorMode": [],
"objectSet": [
{
"name": "FeatureTestExceptionColorListMutation",
"typeId": "App::FeatureTestException"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"shape": {
"applicable": false,
"reason": "host-has-no-shape-property"
},
"statusString": "FeatureTestException::execute(): Testexception ;-)",
"value": [
[
0.0,
0.0,
0.0,
1.0
]
]
}
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"propertyType": "App::PropertyColorList",
"schemaVersion": 1,
"status": "pass"
}

View File

@@ -0,0 +1,97 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertycolorlist-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyColorList",
"recordCount": 2,
"phaseEvidence": {
"A": [
"config/freecad-property-colorlist-inventory.json",
"check:freecad-property-colorlist-inventory"
],
"B": [
"config/freecad-property-colorlist-success.json",
"check:freecad-property-colorlist-success"
],
"C": [
"config/freecad-property-colorlist-failure.json",
"check:freecad-property-colorlist-failure"
],
"D": [
"config/freecad-property-colorlist-mutation.json",
"check:freecad-property-colorlist-mutation"
],
"E": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyColorListFacade.test.ts",
"test:freecad-property-colorlist-facade"
],
"F": [
"tests/propertyColorListTransaction.test.ts",
"test:freecad-property-colorlist-transaction"
],
"G": [
"config/freecad-property-colorlist-roundtrip.json",
"check:freecad-property-colorlist-roundtrip"
],
"H": [
"config/chrome-property-colorlist-verification.json",
"check:chrome-property-colorlist"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "ordered-variable-rgba-array-with-external-8-bit-fcstd-packing",
"writableRecords": 2,
"fcstdElement": "ColorList",
"fcstdResourcePath": "ColourList",
"fcstdResourceBytes": 12,
"nativeRoundTripValue": [
[
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
]
],
"browserRoundTripValue": [
[
0.2,
0.4,
0.6,
0.8
],
[
0.06666666666666667,
0.13333333333333333,
0.2,
0.4
]
],
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.826Z"
}

View File

@@ -0,0 +1,198 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-colorlist-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"propertyType": "App::PropertyColorList",
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-colorlist-roundtrip/native-initial.FCStd",
"bytes": 2510,
"sha256": "e4df2d68ecaae973613b1c8026e98502d69fc961943619fbb1624926f3b2e0af"
},
"webEdited": {
"path": ".cache/freecad/property-colorlist-roundtrip/web-edited.FCStd",
"bytes": 2330,
"sha256": "1efb3343cf3c9eb3e3f843287fdab2890727a631aff8ea574b60eeaf955181ca"
},
"nativeResaved": {
"path": ".cache/freecad/property-colorlist-roundtrip/native-resaved.FCStd",
"bytes": 2511,
"sha256": "0b14d095c2ecf85a19c588bf2b55bddea64f64a99f686fc2e837b98a2454a13f"
}
},
"nativeInitial": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "ColorListProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
]
]
},
"objectSet": [
{
"name": "ColorListProbe",
"typeId": "App::FeatureTest"
}
]
},
"web": {
"before": {
"name": "ColourList",
"typeId": "App::PropertyColorList",
"element": "ColorList",
"value": "[[0.06666666666666667,0.13333333333333333,0.2,0.26666666666666666]]",
"resourcePath": "ColourList"
},
"after": {
"name": "ColourList",
"typeId": "App::PropertyColorList",
"element": "ColorList",
"value": "[[0.2,0.4,0.6,0.8],[0.06666666666666667,0.13333333333333333,0.2,0.26666666666666666]]",
"resourcePath": "ColourList"
},
"resource": {
"path": "ColourList",
"pathPreserved": true,
"beforeBytes": 8,
"afterBytes": 12,
"changed": true
},
"objectSetPreserved": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 3,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "ColorListProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
[
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
]
]
},
"objectSet": [
{
"name": "ColorListProbe",
"typeId": "App::FeatureTest"
}
]
},
"resaved": {
"object": {
"editorMode": [],
"hasShapeProperty": false,
"name": "ColorListProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyColorList",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::FeatureTest",
"value": [
[
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
]
]
},
"objectSet": [
{
"name": "ColorListProbe",
"typeId": "App::FeatureTest"
}
]
}
},
"classification": {
"requestedValue": [
[
0.2,
0.4,
0.6,
0.8
],
[
0.06666666666666667,
0.13333333333333333,
0.2,
0.26666666666666666
]
],
"webValue": "[[0.2,0.4,0.6,0.8],[0.06666666666666667,0.13333333333333333,0.2,0.26666666666666666]]",
"reopenedValue": [
[
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
]
],
"resavedValue": [
[
0.200000003,
0.400000006,
0.600000024,
0.800000012
],
[
0.06666667,
0.13333334,
0.200000003,
0.266666681
]
],
"nativeOutputMatches": true,
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,201 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyDirection",
"recordCount": 2,
"records": [
{
"objectTypeId": "Part::Mirroring",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Normal",
"group": "Plane",
"status": [],
"defaultDisplayValue": "Vector (0.0, 0.0, 1.0)",
"defaultValue": [
0,
0,
1
],
"valueModel": {
"kind": "three-component-direction-vector",
"representation": "Base::Vector3d",
"normalizationAtPropertyBoundary": "none",
"unit": "Length",
"writable": true
},
"inputs": {
"accepted": [
"Base.Vector",
"tuple-of-three-float-or-integer-components"
],
"listAccepted": false,
"componentPaths": [
"x",
"y",
"z"
]
},
"editor": "Gui::PropertyEditor::PropertyDirectionItem",
"dependencies": [
{
"propertyName": "Source",
"role": "shape-source",
"requiredForExecution": true
},
{
"propertyName": "Base",
"role": "plane-origin",
"requiredForExecution": true
},
{
"propertyName": "MirrorPlane",
"role": "optional-plane-override",
"requiredForExecution": false,
"overrides": [
"Base",
"Normal"
],
"overriddenStatus": "ReadOnly"
}
],
"applicability": {
"requiredObjectTypeId": "Part::Mirroring",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false,
"hostExecutionRequiresShapeInputs": true,
"nonZeroRequiredByConsumer": true,
"consumer": "gp_Ax2(gp_Pnt(Base), gp_Dir(Normal))"
}
},
{
"objectTypeId": "Part::ProjectOnSurface",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Direction",
"group": "Projection",
"status": [],
"defaultDisplayValue": "Vector (0.0, 0.0, 1.0)",
"defaultValue": [
0,
0,
1
],
"valueModel": {
"kind": "three-component-direction-vector",
"representation": "Base::Vector3d",
"normalizationAtPropertyBoundary": "none",
"unit": "Length",
"writable": true
},
"inputs": {
"accepted": [
"Base.Vector",
"tuple-of-three-float-or-integer-components"
],
"listAccepted": false,
"componentPaths": [
"x",
"y",
"z"
]
},
"editor": "Gui::PropertyEditor::PropertyDirectionItem",
"dependencies": [
{
"propertyName": "SupportFace",
"role": "single-support-face",
"requiredForExecution": true
},
{
"propertyName": "Projection",
"role": "projected-shape-list",
"requiredForExecution": true
}
],
"applicability": {
"requiredObjectTypeId": "Part::ProjectOnSurface",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false,
"hostExecutionRequiresShapeInputs": true,
"nonZeroRequiredByConsumer": true,
"consumer": "gp_Dir(Direction)"
}
}
],
"storage": {
"inheritedFrom": "App::PropertyVector",
"xmlElement": "PropertyVector",
"attributes": [
"valueX",
"valueY",
"valueZ"
],
"scalarEncoding": "decimal-double",
"externalResource": false
},
"provenance": {
"runtime": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"sources": [
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyGeo.h",
"bytes": 15791,
"sha256": "641182ca1267b318af377b9d1cf22a9cc0c365939866bafc8e5b51dc26d9a928"
},
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyGeo.cpp",
"bytes": 43128,
"sha256": "9e1553f42f8c537c8aee4d64d3bd06d4b8be0abc93e7b258901ee543fc52c553"
},
{
"path": ".cache/freecad/FreeCAD/src/Gui/propertyeditor/PropertyItem.h",
"bytes": 41826,
"sha256": "aaade89f5386b5d061b1b2d09a4fd01e7a27e3c601117fc00e44e115f347d9ed"
},
{
"path": ".cache/freecad/FreeCAD/src/Gui/propertyeditor/PropertyItem.cpp",
"bytes": 142093,
"sha256": "bf2f7cb4c01034425f4ebd46f901ada03c5fa02dcffbc1d3936e49ef7bc43b52"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/Part/App/FeatureMirroring.h",
"bytes": 2808,
"sha256": "f1d4bab8dccf115d1d81791afea90c4ac12768a0b07ce3cfcfc08718e1158876"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/Part/App/FeatureMirroring.cpp",
"bytes": 14307,
"sha256": "ce26935b3326ff5ddaf5a6e67ac5a7c52c03c1e6adf2e4f37b162fc6b755830e"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/Part/App/FeatureProjectOnSurface.h",
"bytes": 4249,
"sha256": "79a3a3126d696d43f29a12802df9c006bc29f4a8ac9b2fa4619806e57691435d"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/Part/App/FeatureProjectOnSurface.cpp",
"bytes": 16425,
"sha256": "19b4edfdb60d219aa2c120e7a90b390ca3cda438ed0bff72f43fa8ed09d3e5ed"
}
]
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

View File

@@ -0,0 +1,527 @@
{
"baselineId": "freecad-1.1.1-property-direction-mutation",
"caseCount": 2,
"cases": [
{
"caseId": "Mirroring",
"editedValue": [
0.25,
-0.5,
1.5
],
"geometryChanged": true,
"geometryRestored": true,
"objectName": "DirectionMirror",
"objectTypeId": "Part::Mirroring",
"objectsPreserved": true,
"phases": {
"afterRecompute": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": true,
"shape": {
"area": 52.0,
"bounds": [
-1.170731707,
0.0,
-3.609756098,
2.195121951,
4.951219512,
1.756097561
],
"brepSha256": "78c098a6fa65ccee51c306e1af3d908c067c4866d0a937f225b35e5c4f00ce7f",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24.0
},
"statusString": "Valid",
"value": [
0.25,
-0.5,
1.5
]
},
"afterRestoreRecompute": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": true,
"shape": {
"area": 52.0,
"bounds": [
0.0,
0.0,
-4.0,
2.0,
3.0,
0.0
],
"brepSha256": "ba65608213dd700751777e936c8f7cdd2b84a9e043a4deeec8e57eec3614b69b",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24.0
},
"statusString": "Valid",
"value": [
0.0,
0.0,
1.0
]
},
"afterRestoreSet": {
"editorMode": [],
"mustExecute": true,
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
],
"objectState": [
"Touched"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": null,
"shape": {
"area": 52.0,
"bounds": [
0.0,
0.0,
-4.0,
2.0,
3.0,
0.0
],
"brepSha256": "ba65608213dd700751777e936c8f7cdd2b84a9e043a4deeec8e57eec3614b69b",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24.0
},
"statusString": "Touched",
"value": [
0.0,
0.0,
1.0
]
},
"afterSet": {
"editorMode": [],
"mustExecute": true,
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
],
"objectState": [
"Touched"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": null,
"shape": {
"area": 52.0,
"bounds": [
-1.170731707,
0.0,
-3.609756098,
2.195121951,
4.951219512,
1.756097561
],
"brepSha256": "78c098a6fa65ccee51c306e1af3d908c067c4866d0a937f225b35e5c4f00ce7f",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24.0
},
"statusString": "Touched",
"value": [
0.25,
-0.5,
1.5
]
},
"before": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": true,
"shape": {
"area": 52.0,
"bounds": [
0.0,
0.0,
-4.0,
2.0,
3.0,
0.0
],
"brepSha256": "ba65608213dd700751777e936c8f7cdd2b84a9e043a4deeec8e57eec3614b69b",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24.0
},
"statusString": "Valid",
"value": [
0.0,
0.0,
1.0
]
}
},
"propertyName": "Normal",
"valueChanged": true,
"valueRestored": true
},
{
"caseId": "ProjectOnSurface",
"editedValue": [
0.25,
-0.5,
1.5
],
"geometryChanged": true,
"geometryRestored": true,
"objectName": "DirectionProjection",
"objectTypeId": "Part::ProjectOnSurface",
"objectsPreserved": true,
"phases": {
"afterRecompute": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "ProjectionSupport",
"typeId": "Part::Feature"
},
{
"name": "ProjectionWire",
"typeId": "Part::Feature"
},
{
"name": "DirectionProjection",
"typeId": "Part::ProjectOnSurface"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": true,
"shape": {
"area": 0.0,
"bounds": [
-3.166666667,
-4.666666667,
-0.0,
4.833333333,
1.333333333,
0.0
],
"brepSha256": "3c78808d667362064af03623580275fc042383070d13822c577066173f4ea7d8",
"edges": 4,
"faces": 0,
"isNull": false,
"shapeType": "Compound",
"solids": 0,
"valid": true,
"vertices": 4,
"volume": 0.0
},
"statusString": "Valid",
"value": [
0.25,
-0.5,
1.5
]
},
"afterRestoreRecompute": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "ProjectionSupport",
"typeId": "Part::Feature"
},
{
"name": "ProjectionWire",
"typeId": "Part::Feature"
},
{
"name": "DirectionProjection",
"typeId": "Part::ProjectOnSurface"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": true,
"shape": {
"area": 0.0,
"bounds": [
-4.0,
-3.0,
0.0,
4.0,
3.0,
0.0
],
"brepSha256": "ba5241977c38224f66ffb495b32d3468bdcde322f177ed8047ddac5423d197de",
"edges": 4,
"faces": 0,
"isNull": false,
"shapeType": "Compound",
"solids": 0,
"valid": true,
"vertices": 4,
"volume": 0.0
},
"statusString": "Valid",
"value": [
0.0,
0.0,
1.0
]
},
"afterRestoreSet": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "ProjectionSupport",
"typeId": "Part::Feature"
},
{
"name": "ProjectionWire",
"typeId": "Part::Feature"
},
{
"name": "DirectionProjection",
"typeId": "Part::ProjectOnSurface"
}
],
"objectState": [
"Touched"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": null,
"shape": {
"area": 0.0,
"bounds": [
-3.166666667,
-4.666666667,
-0.0,
4.833333333,
1.333333333,
0.0
],
"brepSha256": "3c78808d667362064af03623580275fc042383070d13822c577066173f4ea7d8",
"edges": 4,
"faces": 0,
"isNull": false,
"shapeType": "Compound",
"solids": 0,
"valid": true,
"vertices": 4,
"volume": 0.0
},
"statusString": "Touched",
"value": [
0.0,
0.0,
1.0
]
},
"afterSet": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "ProjectionSupport",
"typeId": "Part::Feature"
},
{
"name": "ProjectionWire",
"typeId": "Part::Feature"
},
{
"name": "DirectionProjection",
"typeId": "Part::ProjectOnSurface"
}
],
"objectState": [
"Touched"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": null,
"shape": {
"area": 0.0,
"bounds": [
-4.0,
-3.0,
0.0,
4.0,
3.0,
0.0
],
"brepSha256": "ba5241977c38224f66ffb495b32d3468bdcde322f177ed8047ddac5423d197de",
"edges": 4,
"faces": 0,
"isNull": false,
"shapeType": "Compound",
"solids": 0,
"valid": true,
"vertices": 4,
"volume": 0.0
},
"statusString": "Touched",
"value": [
0.25,
-0.5,
1.5
]
},
"before": {
"editorMode": [],
"mustExecute": false,
"objectSet": [
{
"name": "ProjectionSupport",
"typeId": "Part::Feature"
},
{
"name": "ProjectionWire",
"typeId": "Part::Feature"
},
{
"name": "DirectionProjection",
"typeId": "Part::ProjectOnSurface"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"recomputeResult": true,
"shape": {
"area": 0.0,
"bounds": [
-4.0,
-3.0,
0.0,
4.0,
3.0,
0.0
],
"brepSha256": "ba5241977c38224f66ffb495b32d3468bdcde322f177ed8047ddac5423d197de",
"edges": 4,
"faces": 0,
"isNull": false,
"shapeType": "Compound",
"solids": 0,
"valid": true,
"vertices": 4,
"volume": 0.0
},
"statusString": "Valid",
"value": [
0.0,
0.0,
1.0
]
}
},
"propertyName": "Direction",
"valueChanged": true,
"valueRestored": true
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"propertyType": "App::PropertyDirection",
"schemaVersion": 1,
"status": "pass"
}

View File

@@ -0,0 +1,77 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertydirection-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyDirection",
"recordCount": 2,
"phaseEvidence": {
"A": [
"config/freecad-property-direction-inventory.json",
"check:freecad-property-direction-inventory"
],
"B": [
"config/freecad-property-direction-success.json",
"check:freecad-property-direction-success"
],
"C": [
"config/freecad-property-direction-failure.json",
"check:freecad-property-direction-failure"
],
"D": [
"config/freecad-property-direction-mutation.json",
"check:freecad-property-direction-mutation"
],
"E": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyDirectionFacade.test.ts",
"test:freecad-property-direction-facade"
],
"F": [
"tests/propertyDirectionTransaction.test.ts",
"test:freecad-property-direction-transaction"
],
"G": [
"config/freecad-property-direction-roundtrip.json",
"check:freecad-property-direction-roundtrip"
],
"H": [
"config/chrome-property-direction-verification.json",
"check:chrome-property-direction"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "three-finite-vector-components-with-native-propertyvector-fcstd-payload",
"writableRecords": 2,
"fcstdElement": "PropertyVector",
"nativeRoundTripValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"browserRoundTripValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.839Z"
}

View File

@@ -0,0 +1,328 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-direction-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"propertyType": "App::PropertyDirection",
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-direction-roundtrip/native-initial.FCStd",
"bytes": 3782,
"sha256": "e9e16561486feced5a81240c3815aca41ed2c13a1694119c053af6e1cb84a545"
},
"webEdited": {
"path": ".cache/freecad/property-direction-roundtrip/web-edited.FCStd",
"bytes": 3722,
"sha256": "7249873d594722059ef328cb0513b8eb8e1f7aa14a46b21bef504b009b0dad21"
},
"nativeResaved": {
"path": ".cache/freecad/property-direction-roundtrip/native-resaved.FCStd",
"bytes": 3981,
"sha256": "5f12251fbdf2a763d42838cc0ba109930fd452e5e48808f00506f34aececb874"
},
"nativeRepeatResaved": {
"path": ".cache/freecad/property-direction-roundtrip/native-resaved-repeat.FCStd",
"bytes": 3990,
"sha256": "a455f01e576b6d481eb0474b3048e7657c017bc1165aa11c7ebb43d7ad065f2c"
}
},
"nativeInitial": {
"object": {
"editorMode": [],
"name": "DirectionMirror",
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"shape": {
"area": 52,
"bounds": [
0,
0,
-4,
2,
3,
0
],
"brepSha256": "88b166d7ee48d61dfcfc8ff0331c32ab6dfe18f4fcfe9ca29ade01c15d6b9406",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Mirroring",
"value": {
"x": 0,
"y": 0,
"z": 1
}
},
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
]
},
"web": {
"before": {
"name": "Normal",
"typeId": "App::PropertyDirection",
"element": "PropertyVector",
"value": "{\"x\":0,\"y\":0,\"z\":1}"
},
"after": {
"name": "Normal",
"typeId": "App::PropertyDirection",
"element": "PropertyVector",
"value": "{\"x\":0.25,\"y\":-0.5,\"z\":1.5}"
},
"targetMarkedTouched": true,
"webOutputMatches": true,
"objectSetPreserved": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 3,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"object": {
"editorMode": [],
"name": "DirectionMirror",
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"shape": {
"area": 52,
"bounds": [
-1.170731707,
0,
-3.609756098,
2.195121951,
4.951219512,
1.756097561
],
"brepSha256": "78c098a6fa65ccee51c306e1af3d908c067c4866d0a937f225b35e5c4f00ce7f",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Mirroring",
"value": {
"x": 0.25,
"y": -0.5,
"z": 1.5
}
},
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
]
},
"resaved": {
"object": {
"editorMode": [],
"name": "DirectionMirror",
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"shape": {
"area": 52,
"bounds": [
-1.170731707,
0,
-3.609756098,
2.195121951,
4.951219512,
1.756097561
],
"brepSha256": "d2f2dec7c559cb100c4966733f07f8313886144c3fdb22d4e6f4b5185bb549c6",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Mirroring",
"value": {
"x": 0.25,
"y": -0.5,
"z": 1.5
}
},
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
]
}
},
"nativeRepeat": {
"reopened": {
"object": {
"editorMode": [],
"name": "DirectionMirror",
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"shape": {
"area": 52,
"bounds": [
-1.170731707,
0,
-3.609756098,
2.195121951,
4.951219512,
1.756097561
],
"brepSha256": "78c098a6fa65ccee51c306e1af3d908c067c4866d0a937f225b35e5c4f00ce7f",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Mirroring",
"value": {
"x": 0.25,
"y": -0.5,
"z": 1.5
}
},
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
]
},
"resaved": {
"object": {
"editorMode": [],
"name": "DirectionMirror",
"propertyStatus": [],
"propertyTypeId": "App::PropertyDirection",
"shape": {
"area": 52,
"bounds": [
-1.170731707,
0,
-3.609756098,
2.195121951,
4.951219512,
1.756097561
],
"brepSha256": "d2f2dec7c559cb100c4966733f07f8313886144c3fdb22d4e6f4b5185bb549c6",
"edges": 12,
"faces": 6,
"isNull": false,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 24
},
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Mirroring",
"value": {
"x": 0.25,
"y": -0.5,
"z": 1.5
}
},
"objectSet": [
{
"name": "MirrorSource",
"typeId": "Part::Box"
},
{
"name": "DirectionMirror",
"typeId": "Part::Mirroring"
}
]
}
},
"classification": {
"requestedValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"webValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"reopenedValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"resavedValue": {
"x": 0.25,
"y": -0.5,
"z": 1.5
},
"nativeOutputMatches": true,
"nativeShapeChanged": true,
"nativeShapeStructureStable": true,
"nativeBrepReserialized": true,
"nativeBrepEvolutionReproduced": true,
"nativeAllowedEvolution": {
"classification": "native-allowed-evolution",
"dimension": "brep-serialization",
"reason": "FreeCAD save/reopen reserializes the recomputed Shape while direction, bounds, topology, mass properties and validity remain stable."
},
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,308 @@
{
"baselineId": "freecad-1.1.1-property-file-failure",
"cancellationBoundary": {
"classification": "synchronous-property-setter",
"reason": "no-native-cancel-hook",
"replacement": "abort-active-document-transaction",
"supported": false
},
"disabled": {
"after": {
"editorMode": [
"ReadOnly"
],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [
"Immutable",
"ReadOnly"
],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": ""
},
"afterObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"before": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": ""
},
"beforeObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"classification": "editor-read-only-and-python-immutable",
"editorMode": [
"ReadOnly"
],
"exception": {
"message": "Object attribute 'FileName' is read-only",
"type": "AttributeError"
},
"restoredEditorMode": [],
"restoredStatus": [],
"status": [
"Immutable",
"ReadOnly"
]
},
"documentIntegrity": {
"finalObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"initialObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectCount": 1,
"objectsPreserved": true
},
"failures": [
{
"after": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": "/definitely/missing/bitbybit-file.stl"
},
"afterObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"assignmentException": null,
"before": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "Valid",
"value": ""
},
"beforeObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"id": "missing-path",
"objectsPreserved": true,
"recomputeException": null,
"requested": "/definitely/missing/bitbybit-file.stl"
},
{
"after": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": "/definitely/missing/bitbybit-file.stl"
},
"afterObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"assignmentException": {
"message": "type must be str or unicode, not int",
"type": "TypeError"
},
"before": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": "/definitely/missing/bitbybit-file.stl"
},
"beforeObjects": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"id": "wrong-type",
"objectsPreserved": true,
"recomputeException": null,
"requested": 12345
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"initial": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "Valid",
"value": ""
},
"object": {
"name": "FileProbe",
"typeId": "Mesh::Import"
},
"property": {
"name": "FileName",
"typeId": "App::PropertyFile"
},
"schemaVersion": 1,
"status": "pass",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 1,
"name": "property-file-cancel"
},
"afterAbort": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": ""
},
"before": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": ""
},
"edited": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"statusString": "File does not exist",
"value": "/tmp/transaction-file.stl"
},
"objectsAfter": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectsBefore": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectsRestored": true,
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"restored": true,
"undoMode": 1
}
}

View File

@@ -0,0 +1,619 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyFile",
"recordCount": 16,
"records": [
{
"objectTypeId": "Mesh::Import",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileName",
"group": "",
"status": [],
"defaultRaw": "",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "Mesh::Import",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawComplexSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileGeomPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSection",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawComplexSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileHatchPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSection",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawComplexSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileGeomPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSectionPython",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawComplexSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileHatchPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSectionPython",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawGeomHatch",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FilePattern",
"group": "GeomHatch",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawGeomHatch",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawHatch",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "HatchPattern",
"group": "Hatch",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawHatch",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawParametricTemplate",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Template",
"group": "Page",
"status": [],
"defaultRaw": "",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawParametricTemplate",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawSVGTemplate",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "Template",
"group": "Template",
"status": [],
"defaultRaw": "",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawSVGTemplate",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawTileWeld",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SymbolFile",
"group": "TileWeld",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Symbols/Welding/blankTile.svg",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Symbols/Welding/blankTile.svg",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawTileWeld",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawTileWeldPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SymbolFile",
"group": "TileWeld",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Symbols/Welding/blankTile.svg",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Symbols/Welding/blankTile.svg",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawTileWeldPython",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawViewImage",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "ImageFile",
"group": "Image",
"status": [],
"defaultRaw": "",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewImage",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawViewSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileGeomPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSection",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawViewSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileHatchPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSection",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawViewSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileGeomPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/PAT/FCPAT.pat",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSectionPython",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
},
{
"objectTypeId": "TechDraw::DrawViewSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "FileHatchPattern",
"group": "Cut Surface Format",
"status": [],
"defaultRaw": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"valueModel": {
"kind": "path-string",
"representation": "App::PropertyString-derived UTF-8 path",
"defaultValue": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/install-desktop/share/Mod/TechDraw/Patterns/simple.svg",
"writable": true,
"externalResource": true,
"browserEditBoundary": "host-absolute-paths are not written into the browser project; use an explicit project resource reference"
},
"inputs": {
"accepted": [
"string",
"{filename:string,filter?:string}"
],
"componentPaths": [
"filename",
"filter"
],
"emptyStringAccepted": true
},
"editor": "Gui::PropertyEditor::PropertyFileItem",
"dependencies": [],
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSectionPython",
"source": "Document.supportedTypes runtime inventory",
"propertyWriteRequiresShape": false
}
}
],
"storage": {
"inheritedFrom": "App::PropertyString",
"xmlElement": "String",
"scalarEncoding": "UTF-8 path string",
"externalResource": true,
"absoluteHostPathPolicy": "preserve-or-reject; never rewrite into browser project"
},
"provenance": {
"runtime": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"sources": [
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyFile.h",
"bytes": 5474,
"sha256": "1e5d3fea7bebde48fafccbaf9edca92cdc9b727ccaaa74a50b70929a1fe02412"
},
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyFile.cpp",
"bytes": 22084,
"sha256": "ee1b7a3a675d93b3beaca52ce819201e9d240c99e6eb08b391bd81e076ac21fe"
},
{
"path": ".cache/freecad/FreeCAD/src/Gui/propertyeditor/PropertyItem.h",
"bytes": 41826,
"sha256": "aaade89f5386b5d061b1b2d09a4fd01e7a27e3c601117fc00e44e115f347d9ed"
},
{
"path": ".cache/freecad/FreeCAD/src/Gui/propertyeditor/PropertyItem.cpp",
"bytes": 142093,
"sha256": "bf2f7cb4c01034425f4ebd46f901ada03c5fa02dcffbc1d3936e49ef7bc43b52"
}
]
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

View File

@@ -0,0 +1,82 @@
{
"baselineId": "freecad-1.1.1-property-file-mutation",
"classification": {
"invalidEditedPath": true,
"objectSetStable": true,
"restoreExact": true,
"unknownSemanticDrift": false,
"valueChanged": true
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"object": {
"name": "FileProbe",
"typeId": "Mesh::Import"
},
"phases": {
"before": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"recomputeResult": false,
"statusString": "Valid",
"value": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj"
},
"edited": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"recomputeResult": true,
"statusString": "File does not exist",
"value": "/tmp/property-file-alternate.stl"
},
"restored": {
"editorMode": [],
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"recomputeResult": true,
"statusString": "Valid",
"value": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj"
}
},
"property": {
"name": "FileName",
"typeId": "App::PropertyFile"
},
"propertyType": "App::PropertyFile",
"requested": {
"before": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj",
"edited": "/tmp/property-file-alternate.stl",
"restored": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj"
},
"schemaVersion": 1,
"status": "pass"
}

View File

@@ -0,0 +1,71 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertyfile-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyFile",
"recordCount": 16,
"phaseEvidence": {
"A": [
"config/freecad-property-file-inventory.json",
"check:freecad-property-file-inventory"
],
"B": [
"config/freecad-property-file-success.json",
"check:freecad-property-file-success"
],
"C": [
"config/freecad-property-file-failure.json",
"check:freecad-property-file-failure"
],
"D": [
"config/freecad-property-file-mutation.json",
"check:freecad-property-file-mutation"
],
"E": [
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyFileFacade.test.ts",
"test:freecad-property-file-facade"
],
"F": [
"tests/propertyFileTransaction.test.ts",
"test:freecad-property-file-transaction"
],
"G": [
"config/freecad-property-file-roundtrip.json",
"check:freecad-property-file-roundtrip"
],
"H": [
"config/chrome-property-file-verification.json",
"check:chrome-property-file"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "safe-project-relative-path-string-with-native-string-fcstd-payload",
"writableRecords": 16,
"objectTypeCount": 12,
"fcstdElement": "String",
"nativeRoundTripValue": ".cache/freecad/property-file-roundtrip/alternate.obj",
"browserRoundTripValue": "project-files/chrome-updated.obj",
"externalResourceBoundary": "project-relative-path; asset bytes remain external to FCStd",
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.800Z"
}

View File

@@ -0,0 +1,191 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-file-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"propertyType": "App::PropertyFile",
"assets": {
"initial": {
"path": ".cache/freecad/FreeCAD/data/tests/mesh.obj",
"bytes": 429,
"sha256": "581dfc5ad60f64ff3f21a376aaab962675b396725a13d4a49e11c67c1c773738"
},
"target": {
"path": ".cache/freecad/property-file-roundtrip/alternate.obj",
"bytes": 66,
"sha256": "da9f1a2a70c4c8b781cdac75d547ea829de315e9108eb5c883b76d3756387a08"
}
},
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-file-roundtrip/native-initial.FCStd",
"bytes": 1611,
"sha256": "9577f735da4b4a800992a87ba156ba4c3b5a51e74ec4e1ac0acd9fae19b339e4"
},
"webEdited": {
"path": ".cache/freecad/property-file-roundtrip/web-edited.FCStd",
"bytes": 1470,
"sha256": "47ce9d56bd59cced3418396dbddca136925d4514c3e5c744657f3de8fb8c0c5e"
},
"nativeResaved": {
"path": ".cache/freecad/property-file-roundtrip/native-resaved.FCStd",
"bytes": 1519,
"sha256": "eba5caac14066c3b294728360ae96df64c6e958db1e196a0a6128d6a50982485"
}
},
"nativeInitial": {
"object": {
"asset": {
"bytes": 429,
"exists": true,
"sha256": "581dfc5ad60f64ff3f21a376aaab962675b396725a13d4a49e11c67c1c773738"
},
"editorMode": [],
"hasMeshProperty": true,
"hasShapeProperty": false,
"mesh": {
"bounds": [
-5,
-5,
-5,
5,
5,
5
],
"facets": 12,
"isEmpty": false,
"points": 8
},
"name": "FileProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Mesh::Import",
"value": ".cache/freecad/FreeCAD/data/tests/mesh.obj"
},
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
]
},
"web": {
"before": {
"name": "FileName",
"typeId": "App::PropertyFile",
"element": "String",
"value": ".cache/freecad/FreeCAD/data/tests/mesh.obj"
},
"after": {
"name": "FileName",
"typeId": "App::PropertyFile",
"element": "String",
"value": ".cache/freecad/property-file-roundtrip/alternate.obj"
},
"targetMarkedTouched": true,
"webOutputMatches": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 1,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"object": {
"asset": {
"bytes": 66,
"exists": true,
"sha256": "da9f1a2a70c4c8b781cdac75d547ea829de315e9108eb5c883b76d3756387a08"
},
"editorMode": [],
"hasMeshProperty": true,
"hasShapeProperty": false,
"mesh": {
"bounds": [
0,
0,
0,
4,
3,
0
],
"facets": 1,
"isEmpty": false,
"points": 3
},
"name": "FileProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Mesh::Import",
"value": ".cache/freecad/property-file-roundtrip/alternate.obj"
},
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
]
},
"resaved": {
"object": {
"asset": {
"bytes": 66,
"exists": true,
"sha256": "da9f1a2a70c4c8b781cdac75d547ea829de315e9108eb5c883b76d3756387a08"
},
"editorMode": [],
"hasMeshProperty": true,
"hasShapeProperty": false,
"mesh": {
"bounds": [
0,
0,
0,
4,
3,
0
],
"facets": 1,
"isEmpty": false,
"points": 3
},
"name": "FileProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Mesh::Import",
"value": ".cache/freecad/property-file-roundtrip/alternate.obj"
},
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
]
}
},
"classification": {
"requestedValue": ".cache/freecad/property-file-roundtrip/alternate.obj",
"webValue": ".cache/freecad/property-file-roundtrip/alternate.obj",
"reopenedValue": ".cache/freecad/property-file-roundtrip/alternate.obj",
"resavedValue": ".cache/freecad/property-file-roundtrip/alternate.obj",
"nativeOutputMatches": true,
"objectSetPreserved": true,
"nativeMeshChanged": true,
"nativeMeshStable": true,
"externalResourceBoundary": "project-relative-path; asset bytes remain external to FCStd",
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

View File

@@ -0,0 +1,161 @@
{
"asset": {
"bytes": 429,
"exists": true,
"path": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj"
},
"baselineId": "freecad-1.1.1-property-file-success",
"diagnostics": {
"documentObjectCount": 1,
"exception": null
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"object": {
"name": "FileProbe",
"typeId": "Mesh::Import"
},
"phases": {
"default": {
"editorMode": [],
"mesh": {
"applicable": true,
"bounds": [
1.7976931348623157e+308,
1.7976931348623157e+308,
1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308
],
"facets": 0,
"isEmpty": true,
"vertices": 0
},
"mustExecute": null,
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"recomputeResult": false,
"requested": "",
"statusString": "Valid",
"value": ""
},
"relative-path": {
"editorMode": [],
"mesh": {
"applicable": true,
"bounds": [
1.7976931348623157e+308,
1.7976931348623157e+308,
1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308
],
"facets": 0,
"isEmpty": true,
"vertices": 0
},
"mustExecute": null,
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Touched",
"Invalid"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"recomputeResult": true,
"requested": "mesh-data/Cube.stl",
"statusString": "File does not exist",
"value": "mesh-data/Cube.stl"
},
"restored": {
"editorMode": [],
"mesh": {
"applicable": true,
"bounds": [
1.7976931348623157e+308,
1.7976931348623157e+308,
1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308
],
"facets": 0,
"isEmpty": true,
"vertices": 0
},
"mustExecute": null,
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"recomputeResult": true,
"requested": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj",
"statusString": "Valid",
"value": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj"
},
"valid-mesh": {
"editorMode": [],
"mesh": {
"applicable": true,
"bounds": [
1.7976931348623157e+308,
1.7976931348623157e+308,
1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308,
-1.7976931348623157e+308
],
"facets": 0,
"isEmpty": true,
"vertices": 0
},
"mustExecute": null,
"objectSet": [
{
"name": "FileProbe",
"typeId": "Mesh::Import"
}
],
"objectState": [
"Up-to-date"
],
"propertyStatus": [],
"propertyTypeId": "App::PropertyFile",
"recomputeResult": true,
"requested": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj",
"statusString": "Valid",
"value": "/home/mes123456/working_Web_FreeCAD_Bitbybit/.cache/freecad/FreeCAD/data/tests/mesh.obj"
}
},
"property": {
"group": "",
"name": "FileName",
"typeId": "App::PropertyFile"
},
"propertyType": "App::PropertyFile",
"schemaVersion": 1,
"status": "pass"
}

View File

@@ -0,0 +1,865 @@
{
"acceptedRisks": [
{
"after": {
"baseName": "stable.bin",
"bytes": 0,
"editorMode": [],
"exists": false,
"isDirectory": true,
"isFile": false,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Touched"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": null,
"statusString": "Touched",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"assignmentException": null,
"before": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"directoryAccepted": true,
"id": "directory-path",
"objectsPreserved": true,
"oldFileRemoved": true,
"recovery": {
"baseName": "restored-after-directory.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/restored-after-directory.bin",
"writeBits": 0
},
"requested": "'/tmp/freecad-property-fileincluded-failure-0ikgj5ie/directory'"
}
],
"baselineId": "freecad-1.1.1-property-fileincluded-failure",
"cancellationBoundary": {
"classification": "synchronous-property-setter",
"reason": "no-native-cancel-hook",
"replacement": "abort-active-document-transaction",
"supported": false
},
"documentIntegrity": {
"finalObjects": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"initialObjects": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectCount": 1,
"objectsPreserved": true
},
"editorReadOnly": {
"after": {
"baseName": "editor-write.bin",
"bytes": 34,
"editorMode": [
"ReadOnly"
],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Touched"
],
"pathExists": true,
"propertyStatus": [
"ReadOnly"
],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "72122705399a0111d36d7b74ec05f8155834ce6b394d1bd879f360e29f8bb365",
"statusString": "Touched",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/editor-write.bin",
"writeBits": 0
},
"before": {
"baseName": "restored-after-directory.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/restored-after-directory.bin",
"writeBits": 0
},
"editorMode": [
"ReadOnly"
],
"exception": null,
"pythonBypassesEditorReadOnly": true
},
"failures": [
{
"after": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"assignmentException": {
"message": "File /definitely/missing/property-fileincluded.bin does not exist.",
"type": "OSError"
},
"before": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"id": "missing-path",
"objectSetAfter": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectSetBefore": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectsPreserved": true,
"requested": "'/definitely/missing/property-fileincluded.bin'",
"valuePreserved": true
},
{
"after": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"assignmentException": {
"message": "Type must be string or file, not int",
"type": "TypeError"
},
"before": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"id": "wrong-type",
"objectSetAfter": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectSetBefore": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectsPreserved": true,
"requested": "12345",
"valuePreserved": true
},
{
"after": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"assignmentException": {
"message": "Tuple needs size of (filePath,newFileName)",
"type": "TypeError"
},
"before": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"id": "tuple-wrong-arity",
"objectSetAfter": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectSetBefore": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectsPreserved": true,
"requested": "('/tmp/freecad-property-fileincluded-failure-0ikgj5ie/source.bin',)",
"valuePreserved": true
},
{
"after": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"assignmentException": {
"message": "Second item in tuple must be a string, not int",
"type": "TypeError"
},
"before": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"id": "tuple-wrong-name-type",
"objectSetAfter": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectSetBefore": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectsPreserved": true,
"requested": "('/tmp/freecad-property-fileincluded-failure-0ikgj5ie/source.bin', 123)",
"valuePreserved": true
},
{
"after": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"assignmentException": {
"message": "PyCXX: Error creating object of type N2Py7SeqBaseINS_4CharEEE from 123",
"type": "TypeError"
},
"before": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"id": "dictionary-wrong-filename-type",
"objectSetAfter": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectSetBefore": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectsPreserved": true,
"requested": "{'filename': 123}",
"valuePreserved": true
},
{
"after": {
"baseName": "restored-after-directory.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/restored-after-directory.bin",
"writeBits": 0
},
"assignmentException": {
"message": "Not possible to set the same file!",
"type": "OSError"
},
"before": {
"baseName": "restored-after-directory.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/restored-after-directory.bin",
"writeBits": 0
},
"id": "same-current-transient",
"objectSetAfter": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectSetBefore": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectsPreserved": true,
"requested": "'/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/restored-after-directory.bin'",
"valuePreserved": true
}
],
"filterOnly": {
"after": {
"baseName": "restored-after-directory.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/restored-after-directory.bin",
"writeBits": 0
},
"before": {
"baseName": "restored-after-directory.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/restored-after-directory.bin",
"writeBits": 0
},
"exception": null,
"objectsPreserved": true,
"valuePreserved": true
},
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"immutable": {
"after": {
"baseName": "editor-write.bin",
"bytes": 34,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Touched"
],
"pathExists": true,
"propertyStatus": [
"Immutable"
],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "72122705399a0111d36d7b74ec05f8155834ce6b394d1bd879f360e29f8bb365",
"statusString": "Touched",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/editor-write.bin",
"writeBits": 0
},
"before": {
"baseName": "editor-write.bin",
"bytes": 34,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Touched"
],
"pathExists": true,
"propertyStatus": [
"Immutable"
],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "72122705399a0111d36d7b74ec05f8155834ce6b394d1bd879f360e29f8bb365",
"statusString": "Touched",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/editor-write.bin",
"writeBits": 0
},
"exception": {
"message": "Object attribute 'File' is read-only",
"type": "AttributeError"
},
"restoredStatus": [],
"status": [
"Immutable"
]
},
"initial": {
"baseName": "stable.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/stable.bin",
"writeBits": 0
},
"object": {
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
},
"property": {
"name": "File",
"typeId": "App::PropertyFileIncluded"
},
"propertyType": "App::PropertyFileIncluded",
"schemaVersion": 1,
"status": "pass",
"transaction": {
"activeAfterAbort": {
"id": 0,
"name": ""
},
"activeAfterEdit": {
"id": 1,
"name": "property-fileincluded-cancel"
},
"afterAbort": {
"baseName": "editor-write.bin",
"bytes": 34,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Touched"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "72122705399a0111d36d7b74ec05f8155834ce6b394d1bd879f360e29f8bb365",
"statusString": "Touched",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/editor-write.bin",
"writeBits": 0
},
"before": {
"baseName": "editor-write.bin",
"bytes": 34,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Up-to-date"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "72122705399a0111d36d7b74ec05f8155834ce6b394d1bd879f360e29f8bb365",
"statusString": "Valid",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/editor-write.bin",
"writeBits": 0
},
"edited": {
"baseName": "transaction-write.bin",
"bytes": 29,
"editorMode": [],
"exists": true,
"isDirectory": false,
"isFile": true,
"objectSet": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectState": [
"Touched"
],
"pathExists": true,
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "31f898b8e260a6dc642cf992483813de02d2cb9f4fe0f06be901d281f78f446e",
"statusString": "Touched",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/transaction-write.bin",
"writeBits": 0
},
"editedPath": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_67ad6239-27ce-4f6e-b55e-3f93c28f928f_da39a3_863229/transaction-write.bin",
"editedPathExistsAfterAbort": false,
"objectsAfter": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"objectsBefore": [
{
"name": "FileProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
],
"pendingAfterAbort": false,
"pendingAfterEdit": true,
"restored": true,
"undoMode": 1
}
}

View File

@@ -0,0 +1,924 @@
{
"schemaVersion": 1,
"status": "pass",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyFileIncluded",
"recordCount": 20,
"objectTypeCount": 15,
"records": [
{
"objectTypeId": "App::DocumentObjectFileIncluded",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "File",
"group": "",
"status": [],
"normalizedStatus": [],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": null,
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "App::DocumentObjectFileIncluded",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "App::VRMLObject",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "VrmlFile",
"group": "",
"status": [],
"normalizedStatus": [],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": null,
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "App::VRMLObject",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "Image::ImagePlane",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "ImageFile",
"group": "ImagePlane",
"status": [],
"normalizedStatus": [],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": null,
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "Image::ImagePlane",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "Robot::RobotObject",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "RobotKinematicFile",
"group": "Robot definition",
"status": [],
"normalizedStatus": [],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": null,
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "Robot::RobotObject",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "Robot::RobotObject",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "RobotVrmlFile",
"group": "Robot definition",
"status": [],
"normalizedStatus": [],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": null,
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "Robot::RobotObject",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "Sketcher::SketchObjectSF",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SketchFlatFile",
"group": "",
"status": [],
"normalizedStatus": [],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": null,
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "Sketcher::SketchObjectSF",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawComplexSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "PatIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/FCPAT.pat",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileGeomPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSection",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawComplexSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SvgIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/simple.svg",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileHatchPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSection",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawComplexSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "PatIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/FCPAT1.pat",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileGeomPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSectionPython",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawComplexSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SvgIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/simple1.svg",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileHatchPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawComplexSectionPython",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawGeomHatch",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "PatIncluded",
"group": "GeomHatch",
"status": [],
"normalizedStatus": [],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/FCPAT2.pat",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FilePattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawGeomHatch",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawHatch",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SvgIncluded",
"group": "Hatch",
"status": [],
"normalizedStatus": [],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/simple2.svg",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "HatchPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawHatch",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawSVGTemplate",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "PageResult",
"group": "Template",
"status": [
27
],
"normalizedStatus": [
"PropOutput"
],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "Template",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawSVGTemplate",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawTileWeld",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SymbolIncluded",
"group": "TileWeld",
"status": [],
"normalizedStatus": [],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/blankTile.svg",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "SymbolFile",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawTileWeld",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawTileWeldPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SymbolIncluded",
"group": "TileWeld",
"status": [],
"normalizedStatus": [],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/blankTile1.svg",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "SymbolFile",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawTileWeldPython",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawViewImage",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "ImageIncluded",
"group": "Image",
"status": [],
"normalizedStatus": [],
"defaultRaw": "",
"defaultKind": "empty",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": true,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "ImageFile",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewImage",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawViewSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "PatIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/FCPAT3.pat",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileGeomPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSection",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawViewSection",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SvgIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/simple3.svg",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileHatchPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSection",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawViewSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "PatIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/FCPAT4.pat",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileGeomPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSectionPython",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
},
{
"objectTypeId": "TechDraw::DrawViewSectionPython",
"objectAvailable": true,
"probeStatus": "available",
"propertyName": "SvgIncluded",
"group": "Cut Surface Format",
"status": [
"ReadOnly"
],
"normalizedStatus": [
"ReadOnly"
],
"defaultRaw": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_<uuid>_da39a3_<run>/simple4.svg",
"defaultKind": "document-transient-copy",
"valueModel": {
"kind": "included-file-resource",
"representation": "read-only document-transient file backed by embedded FCStd bytes",
"writableByStatus": false,
"pathIsRuntimeOnly": true,
"bytesAreAuthoritative": true
},
"inputs": {
"accepted": [
"utf8-string-path",
"bytes-path",
"open-io-file",
"[source-path,archive-name]",
"{filename:string,filter?:string}"
],
"sourceFileMustExist": true,
"emptyStringBehavior": "accepted-no-op; does not clear an existing value",
"sameTransientPathBehavior": "rejected"
},
"dependency": {
"sourceProperty": "FileHatchPattern",
"relation": "host-onChanged-copies-source-bytes-into-included-property"
},
"editor": "Gui::PropertyEditor::PropertyTransientFileItem",
"applicability": {
"requiredObjectTypeId": "TechDraw::DrawViewSectionPython",
"propertyWriteRequiresShape": false,
"source": "Document.supportedTypes runtime inventory"
}
}
],
"setterSemantics": {
"externalSource": "copy bytes into the document transient directory",
"writableTransientSource": "rename into the selected transient destination",
"replacement": "delete the previous transient copy unless undo owns it",
"destinationPermissions": "read-only",
"archiveNameCollision": "append a positive integer before the extension",
"undoRedo": "Copy/Paste move or copy transient files while preserving per-property ownership"
},
"storage": {
"xmlElement": "FileIncluded",
"archiveAttribute": "file",
"archiveResource": "separate FCStd ZIP entry containing byte-identical file data",
"forceXmlAttribute": "data",
"forceXmlResource": "binary data embedded in the XML stream",
"emptyEncoding": "<FileIncluded file=\"\"/>",
"restoredValue": "document transient path; not a portable semantic path",
"browserBoundary": "project resource identity plus bytes; never expose or persist an ambient host path"
},
"provenance": {
"runtime": {
"path": ".cache/freecad/reference-desktop.json",
"bytes": 2298709,
"sha256": "082400ec7379e8efc2af16709032d45890d7092277967b714acb05761fd1c2a7"
},
"sources": [
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyFile.h",
"bytes": 5474,
"sha256": "1e5d3fea7bebde48fafccbaf9edca92cdc9b727ccaaa74a50b70929a1fe02412"
},
{
"path": ".cache/freecad/FreeCAD/src/App/PropertyFile.cpp",
"bytes": 22084,
"sha256": "ee1b7a3a675d93b3beaca52ce819201e9d240c99e6eb08b391bd81e076ac21fe"
},
{
"path": ".cache/freecad/FreeCAD/src/Gui/propertyeditor/PropertyItem.h",
"bytes": 41826,
"sha256": "aaade89f5386b5d061b1b2d09a4fd01e7a27e3c601117fc00e44e115f347d9ed"
},
{
"path": ".cache/freecad/FreeCAD/src/Gui/propertyeditor/PropertyItem.cpp",
"bytes": 142093,
"sha256": "bf2f7cb4c01034425f4ebd46f901ada03c5fa02dcffbc1d3936e49ef7bc43b52"
},
{
"path": ".cache/freecad/FreeCAD/src/App/DocumentObjectFileIncluded.cpp",
"bytes": 2128,
"sha256": "0b8b27fd92ef1c722191fc512573de0875e637191b957167c7e17ada11b95bb1"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/TechDraw/App/DrawViewSection.cpp",
"bytes": 47842,
"sha256": "86c68dfa3fea97ed3f79e119f2f488726c6ea82bf6198de935e36383c444829f"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/TechDraw/App/DrawGeomHatch.cpp",
"bytes": 22708,
"sha256": "c8a653c85986b05414965424f0c88e4af1c6af41980eac3c483fc8bb6de763f2"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/TechDraw/App/DrawHatch.cpp",
"bytes": 7966,
"sha256": "ad242fbc5eb7cc4fa0f30fc9db71a549d841ea73680e6d8c7ff2909699c59fa0"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/TechDraw/App/DrawSVGTemplate.cpp",
"bytes": 13492,
"sha256": "8355e597863dcabf9ad996a3e9097988ac8ceba9b6f4635029d33f59b2a019de"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/TechDraw/App/DrawTileWeld.cpp",
"bytes": 4878,
"sha256": "c31f2ec3b244b421b39ff283c687540c4e783361f9dfb2a9ae3b3045ef30463b"
},
{
"path": ".cache/freecad/FreeCAD/src/Mod/TechDraw/App/DrawViewImage.cpp",
"bytes": 4670,
"sha256": "e76a2f5aacd374b63b21cbe37136027ee041a28b59106cdfa78fd5ecbcb2707e"
}
]
},
"classification": "opaque-fcstd-proxy",
"nextPhases": [
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,76 @@
{
"schemaVersion": 1,
"status": "pass",
"taskId": "PROP-app-propertyfileincluded-I",
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"propertyType": "App::PropertyFileIncluded",
"recordCount": 20,
"phaseEvidence": {
"A": [
"config/freecad-property-fileincluded-inventory.json",
"check:freecad-property-fileincluded-inventory"
],
"B": [
"config/freecad-property-fileincluded-success.json",
"check:freecad-property-fileincluded-success"
],
"C": [
"config/freecad-property-fileincluded-failure.json",
"check:freecad-property-fileincluded-failure"
],
"D": [
"config/freecad-property-fileincluded-mutation.json",
"check:freecad-property-fileincluded-mutation"
],
"E": [
"src/facade/includedFile.ts",
"src/facade/types.ts",
"src/facade/fcstd.ts",
"src/facade/mockFacade.ts",
"src/App.tsx",
"tests/propertyFileIncludedFacade.test.ts",
"test:freecad-property-fileincluded-facade"
],
"F": [
"tests/propertyFileIncludedTransaction.test.ts",
"test:freecad-property-fileincluded-transaction"
],
"G": [
"config/freecad-property-fileincluded-roundtrip.json",
"check:freecad-property-fileincluded-roundtrip"
],
"H": [
"config/chrome-property-fileincluded-verification.json",
"check:chrome-property-fileincluded"
]
},
"promotion": {
"from": "opaque-fcstd-proxy",
"to": "native-editable-codec",
"facadeValueModel": "project-resource-identity-and-authoritative-bytes-with-native-fileincluded-fcstd-resource",
"writableRecords": 11,
"readOnlyRecords": 8,
"outputRecords": 1,
"objectTypeCount": 15,
"fcstdElement": "FileIncluded",
"nativeArchiveName": "payload.bin",
"nativeRoundTripSha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583",
"browserArchiveName": "chrome-resource.bin",
"browserRoundTripBytes": 16,
"externalResourceBoundary": "embedded FCStd ZIP entry restored to a read-only document transient file",
"zeroUnknownDrift": true
},
"exactBlockerSync": {
"nativeEditableTypes": 30,
"nativeEditableRecords": 4361,
"opaqueTypes": 50,
"opaqueRecords": 466,
"exactPromotionReady": false,
"exactBlocker": "50 runtime property types and 466 records remain opaque-only; complete native document and property semantics"
},
"systemExact": false,
"generatedAt": "2026-08-17T08:49:33.815Z"
}

View File

@@ -0,0 +1,187 @@
{
"schemaVersion": 1,
"status": "pass",
"baselineId": "freecad-1.1.1-property-fileincluded-roundtrip",
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"propertyType": "App::PropertyFileIncluded",
"assets": {
"initial": {
"path": ".cache/freecad/property-fileincluded-roundtrip/initial.bin",
"bytes": 13,
"sha256": "974b81bb5869530635082c3c33edafbc4aad32b11ac01031432d0ae657be1336"
},
"target": {
"path": ".cache/freecad/property-fileincluded-roundtrip/target.bin",
"bytes": 20,
"sha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583"
}
},
"archives": {
"nativeInitial": {
"path": ".cache/freecad/property-fileincluded-roundtrip/native-initial.FCStd",
"bytes": 1357,
"sha256": "5f6f0be7bb04019652c5e43c3398604f0ce6f72782e027158f3b4b6acac4af4e"
},
"webEdited": {
"path": ".cache/freecad/property-fileincluded-roundtrip/web-edited.FCStd",
"bytes": 1206,
"sha256": "b826b63e1f4807fd8914c2e51098d544544e79a6efc3a1b14e522d9965f49790"
},
"nativeResaved": {
"path": ".cache/freecad/property-fileincluded-roundtrip/native-resaved.FCStd",
"bytes": 1364,
"sha256": "2e1a5836ab2404ec59d344ebdc45cf4c81ee6887402e5ae1548ce4ca7e7f477e"
}
},
"nativeInitial": {
"object": {
"baseName": "payload.bin",
"bytes": 13,
"editorMode": [],
"exists": true,
"hasShapeProperty": false,
"mode": 256,
"name": "IncludedProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "974b81bb5869530635082c3c33edafbc4aad32b11ac01031432d0ae657be1336",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::DocumentObjectFileIncluded",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_9dbdcbfb-2e87-49ea-9bf0-99bb6c6f3833_f49955_361283/payload.bin",
"writeBits": 0
},
"objectSet": [
{
"name": "IncludedProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
]
},
"web": {
"before": {
"name": "File",
"typeId": "App::PropertyFileIncluded",
"element": "FileIncluded",
"value": "{\"path\":\"payload.bin\",\"mediaType\":\"application/octet-stream\",\"byteLength\":13,\"contentHash\":\"aefb8d38\",\"status\":\"available\"}",
"resourcePath": "payload.bin",
"includedFileResource": {
"path": "payload.bin",
"mediaType": "application/octet-stream",
"byteLength": 13,
"contentHash": "aefb8d38",
"status": "available"
}
},
"after": {
"name": "File",
"typeId": "App::PropertyFileIncluded",
"element": "FileIncluded",
"value": "{\"path\":\"payload.bin\",\"mediaType\":\"application/octet-stream\",\"byteLength\":20,\"contentHash\":\"2a7d5998\",\"status\":\"available\"}",
"resourcePath": "payload.bin",
"includedFileResource": {
"path": "payload.bin",
"mediaType": "application/octet-stream",
"byteLength": 20,
"contentHash": "2a7d5998",
"status": "available"
}
},
"resource": {
"path": "payload.bin",
"pathPreserved": true,
"beforeBytes": 13,
"afterBytes": 20,
"beforeSha256": "974b81bb5869530635082c3c33edafbc4aad32b11ac01031432d0ae657be1336",
"afterSha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583",
"changed": true
},
"targetMarkedTouched": true,
"webOutputMatches": true,
"semanticObjectsPreserved": true,
"opaquePathsPreserved": 0,
"opaqueEntriesPreserved": true
},
"nativeAfter": {
"reopened": {
"object": {
"baseName": "payload.bin",
"bytes": 20,
"editorMode": [],
"exists": true,
"hasShapeProperty": false,
"mode": 256,
"name": "IncludedProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::DocumentObjectFileIncluded",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_9dbdcbfb-2e87-49ea-9bf0-99bb6c6f3833_037685_844069/payload.bin",
"writeBits": 0
},
"objectSet": [
{
"name": "IncludedProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
]
},
"resaved": {
"object": {
"baseName": "payload.bin",
"bytes": 20,
"editorMode": [],
"exists": true,
"hasShapeProperty": false,
"mode": 256,
"name": "IncludedProbe",
"propertyStatus": [],
"propertyTypeId": "App::PropertyFileIncluded",
"sha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583",
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "App::DocumentObjectFileIncluded",
"underTransientDir": true,
"value": "/home/mes123456/.cache/FreeCAD/v1-1/Cache/FreeCAD_Doc_9dbdcbfb-2e87-49ea-9bf0-99bb6c6f3833_35b665_844069/payload.bin",
"writeBits": 0
},
"objectSet": [
{
"name": "IncludedProbe",
"typeId": "App::DocumentObjectFileIncluded"
}
]
}
},
"nativeResavedResource": {
"path": "payload.bin",
"mediaType": "application/octet-stream",
"byteLength": 20,
"contentHash": "2a7d5998",
"status": "available"
},
"classification": {
"archiveName": "payload.bin",
"initialSha256": "974b81bb5869530635082c3c33edafbc4aad32b11ac01031432d0ae657be1336",
"targetSha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583",
"reopenedSha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583",
"resavedSha256": "09f4e4853de4277e25871d26f2e953c6ea9c13a73c7a01bdfcb5209d17f9a583",
"nativeOutputMatches": true,
"objectSetPreserved": true,
"resavedResourceMatches": true,
"externalResourceBoundary": "embedded FCStd ZIP entry restored to a read-only document transient file",
"unknownSemanticDrift": false,
"zeroUnknownDrift": true
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -41,7 +41,7 @@
"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-native-property-semantics", "check:freecad-property-status", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["Of 85 runtime property types and 5510 records, 58 types/523 records remain opaque-only; all 15 observed status classes now have typed Facade behavior, including LockDynamic dynamic mutation and PartialTrigger partial-document observer transactions, but the remaining codecs, editors and complete document observer semantics are not closed"] },
{ "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-property-status", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["Of 85 runtime property types and 5510 records, 50 types/466 records remain opaque-only; all 15 observed status classes now have typed Facade behavior, including LockDynamic dynamic mutation and PartialTrigger partial-document observer transactions, but the remaining codecs, editors and complete document observer semantics are not closed"] },
{ "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"] },
@@ -63,7 +63,7 @@
"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: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-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 35 native property codecs plus opaque preservation for 50 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"] },

View File

@@ -24,7 +24,7 @@
"wrong-document-root": 77
},
"timing": {
"p95Ms": 0.131,
"maxMs": 2.695
"p95Ms": 0.13,
"maxMs": 2.66
}
}

View File

@@ -41,7 +41,7 @@
"zero-revolution-axis": 67
},
"timing": {
"p95Ms": 0.025,
"maxMs": 1.112
"p95Ms": 0.02,
"maxMs": 0.997
}
}

View File

@@ -22,7 +22,7 @@
"invalid": 800
},
"timing": {
"p95Ms": 0.033,
"maxMs": 0.795
"p95Ms": 0.03,
"maxMs": 0.659
}
}

View File

@@ -23,14 +23,14 @@
"sha256": "1679307fb0f01e9d7b9f37a081458bf44583e4d1899edf9224b49a1435ce7105"
},
{
"path": "assets/index-BnRqhr3m.css",
"bytes": 65976,
"sha256": "b8eacf86224d2705e3c27367b3a0b166f4d662a5b8142d34a8abcdeef58753ec"
"path": "assets/index-CNTlr1np.js",
"bytes": 1210736,
"sha256": "4d9e8b6e6e70a13d6a5c34a39eaa62a537de8cefde60d09125392b5a14512363"
},
{
"path": "assets/index-BrkUKPvE.js",
"bytes": 1143618,
"sha256": "4324ab6351a3ef214762115d5b5ffc706883ccaf1e9b0f90577f912da1e4a223"
"path": "assets/index-CSuKYsCZ.css",
"bytes": 67322,
"sha256": "32d3157ecf81272245f0d8aa1a11887cefb8aa9502f966df90a83797519df208"
},
{
"path": "assets/nativeHistoryWorkerEntry-BEDB1h7o.js",
@@ -335,7 +335,7 @@
{
"path": "index.html",
"bytes": 678,
"sha256": "e3cfab4e89c7bc19c51f2529bb2c6c84a61064168029a3bdfee2260a49a71097"
"sha256": "233c411801542bf802d4d701437c593620350c13fd1eec069c00d083b80a764d"
},
{
"path": "manifest.webmanifest",
@@ -390,7 +390,7 @@
{
"path": "sw.js",
"bytes": 1390,
"sha256": "98ec667a774f8370ed654e457b86d4943b2f1eb89e228bd4e7e652b31a51b982"
"sha256": "041bc2f315a15f659a5471f382af087e61a8c4405fd8a725c068ddf898e7386e"
},
{
"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": "7cfc2e7f4b34be4c4b5deb75ace67753f9e219ef51b5be74f5a5c1d4f895f3cb",
"signature": "9fhwYyVCjTXXsQUvePx8I31qBp2FsW6b1YOW6UUtR2FDhrqwPtttqLrxSPcH6S88++u805jHATBE5cTijm4VBw=="
}
}