Files
workinf_Blender_Wasm/tests/golden/WBV2-P13-005/high-value-task-plan.json
mes123456 ea18416ff2
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
Advance WBV2 high-value domains through P13
2026-08-28 07:11:47 +08:00

2075 lines
59 KiB
JSON

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