{ "schema": "freecad-web-p6-material-action-04-facade/v1", "taskId": "FW-P6-MAT-ACT-04-E", "module": "Material", "action": "material.saveReopen", "result": "pass", "envelopeSchema": "freecad-web-facade/v1", "typedSchema": "freecad-web-material/save-reopen/v1", "fixture": { "schema": "freecad-web-material/save-reopen/v1", "module": "Material", "action": "save/reopen", "path": "/tmp/MaterialKernel.FCStd", "inputSha256": "23217a7a0c0b4b5dc36e932d652f3e2a26a6ffa43c71cae2908b54c73fd13085" }, "responses": { "success": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "mat-act04-e-success", "result": { "schema": "freecad-web-material/save-reopen/v1", "module": "Material", "action": "save/reopen", "format": ".fcstd", "path": "/tmp/MaterialKernel.FCStd", "size": 1324, "objectCount": 1, "objectType": "App::DocumentObjectGroup", "propertyType": "App::Document::Comment+App::DocumentObject::Label", "uuid": "material-web-fixture-v1", "name": "Web Fixture Material", "roundTrip": true, "resourcesReleased": true, "materialPropertyRestore": false } }, "expectedError": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "mat-act04-e-error", "error": { "code": "invalid_path", "message": "Material FCStd persistence fixture is not supported", "diagnostic": { "path": "/tmp/invalid/MaterialKernel.FCStd" } } }, "duplicate": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "mat-act04-e-success", "error": { "code": "duplicate_request", "message": "requestId has already been dispatched" } }, "cancelled": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "error", "requestId": "mat-act04-e-cancel", "error": { "code": "cancelled", "message": "request was cancelled before execution" } }, "afterCancel": { "schema": "freecad-web-facade/v1", "version": 1, "kind": "result", "requestId": "mat-act04-e-after-cancel", "result": { "schema": "freecad-web-material/save-reopen/v1", "module": "Material", "action": "save/reopen", "format": ".fcstd", "path": "/tmp/MaterialKernel.FCStd", "size": 1324, "objectCount": 1, "objectType": "App::DocumentObjectGroup", "propertyType": "App::Document::Comment+App::DocumentObject::Label", "uuid": "material-web-fixture-v1", "name": "Web Fixture Material", "roundTrip": true, "resourcesReleased": true, "materialPropertyRestore": false } } }, "trace": [ { "direction": "request", "requestId": "mat-act04-e-success" }, { "direction": "handler-start", "requestId": "mat-act04-e-success" }, { "direction": "handler-end", "requestId": "mat-act04-e-success" }, { "direction": "response", "requestId": "mat-act04-e-success", "kind": "result", "code": null }, { "direction": "request", "requestId": "mat-act04-e-error" }, { "direction": "handler-start", "requestId": "mat-act04-e-error" }, { "direction": "handler-end", "requestId": "mat-act04-e-error" }, { "direction": "response", "requestId": "mat-act04-e-error", "kind": "error", "code": "invalid_path" }, { "direction": "request", "requestId": "mat-act04-e-success" }, { "direction": "response", "requestId": "mat-act04-e-success", "kind": "error", "code": "duplicate_request" }, { "direction": "request", "requestId": "mat-act04-e-cancel" }, { "direction": "response", "requestId": "mat-act04-e-cancel", "kind": "error", "code": "cancelled" }, { "direction": "request", "requestId": "mat-act04-e-after-cancel" }, { "direction": "handler-start", "requestId": "mat-act04-e-after-cancel" }, { "direction": "handler-end", "requestId": "mat-act04-e-after-cancel" }, { "direction": "response", "requestId": "mat-act04-e-after-cancel", "kind": "result", "code": null } ], "sequencing": { "maxActive": 1, "requestCount": 5, "responseCount": 5, "cancelAccepted": true }, "state": { "unchangedAfterCancel": true, "semanticReplayEqual": true }, "schemaChecks": { "request": true, "result": true, "expectedError": true, "duplicate": true, "cancel": true, "noNativePointers": true }, "artifacts": { "kernel": "docs/p6/material-action-04-kernel.json", "recovery": "docs/p6/material-action-04-recovery.json", "workerLog": "docs/freecad-p6-material-action-04-e-facade.log" }, "commands": [ "npx tsc --target ES2022 --module ESNext --moduleResolution Bundler --strict --skipLibCheck --outDir --declaration false --noEmit false src/facade-envelope.ts src/material-persistence-facade.ts", "node tools/run_p6_material_action04_facade_smoke.mjs /material-persistence-facade.js freecad-source/build-web/configure/bin" ], "boundaries": [ "Round-trip reports persisted Material UUID/name metadata; Materials::PropertyMaterial library restore remains excluded." ] }