Advance WBV2 through native engine module matrix
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-28 00:46:58 +08:00
parent d436f268f0
commit b78e23b16c
50 changed files with 11906 additions and 26 deletions

View File

@@ -0,0 +1,56 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-000",
"parentTask": "WBV2-P9-004",
"operation": "AUTHORIZE_NATIVE_ENGINE_PARITY_CONTINUATION",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P9-004/manifest.json",
"sha256": "6901f2b779e1bd4e62d240ceb115833ca28f1a209b65aaae71762225758da2f6"
},
"parentReport": {
"path": "tests/golden/WBV2-P9-004/feature-parity-gate-report.json",
"sha256": "0a7683e08c96bd3d75bda7f420c23945081b238c91031576a149a646451d6d0f"
},
"approval": {
"path": "docs/status/M12-PROVENANCE-EPOCH-2-APPROVAL.json",
"sha256": "cffc869734af94ffe6b8b8004d7ab8cc2c9edcb85ec2a877548e0b0f923f5ea3"
},
"plan": {
"path": "tests/golden/WBV2-P10-000/native-parity-task-plan.json",
"sha256": "b72c6fd251f0c2c7e96c410d7195060ea838313937fabf9ee720f9670f512e1f"
},
"report": {
"path": "tests/golden/WBV2-P10-000/native-parity-root-report.json",
"sha256": "06f4754b70433a66c43835e6d6b72041a673667af51d9c4efe3d8e701bab2c6e"
},
"rootCard": {
"path": "docs/tasks/WBV2-P10-000.md",
"sha256": "071b3069be0bf0695f801bc8058ba44ac44cc3e200f686396512928f2eee15da"
},
"rootStatus": {
"path": "docs/status/WBV2-P10-000.md",
"sha256": "97a1caa7843e1ce2be68f8eafdada2c8afe2341ffdaa2407d3701c2b1fd739c8"
},
"activeCard": {
"path": "docs/tasks/WBV2-P10-001.md",
"sha256": "535a35b420188d19fa7acab58b8eb5b6995177145eec59733288f1fadf8098dd"
}
},
"assertions": {
"boundedP9EvidencePreserved": true,
"nativeEngineRequired": true,
"authorizedRebaselineOnly": true,
"fullHistoricalReproduction": false,
"featureScope": [
"INVENTORY_DRIFT",
"NATIVE_ENGINE",
"WASM_ENGINE",
"MODULE_MATRIX"
]
},
"nextTask": "WBV2-P10-001"
}

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-000",
"operation": "AUTHORIZE_NATIVE_ENGINE_PARITY_CONTINUATION",
"status": "PASS",
"parent": {
"task": "WBV2-P9-004",
"manifest": "tests/golden/WBV2-P9-004/manifest.json",
"manifestSha256": "6901f2b779e1bd4e62d240ceb115833ca28f1a209b65aaae71762225758da2f6",
"previousDecision": "READY_WITH_BOUNDED_FEATURE_PARITY",
"fullHistoricalReproduction": false
},
"continuation": {
"root": "WBV2-P10-000",
"firstTask": "WBV2-P10-001",
"plannedTasks": 4,
"scope": [
"INVENTORY_DRIFT",
"NATIVE_ENGINE",
"WASM_ENGINE",
"MODULE_MATRIX"
],
"browser": "chromium",
"nativeBinary": "build_blender_native/bin/blender",
"wasmBinary": "web/app/src/vendor/blender/web_engine.wasm"
},
"policy": {
"historicalEvidencePreserved": true,
"authorizedRebaselineAccepted": true,
"nativeEngineReceiptsRequired": true,
"fullHistoricalReproduction": false,
"releaseScope": "AUTHORIZED_REBASELINE_ONLY"
},
"nextTask": "WBV2-P10-001"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-001",
"operation": "CURRENT_WBV2_SOURCE_HASH_BASELINE",
"historicalSourceHashes": "tests/golden/WBV2-P0-002/source-hashes.json",
"historicalSourceHashesSha256": "c6c6260d10bc8529e4b26563ce81168e1b0fffb3b175b2d4998ec1c0aa1c1497",
"sources": {
"tests/golden/M15-02A/blender-parity-map.json": "f3e757f26e58a4252b6cc2a7f9275428bbe5bf659cc0f0ff6350a147bdf2809c",
"tests/golden/M15-03A/next-task-plan.json": "bad0d7822c0d4d764bd174c86d9da897229e71de6363940125a594b8017e07f5",
"tests/golden/M15-03A/completed-gap-tasks.json": "1dfc9c4ae8fb9a135e624ca4f9fe1ea10500ef16a2567a3cccdcfe48fbc38466",
"docs/BLENDER_WASM_CAPABILITY_MATRIX_TEMPLATE.json": "053e1551a24da08e045bb54115858a892ddd825fa59f1691a26a1ccfc1db3ca0",
"docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json": "0f4750e45f2d1ca7d68faa35743e5b758ea8091f18d1d0e312ab548228d6f782",
"tests/golden/WBV2-P0-001/manifest.json": "09ffbe342f2c510500767ddaa02b18703c25f6c1ee0b2ebd0c563e260c0d0c2b"
},
"drift": [
{
"file": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
"expected": "c14e01161876ab924c1fe68466c78481fb583d1b822399ffa9f1df1b1d6fb266",
"actual": "0f4750e45f2d1ca7d68faa35743e5b758ea8091f18d1d0e312ab548228d6f782",
"classification": "AUTHORIZED_MUTABLE_PLAN"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,47 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-001",
"operation": "RECONCILE_WBV2_INVENTORY_SOURCE_DRIFT",
"status": "PASS",
"historical": {
"sourceHashes": "tests/golden/WBV2-P0-002/source-hashes.json",
"sourceHashesSha256": "c6c6260d10bc8529e4b26563ce81168e1b0fffb3b175b2d4998ec1c0aa1c1497",
"manifestsRewritten": false,
"baselinePreserved": true
},
"currentSourceBaseline": {
"path": "tests/golden/WBV2-P10-001/current-source-hashes.json",
"sha256": "d93dd22e430cfc6c03cb8819ff71c3bfd9b92a818cc078dec0dcbe53e9cbb39c",
"planPath": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
"planSha256": "0f4750e45f2d1ca7d68faa35743e5b758ea8091f18d1d0e312ab548228d6f782"
},
"drift": {
"count": 1,
"entries": [
{
"file": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
"expected": "c14e01161876ab924c1fe68466c78481fb583d1b822399ffa9f1df1b1d6fb266",
"actual": "0f4750e45f2d1ca7d68faa35743e5b758ea8091f18d1d0e312ab548228d6f782",
"classification": "AUTHORIZED_MUTABLE_PLAN"
}
],
"onlyAuthorizedMutablePlan": true
},
"dependency": {
"historicalInventory": "tests/golden/M13-05C/dependency-inventory.json",
"currentInventory": "tests/golden/WBV2-P10-001/dependency-inventory.current.json",
"packageCount": 144,
"packageHashChanged": true,
"lockfileHashStable": true,
"rootsStable": true,
"closureStable": true,
"packagesAdded": 0
},
"policy": {
"historicalP0Unchanged": true,
"historicalP8Unchanged": true,
"additiveCurrentBaseline": true,
"falseHistoricalRestoration": false
},
"nextTask": "WBV2-P10-002"
}

View File

@@ -0,0 +1,74 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-001",
"parentTask": "WBV2-P10-000",
"operation": "RECONCILE_WBV2_INVENTORY_SOURCE_DRIFT",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P10-000/manifest.json",
"sha256": "269acf27b93097887e8b475b53fbbfae4c7d9c653dd4b6c5921258db86576de0"
},
"historicalSourceHashes": {
"path": "tests/golden/WBV2-P0-002/source-hashes.json",
"sha256": "c6c6260d10bc8529e4b26563ce81168e1b0fffb3b175b2d4998ec1c0aa1c1497"
},
"historicalDependencyManifest": {
"path": "tests/golden/M13-05C/manifest.json",
"sha256": "24abe1863de8fcb112434fb3226986f3a7072820cde8869dadb8fbad32d1e6c1"
},
"historicalRecoveryReport": {
"path": "tests/golden/WBV2-P8-001/recovery-baseline-report.json",
"sha256": "33491669cc094c5f698cac734ed49a81dca7bc0fa2e65a0024542215bf8bda73"
},
"currentSourceHashes": {
"path": "tests/golden/WBV2-P10-001/current-source-hashes.json",
"sha256": "d93dd22e430cfc6c03cb8819ff71c3bfd9b92a818cc078dec0dcbe53e9cbb39c"
},
"currentDependencyInventory": {
"path": "tests/golden/WBV2-P10-001/dependency-inventory.current.json",
"sha256": "5a9ecfbd811199827b46fcd1ac5c2e170667d5f0765d1995ad9e4b42e02addb4"
},
"sourcePlan": {
"path": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
"sha256": "0f4750e45f2d1ca7d68faa35743e5b758ea8091f18d1d0e312ab548228d6f782"
},
"generator": {
"path": "tools/web/generate-wbv2-inventory-rebaseline.mjs",
"sha256": "184d67e6af71bd1b8d05b8900bbdbb2eddd4971a7bfadfe56e3775f388b086fa"
},
"checker": {
"path": "tools/web/check-wbv2-inventory-rebaseline.mjs",
"sha256": "6e02cfdc44a2cb4815837e33f18e18d77cd3ad8697394f5e3615a2b359ee3e9f"
},
"report": {
"path": "tests/golden/WBV2-P10-001/inventory-rebaseline-report.json",
"sha256": "caeabb45d0f7b7b1f4a94481b9c0f9747e38f22e0adeb34874bce452117f2c0a"
},
"status": {
"path": "docs/status/WBV2-P10-001.md",
"sha256": "d93f37dd1bc0bd320b2477a807c228c333027b9bf35ef8c770eddd073470245a"
},
"parityPlan": {
"path": "tests/golden/WBV2-P10-001/native-parity-task-plan.json",
"sha256": "1dc85326304c28ded4bdd12ff905de7522bcd61d783bf4adf20ac628432a7512"
},
"taskContext": {
"path": "tests/golden/WBV2-P10-001/task-context.json",
"sha256": "0be0f326fb603e98084b7c0e26316fac00a39f6090970070b7582927072708c6"
}
},
"assertions": {
"historicalP0Preserved": true,
"historicalP8Preserved": true,
"authorizedPlanDrift": 1,
"currentBaseline": true,
"dependencyPackages": 144,
"dependencyClosureStable": true,
"lockfileStable": true,
"nextEngineTask": "WBV2-P10-002"
},
"nextTask": "WBV2-P10-002"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,185 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-001",
"parentTask": "WBV2-P10-000",
"status": "in_progress",
"goal": "Record the already observed mutable plan drift and prove dependency closure stability. The historical P0-002 source hashes remain immutable; a current baseline is an additive P10 artifact.",
"scope": {
"gap": "workflow:reconcile_wbv2_inventory_source_drift",
"ownerFamily": "PARITY",
"implementationClass": "LOCAL_BOUNDED"
},
"commands": [
"node tools/web/generate-wbv2-inventory-rebaseline.mjs --write",
"node tools/web/check-wbv2-inventory-rebaseline.mjs",
"node tools/web/check-task-context.mjs --task WBV2-P10-001 --write"
],
"inputPaths": [
"tests/golden/WBV2-P0-002/source-hashes.json"
],
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 3381,
"contextRemainingTokens": 844
},
"source": {
"bytes": 6523,
"tokens": 1632
},
"selected": [
{
"path": "tests/golden/WBV2-P0-002/source-hashes.json",
"bytes": 782,
"tokens": 196
}
],
"excluded": [
{
"path": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
"bytes": 23727,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tests/golden/M13-05C/dependency-inventory.json",
"bytes": 64565,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tools/web/check-wbv2-inventory.mjs",
"bytes": 9778,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tools/web/generate-wbv2-inventory-rebaseline.mjs",
"bytes": 9115,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tests/golden/WBV2-P10-001/",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P10-001.md",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "tests/golden/WBV2-P10-001/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
}
],
"totals": {
"files": 1,
"bytes": 782,
"tokens": 196
}
},
"exitCriteria": [
"historical P0 hashes remain unchanged",
"only authorized plan drift is recorded",
"dependency roots/lockfile/closure remain stable",
"inventory checker passes using current baseline"
],
"nextTask": "WBV2-P10-002",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P10-001.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P10-000/manifest.json",
"parentStatus": "docs/status/WBV2-P10-000.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P10-001.md",
"tests/golden/WBV2-P10-000/manifest.json",
"docs/status/WBV2-P10-000.md"
],
"machineOnly": [
"tests/golden/WBV2/task-index.json",
"tests/golden/M15-03A/task-catalog.jsonl"
],
"optionalByNeed": [
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
"任务卡列出的精确协议/生产路径",
"任务卡明确命名的长期计划小节"
],
"forbiddenByDefault": [
"完整 CURRENT_EXECUTION_PLAN.md",
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
"全部 docs/status/*.md",
"完整 parity/WBS 计划",
"README 历史和 test-results/"
]
},
"parent": {
"manifest": {
"schemaVersion": 1,
"task": "WBV2-P10-000",
"parentTask": "WBV2-P9-004",
"status": "done",
"nextTask": "WBV2-P10-001",
"artifactCount": 8
},
"statusSummary": [
"# WBV2-P10-000 status",
"- task: `WBV2-P10-000`; parent: `WBV2-P9-004`; status: `done`",
"- nextTask: `WBV2-P10-001`",
"Native engine parity continuation is authorized after P9 bounded Chromium evidence. P10 first reconciles the known WBV2 inventory drift, then requires receipts from the compiled Blender native binary and web_engine.wasm. Full historical reproduction remains false."
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1431,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 36,
"taskTokens": 358
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 2803,
"lines": 51,
"tokens": 701
},
{
"path": "docs/tasks/WBV2-P10-001.md",
"bytes": 1431,
"lines": 36,
"tokens": 358
},
{
"path": "tests/golden/WBV2-P10-000/manifest.json",
"bytes": 1911,
"lines": 57,
"tokens": 478
},
{
"path": "docs/status/WBV2-P10-000.md",
"bytes": 378,
"lines": 7,
"tokens": 95
}
],
"sourceTokens": 1632,
"evidenceFiles": 1,
"evidenceBytes": 782,
"evidenceTokens": 196,
"totalTokens": 1828,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 2852,
"serializedContextTokens": 724,
"withinBudget": true
}
}

View File

@@ -0,0 +1,90 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-002",
"parentTask": "WBV2-P10-001",
"operation": "NATIVE_WASM_ENGINE_PRODUCTION_RECEIPT",
"status": "done",
"enablingTask": false,
"parityStateChange": true,
"runtime": "PLAYWRIGHT_CHROMIUM_WEBENGINE_WASM",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P10-001/manifest.json",
"sha256": "200ad417f44414b25c2b431fd6e7ff2c98c59e23871a7220facd92f295f1cd8d"
},
"binding": {
"path": "tests/golden/WBV2-P10-002/native-engine-binding-report.json",
"sha256": "a98010ccfdb4a2f145356a35cf3bc7e03a5fcedf0201d38cd3f3a6fecb4c6aae"
},
"production": {
"path": "tests/golden/WBV2-P10-002/native-engine-production.json",
"sha256": "b3a54efb3624d949c56865ff0fca8e8177ba8fe71d9e923f5003db15973fff59"
},
"productionSecond": {
"path": "tests/golden/WBV2-P10-002/native-engine-production.second.json",
"sha256": "b3a54efb3624d949c56865ff0fca8e8177ba8fe71d9e923f5003db15973fff59"
},
"e2e": {
"path": "web/tests/e2e/wbv2-native-engine-production.spec.ts",
"sha256": "53735206840a950d0b0aedf37e1f20fa1811c9d1ccfb7a9f95a88e90559b52e1"
},
"webEngineClient": {
"path": "web/app/src/engine-client/WebEngineClient.ts",
"sha256": "f6d9a8e0a16403bc6fb765195b8f1a619a28de7a75c59a412f1654d46e8ebc0b"
},
"webEngineWorker": {
"path": "web/app/src/workers/web-engine.worker.ts",
"sha256": "e3bb430e401144bf17cdcbd0de13cde0a4f904f1f9ff9d5b10a73d90f0d4c648"
},
"nativeApi": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"sha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8"
},
"mainState": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
"sha256": "3c31a049714860cc89c5b28ebad887a1978df11f8c528c3dfd7836635ed62fb3"
},
"nativeBinary": {
"path": "build_blender_native/bin/blender",
"sha256": "97d025812d51642e6c118a7a6228b0481e5ff95e4acb7742f62875f9f27f924b"
},
"wasmBinary": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "25bc1e286fd3b72c2c7c082b85a29b2d0bb109588a6dc0de5be94fcdc37cc88c"
},
"wasmJavaScript": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "e2b21fcc3c9d098cfb343fc682776c2ed95678064e95eabd71409a8b3284cce0"
},
"generator": {
"path": "tools/web/generate-wbv2-native-engine-receipt.mjs",
"sha256": "73ae2edf00dabadbe10abfdeb2f51bbaab495520fbcdfa168795351e8523eba5"
},
"report": {
"path": "tests/golden/WBV2-P10-002/native-engine-receipt-report.json",
"sha256": "09c13b1814d61a6132ae1168d999e09b768915fe7fec652b6b965f9a6d3796f9"
},
"status": {
"path": "docs/status/WBV2-P10-002.md",
"sha256": "74b52f1a9a5969545db5d9659404d5f25adeb9c4ec581d18242455883dabfa0c"
},
"parityPlan": {
"path": "tests/golden/WBV2-P10-002/native-parity-task-plan.json",
"sha256": "a6e205dec083f76ec08eef07f0085b8be228b2a7d28a16618ec3625d3e2fd19b"
},
"taskContext": {
"path": "tests/golden/WBV2-P10-002/task-context.json",
"sha256": "fd7c2fcd7e43a44b5a666d4bc3ad5a817f698ef6c2db2150975eb04d80a3b402"
}
},
"assertions": {
"compiledNativeBound": true,
"compiledWasmBound": true,
"realEngineMainMutation": true,
"deterministic": true,
"saveReopen": "EXACT",
"surfaces": 3,
"historicalReproduction": false
},
"nextTask": "WBV2-P10-003"
}

View File

@@ -0,0 +1,61 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-002",
"operation": "NATIVE_WASM_ENGINE_BINDING",
"status": "PASS",
"runtime": {
"native": {
"path": "build_blender_native/bin/blender",
"sha256": "97d025812d51642e6c118a7a6228b0481e5ff95e4acb7742f62875f9f27f924b",
"version": "Blender 5.2.0 LTS"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "25bc1e286fd3b72c2c7c082b85a29b2d0bb109588a6dc0de5be94fcdc37cc88c",
"bytes": 15643984
},
"javascript": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "e2b21fcc3c9d098cfb343fc682776c2ed95678064e95eabd71409a8b3284cce0",
"bytes": 132196
},
"browser": "chromium"
},
"abi": {
"exports": [
"web_engine_create",
"web_engine_open_blend",
"web_engine_apply_command",
"web_engine_save_blend",
"web_engine_destroy"
],
"nativeApi": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"mainState": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
"worker": "web/app/src/workers/web-engine.worker.ts"
},
"sourceBindings": [
{
"task": "WBV2-P2-003",
"manifest": "tests/golden/WBV2-P2-003/manifest.json",
"report": "tests/golden/WBV2-P2-003/mesh-edit-report.json"
},
{
"task": "WBV2-P4-001",
"manifest": "tests/golden/WBV2-P4-001/manifest.json",
"report": "tests/golden/WBV2-P4-001/modifier-report.json"
},
{
"task": "WBV2-P3-005",
"manifest": "tests/golden/WBV2-P3-005/manifest.json",
"report": "tests/golden/WBV2-P3-005/library-report.json"
}
],
"requirements": {
"compiledNativePresent": true,
"wasmBinaryPresent": true,
"wasmLoaderPresent": true,
"sourceBound": true,
"fakeBridgeOnly": false
},
"nextTask": "WBV2-P10-002"
}

View File

@@ -0,0 +1,478 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-002",
"operation": "NATIVE_WASM_ENGINE_PRODUCTION_CHROMIUM",
"browser": "chromium",
"queueMutation": false,
"mesh": {
"baseRevision": 1,
"editedRevision": 2,
"meshId": "mesh:WBV2P2003TranslateMesh",
"beforePosition": [
-1,
-1,
0
],
"afterPosition": [
-0.75,
-1.5,
1
],
"savedSha256": "7bdab0364865c2435d62b004e9c952c05c7110453be02b22836c62e36f354ec2",
"sourceSha256": "1a9a894c4106d73a4533485d9fdddfe2883f75e4692b8e53dc174308e12fe60b",
"reopenedRevision": 1,
"reopenedPosition": [
-0.75,
-1.5,
1
],
"stale": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
},
"malformed": {
"code": "INVALID_ARGUMENT",
"message": "translateMeshVertices contains an out-of-range vertex index"
}
},
"modifier": {
"baseRevision": 1,
"editedRevision": 2,
"meshId": "mesh:WBV2P4001ModifierMesh",
"modifierUuid": "modifier:object:WBV2P4001ModifierObject:1277244409",
"beforeEnabled": true,
"afterEnabled": false,
"savedSha256": "37c8203ea1172fab3cf6bab421682fe56d45a2372750d50bc0eed53f19071e93",
"sourceSha256": "02e56fd6745d983ee9f5ee3f48e581f116f0c41c2d2e7dec062517b4af86718f",
"reopenedRevision": 1,
"reopenedEnabled": false,
"stale": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
},
"malformed": {
"code": "INVALID_ARGUMENT",
"message": "modifier UUID was not found in mesh stack"
}
},
"asset": {
"baseRevision": 1,
"appendedRevision": 2,
"sourceSha256": "dcda742db77c6af5e05b79e006a0bd89cf1e8ea8d438592cd1ed2e981c7aca76",
"targetSha256": "86af081b949ac96d6431303464852b4e983cf8c3d05671cacb36e1de4267a425",
"receipt": {
"schemaVersion": 1,
"operation": "APPEND",
"sourceLibraryId": "library:2e0d46a97a5c7e34b76ba16a594ce76a12553ddd795992c3f48d6c1d32826153",
"sourceDataBlockId": "Object/WBV2P3005AppendObject",
"dependencyClosureSha256": "f065b78b4bb80189c2258f78725c3254d6853ecf7f4a34d4b91c62ec28a6670d",
"baseRevision": 1,
"nextRevision": 2,
"transactionCount": 1,
"mapping": [
{
"source": "Object/WBV2P3005AppendObject",
"local": "Object/WBV2P3005AppendObject",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Mesh/WBV2P3005AppendMesh",
"local": "Mesh/WBV2P3005AppendMesh",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Material/WBV2P3005AppendMaterial",
"local": "Material/WBV2P3005AppendMaterial",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Image/WBV2P3005AppendImage",
"local": "Image/WBV2P3005AppendImage",
"owner": "LOCAL_MAIN",
"readOnly": false
}
]
},
"delta": {
"activeObjectId": "object:WBV2P3005AppendObject",
"baseRevision": 1,
"materials": {
"added": [
{
"alpha": 1,
"baseColor": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1
],
"coatRoughness": 0.029999999329447746,
"coatWeight": 0,
"emissionColor": [
0,
0,
0,
1
],
"emissionStrength": 1,
"id": "material:WBV2P3005AppendMaterial",
"ior": 1.4500000476837158,
"links": [
{
"fromNodeId": "node:1441037842:Principled BSDF",
"fromSocket": "BSDF",
"toNodeId": "node:1526166084:Material Output",
"toSocket": "Surface"
},
{
"fromNodeId": "node:1788630761:WBV2P3005AppendImageNode",
"fromSocket": "Color",
"toNodeId": "node:1441037842:Principled BSDF",
"toSocket": "Base Color"
}
],
"metallic": 0,
"name": "WBV2P3005AppendMaterial",
"nodes": [
{
"id": "node:1441037842:Principled BSDF",
"name": "Principled BSDF",
"type": "UNSUPPORTED"
},
{
"id": "node:1526166084:Material Output",
"name": "Material Output",
"type": "UNSUPPORTED"
},
{
"id": "node:1788630761:WBV2P3005AppendImageNode",
"imageId": "image:WBV2P3005AppendImage",
"name": "WBV2P3005AppendImageNode",
"type": "UNSUPPORTED"
}
],
"roughness": 0.4000000059604645,
"shaderGraphHash": "b618c541fdc15a1a86d4a3dc6e75690affdc9a0aefb81583d27737a0985a0765",
"specularIORLevel": 0.5,
"transmissionWeight": 0,
"warnings": [
"unsupported_node:Undefined[ShaderNodeBsdfPrincipled]",
"unsupported_node:Undefined[ShaderNodeOutputMaterial]",
"unsupported_node:Undefined[ShaderNodeTexImage]",
"principled_node_not_found"
]
}
],
"removed": [],
"updated": []
},
"meshes": {
"added": [
{
"activeUVMap": null,
"attributes": [
{
"dataType": "FLOAT3",
"domain": "POINT",
"name": "position"
},
{
"dataType": "BOOL",
"domain": "FACE",
"name": "sharp_face"
}
],
"bounds": {
"max": [
0.75,
0.75,
0
],
"min": [
-0.75,
-0.75,
0
]
},
"cornerCount": 6,
"edgeCount": 5,
"edgeVertexIndices": [
0,
2,
0,
1,
1,
2,
0,
3,
2,
3
],
"faceCount": 2,
"geometryStatus": "available",
"id": "mesh:WBV2P3005AppendMesh",
"indices": [
0,
1,
2,
0,
2,
3
],
"materialSlotIds": [
"material:WBV2P3005AppendMaterial"
],
"name": "WBV2P3005AppendMesh",
"normals": [
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
1
],
"positions": [
-0.75,
-0.75,
0,
0.75,
-0.75,
0,
0.75,
0.75,
0,
-0.75,
0.75,
0
],
"topology": "triangles",
"triangleCornerIndices": [
0,
1,
2,
3,
4,
5
],
"triangleCount": 2,
"triangleFaceIndices": [
0,
1
],
"triangleMaterialIndices": [
0,
0
],
"vertexCount": 4
}
],
"removed": [],
"updated": []
},
"nextRevision": 2,
"nodes": {
"added": [
{
"dataId": "mesh:WBV2P3005AppendMesh",
"id": "object:WBV2P3005AppendObject",
"localMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
1.5,
0,
0,
1
],
"name": "WBV2P3005AppendObject",
"parentId": null,
"selectable": true,
"transform": {
"rotationEuler": [
0,
0,
0
],
"rotationMode": 1,
"scale": [
1,
1,
1
],
"translation": [
1.5,
0,
0
]
},
"type": "MESH",
"visible": true,
"worldMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
1.5,
0,
0,
1
]
}
],
"removed": [],
"updated": []
},
"scenes": {
"added": [],
"removed": [],
"updated": [
{
"cameraObjectId": null,
"colorManagement": {
"displayDevice": "sRGB",
"exposure": 0,
"gamma": 1,
"look": "None",
"viewTransform": "AgX",
"whiteBalanceStatus": "BLOCKED"
},
"id": "scene:Scene",
"name": "Scene",
"renderEngine": "BLENDER_EEVEE",
"rootCollectionId": "collection:Scene Collection",
"sequencerStatus": "AVAILABLE",
"sequencerTimeline": {
"fpsDenominator": 1000,
"fpsNumerator": 24000,
"frameEnd": 250,
"frameStart": 1,
"id": "sequencer:scene:Scene",
"revision": 2,
"schemaVersion": 1,
"strips": []
},
"worldId": null
}
]
},
"schemaVersion": 1
},
"appendedClosure": {
"object": true,
"mesh": true,
"material": true,
"image": {
"assetId": "image:WBV2P3005AppendImage",
"assetStatus": "PACKED",
"height": 1024,
"id": "image:WBV2P3005AppendImage",
"libraryLinked": false,
"mimeType": "image/png",
"name": "WBV2P3005AppendImage",
"packed": true,
"packedByteLength": 261,
"sourceKind": "FILE",
"sourcePath": "project-assets/resources/udim_1001.png",
"tiles": [
{
"assetId": "image:WBV2P3005AppendImage",
"generatedColor": [
0,
0,
0,
0
],
"generatedType": 1,
"height": 1024,
"label": "",
"mimeType": "image/png",
"number": 1001,
"packed": true,
"packedByteLength": 261,
"sourcePath": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/resources/udim_1001.png",
"validSignature": true,
"width": 1024
}
],
"width": 1024
}
},
"stale": {
"code": "REVISION_CONFLICT",
"message": "REVISION_CONFLICT: library append base revision is stale"
},
"collision": {
"code": "ASSET_MANIFEST_INVALID",
"message": "ASSET_MANIFEST_INVALID: append closure collides with an existing local ID"
},
"collisionRevision": 2,
"savedSha256": "5186c694f5b0f2b1182e4790e99d6667ef067d1b95d2e6a2d0381ad29eeba326",
"reopenedRevision": 1,
"reopenedClosure": {
"object": true,
"mesh": true,
"material": true,
"image": {
"assetId": "image:WBV2P3005AppendImage",
"assetStatus": "PACKED",
"height": 1024,
"id": "image:WBV2P3005AppendImage",
"libraryLinked": false,
"mimeType": "image/png",
"name": "WBV2P3005AppendImage",
"packed": true,
"packedByteLength": 261,
"sourceKind": "FILE",
"sourcePath": "project-assets/resources/udim_1001.png",
"tiles": [
{
"assetId": "image:WBV2P3005AppendImage",
"generatedColor": [
0,
0,
0,
0
],
"generatedType": 1,
"height": 1024,
"label": "",
"mimeType": "image/png",
"number": 1001,
"packed": true,
"packedByteLength": 261,
"sourcePath": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/resources/udim_1001.png",
"validSignature": true,
"width": 1024
}
],
"width": 1024
}
}
}
}

View File

@@ -0,0 +1,478 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-002",
"operation": "NATIVE_WASM_ENGINE_PRODUCTION_CHROMIUM",
"browser": "chromium",
"queueMutation": false,
"mesh": {
"baseRevision": 1,
"editedRevision": 2,
"meshId": "mesh:WBV2P2003TranslateMesh",
"beforePosition": [
-1,
-1,
0
],
"afterPosition": [
-0.75,
-1.5,
1
],
"savedSha256": "7bdab0364865c2435d62b004e9c952c05c7110453be02b22836c62e36f354ec2",
"sourceSha256": "1a9a894c4106d73a4533485d9fdddfe2883f75e4692b8e53dc174308e12fe60b",
"reopenedRevision": 1,
"reopenedPosition": [
-0.75,
-1.5,
1
],
"stale": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
},
"malformed": {
"code": "INVALID_ARGUMENT",
"message": "translateMeshVertices contains an out-of-range vertex index"
}
},
"modifier": {
"baseRevision": 1,
"editedRevision": 2,
"meshId": "mesh:WBV2P4001ModifierMesh",
"modifierUuid": "modifier:object:WBV2P4001ModifierObject:1277244409",
"beforeEnabled": true,
"afterEnabled": false,
"savedSha256": "37c8203ea1172fab3cf6bab421682fe56d45a2372750d50bc0eed53f19071e93",
"sourceSha256": "02e56fd6745d983ee9f5ee3f48e581f116f0c41c2d2e7dec062517b4af86718f",
"reopenedRevision": 1,
"reopenedEnabled": false,
"stale": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
},
"malformed": {
"code": "INVALID_ARGUMENT",
"message": "modifier UUID was not found in mesh stack"
}
},
"asset": {
"baseRevision": 1,
"appendedRevision": 2,
"sourceSha256": "dcda742db77c6af5e05b79e006a0bd89cf1e8ea8d438592cd1ed2e981c7aca76",
"targetSha256": "86af081b949ac96d6431303464852b4e983cf8c3d05671cacb36e1de4267a425",
"receipt": {
"schemaVersion": 1,
"operation": "APPEND",
"sourceLibraryId": "library:2e0d46a97a5c7e34b76ba16a594ce76a12553ddd795992c3f48d6c1d32826153",
"sourceDataBlockId": "Object/WBV2P3005AppendObject",
"dependencyClosureSha256": "f065b78b4bb80189c2258f78725c3254d6853ecf7f4a34d4b91c62ec28a6670d",
"baseRevision": 1,
"nextRevision": 2,
"transactionCount": 1,
"mapping": [
{
"source": "Object/WBV2P3005AppendObject",
"local": "Object/WBV2P3005AppendObject",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Mesh/WBV2P3005AppendMesh",
"local": "Mesh/WBV2P3005AppendMesh",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Material/WBV2P3005AppendMaterial",
"local": "Material/WBV2P3005AppendMaterial",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Image/WBV2P3005AppendImage",
"local": "Image/WBV2P3005AppendImage",
"owner": "LOCAL_MAIN",
"readOnly": false
}
]
},
"delta": {
"activeObjectId": "object:WBV2P3005AppendObject",
"baseRevision": 1,
"materials": {
"added": [
{
"alpha": 1,
"baseColor": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1
],
"coatRoughness": 0.029999999329447746,
"coatWeight": 0,
"emissionColor": [
0,
0,
0,
1
],
"emissionStrength": 1,
"id": "material:WBV2P3005AppendMaterial",
"ior": 1.4500000476837158,
"links": [
{
"fromNodeId": "node:1441037842:Principled BSDF",
"fromSocket": "BSDF",
"toNodeId": "node:1526166084:Material Output",
"toSocket": "Surface"
},
{
"fromNodeId": "node:1788630761:WBV2P3005AppendImageNode",
"fromSocket": "Color",
"toNodeId": "node:1441037842:Principled BSDF",
"toSocket": "Base Color"
}
],
"metallic": 0,
"name": "WBV2P3005AppendMaterial",
"nodes": [
{
"id": "node:1441037842:Principled BSDF",
"name": "Principled BSDF",
"type": "UNSUPPORTED"
},
{
"id": "node:1526166084:Material Output",
"name": "Material Output",
"type": "UNSUPPORTED"
},
{
"id": "node:1788630761:WBV2P3005AppendImageNode",
"imageId": "image:WBV2P3005AppendImage",
"name": "WBV2P3005AppendImageNode",
"type": "UNSUPPORTED"
}
],
"roughness": 0.4000000059604645,
"shaderGraphHash": "b618c541fdc15a1a86d4a3dc6e75690affdc9a0aefb81583d27737a0985a0765",
"specularIORLevel": 0.5,
"transmissionWeight": 0,
"warnings": [
"unsupported_node:Undefined[ShaderNodeBsdfPrincipled]",
"unsupported_node:Undefined[ShaderNodeOutputMaterial]",
"unsupported_node:Undefined[ShaderNodeTexImage]",
"principled_node_not_found"
]
}
],
"removed": [],
"updated": []
},
"meshes": {
"added": [
{
"activeUVMap": null,
"attributes": [
{
"dataType": "FLOAT3",
"domain": "POINT",
"name": "position"
},
{
"dataType": "BOOL",
"domain": "FACE",
"name": "sharp_face"
}
],
"bounds": {
"max": [
0.75,
0.75,
0
],
"min": [
-0.75,
-0.75,
0
]
},
"cornerCount": 6,
"edgeCount": 5,
"edgeVertexIndices": [
0,
2,
0,
1,
1,
2,
0,
3,
2,
3
],
"faceCount": 2,
"geometryStatus": "available",
"id": "mesh:WBV2P3005AppendMesh",
"indices": [
0,
1,
2,
0,
2,
3
],
"materialSlotIds": [
"material:WBV2P3005AppendMaterial"
],
"name": "WBV2P3005AppendMesh",
"normals": [
0,
0,
1,
0,
0,
1,
0,
0,
1,
0,
0,
1
],
"positions": [
-0.75,
-0.75,
0,
0.75,
-0.75,
0,
0.75,
0.75,
0,
-0.75,
0.75,
0
],
"topology": "triangles",
"triangleCornerIndices": [
0,
1,
2,
3,
4,
5
],
"triangleCount": 2,
"triangleFaceIndices": [
0,
1
],
"triangleMaterialIndices": [
0,
0
],
"vertexCount": 4
}
],
"removed": [],
"updated": []
},
"nextRevision": 2,
"nodes": {
"added": [
{
"dataId": "mesh:WBV2P3005AppendMesh",
"id": "object:WBV2P3005AppendObject",
"localMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
1.5,
0,
0,
1
],
"name": "WBV2P3005AppendObject",
"parentId": null,
"selectable": true,
"transform": {
"rotationEuler": [
0,
0,
0
],
"rotationMode": 1,
"scale": [
1,
1,
1
],
"translation": [
1.5,
0,
0
]
},
"type": "MESH",
"visible": true,
"worldMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
1.5,
0,
0,
1
]
}
],
"removed": [],
"updated": []
},
"scenes": {
"added": [],
"removed": [],
"updated": [
{
"cameraObjectId": null,
"colorManagement": {
"displayDevice": "sRGB",
"exposure": 0,
"gamma": 1,
"look": "None",
"viewTransform": "AgX",
"whiteBalanceStatus": "BLOCKED"
},
"id": "scene:Scene",
"name": "Scene",
"renderEngine": "BLENDER_EEVEE",
"rootCollectionId": "collection:Scene Collection",
"sequencerStatus": "AVAILABLE",
"sequencerTimeline": {
"fpsDenominator": 1000,
"fpsNumerator": 24000,
"frameEnd": 250,
"frameStart": 1,
"id": "sequencer:scene:Scene",
"revision": 2,
"schemaVersion": 1,
"strips": []
},
"worldId": null
}
]
},
"schemaVersion": 1
},
"appendedClosure": {
"object": true,
"mesh": true,
"material": true,
"image": {
"assetId": "image:WBV2P3005AppendImage",
"assetStatus": "PACKED",
"height": 1024,
"id": "image:WBV2P3005AppendImage",
"libraryLinked": false,
"mimeType": "image/png",
"name": "WBV2P3005AppendImage",
"packed": true,
"packedByteLength": 261,
"sourceKind": "FILE",
"sourcePath": "project-assets/resources/udim_1001.png",
"tiles": [
{
"assetId": "image:WBV2P3005AppendImage",
"generatedColor": [
0,
0,
0,
0
],
"generatedType": 1,
"height": 1024,
"label": "",
"mimeType": "image/png",
"number": 1001,
"packed": true,
"packedByteLength": 261,
"sourcePath": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/resources/udim_1001.png",
"validSignature": true,
"width": 1024
}
],
"width": 1024
}
},
"stale": {
"code": "REVISION_CONFLICT",
"message": "REVISION_CONFLICT: library append base revision is stale"
},
"collision": {
"code": "ASSET_MANIFEST_INVALID",
"message": "ASSET_MANIFEST_INVALID: append closure collides with an existing local ID"
},
"collisionRevision": 2,
"savedSha256": "5186c694f5b0f2b1182e4790e99d6667ef067d1b95d2e6a2d0381ad29eeba326",
"reopenedRevision": 1,
"reopenedClosure": {
"object": true,
"mesh": true,
"material": true,
"image": {
"assetId": "image:WBV2P3005AppendImage",
"assetStatus": "PACKED",
"height": 1024,
"id": "image:WBV2P3005AppendImage",
"libraryLinked": false,
"mimeType": "image/png",
"name": "WBV2P3005AppendImage",
"packed": true,
"packedByteLength": 261,
"sourceKind": "FILE",
"sourcePath": "project-assets/resources/udim_1001.png",
"tiles": [
{
"assetId": "image:WBV2P3005AppendImage",
"generatedColor": [
0,
0,
0,
0
],
"generatedType": 1,
"height": 1024,
"label": "",
"mimeType": "image/png",
"number": 1001,
"packed": true,
"packedByteLength": 261,
"sourcePath": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/resources/udim_1001.png",
"validSignature": true,
"width": 1024
}
],
"width": 1024
}
}
}
}

View File

@@ -0,0 +1,102 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-002",
"operation": "NATIVE_WASM_ENGINE_PRODUCTION_RECEIPT",
"status": "PASS",
"browser": "chromium",
"queueMutation": false,
"runtime": {
"binding": "tests/golden/WBV2-P10-002/native-engine-binding-report.json",
"bindingSha256": "a98010ccfdb4a2f145356a35cf3bc7e03a5fcedf0201d38cd3f3a6fecb4c6aae",
"native": {
"path": "build_blender_native/bin/blender",
"sha256": "97d025812d51642e6c118a7a6228b0481e5ff95e4acb7742f62875f9f27f924b",
"version": "Blender 5.2.0 LTS"
},
"wasm": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "25bc1e286fd3b72c2c7c082b85a29b2d0bb109588a6dc0de5be94fcdc37cc88c",
"bytes": 15643984
},
"javascript": {
"path": "web/app/src/vendor/blender/web_engine.js",
"sha256": "e2b21fcc3c9d098cfb343fc682776c2ed95678064e95eabd71409a8b3284cce0",
"bytes": 132196
},
"abi": {
"exports": [
"web_engine_create",
"web_engine_open_blend",
"web_engine_apply_command",
"web_engine_save_blend",
"web_engine_destroy"
],
"nativeApi": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"mainState": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
"worker": "web/app/src/workers/web-engine.worker.ts"
}
},
"sourceBindings": [
{
"task": "WBV2-P2-003",
"manifest": "tests/golden/WBV2-P2-003/manifest.json",
"manifestSha256": "79ebc20719fef2b60a3457bca25dac98e755a2f2c1bd3c35361527509a91a987",
"report": "tests/golden/WBV2-P2-003/mesh-edit-report.json",
"reportSha256": "f8bd2ced2e1345248d4b536ef045bb9446a55ca5ae87d834f38904b86521b11d"
},
{
"task": "WBV2-P4-001",
"manifest": "tests/golden/WBV2-P4-001/manifest.json",
"manifestSha256": "6f1bee73c987f5e66733feb03d1d708e0f2dbd0776ac6634dbf694cde385143c",
"report": "tests/golden/WBV2-P4-001/modifier-report.json",
"reportSha256": "65d2cf962511ae181e53cda1cc01f8db46819ee450a470384abbe829d549adf8"
},
{
"task": "WBV2-P3-005",
"manifest": "tests/golden/WBV2-P3-005/manifest.json",
"manifestSha256": "42dc02d198630c2735c5a0a1beab37f2a98ff0233927215099f67606d248c39e",
"report": "tests/golden/WBV2-P3-005/library-report.json",
"reportSha256": "0b572a5b480dd9b123cbb9c55c842fb002b1a8a6c96afd196af90bee1ebd9940"
}
],
"production": {
"report": "tests/golden/WBV2-P10-002/native-engine-production.json",
"reportSha256": "b3a54efb3624d949c56865ff0fca8e8177ba8fe71d9e923f5003db15973fff59",
"secondReport": "tests/golden/WBV2-P10-002/native-engine-production.second.json",
"secondReportSha256": "b3a54efb3624d949c56865ff0fca8e8177ba8fe71d9e923f5003db15973fff59",
"deterministic": true,
"mesh": {
"mutation": "translateMeshVertices",
"revisionDelta": 1,
"saveReopen": "EXACT",
"stale": "REVISION_CONFLICT",
"malformed": "REJECTED"
},
"modifier": {
"mutation": "setModifierEnabled",
"revisionDelta": 1,
"saveReopen": "EXACT",
"stale": "REVISION_CONFLICT",
"malformed": "REJECTED"
},
"asset": {
"mutation": "appendLibraryObject",
"revisionDelta": 1,
"resourceClosure": "LOCAL_MAIN",
"saveReopen": "EXACT",
"stale": "REVISION_CONFLICT",
"collision": "REJECTED"
}
},
"assertions": {
"compiledNativeBound": true,
"compiledWasmBound": true,
"realEngineMainMutation": true,
"saveReopenExact": 3,
"deterministicRuns": 2,
"failureMatrixClosed": true,
"fakeBridgeOnly": false,
"historicalReproduction": false
},
"nextTask": "WBV2-P10-003"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,197 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-002",
"parentTask": "WBV2-P10-001",
"status": "in_progress",
"goal": "Bind the proven Mesh, Modifier, and Asset Catalog mutations to the compiled Blender native binary and the checked-in web_engine.wasm runtime, with Chromium as the browser gate.",
"scope": {
"gap": "workflow:bind_native_and_wasm_engine_receipts",
"ownerFamily": "ENGINE",
"implementationClass": "LOCAL_EXACT"
},
"commands": [
"build_blender_native/bin/blender --version",
"node tools/web/check-wbv2-native-engine.mjs --write",
"npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-native-engine-production.spec.ts",
"node tools/web/generate-wbv2-native-engine-receipt.mjs --write",
"node tools/web/check-task-context.mjs --task WBV2-P10-002 --write"
],
"inputPaths": [],
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 1958,
"contextRemainingTokens": 489
},
"source": {
"bytes": 7946,
"tokens": 1987
},
"selected": [],
"excluded": [
{
"path": "web/app/src/vendor/blender/web_engine.wasm",
"bytes": 15643984,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "web/app/src/vendor/blender/web_engine.js",
"bytes": 132196,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"bytes": 126797,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tests/golden/WBV2-P9-004/feature-parity-gate-report.json",
"bytes": 2865,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "web/app/src/engine-client/WebEngineClient.ts",
"bytes": 16197,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "web/app/src/workers/web-engine.worker.ts",
"bytes": 97032,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "web/tests/e2e/wbv2-native-engine-production.spec.ts",
"bytes": 11948,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tests/golden/WBV2-P10-002/",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P10-002.md",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "tests/golden/WBV2-P10-002/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
}
],
"totals": {
"files": 0,
"bytes": 0,
"tokens": 0
}
},
"exitCriteria": [
"native Blender binary is source-bound",
"WASM binary and JS are hash-bound",
"same mutation reaches real engine/Main",
"save/reopen and failures remain exact"
],
"nextTask": "WBV2-P10-003",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P10-002.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P10-001/manifest.json",
"parentStatus": "docs/status/WBV2-P10-001.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P10-002.md",
"tests/golden/WBV2-P10-001/manifest.json",
"docs/status/WBV2-P10-001.md"
],
"machineOnly": [
"tests/golden/WBV2/task-index.json",
"tests/golden/M15-03A/task-catalog.jsonl"
],
"optionalByNeed": [
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
"任务卡列出的精确协议/生产路径",
"任务卡明确命名的长期计划小节"
],
"forbiddenByDefault": [
"完整 CURRENT_EXECUTION_PLAN.md",
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
"全部 docs/status/*.md",
"完整 parity/WBS 计划",
"README 历史和 test-results/"
]
},
"parent": {
"manifest": {
"schemaVersion": 1,
"task": "WBV2-P10-001",
"parentTask": "WBV2-P10-000",
"status": "done",
"nextTask": "WBV2-P10-002",
"artifactCount": 13
},
"statusSummary": [
"# WBV2-P10-001 status",
"- task: `WBV2-P10-001`; parent: `WBV2-P10-000`; status: `done`",
"- plan drift: `1` authorized mutable plan hash",
"- dependency packages: `144`; lockfile/roots/closure: `STABLE`",
"- historical P0 hashes: preserved",
"- nextTask: `WBV2-P10-002`",
"The current WBV2 plan hash is recorded as an additive epoch-1 baseline. The historical P0-002 source-hashes.json and all historical manifests remain unchanged. Dependency roots, lockfile, package closure, and package count remain stable."
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1775,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 44,
"taskTokens": 444
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 2803,
"lines": 51,
"tokens": 701
},
{
"path": "docs/tasks/WBV2-P10-002.md",
"bytes": 1775,
"lines": 44,
"tokens": 444
},
{
"path": "tests/golden/WBV2-P10-001/manifest.json",
"bytes": 2872,
"lines": 75,
"tokens": 718
},
{
"path": "docs/status/WBV2-P10-001.md",
"bytes": 496,
"lines": 10,
"tokens": 124
}
],
"sourceTokens": 1987,
"evidenceFiles": 0,
"evidenceBytes": 0,
"evidenceTokens": 0,
"totalTokens": 1987,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 3011,
"serializedContextTokens": 715,
"withinBudget": true
}
}

View File

@@ -0,0 +1,73 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-003",
"parentTask": "WBV2-P10-002",
"operation": "CORE_MODULE_OPERATOR_MATRIX_RECEIPT",
"status": "done",
"enablingTask": true,
"parityStateChange": true,
"runtime": "PLAYWRIGHT_CHROMIUM_WEBENGINE_WASM",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P10-002/manifest.json",
"sha256": "dcf016adce463066fad68a0e9cf2a23a81b0d148afeb05b0e523263bd2b91da3"
},
"engineReceipt": {
"path": "tests/golden/WBV2-P10-002/native-engine-receipt-report.json",
"sha256": "09c13b1814d61a6132ae1168d999e09b768915fe7fec652b6b965f9a6d3796f9"
},
"matrix": {
"path": "tests/golden/WBV2-P10-003/module-matrix.json",
"sha256": "67b1d61ba9b921a3037b76efd80134c7db47d0079209d9d0edc0dd751527d024"
},
"production": {
"path": "tests/golden/WBV2-P10-003/module-matrix-production.json",
"sha256": "a677bd01b7f6efa90dbffe4be4cb74173467f9ca06c6c087f7af5463fd587939"
},
"productionSecond": {
"path": "tests/golden/WBV2-P10-003/module-matrix-production.second.json",
"sha256": "a677bd01b7f6efa90dbffe4be4cb74173467f9ca06c6c087f7af5463fd587939"
},
"e2e": {
"path": "web/tests/e2e/wbv2-module-matrix.spec.ts",
"sha256": "9efca3f57ad7093589aecbfb3ba6e83660b3994f24fcac9a56d37f12441b3762"
},
"generator": {
"path": "tools/web/generate-wbv2-module-matrix.mjs",
"sha256": "06159e091051f1dd969a78187ab9db0c606f73a8fff88956265eb404a690c006"
},
"receiptGenerator": {
"path": "tools/web/generate-wbv2-module-matrix-receipt.mjs",
"sha256": "b06afc9da3d5014a31f1c98ff1a15eb5009d8c0e6cce1c86fdd80101ca2447ac"
},
"report": {
"path": "tests/golden/WBV2-P10-003/module-matrix-receipt-report.json",
"sha256": "655d05c7f1c9d55d76f41c063b89ef5cd49abf0fb4f01f2cd6d7b2a5f1fa7f14"
},
"status": {
"path": "docs/status/WBV2-P10-003.md",
"sha256": "ce391ea8cdc0ec25d523226a93a3ddfac718e9c70292ab80cd02c9c8f2d1fc69"
},
"parityPlan": {
"path": "tests/golden/WBV2-P10-003/native-parity-task-plan.json",
"sha256": "acfe344c377cbef5b0eefaba22fab88de7d374e9a157ad53930ac6599cd6b1a9"
},
"taskContext": {
"path": "tests/golden/WBV2-P10-003/task-context.json",
"sha256": "ed59f7698d14e39b197e3798ed704bfb8f1783002c1ff97901d604bda4d97bf2"
}
},
"assertions": {
"cases": 9,
"positiveCases": 3,
"retainedNegative": 6,
"shards": 2,
"oneCatalogHash": true,
"inventoryEntries": 6900,
"inventoryEntriesRemaining": 6900,
"deterministic": true,
"saveReopen": "EXACT",
"historicalReproduction": false
},
"nextTask": null
}

View File

@@ -0,0 +1,219 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-003",
"operation": "CORE_MODULE_OPERATOR_MATRIX_CHROMIUM",
"browser": "chromium",
"queueMutation": false,
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"cases": [
{
"id": "MESH.translateMeshVertices",
"status": "PASS",
"code": "OK",
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": true,
"before": [
-1,
-1,
0
],
"after": [
-0.75,
-1.5,
1
],
"savedSha256": "7bdab0364865c2435d62b004e9c952c05c7110453be02b22836c62e36f354ec2",
"sourceSha256": "1a9a894c4106d73a4533485d9fdddfe2883f75e4692b8e53dc174308e12fe60b"
},
{
"id": "MESH.translateMeshVertices.stale",
"status": "RETAINED_NEGATIVE",
"code": "REVISION_CONFLICT",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
}
},
{
"id": "MESH.translateMeshVertices.malformed",
"status": "RETAINED_NEGATIVE",
"code": "REJECTED",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "translateMeshVertices contains an out-of-range vertex index"
}
},
{
"id": "MODIFIER.setModifierEnabled",
"status": "PASS",
"code": "OK",
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": true,
"before": true,
"after": false,
"savedSha256": "37c8203ea1172fab3cf6bab421682fe56d45a2372750d50bc0eed53f19071e93",
"sourceSha256": "02e56fd6745d983ee9f5ee3f48e581f116f0c41c2d2e7dec062517b4af86718f"
},
{
"id": "MODIFIER.setModifierEnabled.stale",
"status": "RETAINED_NEGATIVE",
"code": "REVISION_CONFLICT",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
}
},
{
"id": "MODIFIER.setModifierEnabled.unknown",
"status": "RETAINED_NEGATIVE",
"code": "REJECTED",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "modifier UUID was not found in mesh stack"
}
},
{
"id": "ASSET_CATALOG.appendLibraryObject",
"status": "PASS",
"code": "OK",
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": true,
"receipt": {
"schemaVersion": 1,
"operation": "APPEND",
"sourceLibraryId": "library:2e0d46a97a5c7e34b76ba16a594ce76a12553ddd795992c3f48d6c1d32826153",
"sourceDataBlockId": "Object/WBV2P3005AppendObject",
"dependencyClosureSha256": "f065b78b4bb80189c2258f78725c3254d6853ecf7f4a34d4b91c62ec28a6670d",
"baseRevision": 1,
"nextRevision": 2,
"transactionCount": 1,
"mapping": [
{
"source": "Object/WBV2P3005AppendObject",
"local": "Object/WBV2P3005AppendObject",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Mesh/WBV2P3005AppendMesh",
"local": "Mesh/WBV2P3005AppendMesh",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Material/WBV2P3005AppendMaterial",
"local": "Material/WBV2P3005AppendMaterial",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Image/WBV2P3005AppendImage",
"local": "Image/WBV2P3005AppendImage",
"owner": "LOCAL_MAIN",
"readOnly": false
}
]
},
"resourceClosure": {
"object": true,
"mesh": true,
"material": true,
"image": {
"assetId": "image:WBV2P3005AppendImage",
"assetStatus": "PACKED",
"height": 1024,
"id": "image:WBV2P3005AppendImage",
"libraryLinked": false,
"mimeType": "image/png",
"name": "WBV2P3005AppendImage",
"packed": true,
"packedByteLength": 261,
"sourceKind": "FILE",
"sourcePath": "project-assets/resources/udim_1001.png",
"tiles": [
{
"assetId": "image:WBV2P3005AppendImage",
"generatedColor": [
0,
0,
0,
0
],
"generatedType": 1,
"height": 1024,
"label": "",
"mimeType": "image/png",
"number": 1001,
"packed": true,
"packedByteLength": 261,
"sourcePath": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/resources/udim_1001.png",
"validSignature": true,
"width": 1024
}
],
"width": 1024
}
},
"savedSha256": "5186c694f5b0f2b1182e4790e99d6667ef067d1b95d2e6a2d0381ad29eeba326",
"sourceSha256": "dcda742db77c6af5e05b79e006a0bd89cf1e8ea8d438592cd1ed2e981c7aca76"
},
{
"id": "ASSET_CATALOG.appendLibraryObject.stale",
"status": "RETAINED_NEGATIVE",
"code": "REVISION_CONFLICT",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "REVISION_CONFLICT",
"message": "REVISION_CONFLICT: library append base revision is stale"
}
},
{
"id": "ASSET_CATALOG.appendLibraryObject.collision",
"status": "RETAINED_NEGATIVE",
"code": "ASSET_MANIFEST_INVALID",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "ASSET_MANIFEST_INVALID",
"message": "ASSET_MANIFEST_INVALID: append closure collides with an existing local ID"
}
}
],
"shards": [
{
"id": "core-geometry",
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"caseIds": [
"MESH.translateMeshVertices",
"MESH.translateMeshVertices.stale",
"MESH.translateMeshVertices.malformed",
"MODIFIER.setModifierEnabled",
"MODIFIER.setModifierEnabled.stale",
"MODIFIER.setModifierEnabled.unknown"
],
"exitCode": 0
},
{
"id": "asset-resource",
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"caseIds": [
"ASSET_CATALOG.appendLibraryObject",
"ASSET_CATALOG.appendLibraryObject.stale",
"ASSET_CATALOG.appendLibraryObject.collision"
],
"exitCode": 0
}
]
}

View File

@@ -0,0 +1,219 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-003",
"operation": "CORE_MODULE_OPERATOR_MATRIX_CHROMIUM",
"browser": "chromium",
"queueMutation": false,
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"cases": [
{
"id": "MESH.translateMeshVertices",
"status": "PASS",
"code": "OK",
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": true,
"before": [
-1,
-1,
0
],
"after": [
-0.75,
-1.5,
1
],
"savedSha256": "7bdab0364865c2435d62b004e9c952c05c7110453be02b22836c62e36f354ec2",
"sourceSha256": "1a9a894c4106d73a4533485d9fdddfe2883f75e4692b8e53dc174308e12fe60b"
},
{
"id": "MESH.translateMeshVertices.stale",
"status": "RETAINED_NEGATIVE",
"code": "REVISION_CONFLICT",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
}
},
{
"id": "MESH.translateMeshVertices.malformed",
"status": "RETAINED_NEGATIVE",
"code": "REJECTED",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "translateMeshVertices contains an out-of-range vertex index"
}
},
{
"id": "MODIFIER.setModifierEnabled",
"status": "PASS",
"code": "OK",
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": true,
"before": true,
"after": false,
"savedSha256": "37c8203ea1172fab3cf6bab421682fe56d45a2372750d50bc0eed53f19071e93",
"sourceSha256": "02e56fd6745d983ee9f5ee3f48e581f116f0c41c2d2e7dec062517b4af86718f"
},
{
"id": "MODIFIER.setModifierEnabled.stale",
"status": "RETAINED_NEGATIVE",
"code": "REVISION_CONFLICT",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "REVISION_CONFLICT: command base revision does not match the current SceneIR"
}
},
{
"id": "MODIFIER.setModifierEnabled.unknown",
"status": "RETAINED_NEGATIVE",
"code": "REJECTED",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "INVALID_ARGUMENT",
"message": "modifier UUID was not found in mesh stack"
}
},
{
"id": "ASSET_CATALOG.appendLibraryObject",
"status": "PASS",
"code": "OK",
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": true,
"receipt": {
"schemaVersion": 1,
"operation": "APPEND",
"sourceLibraryId": "library:2e0d46a97a5c7e34b76ba16a594ce76a12553ddd795992c3f48d6c1d32826153",
"sourceDataBlockId": "Object/WBV2P3005AppendObject",
"dependencyClosureSha256": "f065b78b4bb80189c2258f78725c3254d6853ecf7f4a34d4b91c62ec28a6670d",
"baseRevision": 1,
"nextRevision": 2,
"transactionCount": 1,
"mapping": [
{
"source": "Object/WBV2P3005AppendObject",
"local": "Object/WBV2P3005AppendObject",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Mesh/WBV2P3005AppendMesh",
"local": "Mesh/WBV2P3005AppendMesh",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Material/WBV2P3005AppendMaterial",
"local": "Material/WBV2P3005AppendMaterial",
"owner": "LOCAL_MAIN",
"readOnly": false
},
{
"source": "Image/WBV2P3005AppendImage",
"local": "Image/WBV2P3005AppendImage",
"owner": "LOCAL_MAIN",
"readOnly": false
}
]
},
"resourceClosure": {
"object": true,
"mesh": true,
"material": true,
"image": {
"assetId": "image:WBV2P3005AppendImage",
"assetStatus": "PACKED",
"height": 1024,
"id": "image:WBV2P3005AppendImage",
"libraryLinked": false,
"mimeType": "image/png",
"name": "WBV2P3005AppendImage",
"packed": true,
"packedByteLength": 261,
"sourceKind": "FILE",
"sourcePath": "project-assets/resources/udim_1001.png",
"tiles": [
{
"assetId": "image:WBV2P3005AppendImage",
"generatedColor": [
0,
0,
0,
0
],
"generatedType": 1,
"height": 1024,
"label": "",
"mimeType": "image/png",
"number": 1001,
"packed": true,
"packedByteLength": 261,
"sourcePath": "/home/mes123456/workinf_Blender_Wasm/tests/files/web/resources/udim_1001.png",
"validSignature": true,
"width": 1024
}
],
"width": 1024
}
},
"savedSha256": "5186c694f5b0f2b1182e4790e99d6667ef067d1b95d2e6a2d0381ad29eeba326",
"sourceSha256": "dcda742db77c6af5e05b79e006a0bd89cf1e8ea8d438592cd1ed2e981c7aca76"
},
{
"id": "ASSET_CATALOG.appendLibraryObject.stale",
"status": "RETAINED_NEGATIVE",
"code": "REVISION_CONFLICT",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "REVISION_CONFLICT",
"message": "REVISION_CONFLICT: library append base revision is stale"
}
},
{
"id": "ASSET_CATALOG.appendLibraryObject.collision",
"status": "RETAINED_NEGATIVE",
"code": "ASSET_MANIFEST_INVALID",
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"error": {
"code": "ASSET_MANIFEST_INVALID",
"message": "ASSET_MANIFEST_INVALID: append closure collides with an existing local ID"
}
}
],
"shards": [
{
"id": "core-geometry",
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"caseIds": [
"MESH.translateMeshVertices",
"MESH.translateMeshVertices.stale",
"MESH.translateMeshVertices.malformed",
"MODIFIER.setModifierEnabled",
"MODIFIER.setModifierEnabled.stale",
"MODIFIER.setModifierEnabled.unknown"
],
"exitCode": 0
},
{
"id": "asset-resource",
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"caseIds": [
"ASSET_CATALOG.appendLibraryObject",
"ASSET_CATALOG.appendLibraryObject.stale",
"ASSET_CATALOG.appendLibraryObject.collision"
],
"exitCode": 0
}
]
}

View File

@@ -0,0 +1,65 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-003",
"operation": "CORE_MODULE_OPERATOR_MATRIX_RECEIPT",
"status": "PASS",
"browser": "chromium",
"queueMutation": false,
"source": {
"engineReceipt": "tests/golden/WBV2-P10-002/native-engine-receipt-report.json",
"engineReceiptSha256": "09c13b1814d61a6132ae1168d999e09b768915fe7fec652b6b965f9a6d3796f9",
"catalog": {
"path": "tests/golden/WBV2-P0-002/parity-map.json",
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"inventoryEntries": 6900,
"pendingEntries": 6618
},
"featureGate": "tests/golden/WBV2-P9-004/feature-parity-gate-report.json",
"featureGateSha256": "0a7683e08c96bd3d75bda7f420c23945081b238c91031576a149a646451d6d0f"
},
"matrix": {
"definition": "tests/golden/WBV2-P10-003/module-matrix.json",
"definitionSha256": "67b1d61ba9b921a3037b76efd80134c7db47d0079209d9d0edc0dd751527d024",
"production": "tests/golden/WBV2-P10-003/module-matrix-production.json",
"productionSha256": "a677bd01b7f6efa90dbffe4be4cb74173467f9ca06c6c087f7af5463fd587939",
"secondProduction": "tests/golden/WBV2-P10-003/module-matrix-production.second.json",
"secondProductionSha256": "a677bd01b7f6efa90dbffe4be4cb74173467f9ca06c6c087f7af5463fd587939",
"deterministic": true,
"modules": [
"MESH",
"MODIFIER",
"ASSET_CATALOG"
],
"cases": 9,
"positive": 3,
"retainedNegative": 6,
"shards": [
{
"id": "core-geometry",
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"exitCode": 0
},
{
"id": "asset-resource",
"catalogSha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"exitCode": 0
}
]
},
"coverage": {
"inventoryEntries": 6900,
"claimedComplete": 0,
"remainingExplicit": 6900,
"productionCases": 9,
"oneCatalogHash": true
},
"assertions": {
"positiveCasesMainChanged": true,
"negativeCasesMainUnchanged": true,
"saveReopenExact": 3,
"unmappedInventoryExplicit": true,
"retainedNegativeExplicit": true,
"historicalReproduction": false
},
"nextTask": null
}

View File

@@ -0,0 +1,176 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-003",
"operation": "CORE_MODULE_OPERATOR_MATRIX",
"status": "READY",
"catalog": {
"path": "tests/golden/WBV2-P0-002/parity-map.json",
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"inventoryEntries": 6900,
"pendingEntries": 6618
},
"source": {
"featureGate": "tests/golden/WBV2-P9-004/feature-parity-gate-report.json",
"featureGateSha256": "0a7683e08c96bd3d75bda7f420c23945081b238c91031576a149a646451d6d0f",
"engineReceipt": "tests/golden/WBV2-P10-002/native-engine-receipt-report.json",
"engineReceiptSha256": "09c13b1814d61a6132ae1168d999e09b768915fe7fec652b6b965f9a6d3796f9"
},
"policy": {
"oneCatalogHash": true,
"positiveClaimsRequireMainMutation": true,
"negativeCasesNeverAdvanceRevision": true,
"unmappedInventoryExplicit": true,
"historicalReproduction": false
},
"modules": [
"MESH",
"MODIFIER",
"ASSET_CATALOG"
],
"cases": [
{
"id": "MESH.translateMeshVertices",
"family": "MESH",
"capabilityId": "CAP-MESH-POSITIVE-EDIT",
"behavior": "positive",
"implementationClass": "LOCAL_EXACT",
"expected": {
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": "EXACT"
}
},
{
"id": "MESH.translateMeshVertices.stale",
"family": "MESH",
"capabilityId": "CAP-MESH-POSITIVE-EDIT",
"behavior": "stale_revision",
"implementationClass": "NEGATIVE_BOUNDARY",
"expected": {
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"code": "REVISION_CONFLICT"
}
},
{
"id": "MESH.translateMeshVertices.malformed",
"family": "MESH",
"capabilityId": "CAP-MESH-POSITIVE-EDIT",
"behavior": "malformed_selection",
"implementationClass": "NEGATIVE_BOUNDARY",
"expected": {
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"code": "REJECTED"
}
},
{
"id": "MODIFIER.setModifierEnabled",
"family": "MODIFIER",
"capabilityId": "CAP-MODIFIER-STATE-MUTATION",
"behavior": "positive",
"implementationClass": "LOCAL_EXACT",
"expected": {
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": "EXACT"
}
},
{
"id": "MODIFIER.setModifierEnabled.stale",
"family": "MODIFIER",
"capabilityId": "CAP-MODIFIER-STATE-MUTATION",
"behavior": "stale_revision",
"implementationClass": "NEGATIVE_BOUNDARY",
"expected": {
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"code": "REVISION_CONFLICT"
}
},
{
"id": "MODIFIER.setModifierEnabled.unknown",
"family": "MODIFIER",
"capabilityId": "CAP-MODIFIER-STATE-MUTATION",
"behavior": "unknown_modifier",
"implementationClass": "NEGATIVE_BOUNDARY",
"expected": {
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"code": "REJECTED"
}
},
{
"id": "ASSET_CATALOG.appendLibraryObject",
"family": "ASSET_CATALOG",
"capabilityId": "CAP-ASSET-CATALOG-MUTATION",
"behavior": "positive",
"implementationClass": "LOCAL_EXACT",
"expected": {
"mainMutation": "CHANGED",
"revisionDelta": 1,
"saveReopen": "EXACT"
}
},
{
"id": "ASSET_CATALOG.appendLibraryObject.stale",
"family": "ASSET_CATALOG",
"capabilityId": "CAP-ASSET-CATALOG-MUTATION",
"behavior": "stale_revision",
"implementationClass": "NEGATIVE_BOUNDARY",
"expected": {
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"code": "REVISION_CONFLICT"
}
},
{
"id": "ASSET_CATALOG.appendLibraryObject.collision",
"family": "ASSET_CATALOG",
"capabilityId": "CAP-ASSET-CATALOG-MUTATION",
"behavior": "collision",
"implementationClass": "NEGATIVE_BOUNDARY",
"expected": {
"mainMutation": "UNCHANGED",
"revisionDelta": 0,
"code": "REJECTED"
}
}
],
"coverage": {
"matrixCases": 9,
"positiveCases": 3,
"negativeCases": 6,
"inventoryEntries": 6900,
"inventoryEntriesClaimedComplete": 0,
"inventoryEntriesRemainingExplicit": 6900
},
"shards": [
{
"id": "core-geometry",
"families": [
"MESH",
"MODIFIER"
],
"caseIds": [
"MESH.translateMeshVertices",
"MESH.translateMeshVertices.stale",
"MESH.translateMeshVertices.malformed",
"MODIFIER.setModifierEnabled",
"MODIFIER.setModifierEnabled.stale",
"MODIFIER.setModifierEnabled.unknown"
]
},
{
"id": "asset-resource",
"families": [
"ASSET_CATALOG"
],
"caseIds": [
"ASSET_CATALOG.appendLibraryObject",
"ASSET_CATALOG.appendLibraryObject.stale",
"ASSET_CATALOG.appendLibraryObject.collision"
]
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,176 @@
{
"schemaVersion": 1,
"task": "WBV2-P10-003",
"parentTask": "WBV2-P10-002",
"status": "in_progress",
"goal": "Run one hash-bound data-driven matrix for Mesh, Modifier, and Asset Catalog module cases instead of creating one production task per legacy operator.",
"scope": {
"gap": "workflow:expand_core_module_operator_matrix",
"ownerFamily": "PARITY",
"implementationClass": "LOCAL_BOUNDED"
},
"commands": [
"node tools/web/generate-wbv2-module-matrix.mjs --write",
"npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-module-matrix.spec.ts",
"node tools/web/generate-wbv2-module-matrix-receipt.mjs --write",
"node tools/web/check-task-context.mjs --task WBV2-P10-003 --write"
],
"inputPaths": [],
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 1511,
"contextRemainingTokens": 377
},
"source": {
"bytes": 8393,
"tokens": 2099
},
"selected": [],
"excluded": [
{
"path": "tests/golden/WBV2-P9-004/feature-parity-gate-report.json",
"bytes": 2865,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "tests/golden/WBV2-P10-002/native-engine-receipt-report.json",
"bytes": 3733,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "tests/golden/WBV2-P0-002/parity-map.json",
"bytes": 5053386,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tests/golden/WBV2-P10-003/",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P10-003.md",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "tests/golden/WBV2-P10-003/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
}
],
"totals": {
"files": 0,
"bytes": 0,
"tokens": 0
}
},
"exitCriteria": [
"positive cases are L2+",
"negative cases do not mutate Main",
"shards use one catalog hash",
"unmapped and retained-negative cases stay explicit"
],
"nextTask": null,
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P10-003.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P10-002/manifest.json",
"parentStatus": "docs/status/WBV2-P10-002.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P10-003.md",
"tests/golden/WBV2-P10-002/manifest.json",
"docs/status/WBV2-P10-002.md"
],
"machineOnly": [
"tests/golden/WBV2/task-index.json",
"tests/golden/M15-03A/task-catalog.jsonl"
],
"optionalByNeed": [
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
"任务卡列出的精确协议/生产路径",
"任务卡明确命名的长期计划小节"
],
"forbiddenByDefault": [
"完整 CURRENT_EXECUTION_PLAN.md",
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
"全部 docs/status/*.md",
"完整 parity/WBS 计划",
"README 历史和 test-results/"
]
},
"parent": {
"manifest": {
"schemaVersion": 1,
"task": "WBV2-P10-002",
"parentTask": "WBV2-P10-001",
"status": "done",
"nextTask": "WBV2-P10-003",
"artifactCount": 17
},
"statusSummary": [
"# WBV2-P10-002 status",
"- task: `WBV2-P10-002`; parent: `WBV2-P10-001`; status: `done`",
"- compiled native: `Blender 5.2.0 LTS`; compiled WASM: `web_engine.wasm`",
"- real Main mutations: `Mesh + Modifier + Asset Catalog`",
"- deterministic Chromium runs: `2`; save/reopen: `3/3 EXACT`",
"- nextTask: `WBV2-P10-003`",
"The Chromium Worker loaded the checked-in WebEngine WASM and executed the native ABI through WebEngineClient. Mesh translation, modifier state, and library append all changed the real WASM Main, persisted through save/reopen, and rejected stale or malformed inputs without a late mutation. This evidence is engine-bound and still does not claim full historical reproduction."
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1362,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 35,
"taskTokens": 341
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 2803,
"lines": 51,
"tokens": 701
},
{
"path": "docs/tasks/WBV2-P10-003.md",
"bytes": 1362,
"lines": 35,
"tokens": 341
},
{
"path": "tests/golden/WBV2-P10-002/manifest.json",
"bytes": 3548,
"lines": 91,
"tokens": 887
},
{
"path": "docs/status/WBV2-P10-002.md",
"bytes": 680,
"lines": 10,
"tokens": 170
}
],
"sourceTokens": 2099,
"evidenceFiles": 0,
"evidenceBytes": 0,
"evidenceTokens": 0,
"totalTokens": 2099,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 3123,
"serializedContextTokens": 688,
"withinBudget": true
}
}

View File

@@ -79,7 +79,8 @@
"authorizedRebaselineOnly": true,
"sourceHistoryReadOnly": true,
"claimsAreEvidenceBound": true,
"terminalQueuePointer": true
"terminalQueuePointer": false,
"authorizedContinuation": "WBV2-P10-000"
},
"nextTask": null
"nextTask": "WBV2-P10-000"
}

View File

@@ -46,11 +46,11 @@
},
"report": {
"path": "tests/golden/WBV2-P9-004/feature-parity-gate-report.json",
"sha256": "c8eea515dee05ed766677ccb8cabab707e130094bf7a8c8ba5bdef0b8db76fd5"
"sha256": "0a7683e08c96bd3d75bda7f420c23945081b238c91031576a149a646451d6d0f"
},
"status": {
"path": "docs/status/WBV2-P9-004.md",
"sha256": "1d613986df38e61e5efc368822495b9f6ad81be8bfd155de5d010d31f8529511"
"sha256": "4f59384f7c5e3652c8f69a445d44e05ede74d706a31d2734a856b6e14ee184e1"
},
"featureParityPlan": {
"path": "tests/golden/WBV2-P9-004/feature-parity-task-plan.json",
@@ -58,7 +58,7 @@
},
"taskContext": {
"path": "tests/golden/WBV2-P9-004/task-context.json",
"sha256": "8604daa21f1f70323a7db3b72ab5452a33854ef6404f7f9aa4e35f74cb94d8dc"
"sha256": "9f2d64017450df9020441b16583d654ba915d98542cbaa38f5a74bfa974b2ddc"
}
},
"assertions": {
@@ -74,5 +74,10 @@
"authorizedRebaselineOnly": true,
"fullHistoricalReproduction": false
},
"nextTask": null
"nextTask": "WBV2-P10-000",
"continuation": {
"authorized": true,
"root": "WBV2-P10-000",
"scope": "NATIVE_ENGINE_PARITY"
}
}

View File

@@ -21,12 +21,12 @@
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 2204,
"contextRemainingTokens": 549
"contextRemainingBytes": 2200,
"contextRemainingTokens": 548
},
"source": {
"bytes": 7700,
"tokens": 1927
"bytes": 7704,
"tokens": 1928
},
"selected": [
{
@@ -78,7 +78,7 @@
"authorized baseline remains explicit",
"full historical reproduction remains false"
],
"nextTask": null,
"nextTask": "WBV2-P10-000",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P9-004.md",
@@ -145,9 +145,9 @@
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 2799,
"bytes": 2803,
"lines": 51,
"tokens": 700
"tokens": 701
},
{
"path": "docs/tasks/WBV2-P9-004.md",
@@ -168,14 +168,14 @@
"tokens": 140
}
],
"sourceTokens": 1927,
"sourceTokens": 1928,
"evidenceFiles": 1,
"evidenceBytes": 704,
"evidenceTokens": 176,
"totalTokens": 2103,
"totalTokens": 2104,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 3127,
"serializedContextTokens": 681,
"estimatedContextTokens": 3128,
"serializedContextTokens": 684,
"withinBudget": true
}
}

View File

@@ -38,4 +38,8 @@
{"id":"WBV2-P9-001","gapId":"CAP-MESH-POSITIVE-EDIT","ownerFamily":"MESH","sourceTask":"P9","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["real meshTranslateVertex command passes","desktop/WASM delta matches","save/reopen is exact","malformed/stale/unknown inputs fail closed"]}
{"id":"WBV2-P9-002","gapId":"CAP-MODIFIER-STATE-MUTATION","ownerFamily":"MODIFIER","sourceTask":"P9","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["real modifierSetEnabled command passes","desktop/WASM delta matches","save/reopen is exact"]}
{"id":"WBV2-P9-003","gapId":"CAP-ASSET-CATALOG-MUTATION","ownerFamily":"ASSET","sourceTask":"P9","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["real assetCatalogAppend command passes","resource hash is bound","save/reopen is exact"]}
{"id":"WBV2-P9-004","gapId":"workflow:recompute_feature_parity_gate","ownerFamily":"RELEASE","sourceTask":"P9","state":"active","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["only evidenced feature claims are emitted","authorized baseline remains explicit","full historical reproduction remains false"]}
{"id":"WBV2-P9-004","gapId":"workflow:recompute_feature_parity_gate","ownerFamily":"RELEASE","sourceTask":"P9","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["only evidenced feature claims are emitted","authorized baseline remains explicit","full historical reproduction remains false"]}
{"id":"WBV2-P10-000","gapId":"workflow:authorize_native_engine_parity_continuation","ownerFamily":"PROGRAM","sourceTask":"P10","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["P9 evidence remains hash-bound","native build/runtime is explicit","one native parity task is active"]}
{"id":"WBV2-P10-001","gapId":"workflow:reconcile_wbv2_inventory_source_drift","ownerFamily":"PARITY","sourceTask":"P10","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["historical P0 hashes remain unchanged","only authorized plan drift is recorded","dependency roots/lockfile/closure remain stable","inventory checker passes using current baseline"]}
{"id":"WBV2-P10-002","gapId":"ENGINE.NATIVE_WASM_BRIDGE","ownerFamily":"ENGINE","sourceTask":"P10","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["native Blender binary is source-bound","WASM binary and JS are hash-bound","same mutation reaches real engine/Main","save/reopen and failures remain exact"]}
{"id":"WBV2-P10-003","gapId":"CORE.MODULE_MATRIX","ownerFamily":"PARITY","sourceTask":"P10","state":"active","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["positive cases are L2+","negative cases do not mutate Main","shards use one catalog hash","unmapped and retained-negative cases stay explicit"]}

View File

@@ -1 +1 @@
{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P9-004/feature-parity-task-plan.json","sha256":"d754f21d4923eec7cdb497caa7ed77300db81f2ccff965c2690f7734aafb135d"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"6b9506476dd36550fb13f745dadd5f3fb63c3629934c9f8f853edc2b035b38a2"},"taskCount":41,"activeTask":"WBV2-P9-004","entries":{"WBV2-P0-001":{"line":0,"offset":0,"length":308,"previous":null,"next":"WBV2-P0-002"},"WBV2-P0-002":{"line":1,"offset":308,"length":318,"previous":"WBV2-P0-001","next":"WBV2-P0-003"},"WBV2-P0-003":{"line":2,"offset":626,"length":306,"previous":"WBV2-P0-002","next":"WBV2-P1-001"},"WBV2-P1-001":{"line":3,"offset":932,"length":318,"previous":"WBV2-P0-003","next":"WBV2-P1-002"},"WBV2-P1-002":{"line":4,"offset":1250,"length":299,"previous":"WBV2-P1-001","next":"WBV2-P1-003"},"WBV2-P1-003":{"line":5,"offset":1549,"length":303,"previous":"WBV2-P1-002","next":"WBV2-P1-004"},"WBV2-P1-004":{"line":6,"offset":1852,"length":309,"previous":"WBV2-P1-003","next":"WBV2-P1-005"},"WBV2-P1-005":{"line":7,"offset":2161,"length":324,"previous":"WBV2-P1-004","next":"WBV2-P2-001"},"WBV2-P2-001":{"line":8,"offset":2485,"length":267,"previous":"WBV2-P1-005","next":"WBV2-P2-002"},"WBV2-P2-002":{"line":9,"offset":2752,"length":267,"previous":"WBV2-P2-001","next":"WBV2-P2-003"},"WBV2-P2-003":{"line":10,"offset":3019,"length":274,"previous":"WBV2-P2-002","next":"WBV2-P2-004"},"WBV2-P2-004":{"line":11,"offset":3293,"length":284,"previous":"WBV2-P2-003","next":"WBV2-P2-005"},"WBV2-P2-005":{"line":12,"offset":3577,"length":291,"previous":"WBV2-P2-004","next":"WBV2-P3-001"},"WBV2-P3-001":{"line":13,"offset":3868,"length":271,"previous":"WBV2-P2-005","next":"WBV2-P3-002"},"WBV2-P3-002":{"line":14,"offset":4139,"length":266,"previous":"WBV2-P3-001","next":"WBV2-P3-003"},"WBV2-P3-003":{"line":15,"offset":4405,"length":273,"previous":"WBV2-P3-002","next":"WBV2-P3-004"},"WBV2-P3-004":{"line":16,"offset":4678,"length":263,"previous":"WBV2-P3-003","next":"WBV2-P3-005"},"WBV2-P3-005":{"line":17,"offset":4941,"length":292,"previous":"WBV2-P3-004","next":"WBV2-P4-001"},"WBV2-P4-001":{"line":18,"offset":5233,"length":283,"previous":"WBV2-P3-005","next":"WBV2-P4-002"},"WBV2-P4-002":{"line":19,"offset":5516,"length":277,"previous":"WBV2-P4-001","next":"WBV2-P4-003"},"WBV2-P4-003":{"line":20,"offset":5793,"length":287,"previous":"WBV2-P4-002","next":"WBV2-P4-004"},"WBV2-P4-004":{"line":21,"offset":6080,"length":290,"previous":"WBV2-P4-003","next":"WBV2-P5-001"},"WBV2-P5-001":{"line":22,"offset":6370,"length":296,"previous":"WBV2-P4-004","next":"WBV2-P5-002"},"WBV2-P5-002":{"line":23,"offset":6666,"length":282,"previous":"WBV2-P5-001","next":"WBV2-P5-003"},"WBV2-P5-003":{"line":24,"offset":6948,"length":278,"previous":"WBV2-P5-002","next":"WBV2-P6-001"},"WBV2-P6-001":{"line":25,"offset":7226,"length":278,"previous":"WBV2-P5-003","next":"WBV2-P6-002"},"WBV2-P6-002":{"line":26,"offset":7504,"length":313,"previous":"WBV2-P6-001","next":"WBV2-P6-003"},"WBV2-P6-003":{"line":27,"offset":7817,"length":316,"previous":"WBV2-P6-002","next":"WBV2-P7-001"},"WBV2-P7-001":{"line":28,"offset":8133,"length":312,"previous":"WBV2-P6-003","next":"WBV2-P7-002"},"WBV2-P7-002":{"line":29,"offset":8445,"length":275,"previous":"WBV2-P7-001","next":"WBV2-P7-003"},"WBV2-P7-003":{"line":30,"offset":8720,"length":310,"previous":"WBV2-P7-002","next":"WBV2-P8-000"},"WBV2-P8-000":{"line":31,"offset":9030,"length":290,"previous":"WBV2-P7-003","next":"WBV2-P8-001"},"WBV2-P8-001":{"line":32,"offset":9320,"length":306,"previous":"WBV2-P8-000","next":"WBV2-P8-002"},"WBV2-P8-002":{"line":33,"offset":9626,"length":307,"previous":"WBV2-P8-001","next":"WBV2-P8-003"},"WBV2-P8-003":{"line":34,"offset":9933,"length":312,"previous":"WBV2-P8-002","next":"WBV2-P8-004"},"WBV2-P8-004":{"line":35,"offset":10245,"length":285,"previous":"WBV2-P8-003","next":"WBV2-P9-000"},"WBV2-P9-000":{"line":36,"offset":10530,"length":303,"previous":"WBV2-P8-004","next":"WBV2-P9-001"},"WBV2-P9-001":{"line":37,"offset":10833,"length":311,"previous":"WBV2-P9-000","next":"WBV2-P9-002"},"WBV2-P9-002":{"line":38,"offset":11144,"length":274,"previous":"WBV2-P9-001","next":"WBV2-P9-003"},"WBV2-P9-003":{"line":39,"offset":11418,"length":266,"previous":"WBV2-P9-002","next":"WBV2-P9-004"},"WBV2-P9-004":{"line":40,"offset":11684,"length":318,"previous":"WBV2-P9-003","next":null}}}
{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P10-003/native-parity-task-plan.json","sha256":"acfe344c377cbef5b0eefaba22fab88de7d374e9a157ad53930ac6599cd6b1a9"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"604c45bfe19d24c6f4e21ae1bbec00e15489c713452428223cda26ee2a5f4318"},"taskCount":45,"activeTask":"WBV2-P10-003","entries":{"WBV2-P0-001":{"line":0,"offset":0,"length":308,"previous":null,"next":"WBV2-P0-002"},"WBV2-P0-002":{"line":1,"offset":308,"length":318,"previous":"WBV2-P0-001","next":"WBV2-P0-003"},"WBV2-P0-003":{"line":2,"offset":626,"length":306,"previous":"WBV2-P0-002","next":"WBV2-P1-001"},"WBV2-P1-001":{"line":3,"offset":932,"length":318,"previous":"WBV2-P0-003","next":"WBV2-P1-002"},"WBV2-P1-002":{"line":4,"offset":1250,"length":299,"previous":"WBV2-P1-001","next":"WBV2-P1-003"},"WBV2-P1-003":{"line":5,"offset":1549,"length":303,"previous":"WBV2-P1-002","next":"WBV2-P1-004"},"WBV2-P1-004":{"line":6,"offset":1852,"length":309,"previous":"WBV2-P1-003","next":"WBV2-P1-005"},"WBV2-P1-005":{"line":7,"offset":2161,"length":324,"previous":"WBV2-P1-004","next":"WBV2-P2-001"},"WBV2-P2-001":{"line":8,"offset":2485,"length":267,"previous":"WBV2-P1-005","next":"WBV2-P2-002"},"WBV2-P2-002":{"line":9,"offset":2752,"length":267,"previous":"WBV2-P2-001","next":"WBV2-P2-003"},"WBV2-P2-003":{"line":10,"offset":3019,"length":274,"previous":"WBV2-P2-002","next":"WBV2-P2-004"},"WBV2-P2-004":{"line":11,"offset":3293,"length":284,"previous":"WBV2-P2-003","next":"WBV2-P2-005"},"WBV2-P2-005":{"line":12,"offset":3577,"length":291,"previous":"WBV2-P2-004","next":"WBV2-P3-001"},"WBV2-P3-001":{"line":13,"offset":3868,"length":271,"previous":"WBV2-P2-005","next":"WBV2-P3-002"},"WBV2-P3-002":{"line":14,"offset":4139,"length":266,"previous":"WBV2-P3-001","next":"WBV2-P3-003"},"WBV2-P3-003":{"line":15,"offset":4405,"length":273,"previous":"WBV2-P3-002","next":"WBV2-P3-004"},"WBV2-P3-004":{"line":16,"offset":4678,"length":263,"previous":"WBV2-P3-003","next":"WBV2-P3-005"},"WBV2-P3-005":{"line":17,"offset":4941,"length":292,"previous":"WBV2-P3-004","next":"WBV2-P4-001"},"WBV2-P4-001":{"line":18,"offset":5233,"length":283,"previous":"WBV2-P3-005","next":"WBV2-P4-002"},"WBV2-P4-002":{"line":19,"offset":5516,"length":277,"previous":"WBV2-P4-001","next":"WBV2-P4-003"},"WBV2-P4-003":{"line":20,"offset":5793,"length":287,"previous":"WBV2-P4-002","next":"WBV2-P4-004"},"WBV2-P4-004":{"line":21,"offset":6080,"length":290,"previous":"WBV2-P4-003","next":"WBV2-P5-001"},"WBV2-P5-001":{"line":22,"offset":6370,"length":296,"previous":"WBV2-P4-004","next":"WBV2-P5-002"},"WBV2-P5-002":{"line":23,"offset":6666,"length":282,"previous":"WBV2-P5-001","next":"WBV2-P5-003"},"WBV2-P5-003":{"line":24,"offset":6948,"length":278,"previous":"WBV2-P5-002","next":"WBV2-P6-001"},"WBV2-P6-001":{"line":25,"offset":7226,"length":278,"previous":"WBV2-P5-003","next":"WBV2-P6-002"},"WBV2-P6-002":{"line":26,"offset":7504,"length":313,"previous":"WBV2-P6-001","next":"WBV2-P6-003"},"WBV2-P6-003":{"line":27,"offset":7817,"length":316,"previous":"WBV2-P6-002","next":"WBV2-P7-001"},"WBV2-P7-001":{"line":28,"offset":8133,"length":312,"previous":"WBV2-P6-003","next":"WBV2-P7-002"},"WBV2-P7-002":{"line":29,"offset":8445,"length":275,"previous":"WBV2-P7-001","next":"WBV2-P7-003"},"WBV2-P7-003":{"line":30,"offset":8720,"length":310,"previous":"WBV2-P7-002","next":"WBV2-P8-000"},"WBV2-P8-000":{"line":31,"offset":9030,"length":290,"previous":"WBV2-P7-003","next":"WBV2-P8-001"},"WBV2-P8-001":{"line":32,"offset":9320,"length":306,"previous":"WBV2-P8-000","next":"WBV2-P8-002"},"WBV2-P8-002":{"line":33,"offset":9626,"length":307,"previous":"WBV2-P8-001","next":"WBV2-P8-003"},"WBV2-P8-003":{"line":34,"offset":9933,"length":312,"previous":"WBV2-P8-002","next":"WBV2-P8-004"},"WBV2-P8-004":{"line":35,"offset":10245,"length":285,"previous":"WBV2-P8-003","next":"WBV2-P9-000"},"WBV2-P9-000":{"line":36,"offset":10530,"length":303,"previous":"WBV2-P8-004","next":"WBV2-P9-001"},"WBV2-P9-001":{"line":37,"offset":10833,"length":311,"previous":"WBV2-P9-000","next":"WBV2-P9-002"},"WBV2-P9-002":{"line":38,"offset":11144,"length":274,"previous":"WBV2-P9-001","next":"WBV2-P9-003"},"WBV2-P9-003":{"line":39,"offset":11418,"length":266,"previous":"WBV2-P9-002","next":"WBV2-P9-004"},"WBV2-P9-004":{"line":40,"offset":11684,"length":321,"previous":"WBV2-P9-003","next":"WBV2-P10-000"},"WBV2-P10-000":{"line":41,"offset":12005,"length":312,"previous":"WBV2-P9-004","next":"WBV2-P10-001"},"WBV2-P10-001":{"line":42,"offset":12317,"length":383,"previous":"WBV2-P10-000","next":"WBV2-P10-002"},"WBV2-P10-002":{"line":43,"offset":12700,"length":336,"previous":"WBV2-P10-001","next":"WBV2-P10-003"},"WBV2-P10-003":{"line":44,"offset":13036,"length":315,"previous":"WBV2-P10-002","next":null}}}