{ "schemaVersion": 1, "planId": "BLENDER_WEB_PARITY_V2_HIGH_VALUE_DOMAIN_EPOCH_1", "status": "COMPLETED_WITH_HIGH_VALUE_DOMAIN_PARITY", "authority": "queue_reactivated_after_p12_domain_gate", "productContract": "docs/WEB_BLENDER_MODELER_V1_SCOPE.md", "sourcePlan": "docs/BLENDER_5_2_FULL_WEB_PARITY_EXECUTION_PLAN.md", "executionPointer": "docs/EXECUTION_QUEUE.md", "correctiveCheckpoint": { "task": "C6-003", "handoff": "tests/golden/corrective/C6-003/handoff.json", "status": "active", "blocker": null, "queueMutation": true, "legacyTask": "M16-GAP-00277", "legacyParentNextTask": "M16-GAP-00277" }, "runtimePolicy": { "blenderSource": "blender-5.2.0", "browserEvidence": [ "chromium" ], "forbiddenBrowsers": [ "firefox", "webkit" ], "mainAuthority": "blender_main", "storage": [ "opfs", "indexeddb" ], "queueMutation": "enabled_after_owner_review_and_g5" }, "completionClasses": [ "LOCAL_EXACT", "LOCAL_BOUNDED", "SERVER_EXACT", "EXCLUDED" ], "gates": [ { "id": "G0", "name": "scope_and_inventory", "requires": [ "contract", "inventory", "capability_matrix" ] }, { "id": "G1", "name": "runtime_foundation", "requires": [ "sceneir", "main_transaction", "worker_lifecycle", "storage_journal" ] }, { "id": "G2", "name": "feature_parity", "requires": [ "desktop", "wasm_main", "chromium", "negative", "persistence" ] }, { "id": "G3", "name": "recovery_and_security", "requires": [ "cancel", "restart", "oom_quota", "malformed", "dispose" ] }, { "id": "G4", "name": "release_candidate", "requires": [ "offline", "ci", "sbom", "rollback", "hashes" ] }, { "id": "G5", "name": "queue_mutation", "requires": [ "owner_review", "protected_hashes", "handoff", "single_ready_task" ] } ], "waves": [ { "id": "P0", "name": "facts_and_contracts", "gate": "G0", "tasks": [ "WBV2-P0-001", "WBV2-P0-002", "WBV2-P0-003" ] }, { "id": "P1", "name": "runtime_foundation", "gate": "G1", "tasks": [ "WBV2-P1-001", "WBV2-P1-002", "WBV2-P1-003", "WBV2-P1-004", "WBV2-P1-005" ] }, { "id": "P2", "name": "core_modeler_loop", "gate": "G2", "tasks": [ "WBV2-P2-001", "WBV2-P2-002", "WBV2-P2-003", "WBV2-P2-004", "WBV2-P2-005" ] }, { "id": "P3", "name": "authoring_and_io", "gate": "G2", "tasks": [ "WBV2-P3-001", "WBV2-P3-002", "WBV2-P3-003", "WBV2-P3-004", "WBV2-P3-005" ] }, { "id": "P4", "name": "advanced_local_slices", "gate": "G2", "tasks": [ "WBV2-P4-001", "WBV2-P4-002", "WBV2-P4-003", "WBV2-P4-004" ] }, { "id": "P5", "name": "render_and_server", "gate": "G3", "tasks": [ "WBV2-P5-001", "WBV2-P5-002", "WBV2-P5-003" ] }, { "id": "P6", "name": "security_performance_release", "gate": "G4", "tasks": [ "WBV2-P6-001", "WBV2-P6-002", "WBV2-P6-003" ] }, { "id": "P7", "name": "full_parity_gap_program", "gate": "G5", "tasks": [ "WBV2-P7-001", "WBV2-P7-002", "WBV2-P7-003" ] } ], "taskContract": { "onePrimaryBehavior": true, "requiredEvidence": [ "desktop", "wasm_main", "chromium", "negative", "persistence", "manifest", "status" ], "requiredCommands": [ "focused", "determinism", "hash", "governance" ], "failureState": "in_progress_or_blocked", "successorRule": "only_from_parent_manifest_nextTask" }, "tasks": [ { "id": "WBV2-P0-001", "phase": "P0", "title": "reconcile_scope_and_checkpoints", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p0-governance", "gate": "G0", "card": "docs/tasks/WBV2-P0-001.md", "behavior": "Freeze V1/full-parity boundary and reconcile legacy/corrective pointers without queue mutation.", "outputs": [ "scope decision", "checkpoint report", "protected hash set" ], "acceptance": [ "corrective owner-review status is explicit", "legacy parent pointer is unchanged", "plan has one activation gate" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P0-002", "phase": "P0", "title": "generate_blender52_inventory_and_parity_map", "kind": "enabling", "owner": "PARITY", "dependsOn": [ "WBV2-P0-001" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p0-inventory", "gate": "G0", "card": "docs/tasks/WBV2-P0-002.md", "behavior": "Generate stable Blender 5.2 data-block/operator/editor/node/format inventory and map every entry to a completion class.", "outputs": [ "inventory", "parity map", "source hash" ], "acceptance": [ "unknown entries are classified", "inventory is deterministic", "no entry claims feature parity without evidence" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P0-003", "phase": "P0", "title": "freeze_capability_error_budget_contract", "kind": "enabling", "owner": "PROTOCOL", "dependsOn": [ "WBV2-P0-001", "WBV2-P0-002" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p0-contract", "gate": "G0", "card": "docs/tasks/WBV2-P0-003.md", "behavior": "Freeze capability levels, stable error codes, revision, budget, cancellation and loss-report schemas.", "outputs": [ "versioned protocol", "capability matrix", "negative matrix" ], "acceptance": [ "unsupported input fails closed", "schema hashes are stable", "migration policy preserves unknown data" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P1-001", "phase": "P1", "title": "stabilize_runtime_variants_and_source_receipts", "kind": "enabling", "owner": "RUNTIME", "dependsOn": [ "WBV2-P0-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p1-runtime", "gate": "G1", "card": "docs/tasks/WBV2-P1-001.md", "behavior": "Bind single-thread/pthread WebEngine variants to pinned Blender source/build/runtime receipts.", "outputs": [ "runtime manifest", "variant selector", "fallback report" ], "acceptance": [ "variant fallback is deterministic", "source/build hash is verified", "one engine session has one generation" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P1-002", "phase": "P1", "title": "unify_sceneir_stable_ids_and_binary_deltas", "kind": "enabling", "owner": "MAIN", "dependsOn": [ "WBV2-P1-001" ], "parityId": null, "implementationClass": "LOCAL_EXACT", "parallelGroup": "p1-sceneir", "gate": "G1", "card": "docs/tasks/WBV2-P1-002.md", "behavior": "Make SceneIR/WBG1 stable IDs, topology/attribute domains and binary/range deltas canonical across desktop and WASM.", "outputs": [ "SceneIR schema", "binary fixture", "delta comparator" ], "acceptance": [ "IDs survive save/reopen", "malformed chunk is rejected", "desktop and WASM canonical hashes match" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P1-003", "phase": "P1", "title": "unify_main_transaction_history_and_save", "kind": "enabling", "owner": "MAIN", "dependsOn": [ "WBV2-P1-002" ], "parityId": null, "implementationClass": "LOCAL_EXACT", "parallelGroup": "p1-history", "gate": "G1", "card": "docs/tasks/WBV2-P1-003.md", "behavior": "Use one Main transaction/revision/history contract for commit, undo/redo, atomic save and reopen.", "outputs": [ "transaction contract", "history receipt", "save/reopen runner" ], "acceptance": [ "failed/no-op commands add no history", "stale revision cannot commit", "reopen state is byte/hash stable" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P1-004", "phase": "P1", "title": "harden_worker_cancel_restart_and_dispose", "kind": "enabling", "owner": "RUNTIME", "dependsOn": [ "WBV2-P1-001", "WBV2-P1-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p1-lifecycle", "gate": "G1", "card": "docs/tasks/WBV2-P1-004.md", "behavior": "Make cancellation, late-result rejection, Worker restart and resource disposal common to all domains.", "outputs": [ "lifecycle runner", "fault report", "dispose counters" ], "acceptance": [ "cancel never publishes result", "generation mismatch is rejected", "CPU/WASM/GPU owners return to budget" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P1-005", "phase": "P1", "title": "harden_opfs_indexeddb_journal_recovery", "kind": "enabling", "owner": "STORAGE", "dependsOn": [ "WBV2-P1-003", "WBV2-P1-004" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p1-storage", "gate": "G1", "card": "docs/tasks/WBV2-P1-005.md", "behavior": "Unify OPFS staging/content addressing and IndexedDB metadata/journal recovery.", "outputs": [ "storage schema", "crash fixtures", "recovery checker" ], "acceptance": [ "interrupted commit leaves old project usable", "hash mismatch quarantines payload", "small project recovers after restart" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P2-001", "phase": "P2", "title": "open_blend_scene_context_and_outliner", "kind": "feature", "owner": "EDITOR", "dependsOn": [ "WBV2-P1-002", "WBV2-P1-005" ], "parityId": "EDITOR.OPEN_SCENE", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p2-editor", "gate": "G2", "card": "docs/tasks/WBV2-P2-001.md", "behavior": "Open a minimal .blend and expose scene/object/collection context from authoritative Main.", "outputs": [ "desktop fixture", "outliner report", "Chromium path" ], "acceptance": [ "stable IDs and selection revision match", "missing data is structured", "reopen preserves context" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P2-002", "phase": "P2", "title": "object_collection_parent_transform_workflow", "kind": "feature", "owner": "EDITOR", "dependsOn": [ "WBV2-P1-003", "WBV2-P2-001" ], "parityId": "OBJECT.TRANSFORM_HIERARCHY", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p2-scene", "gate": "G2", "card": "docs/tasks/WBV2-P2-002.md", "behavior": "Edit object transform, collection membership and parent hierarchy through Main transactions.", "outputs": [ "desktop/WASM golden", "negative cases", "save/reopen receipt" ], "acceptance": [ "world matrix parity", "cycle/locked/library edits reject", "undo/redo/save/reopen stable" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P2-003", "phase": "P2", "title": "mesh_edit_core_operations", "kind": "feature", "owner": "MESH", "dependsOn": [ "WBV2-P1-002", "WBV2-P2-002" ], "parityId": "MESH.EDIT_CORE", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p2-mesh", "gate": "G2", "card": "docs/tasks/WBV2-P2-003.md", "behavior": "Expose bounded vertex/edge/face selection plus merge/dissolve/extrude/inset/bevel/loop-cut.", "outputs": [ "Blender fixture set", "topology comparator", "Chromium edit path" ], "acceptance": [ "topology/attributes match", "invalid selection and budget fail closed", "single transaction and reopen stable" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P2-004", "phase": "P2", "title": "dual_viewport_sceneir_render_path", "kind": "feature", "owner": "VIEWPORT", "dependsOn": [ "WBV2-P1-004", "WBV2-P2-003" ], "parityId": "VIEWPORT.MAIN_OFFSCREEN", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p2-viewport", "gate": "G2", "card": "docs/tasks/WBV2-P2-004.md", "behavior": "Render the same validated SceneIR through main-thread WebGL2 and OffscreenCanvas Worker paths.", "outputs": [ "pixel report", "viewport diagnostics", "device recovery" ], "acceptance": [ "both paths have nonblank pixels", "selection/camera revision is shared", "device loss releases resources" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P2-005", "phase": "P2", "title": "close_p0_user_loop", "kind": "feature", "owner": "INTEGRATION", "dependsOn": [ "WBV2-P2-002", "WBV2-P2-003", "WBV2-P1-005", "WBV2-P2-004" ], "parityId": "WORKFLOW.P0_USER_LOOP", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p2-integration", "gate": "G2", "card": "docs/tasks/WBV2-P2-005.md", "behavior": "Prove open -> edit -> undo -> redo -> save -> restart -> reopen -> GLB in one production flow.", "outputs": [ "P0 workflow report", "release binding", "rollback receipt" ], "acceptance": [ "Main revision and exported asset are bound", "fault/cancel leaves old state", "Chromium production path passes" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P3-001", "phase": "P3", "title": "material_uv_principled_asset_workflow", "kind": "feature", "owner": "MATERIAL", "dependsOn": [ "WBV2-P2-003", "WBV2-P2-005" ], "parityId": "MATERIAL.PBR_UV", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p3-authoring", "gate": "G2", "card": "docs/tasks/WBV2-P3-001.md", "behavior": "Edit material slots, UVs and declared Principled/Image/Normal graph nodes with content-addressed textures.", "outputs": [ "material golden", "texture receipt", "loss report" ], "acceptance": [ "desktop/WASM node fields match", "unsupported node retained/blocked", "packed asset survives reopen" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P3-002", "phase": "P3", "title": "keyframe_timeline_action_workflow", "kind": "feature", "owner": "ANIMATION", "dependsOn": [ "WBV2-P2-002", "WBV2-P2-005", "WBV2-P3-001" ], "parityId": "ANIMATION.TRS_ACTION", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p3-authoring", "gate": "G2", "card": "docs/tasks/WBV2-P3-002.md", "behavior": "Create/edit TRS keyframes, timeline and declared Action interpolation through Main.", "outputs": [ "frame golden", "animation comparator", "reopen report" ], "acceptance": [ "sampled values and handles match", "stale frame result rejected", "undo/save/reopen stable" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P3-003", "phase": "P3", "title": "armature_pose_constraint_skin_workflow", "kind": "feature", "owner": "RIG", "dependsOn": [ "WBV2-P2-002", "WBV2-P3-002" ], "parityId": "RIG.POSE_SKIN", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p3-rig", "gate": "G2", "card": "docs/tasks/WBV2-P3-003.md", "behavior": "Read and edit declared armature pose/constraint/weight/shape-key slices with bounded evaluation.", "outputs": [ "pose golden", "skin report", "unsupported matrix" ], "acceptance": [ "pose matrices and weights match", "unsupported constraint is explicit", "save/reopen and small recovery pass" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P3-004", "phase": "P3", "title": "glb_roundtrip_and_loss_report", "kind": "feature", "owner": "IO", "dependsOn": [ "WBV2-P2-005", "WBV2-P3-001", "WBV2-P3-003" ], "parityId": "IO.GLB_ROUNDTRIP", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p3-io", "gate": "G2", "card": "docs/tasks/WBV2-P3-004.md", "behavior": "Import/export declared GLB mesh/PBR/texture/morph/skin/animation and report non-mapped semantics.", "outputs": [ "GLB fixtures", "desktop reimport report", "loss report" ], "acceptance": [ "roundtrip canonical graph matches", "sparse/external URI/budget negatives reject", "no silent loss" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P3-005", "phase": "P3", "title": "library_asset_append_link_override", "kind": "feature", "owner": "ASSET", "dependsOn": [ "WBV2-P1-005", "WBV2-P2-001", "WBV2-P3-004" ], "parityId": "ASSET.LIBRARY_OPERATIONS", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p3-assets", "gate": "G2", "card": "docs/tasks/WBV2-P3-005.md", "behavior": "Support declared append/link/override ownership, reload and missing-library semantics.", "outputs": [ "library fixtures", "ownership report", "negative matrix" ], "acceptance": [ "source/hash/owner identity preserved", "linked mutation blocked", "stale generation and missing source fail closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P4-001", "phase": "P4", "title": "modifier_graph_and_apply_slices", "kind": "feature", "owner": "MODIFIER", "dependsOn": [ "WBV2-P2-003", "WBV2-P2-005", "WBV2-P3-005" ], "parityId": "MODIFIER.DECLARED_SLICES", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p4-domains", "gate": "G2", "card": "docs/tasks/WBV2-P4-001.md", "behavior": "Enable one declared modifier parameter/apply workflow at a time with dependency-aware blocking.", "outputs": [ "modifier goldens", "dependency report", "negative cases" ], "acceptance": [ "desktop/evaluated Main match", "unknown modifier retained and blocked", "apply/undo/save/reopen stable" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P4-002", "phase": "P4", "title": "geometry_nodes_and_shader_allowlist", "kind": "feature", "owner": "NODES", "dependsOn": [ "WBV2-P3-001", "WBV2-P4-001" ], "parityId": "NODES.ALLOWLIST", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p4-domains", "gate": "G2", "card": "docs/tasks/WBV2-P4-002.md", "behavior": "Read/write/evaluate only declared Geometry Nodes and shader graph allowlists with resource budgets.", "outputs": [ "node fixtures", "compile/cache receipts", "unsupported graph reports" ], "acceptance": [ "node/socket/link/default parity", "budget and unknown-node block before commit", "compile failure rolls back" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P4-003", "phase": "P4", "title": "sculpt_nonmesh_and_paint_bounded_slices", "kind": "feature", "owner": "SCULPT", "dependsOn": [ "WBV2-P2-003", "WBV2-P2-004", "WBV2-P4-002" ], "parityId": "SCULPT.NONMESH.PAINT_BOUNDED", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p4-domains", "gate": "G2", "card": "docs/tasks/WBV2-P4-003.md", "behavior": "Expose declared sculpt attributes/strokes, Curve/Surface/Font/PointCloud and paint slices with explicit PBVH limits.", "outputs": [ "non-mesh fixtures", "stroke report", "capability blocks" ], "acceptance": [ "Main commit is atomic", "unsupported brush/solver returns stable code", "GPU/OOM/restart recovery passes" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P4-004", "phase": "P4", "title": "simulation_cache_identity_and_lifecycle", "kind": "feature", "owner": "SIMULATION", "dependsOn": [ "WBV2-P1-005", "WBV2-P4-002", "WBV2-P4-003" ], "parityId": "SIMULATION.CACHE_LIFECYCLE", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p4-domains", "gate": "G3", "card": "docs/tasks/WBV2-P4-004.md", "behavior": "Bind declared simulation cache to source/settings/revision hashes with cancellation, LRU and restart recovery.", "outputs": [ "cache fixtures", "identity report", "quarantine evidence" ], "acceptance": [ "stale/corrupt cache never publishes", "small cache recovers after restart", "budget release is observable" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P5-001", "phase": "P5", "title": "render_capability_routing", "kind": "feature", "owner": "RENDER", "dependsOn": [ "WBV2-P2-004", "WBV2-P4-002", "WBV2-P4-004" ], "parityId": "RENDER.ROUTING", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p5-media", "gate": "G3", "card": "docs/tasks/WBV2-P5-001.md", "behavior": "Route bounded Eevee/WebGL capabilities locally and unsupported render classes to SERVER_EXACT or EXCLUDED.", "outputs": [ "render receipts", "pixel golden", "routing report" ], "acceptance": [ "source/settings/build identity bound", "unsupported route cannot pretend local success", "cancel/device loss releases resources" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P5-002", "phase": "P5", "title": "compositor_sequencer_media_recovery", "kind": "feature", "owner": "MEDIA", "dependsOn": [ "WBV2-P3-002", "WBV2-P5-001" ], "parityId": "MEDIA.BOUNDED_WORKFLOW", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p5-media", "gate": "G3", "card": "docs/tasks/WBV2-P5-002.md", "behavior": "Provide declared compositor/sequencer/codec/proxy/audio slices with revision and recovery gates.", "outputs": [ "media receipts", "recovery report", "audio/session diagnostics" ], "acceptance": [ "seek/decode revision ordering", "cancel/timeout does not publish", "quota/OOM/restart leaves project valid" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P5-003", "phase": "P5", "title": "server_job_result_binding", "kind": "feature", "owner": "SERVER", "dependsOn": [ "WBV2-P0-003", "WBV2-P5-001", "WBV2-P5-002" ], "parityId": "SERVER.JOB_BINDING", "implementationClass": "SERVER_EXACT", "parallelGroup": "p5-server", "gate": "G3", "card": "docs/tasks/WBV2-P5-003.md", "behavior": "Bind server render/encode/physics jobs to immutable input/settings/build/output hashes and explicit lifecycle states.", "outputs": [ "server protocol", "idempotency receipt", "negative matrix" ], "acceptance": [ "duplicate request is idempotent", "stale result cannot bind", "timeout/cancel/OOM produces no READY output" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P6-001", "phase": "P6", "title": "scripting_default_deny_and_audit", "kind": "feature", "owner": "SECURITY", "dependsOn": [ "WBV2-P1-004", "WBV2-P5-003" ], "parityId": "SECURITY.SCRIPTING", "implementationClass": "EXCLUDED", "parallelGroup": "p6-safety", "gate": "G3", "card": "docs/tasks/WBV2-P6-001.md", "behavior": "Read text/metadata and expose audited, budgeted, default-deny script policy without arbitrary execution.", "outputs": [ "policy manifest", "malicious fixtures", "audit report" ], "acceptance": [ "autorun/network/add-on defaults deny", "sandbox cancellation/dispose works", "no secret or filesystem escape" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P6-002", "phase": "P6", "title": "performance_fault_and_recovery_matrix", "kind": "enabling", "owner": "RELIABILITY", "dependsOn": [ "WBV2-P1-004", "WBV2-P1-005", "WBV2-P2-004", "WBV2-P6-001" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p6-safety", "gate": "G3", "card": "docs/tasks/WBV2-P6-002.md", "behavior": "Run deterministic geometry/texture/media/cache budgets and inject OOM/quota/device/network faults.", "outputs": [ "budget matrix", "fault reports", "resource release ledger" ], "acceptance": [ "100k/1M/10M thresholds recorded", "fault leaves old revision usable", "all owned resources return to budget" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P6-003", "phase": "P6", "title": "offline_ci_sbom_and_rollback_release", "kind": "enabling", "owner": "RELEASE", "dependsOn": [ "WBV2-P6-001", "WBV2-P6-002" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p6-release", "gate": "G4", "card": "docs/tasks/WBV2-P6-003.md", "behavior": "Produce reproducible offline/source/binary release packages with CI lanes, SBOM and rollback evidence.", "outputs": [ "RC manifest", "offline archive", "CI reports" ], "acceptance": [ "quick/Chromium/release lanes pass", "artifact hashes reproduce", "upgrade/rollback and known limitations are tested" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P7-001", "phase": "P7", "title": "cluster_full_blender_gap_inventory", "kind": "enabling", "owner": "PARITY", "dependsOn": [ "WBV2-P0-002", "WBV2-P6-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p7-gap", "gate": "G4", "card": "docs/tasks/WBV2-P7-001.md", "behavior": "Cluster remaining Blender 5.2 data-block/operator/editor/node/format gaps by family and evidence class.", "outputs": [ "cluster catalog", "coverage report", "risk ranking" ], "acceptance": [ "each gap has stable ID and owner", "negative-only/unsupported is not positive parity", "clusters are deterministic" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P7-002", "phase": "P7", "title": "generate_atomic_family_gap_queue", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P7-001" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p7-gap", "gate": "G4", "card": "docs/tasks/WBV2-P7-002.md", "behavior": "Generate one task per parityId x observable behavior x implementation class with parent/hash context.", "outputs": [ "task index", "task catalog", "task cards" ], "acceptance": [ "one active ready task", "no guessed successor", "each card fits context budget" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P7-003", "phase": "P7", "title": "full_parity_candidate_release_gate", "kind": "enabling", "owner": "RELEASE", "dependsOn": [ "WBV2-P7-002" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p7-release", "gate": "G5", "card": "docs/tasks/WBV2-P7-003.md", "behavior": "Recompute parity closure, evidence health, recovery health and release decision from machine manifests.", "outputs": [ "parity release report", "known limitations", "final decision" ], "acceptance": [ "all claims bind to evidence", "blocked/excluded/server classes remain explicit", "queue and protected hashes pass" ], "status": "blocked", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P8-000", "phase": "P8", "title": "authorize_recovery_capability_root", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P7-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p8-governance", "gate": "G5", "card": "docs/tasks/WBV2-P8-000.md", "behavior": "Authorize a recovery epoch without rewriting the blocked P7 manifest.", "outputs": [ "recovery plan", "root manifest", "queue authorization" ], "acceptance": [ "P7 evidence remains hash exact", "recovery scope is explicit", "one recovery task is active" ], "status": "done", "ready": false, "queueMutationAllowed": true }, { "id": "WBV2-P8-001", "phase": "P8", "title": "rebaseline_mutable_inventories", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P8-000" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p8-governance", "gate": "G5", "card": "docs/tasks/WBV2-P8-001.md", "behavior": "Rebaseline mutable WBV2 plan and dependency inventory inputs while preserving historical manifests.", "outputs": [ "semantic drift report", "current inventory baseline", "manifest" ], "acceptance": [ "only expected mutable hashes drift", "dependency closure is unchanged", "historical manifests remain unmodified" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P8-002", "phase": "P8", "title": "close_atomic_chromium_receipts", "kind": "enabling", "owner": "PARITY", "dependsOn": [ "WBV2-P8-001" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p8-receipts", "gate": "G5", "card": "docs/tasks/WBV2-P8-002.md", "behavior": "Produce and bind all 45 atomic Chromium family receipts.", "outputs": [ "Chromium report", "45 receipt index", "receipt manifests" ], "acceptance": [ "45 receipts are manifest-bound", "desktop/WASM/save-reopen behaviors are explicit", "Chromium is the only browser" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P8-003", "phase": "P8", "title": "authorize_m12_provenance_epoch", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P8-002" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p8-provenance", "gate": "G5", "card": "docs/tasks/WBV2-P8-003.md", "behavior": "Bind restored M12 sources and explicitly rebaseline unavailable originals in a new provenance epoch.", "outputs": [ "provenance epoch", "replacement bindings", "manifest" ], "acceptance": [ "22 restored originals stay exact", "62 unavailable entries are not called restored", "all replacements are hash-bound" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P8-004", "phase": "P8", "title": "recompute_recovery_release_gate", "kind": "enabling", "owner": "RELEASE", "dependsOn": [ "WBV2-P8-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p8-release", "gate": "G5", "card": "docs/tasks/WBV2-P8-004.md", "behavior": "Recompute the release decision from the recovery epoch and atomic receipts.", "outputs": [ "release gate", "known limitations", "final manifest" ], "acceptance": [ "all receipts bind to manifests", "provenance epoch is explicit", "all governance gates pass" ], "status": "in_progress", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P9-000", "phase": "P9", "title": "authorize_feature_parity_continuation", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P8-004" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p9-governance", "gate": "G6", "card": "docs/tasks/WBV2-P9-000.md", "behavior": "Authorize feature parity continuation after provenance epoch 2 without claiming historical byte reproduction.", "outputs": [ "continuation receipt", "feature parity plan", "scope limits" ], "acceptance": [ "P8 provenance evidence remains exact", "authorized baseline is explicit", "one feature task is active" ], "status": "done", "ready": false, "queueMutationAllowed": true }, { "id": "WBV2-P9-001", "phase": "P9", "title": "mesh_production_chromium_receipt", "kind": "feature", "owner": "MESH", "dependsOn": [ "WBV2-P9-000" ], "parityId": "CAP-MESH-POSITIVE-EDIT", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p9-mesh", "gate": "G6", "card": "docs/tasks/WBV2-P9-001.md", "behavior": "Bind the existing Mesh Main transaction to a production Chromium desktop/WASM/save-reopen receipt.", "outputs": [ "Chromium mesh receipt", "negative matrix", "manifest" ], "acceptance": [ "real meshTranslateVertex command passes", "desktop/WASM delta matches", "save/reopen is exact", "malformed/stale/unknown inputs fail closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P9-002", "phase": "P9", "title": "modifier_production_chromium_receipt", "kind": "feature", "owner": "MODIFIER", "dependsOn": [ "WBV2-P9-001" ], "parityId": "CAP-MODIFIER-STATE-MUTATION", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p9-modifier", "gate": "G6", "card": "docs/tasks/WBV2-P9-002.md", "behavior": "Bind the existing Modifier Main transaction to a production Chromium receipt.", "outputs": [ "Chromium modifier receipt", "negative matrix", "manifest" ], "acceptance": [ "real modifierSetEnabled command passes", "desktop/WASM delta matches", "save/reopen is exact" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P9-003", "phase": "P9", "title": "asset_catalog_production_chromium_receipt", "kind": "feature", "owner": "ASSET", "dependsOn": [ "WBV2-P9-002" ], "parityId": "CAP-ASSET-CATALOG-MUTATION", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p9-asset", "gate": "G6", "card": "docs/tasks/WBV2-P9-003.md", "behavior": "Bind the existing Asset Catalog Main transaction and resource resolver to a production Chromium receipt.", "outputs": [ "Chromium asset receipt", "negative matrix", "manifest" ], "acceptance": [ "real assetCatalogAppend command passes", "resource hash is bound", "save/reopen is exact" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P9-004", "phase": "P9", "title": "recompute_feature_parity_gate", "kind": "enabling", "owner": "RELEASE", "dependsOn": [ "WBV2-P9-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p9-release", "gate": "G7", "card": "docs/tasks/WBV2-P9-004.md", "behavior": "Recompute declared feature parity claims from production Chromium receipts and authorized provenance.", "outputs": [ "feature parity gate", "limited release declaration", "manifest" ], "acceptance": [ "only evidenced feature claims are emitted", "authorized baseline remains explicit", "full historical reproduction remains false" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P10-000", "phase": "P10", "title": "authorize_native_engine_parity_continuation", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P9-004" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p10-governance", "gate": "G6", "card": "docs/tasks/WBV2-P10-000.md", "behavior": "Authorize native Blender/WASM engine parity continuation after bounded Chromium capability evidence.", "outputs": [ "continuation receipt", "native parity plan", "scope limits" ], "acceptance": [ "P9 evidence remains hash-bound", "native build/runtime is explicit", "one native parity task is active" ], "status": "done", "ready": false, "queueMutationAllowed": true }, { "id": "WBV2-P10-001", "phase": "P10", "title": "reconcile_wbv2_inventory_source_drift", "kind": "enabling", "owner": "PARITY", "dependsOn": [ "WBV2-P10-000" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p10-inventory", "gate": "G6", "card": "docs/tasks/WBV2-P10-001.md", "behavior": "Record the authorized mutable WBV2 plan drift and prove dependency closure stability without rewriting historical P0 evidence.", "outputs": [ "current source hash baseline", "drift report", "checker compatibility" ], "acceptance": [ "historical P0 hashes remain unchanged", "only authorized plan drift is recorded", "dependency roots/lockfile/closure remain stable", "inventory checker passes using current baseline" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P10-002", "phase": "P10", "title": "bind_native_and_wasm_engine_receipts", "kind": "feature", "owner": "ENGINE", "dependsOn": [ "WBV2-P10-001" ], "parityId": "ENGINE.NATIVE_WASM_BRIDGE", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p10-engine", "gate": "G6", "card": "docs/tasks/WBV2-P10-002.md", "behavior": "Bind Mesh, Modifier, and Asset Catalog receipts to the compiled Blender native binary and web_engine.wasm runtime.", "outputs": [ "native receipt", "WASM receipt", "Chromium engine report" ], "acceptance": [ "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" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P10-003", "phase": "P10", "title": "expand_core_module_operator_matrix", "kind": "feature", "owner": "PARITY", "dependsOn": [ "WBV2-P10-002" ], "parityId": "CORE.MODULE_MATRIX", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p10-matrix", "gate": "G7", "card": "docs/tasks/WBV2-P10-003.md", "behavior": "Expand the three proven capability modules with data-driven operator coverage and aggregate regression receipts.", "outputs": [ "module matrix", "shard reports", "aggregate manifest" ], "acceptance": [ "positive cases are L2+", "negative cases do not mutate Main", "shards use one catalog hash", "unmapped and retained-negative cases stay explicit" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P11-000", "phase": "P11", "title": "authorize_module_expansion_continuation", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P10-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p11-governance", "gate": "G7", "card": "docs/tasks/WBV2-P11-000.md", "behavior": "Authorize deeper module production after real native/WASM engine binding and the first aggregate matrix.", "outputs": [ "continuation root", "module expansion plan", "scope limits" ], "acceptance": [ "P10 evidence remains hash-bound", "one expansion task is active", "full historical reproduction remains false" ], "status": "done", "ready": false, "queueMutationAllowed": true }, { "id": "WBV2-P11-001", "phase": "P11", "title": "mesh_topology_operation_family", "kind": "feature", "owner": "MESH", "dependsOn": [ "WBV2-P11-000" ], "parityId": "MESH.EDIT_TOPOLOGY_FAMILY", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p11-mesh", "gate": "G7", "card": "docs/tasks/WBV2-P11-001.md", "behavior": "Execute merge, dissolve, extrude, inset, bevel, and loop-cut through the real Blender WASM Main and preserve each result through save/reopen.", "outputs": [ "topology receipt", "negative matrix", "manifest" ], "acceptance": [ "six mesh operations mutate Main", "revision increments exactly once", "save/reopen preserves topology counts", "invalid selection and incompatible configuration fail closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P11-002", "phase": "P11", "title": "modifier_parameter_apply_family", "kind": "feature", "owner": "MODIFIER", "dependsOn": [ "WBV2-P11-001" ], "parityId": "MODIFIER.PARAMETER_APPLY_FAMILY", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p11-modifier", "gate": "G7", "card": "docs/tasks/WBV2-P11-002.md", "behavior": "Extend the real Modifier Main path from enable/disable to bounded parameter and apply transactions.", "outputs": [ "modifier parameter receipt", "negative matrix", "manifest" ], "acceptance": [ "parameter mutation is native/WASM bound", "apply result is evaluated", "save/reopen is exact", "dependency and stale inputs fail closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P11-003", "phase": "P11", "title": "asset_link_override_reload_family", "kind": "feature", "owner": "ASSET", "dependsOn": [ "WBV2-P11-002" ], "parityId": "ASSET.LINK_OVERRIDE_RELOAD_FAMILY", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p11-asset", "gate": "G7", "card": "docs/tasks/WBV2-P11-003.md", "behavior": "Extend the real Asset Main path from append to link, override, reload, and missing-library boundaries.", "outputs": [ "asset ownership receipt", "negative matrix", "manifest" ], "acceptance": [ "source ownership is preserved", "override is local and hash-bound", "reload revision is checked", "missing source remains explicit" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P11-004", "phase": "P11", "title": "recompute_engine_module_gate", "kind": "enabling", "owner": "RELEASE", "dependsOn": [ "WBV2-P11-003" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p11-release", "gate": "G8", "card": "docs/tasks/WBV2-P11-004.md", "behavior": "Recompute engine-bound module parity from P10 and P11 receipts without claiming whole-inventory completion.", "outputs": [ "engine module gate", "limited release declaration", "manifest" ], "acceptance": [ "only engine-bound claims are emitted", "inventory remainder is explicit", "provenance epoch 2 remains authorized rebaseline only", "full historical reproduction remains false" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P12-000", "phase": "P12", "title": "authorize_domain_expansion_continuation", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P11-004" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p12-governance", "gate": "G8", "card": "docs/tasks/WBV2-P12-000.md", "behavior": "Authorize expansion from the three engine-bound modules to the remaining high-value Blender Web domains using existing source evidence.", "outputs": [ "continuation root", "domain expansion plan", "scope limits" ], "acceptance": [ "P11 evidence remains hash-bound", "domain tasks use existing source receipts", "one ledger task is active" ], "status": "done", "ready": false, "queueMutationAllowed": true }, { "id": "WBV2-P12-001", "phase": "P12", "title": "reconcile_existing_capability_ledger", "kind": "enabling", "owner": "PARITY", "dependsOn": [ "WBV2-P12-000" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p12-ledger", "gate": "G8", "card": "docs/tasks/WBV2-P12-001.md", "behavior": "Aggregate existing WBV2 P1-P6 and P10-P11 manifests into a conservative capability ledger without inventing claims.", "outputs": [ "capability ledger", "evidence index", "remaining gap map" ], "acceptance": [ "all source manifests are hash-verified", "only done receipts enter proven evidence", "L0/metadata and blocked cases remain explicit", "inventory remainder is preserved" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P12-002", "phase": "P12", "title": "scene_object_workflow_engine_receipt", "kind": "feature", "owner": "EDITOR", "dependsOn": [ "WBV2-P12-001" ], "parityId": "EDITOR.SCENE_OBJECT_ENGINE", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p12-scene", "gate": "G8", "card": "docs/tasks/WBV2-P12-002.md", "behavior": "Bind object visibility and transform edits to the compiled WebEngine WASM Main with save/reopen and revision guards.", "outputs": [ "scene/object receipt", "negative matrix", "manifest" ], "acceptance": [ "visibility and transform mutate Main", "desktop source oracle is bound", "save/reopen is exact", "stale and malformed commands fail closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P12-003", "phase": "P12", "title": "material_animation_engine_receipt", "kind": "feature", "owner": "AUTHORING", "dependsOn": [ "WBV2-P12-002" ], "parityId": "AUTHORING.MATERIAL_ANIMATION_ENGINE", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p12-authoring", "gate": "G8", "card": "docs/tasks/WBV2-P12-003.md", "behavior": "Bind material Principled/texture and TRS keyframe edits to the compiled WebEngine WASM Main.", "outputs": [ "authoring receipt", "negative matrix", "manifest" ], "acceptance": [ "material and keyframe Main mutations pass", "source hashes are bound", "save/reopen is exact", "unsupported graph and stale frame inputs fail closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P12-004", "phase": "P12", "title": "viewport_nonmesh_engine_receipt", "kind": "feature", "owner": "VIEWPORT", "dependsOn": [ "WBV2-P12-003" ], "parityId": "VIEWPORT.NONMESH_ENGINE", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p12-viewport", "gate": "G8", "card": "docs/tasks/WBV2-P12-004.md", "behavior": "Bind viewport SceneIR and bounded non-mesh read/edit paths to the compiled WebEngine runtime with explicit unsupported boundaries.", "outputs": [ "viewport receipt", "nonmesh boundary map", "manifest" ], "acceptance": [ "nonblank viewport evidence is bound", "non-mesh data is explicit", "unsupported and budget cases fail closed", "save/reopen and resource disposal are exact" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P12-005", "phase": "P12", "title": "recompute_domain_parity_gate", "kind": "enabling", "owner": "RELEASE", "dependsOn": [ "WBV2-P12-004" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p12-release", "gate": "G9", "card": "docs/tasks/WBV2-P12-005.md", "behavior": "Recompute domain parity from the complete evidence ledger while retaining explicit inventory and provenance limits.", "outputs": [ "domain parity gate", "limited release declaration", "manifest" ], "acceptance": [ "only engine-bound domain claims are emitted", "unproven inventory remains explicit", "epoch 2 remains authorized rebaseline only", "full historical reproduction remains false" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P13-000", "phase": "P13", "title": "authorize_high_value_domain_continuation", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [ "WBV2-P12-005" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p13-governance", "gate": "G9", "card": "docs/tasks/WBV2-P13-000.md", "behavior": "Authorize high-value advanced domain continuation after P12 domain parity gate.", "outputs": [ "continuation root", "advanced domain plan", "scope limits" ], "acceptance": [ "P12 evidence remains hash-bound", "existing advanced receipts are reusable", "one ledger task is active" ], "status": "done", "ready": false, "queueMutationAllowed": true }, { "id": "WBV2-P13-001", "phase": "P13", "title": "reconcile_advanced_domain_ledger", "kind": "enabling", "owner": "PARITY", "dependsOn": [ "WBV2-P13-000" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p13-ledger", "gate": "G9", "card": "docs/tasks/WBV2-P13-001.md", "behavior": "Batch-index existing Geometry Nodes, Rig, Simulation, Render, Media, and Server receipts without repeated execution.", "outputs": [ "advanced ledger", "source index", "remaining map" ], "acceptance": [ "source manifests are hash-verified", "existing reports are classified conservatively", "no repeated Blender/Chromium run", "unproven advanced domains stay explicit" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P13-002", "phase": "P13", "title": "geometry_nodes_engine_receipt", "kind": "feature", "owner": "NODES", "dependsOn": [ "WBV2-P13-001" ], "parityId": "NODES.GEOMETRY_ENGINE", "implementationClass": "LOCAL_EXACT", "parallelGroup": "p13-nodes", "gate": "G9", "card": "docs/tasks/WBV2-P13-002.md", "behavior": "Bind Geometry Nodes graph read, stable graph hashes, unsupported node retention, and save/reopen to compiled WASM Main.", "outputs": [ "nodes receipt", "negative matrix", "manifest" ], "acceptance": [ "graph hashes are stable", "unsupported nodes remain explicit", "save/reopen is exact", "malformed graph and budget cases fail closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P13-003", "phase": "P13", "title": "rig_pose_engine_receipt", "kind": "feature", "owner": "RIG", "dependsOn": [ "WBV2-P13-002" ], "parityId": "RIG.POSE_ENGINE", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p13-rig", "gate": "G9", "card": "docs/tasks/WBV2-P13-003.md", "behavior": "Bind armature pose, constraints, and bounded skin data to compiled WASM Main with exact reopen.", "outputs": [ "rig receipt", "negative matrix", "manifest" ], "acceptance": [ "stable bone IDs and matrices are preserved", "unsupported constraint is explicit", "save/reopen is exact", "malformed pose input fails closed" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P13-004", "phase": "P13", "title": "simulation_render_media_engine_receipt", "kind": "feature", "owner": "ADVANCED", "dependsOn": [ "WBV2-P13-003" ], "parityId": "ADVANCED.SIMULATION_RENDER_MEDIA", "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p13-advanced", "gate": "G9", "card": "docs/tasks/WBV2-P13-004.md", "behavior": "Bind existing Simulation cache identity, render routing, media recovery, and server job boundaries into one conservative engine ledger.", "outputs": [ "advanced receipt", "routing matrix", "manifest" ], "acceptance": [ "existing exact reports are reused", "unsupported routes remain explicit", "hash and lifecycle states are bound", "no false local parity claim" ], "status": "done", "ready": false, "queueMutationAllowed": false }, { "id": "WBV2-P13-005", "phase": "P13", "title": "recompute_high_value_domain_gate", "kind": "enabling", "owner": "RELEASE", "dependsOn": [ "WBV2-P13-004" ], "parityId": null, "implementationClass": "LOCAL_BOUNDED", "parallelGroup": "p13-release", "gate": "G10", "card": "docs/tasks/WBV2-P13-005.md", "behavior": "Recompute high-value domain claims from the advanced ledger and engine receipts.", "outputs": [ "advanced parity gate", "limited declaration", "manifest" ], "acceptance": [ "only evidenced claims are emitted", "inventory remainder stays explicit", "provenance limitation stays explicit", "full historical reproduction remains false" ], "status": "in_progress", "ready": true, "queueMutationAllowed": false } ], "parentPlan": { "path": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json", "sha256": "0f4750e45f2d1ca7d68faa35743e5b758ea8091f18d1d0e312ab548228d6f782" }, "recoveryRoot": "WBV2-P13-000", "parentRecoveryPlan": { "path": "tests/golden/WBV2-P13-004/high-value-task-plan.json", "sha256": "7132c2aab3d83c2b18dd3c3f6ed655784904424807070844405bcc34dc9b729a" } }