feat(web): switch to implementation-first capability wave
This commit is contained in:
Binary file not shown.
72
tests/golden/WBV2-P24-001/manifest.json
Normal file
72
tests/golden/WBV2-P24-001/manifest.json
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-001",
|
||||
"parentTask": "WBV2-P24-000",
|
||||
"operation": "SELECT_OBJECT_MOVE_COLLECTION_BATCH",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "READ_ONLY_SOURCE_CANDIDATE_SELECTION",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P24-000/manifest.json",
|
||||
"sha256": "a54498d2508fd71e4d9fb0d5f5d540cf33d09ba63afe1b2f6932a4369f8541b0"
|
||||
},
|
||||
"inventory": {
|
||||
"path": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8"
|
||||
},
|
||||
"api": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "3bbe172afaaa414d8ede43e6c04aa84443b6e38319d09710afa141c9b5e69fc0"
|
||||
},
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/WBV2-P24-001-OBJECT_OPERATIONS.MOVE_COLLECTION.blend",
|
||||
"sha256": "9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf"
|
||||
},
|
||||
"candidate": {
|
||||
"path": "tests/golden/WBV2-P24-001/object-move-candidate-set.json",
|
||||
"sha256": "9bce2e1e040d635b638a2220fa662fb106bf312662b51e0db28c4cf8f1d54b1c"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P24-001/object-move-selection-report.json",
|
||||
"sha256": "1e56545dc44de7c7e2ecfe45b32dcd6bc2a76287688d5c690f042e9daababd91"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-wbv2-move-selection.mjs",
|
||||
"sha256": "9200ab476d6da1b340c1949bb2341ff28871b1348711d2d140fa6ec9eab38d8b"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P24-001.md",
|
||||
"sha256": "642accef6cc17b8e5bed26ec50dde8c0439ac2d272ca715e197d00cd3764b797"
|
||||
},
|
||||
"parityPlan": {
|
||||
"path": "tests/golden/WBV2-P24-001/move-task-plan.json",
|
||||
"sha256": "8a1bebddac997a2895bdfb4490644eb219f7825a2857b7ce681b1adf509f39cc"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P24-001/task-context.json",
|
||||
"sha256": "ef4b624061ce5efeb5c3007bee25ecfe0b83436b75f6f2c680a6b6e26568d460"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"legacyId": "operator:object.move_to_collection",
|
||||
"inventoryTotal": 6900,
|
||||
"basePending": 6618,
|
||||
"effectivePending": 6609,
|
||||
"sourceApiBound": true,
|
||||
"fixtureBound": true,
|
||||
"representativeSliceOnly": true,
|
||||
"fullFamilyParity": false,
|
||||
"repeatedBlenderRuns": 0,
|
||||
"repeatedChromiumRuns": 0,
|
||||
"duplicateValidationAvoided": true,
|
||||
"deterministic": true,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P24-002"
|
||||
}
|
||||
153
tests/golden/WBV2-P24-001/move-task-plan.json
Normal file
153
tests/golden/WBV2-P24-001/move-task-plan.json
Normal file
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_PARITY_V2_OBJECT_MOVE_COLLECTION_EPOCH_1",
|
||||
"status": "ACTIVE_OBJECT_MOVE_COLLECTION_QUEUE",
|
||||
"authority": "queue_reactivated_after_p23_transform_gate",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"browserEvidence": [
|
||||
"chromium"
|
||||
],
|
||||
"forbiddenBrowsers": [
|
||||
"firefox",
|
||||
"webkit"
|
||||
],
|
||||
"mainAuthority": "blender_main",
|
||||
"reusePolicy": "source_hash_and_behavior_hash_deduplication"
|
||||
},
|
||||
"parentTransform": {
|
||||
"manifest": "tests/golden/WBV2-P23-003/manifest.json",
|
||||
"report": "tests/golden/WBV2-P23-003/object-transform-gate-report.json",
|
||||
"basePending": 6618,
|
||||
"effectivePending": 6609,
|
||||
"duplicateValidationAvoided": true
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P24",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "LOCAL_BOUNDED",
|
||||
"parallelGroup": "p24-000",
|
||||
"gate": "G2",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Authorize one Object Move-to-Collection behavior after the P23 transform overlay.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P24",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "enabling",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "LOCAL_BOUNDED",
|
||||
"parallelGroup": "p24-001",
|
||||
"gate": "G2",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Select moveObjectToCollection as one unique Object Operations behavior.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P24",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"parallelGroup": "p24-002",
|
||||
"gate": "G2",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Bind moveObjectToCollection, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P24",
|
||||
"title": "close_object_move_collection_gate",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "LOCAL_BOUNDED",
|
||||
"parallelGroup": "p24-003",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Close the moveObjectToCollection gate and graduate only the exact operator binding.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
],
|
||||
"parentRecoveryPlan": {
|
||||
"path": "tests/golden/WBV2-P24-000/move-task-plan.json",
|
||||
"sha256": "923d299a9eb53baf81853fc975b036613ccef6866f5973d159bdca26d306d74f"
|
||||
}
|
||||
}
|
||||
65
tests/golden/WBV2-P24-001/object-move-candidate-set.json
Normal file
65
tests/golden/WBV2-P24-001/object-move-candidate-set.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-001",
|
||||
"operation": "OBJECT_MOVE_COLLECTION_CANDIDATE_SELECTION",
|
||||
"status": "READY",
|
||||
"source": {
|
||||
"inventory": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"inventorySha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
|
||||
"api": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"apiSha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8",
|
||||
"protocol": "web/protocol/web-engine.ts",
|
||||
"protocolSha256": "3bbe172afaaa414d8ede43e6c04aa84443b6e38319d09710afa141c9b5e69fc0",
|
||||
"fixture": "tests/files/web/generated/WBV2-P24-001-OBJECT_OPERATIONS.MOVE_COLLECTION.blend",
|
||||
"fixtureSha256": "9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf"
|
||||
},
|
||||
"candidate": {
|
||||
"capabilityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"legacyId": "operator:object.move_to_collection",
|
||||
"legacyTask": "M16-GAP-01531",
|
||||
"behavior": {
|
||||
"capability": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"operation": "moveObjectToCollection",
|
||||
"positive": [
|
||||
"collection-membership-change",
|
||||
"undo",
|
||||
"redo",
|
||||
"save-reopen"
|
||||
],
|
||||
"negative": [
|
||||
"missing-object-id",
|
||||
"missing-collection-id"
|
||||
],
|
||||
"browser": "chromium",
|
||||
"engine": "compiled-WASM-WebEngine-Main"
|
||||
},
|
||||
"behaviorHash": "67a7034c380aed1550a0479febaae7d2d4a30a653f70c8907de20a1ec8de2658",
|
||||
"dedupeKey": "OBJECT_OPERATIONS.MOVE_COLLECTION|67a7034c380aed1550a0479febaae7d2d4a30a653f70c8907de20a1ec8de2658|8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8|3bbe172afaaa414d8ede43e6c04aa84443b6e38319d09710afa141c9b5e69fc0|9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf",
|
||||
"sourceBacked": true,
|
||||
"chromiumProductionReady": true,
|
||||
"fullFamilyParity": false
|
||||
},
|
||||
"inventory": {
|
||||
"matchedEntries": 1,
|
||||
"pending": 1,
|
||||
"total": 6900,
|
||||
"basePending": 6618,
|
||||
"effectivePending": 6609,
|
||||
"remainderExplicit": true
|
||||
},
|
||||
"entries": [
|
||||
{
|
||||
"id": "operator:object.move_to_collection",
|
||||
"sourceTask": "M15-01B",
|
||||
"legacyState": "pending",
|
||||
"targetImplementationClass": "LOCAL_EXACT"
|
||||
}
|
||||
],
|
||||
"policy": {
|
||||
"sourceHistoryReadOnly": true,
|
||||
"representativeSliceOnly": true,
|
||||
"noRepeatedExecution": true,
|
||||
"duplicateValidationAvoided": true,
|
||||
"fullHistoricalReproduction": false
|
||||
}
|
||||
}
|
||||
59
tests/golden/WBV2-P24-001/object-move-selection-report.json
Normal file
59
tests/golden/WBV2-P24-001/object-move-selection-report.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-001",
|
||||
"operation": "SELECT_OBJECT_MOVE_COLLECTION_BATCH",
|
||||
"status": "PASS",
|
||||
"candidate": {
|
||||
"capabilityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"legacyId": "operator:object.move_to_collection",
|
||||
"legacyTask": "M16-GAP-01531",
|
||||
"behavior": {
|
||||
"capability": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"operation": "moveObjectToCollection",
|
||||
"positive": [
|
||||
"collection-membership-change",
|
||||
"undo",
|
||||
"redo",
|
||||
"save-reopen"
|
||||
],
|
||||
"negative": [
|
||||
"missing-object-id",
|
||||
"missing-collection-id"
|
||||
],
|
||||
"browser": "chromium",
|
||||
"engine": "compiled-WASM-WebEngine-Main"
|
||||
},
|
||||
"behaviorHash": "67a7034c380aed1550a0479febaae7d2d4a30a653f70c8907de20a1ec8de2658",
|
||||
"dedupeKey": "OBJECT_OPERATIONS.MOVE_COLLECTION|67a7034c380aed1550a0479febaae7d2d4a30a653f70c8907de20a1ec8de2658|8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8|3bbe172afaaa414d8ede43e6c04aa84443b6e38319d09710afa141c9b5e69fc0|9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf",
|
||||
"sourceBacked": true,
|
||||
"chromiumProductionReady": true,
|
||||
"fullFamilyParity": false
|
||||
},
|
||||
"inventory": {
|
||||
"matchedEntries": 1,
|
||||
"pending": 1,
|
||||
"total": 6900,
|
||||
"basePending": 6618,
|
||||
"effectivePending": 6609,
|
||||
"remainderExplicit": true
|
||||
},
|
||||
"source": {
|
||||
"inventory": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"inventorySha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
|
||||
"api": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"apiSha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8",
|
||||
"protocol": "web/protocol/web-engine.ts",
|
||||
"protocolSha256": "3bbe172afaaa414d8ede43e6c04aa84443b6e38319d09710afa141c9b5e69fc0",
|
||||
"fixture": "tests/files/web/generated/WBV2-P24-001-OBJECT_OPERATIONS.MOVE_COLLECTION.blend",
|
||||
"fixtureSha256": "9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf"
|
||||
},
|
||||
"matchedEntryDigest": "bad9a48e09b064c02f855262c1427fc896b746c8175898272679ce0a7cf7a22b",
|
||||
"efficiency": {
|
||||
"oneEntryScan": true,
|
||||
"existingEvidenceReused": true,
|
||||
"repeatedBlenderRuns": 0,
|
||||
"repeatedChromiumRuns": 0,
|
||||
"duplicateValidationAvoided": true
|
||||
},
|
||||
"nextTask": "WBV2-P24-002"
|
||||
}
|
||||
172
tests/golden/WBV2-P24-001/task-context.json
Normal file
172
tests/golden/WBV2-P24-001/task-context.json
Normal file
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-001",
|
||||
"parentTask": "WBV2-P24-000",
|
||||
"status": "in_progress",
|
||||
"goal": "Select moveObjectToCollection as one unique Object Operations behavior.",
|
||||
"scope": {
|
||||
"gap": "capability:OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"ownerFamily": "PARITY",
|
||||
"implementationClass": "LOCAL_BOUNDED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P24-001 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3484,
|
||||
"contextRemainingTokens": 870
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6420,
|
||||
"tokens": 1606
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"bytes": 16197,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"bytes": 5053386,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-001/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P24-001.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-001/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"nextTask": "WBV2-P24-002",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P24-001.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P24-000/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P24-000.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P24-001.md",
|
||||
"tests/golden/WBV2-P24-000/manifest.json",
|
||||
"docs/status/WBV2-P24-000.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-000",
|
||||
"parentTask": "WBV2-P23-003",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P24-001",
|
||||
"artifactCount": 9
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P24-000 status",
|
||||
"- task: `WBV2-P24-000`; parent: `WBV2-P23-003`; status: `done`",
|
||||
"- candidate: `OBJECT_OPERATIONS.MOVE_COLLECTION`; source API is present",
|
||||
"- effective inventory carried forward: `290` completed, `6609` pending",
|
||||
"- duplicate validation: `forbidden`; representative slice only",
|
||||
"- nextTask: `WBV2-P24-001`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1099,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 35,
|
||||
"taskTokens": 275
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P24-001.md",
|
||||
"bytes": 1099,
|
||||
"lines": 35,
|
||||
"tokens": 275
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-000/manifest.json",
|
||||
"bytes": 2199,
|
||||
"lines": 61,
|
||||
"tokens": 550
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P24-000.md",
|
||||
"bytes": 319,
|
||||
"lines": 8,
|
||||
"tokens": 80
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1606,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1606,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2630,
|
||||
"serializedContextTokens": 603,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
78
tests/golden/WBV2-P24-002/manifest.json
Normal file
78
tests/golden/WBV2-P24-002/manifest.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-002",
|
||||
"parentTask": "WBV2-P24-001",
|
||||
"operation": "OBJECT_MOVE_COLLECTION_ENGINE_RECEIPT",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": true,
|
||||
"runtime": "PLAYWRIGHT_CHROMIUM_WEBENGINE_WASM",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P24-001/manifest.json",
|
||||
"sha256": "3824f2e193ada59bba9c0b97796ec35223d0f7011ac71b1f0fdda69fd89baa22"
|
||||
},
|
||||
"selection": {
|
||||
"path": "tests/golden/WBV2-P24-001/object-move-selection-report.json",
|
||||
"sha256": "1e56545dc44de7c7e2ecfe45b32dcd6bc2a76287688d5c690f042e9daababd91"
|
||||
},
|
||||
"api": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8"
|
||||
},
|
||||
"test": {
|
||||
"path": "web/tests/e2e/wbv2-object-move-production.spec.ts",
|
||||
"sha256": "006ec23f600731c97dd3c00e65ad6739788e88861ab5833ee468f7eae801afee"
|
||||
},
|
||||
"fixture": {
|
||||
"path": "tests/files/web/generated/WBV2-P24-001-OBJECT_OPERATIONS.MOVE_COLLECTION.blend",
|
||||
"sha256": "9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf"
|
||||
},
|
||||
"production": {
|
||||
"path": "tests/golden/WBV2-P24-002/object-move-production.json",
|
||||
"sha256": "afd8c884c8a8eb5638e032f9d186b14256378438d48d5f19a2ba8916089490d5"
|
||||
},
|
||||
"secondProduction": {
|
||||
"path": "tests/golden/WBV2-P24-002/object-move-production.second.json",
|
||||
"sha256": "afd8c884c8a8eb5638e032f9d186b14256378438d48d5f19a2ba8916089490d5"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P24-002/object-move-receipt-report.json",
|
||||
"sha256": "80cfc07b0c900cf988d77488b3d7d6c7b8ab701c61f2993d40c0291289946356"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/generate-wbv2-move-receipt.mjs",
|
||||
"sha256": "77262db826dabea9ed645795076265c51b9703267d08817776b574b5159ae0b9"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P24-002.md",
|
||||
"sha256": "a84771670a5463c878ec31260ae6f1f44daf951b2d88d7d7fa102403940800cb"
|
||||
},
|
||||
"parityPlan": {
|
||||
"path": "tests/golden/WBV2-P24-002/move-task-plan.json",
|
||||
"sha256": "5ff6dae3c443e5c6edca8724e0f99b6a36062a6067be61d8d006cc82df0b8444"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P24-002/task-context.json",
|
||||
"sha256": "c6ec716c7603fad1922c8e52c08d18b3dde18e4dca75e05f8df8c4594e8e42e0"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"exactInventoryBindings": 1,
|
||||
"boundInventoryIds": [
|
||||
"operator:object.move_to_collection"
|
||||
],
|
||||
"collectionMembershipChanged": true,
|
||||
"undoRedoSequential": true,
|
||||
"malformedRejected": true,
|
||||
"saveReopen": "EXACT",
|
||||
"deterministic": true,
|
||||
"representativeSliceOnly": true,
|
||||
"fullFamilyParity": false,
|
||||
"inventoryTotal": 6900,
|
||||
"baseInventoryPending": 6618,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P24-003"
|
||||
}
|
||||
153
tests/golden/WBV2-P24-002/move-task-plan.json
Normal file
153
tests/golden/WBV2-P24-002/move-task-plan.json
Normal file
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_PARITY_V2_OBJECT_MOVE_COLLECTION_EPOCH_1",
|
||||
"status": "ACTIVE_OBJECT_MOVE_COLLECTION_QUEUE",
|
||||
"authority": "queue_reactivated_after_p23_transform_gate",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"browserEvidence": [
|
||||
"chromium"
|
||||
],
|
||||
"forbiddenBrowsers": [
|
||||
"firefox",
|
||||
"webkit"
|
||||
],
|
||||
"mainAuthority": "blender_main",
|
||||
"reusePolicy": "source_hash_and_behavior_hash_deduplication"
|
||||
},
|
||||
"parentTransform": {
|
||||
"manifest": "tests/golden/WBV2-P23-003/manifest.json",
|
||||
"report": "tests/golden/WBV2-P23-003/object-transform-gate-report.json",
|
||||
"basePending": 6618,
|
||||
"effectivePending": 6609,
|
||||
"duplicateValidationAvoided": true
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P24",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "LOCAL_BOUNDED",
|
||||
"parallelGroup": "p24-000",
|
||||
"gate": "G2",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Authorize one Object Move-to-Collection behavior after the P23 transform overlay.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P24",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "enabling",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "LOCAL_BOUNDED",
|
||||
"parallelGroup": "p24-001",
|
||||
"gate": "G2",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Select moveObjectToCollection as one unique Object Operations behavior.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P24",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"parallelGroup": "p24-002",
|
||||
"gate": "G2",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Bind moveObjectToCollection, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P24",
|
||||
"title": "close_object_move_collection_gate",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "LOCAL_BOUNDED",
|
||||
"parallelGroup": "p24-003",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Close the moveObjectToCollection gate and graduate only the exact operator binding.",
|
||||
"outputs": [
|
||||
"report",
|
||||
"receipt",
|
||||
"manifest"
|
||||
],
|
||||
"acceptance": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
],
|
||||
"parentRecoveryPlan": {
|
||||
"path": "tests/golden/WBV2-P24-001/move-task-plan.json",
|
||||
"sha256": "8a1bebddac997a2895bdfb4490644eb219f7825a2857b7ce681b1adf509f39cc"
|
||||
}
|
||||
}
|
||||
26
tests/golden/WBV2-P24-002/object-move-production.json
Normal file
26
tests/golden/WBV2-P24-002/object-move-production.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-002",
|
||||
"operation": "OBJECT_MOVE_COLLECTION_ENGINE_CHROMIUM",
|
||||
"queueMutation": false,
|
||||
"fixtureSha256": "9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf",
|
||||
"browser": "chromium",
|
||||
"baseRevision": 1,
|
||||
"objectId": "object:WBV2P2401Cube",
|
||||
"sourceId": "collection:SourceCollection",
|
||||
"targetId": "collection:MoveTargetCollection",
|
||||
"beforeSourceHasObject": true,
|
||||
"movedTargetHasObject": true,
|
||||
"changedRevision": 2,
|
||||
"undoRevision": 3,
|
||||
"redoRevision": 4,
|
||||
"malformed": {
|
||||
"code": "INVALID_ARGUMENT",
|
||||
"message": "moveObjectToCollection requires editable object and collection data-blocks"
|
||||
},
|
||||
"malformedRevisionPreserved": true,
|
||||
"reopenedTargetHasObject": true,
|
||||
"reopenedSourceHasObject": false,
|
||||
"reopenedRevision": 1,
|
||||
"savedSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
26
tests/golden/WBV2-P24-002/object-move-production.second.json
Normal file
26
tests/golden/WBV2-P24-002/object-move-production.second.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-002",
|
||||
"operation": "OBJECT_MOVE_COLLECTION_ENGINE_CHROMIUM",
|
||||
"queueMutation": false,
|
||||
"fixtureSha256": "9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf",
|
||||
"browser": "chromium",
|
||||
"baseRevision": 1,
|
||||
"objectId": "object:WBV2P2401Cube",
|
||||
"sourceId": "collection:SourceCollection",
|
||||
"targetId": "collection:MoveTargetCollection",
|
||||
"beforeSourceHasObject": true,
|
||||
"movedTargetHasObject": true,
|
||||
"changedRevision": 2,
|
||||
"undoRevision": 3,
|
||||
"redoRevision": 4,
|
||||
"malformed": {
|
||||
"code": "INVALID_ARGUMENT",
|
||||
"message": "moveObjectToCollection requires editable object and collection data-blocks"
|
||||
},
|
||||
"malformedRevisionPreserved": true,
|
||||
"reopenedTargetHasObject": true,
|
||||
"reopenedSourceHasObject": false,
|
||||
"reopenedRevision": 1,
|
||||
"savedSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
66
tests/golden/WBV2-P24-002/object-move-receipt-report.json
Normal file
66
tests/golden/WBV2-P24-002/object-move-receipt-report.json
Normal file
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-002",
|
||||
"operation": "OBJECT_MOVE_COLLECTION_ENGINE_RECEIPT",
|
||||
"status": "PASS",
|
||||
"browser": "chromium",
|
||||
"queueMutation": false,
|
||||
"source": {
|
||||
"manifest": "tests/golden/WBV2-P24-001/manifest.json",
|
||||
"manifestSha256": "3824f2e193ada59bba9c0b97796ec35223d0f7011ac71b1f0fdda69fd89baa22",
|
||||
"selection": "tests/golden/WBV2-P24-001/object-move-selection-report.json",
|
||||
"selectionSha256": "1e56545dc44de7c7e2ecfe45b32dcd6bc2a76287688d5c690f042e9daababd91",
|
||||
"api": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"apiSha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8",
|
||||
"test": "web/tests/e2e/wbv2-object-move-production.spec.ts",
|
||||
"testSha256": "006ec23f600731c97dd3c00e65ad6739788e88861ab5833ee468f7eae801afee",
|
||||
"fixture": "tests/files/web/generated/WBV2-P24-001-OBJECT_OPERATIONS.MOVE_COLLECTION.blend",
|
||||
"fixtureSha256": "9bbe7fb683564fad26077b62f88af47fe9236caab067ce2d75b6ec79a4511cbf"
|
||||
},
|
||||
"production": {
|
||||
"report": "tests/golden/WBV2-P24-002/object-move-production.json",
|
||||
"reportSha256": "afd8c884c8a8eb5638e032f9d186b14256378438d48d5f19a2ba8916089490d5",
|
||||
"secondReport": "tests/golden/WBV2-P24-002/object-move-production.second.json",
|
||||
"secondReportSha256": "afd8c884c8a8eb5638e032f9d186b14256378438d48d5f19a2ba8916089490d5",
|
||||
"deterministic": true,
|
||||
"objectId": "object:WBV2P2401Cube",
|
||||
"sourceId": "collection:SourceCollection",
|
||||
"targetId": "collection:MoveTargetCollection",
|
||||
"revisions": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"malformed": {
|
||||
"code": "INVALID_ARGUMENT",
|
||||
"message": "moveObjectToCollection requires editable object and collection data-blocks"
|
||||
},
|
||||
"malformedRevisionPreserved": true,
|
||||
"reopenedTargetHasObject": true,
|
||||
"reopenedSourceHasObject": false,
|
||||
"reopenedRevision": 1,
|
||||
"saveReopen": "EXACT"
|
||||
},
|
||||
"inventoryBindings": [
|
||||
{
|
||||
"id": "operator:object.move_to_collection",
|
||||
"evidence": "moveObjectToCollection",
|
||||
"exact": true,
|
||||
"reason": "bounded protocol command moves and persists collection membership"
|
||||
}
|
||||
],
|
||||
"assertions": {
|
||||
"collectionMembershipChanged": true,
|
||||
"undoRedoSequential": true,
|
||||
"malformedRejected": true,
|
||||
"mainUnchangedOnMalformed": true,
|
||||
"saveReopenExact": true,
|
||||
"deterministic": true,
|
||||
"inventoryBindingsExact": true,
|
||||
"representativeSliceOnly": true,
|
||||
"fullFamilyParity": false,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P24-003"
|
||||
}
|
||||
170
tests/golden/WBV2-P24-002/task-context.json
Normal file
170
tests/golden/WBV2-P24-002/task-context.json
Normal file
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-002",
|
||||
"parentTask": "WBV2-P24-001",
|
||||
"status": "in_progress",
|
||||
"goal": "Bind moveObjectToCollection, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
|
||||
"scope": {
|
||||
"gap": "capability:OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"ownerFamily": "OBJECT",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P24-002 --write"
|
||||
],
|
||||
"inputPaths": [
|
||||
"tests/golden/WBV2-P24-001/object-move-selection-report.json"
|
||||
],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2703,
|
||||
"contextRemainingTokens": 675
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7201,
|
||||
"tokens": 1801
|
||||
},
|
||||
"selected": [
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-001/object-move-selection-report.json",
|
||||
"bytes": 2330,
|
||||
"tokens": 583
|
||||
}
|
||||
],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "web/tests/e2e/wbv2-object-move-production.spec.ts",
|
||||
"bytes": 4296,
|
||||
"reason": "CONTEXT_REMAINING_SPACE"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-002/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P24-002.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-002/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 1,
|
||||
"bytes": 2330,
|
||||
"tokens": 583
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"source and evidence hashes are bound",
|
||||
"unique behavior is verified once",
|
||||
"save/reopen remains exact",
|
||||
"malformed input fails closed"
|
||||
],
|
||||
"nextTask": "WBV2-P24-003",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P24-002.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P24-001/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P24-001.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P24-002.md",
|
||||
"tests/golden/WBV2-P24-001/manifest.json",
|
||||
"docs/status/WBV2-P24-001.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-001",
|
||||
"parentTask": "WBV2-P24-000",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P24-002",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P24-001 status",
|
||||
"- task: `WBV2-P24-001`; parent: `WBV2-P24-000`; status: `done`",
|
||||
"- selected behavior: `moveObjectToCollection`; exact candidate: `operator:object.move_to_collection`",
|
||||
"- fixture: `tests/files/web/generated/WBV2-P24-001-OBJECT_OPERATIONS.MOVE_COLLECTION.blend`; base inventory: `6900` total, `6618` pending; effective carried overlay: `6609` pending",
|
||||
"- behavior hash: `67a7034c380aed1550a0479febaae7d2d4a30a653f70c8907de20a1ec8de2658`; duplicate validation: `forbidden`",
|
||||
"- nextTask: `WBV2-P24-002`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1220,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 36,
|
||||
"taskTokens": 305
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P24-002.md",
|
||||
"bytes": 1220,
|
||||
"lines": 36,
|
||||
"tokens": 305
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-001/manifest.json",
|
||||
"bytes": 2664,
|
||||
"lines": 73,
|
||||
"tokens": 666
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P24-001.md",
|
||||
"bytes": 514,
|
||||
"lines": 8,
|
||||
"tokens": 129
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1801,
|
||||
"evidenceFiles": 1,
|
||||
"evidenceBytes": 2330,
|
||||
"evidenceTokens": 583,
|
||||
"totalTokens": 2384,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3408,
|
||||
"serializedContextTokens": 671,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
41
tests/golden/WBV2-P24-003/implementation-mode-report.json
Normal file
41
tests/golden/WBV2-P24-003/implementation-mode-report.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-003",
|
||||
"operation": "SWITCH_TO_IMPLEMENTATION_FIRST_MODE",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P24-002",
|
||||
"manifest": "tests/golden/WBV2-P24-002/manifest.json",
|
||||
"manifestSha256": "446c338553843d1c899378153d439ce01d5807d651058fe355468ce155f102ce",
|
||||
"receipt": "tests/golden/WBV2-P24-002/object-move-receipt-report.json",
|
||||
"receiptSha256": "80cfc07b0c900cf988d77488b3d7d6c7b8ab701c61f2993d40c0291289946356"
|
||||
},
|
||||
"mode": {
|
||||
"name": "IMPLEMENTATION_FIRST",
|
||||
"implementationWave": true,
|
||||
"verificationWave": "DEFERRED",
|
||||
"browserEvidence": "DEFERRED"
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false,
|
||||
"provenanceReadOnly": true
|
||||
},
|
||||
"implementationInputs": {
|
||||
"mainApi": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"protocol": "web/protocol/web-engine.ts",
|
||||
"client": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"existingMoveBehaviorReused": true
|
||||
},
|
||||
"policy": {
|
||||
"noRepeatedBehaviorRuns": true,
|
||||
"noNewCompletionClaims": true,
|
||||
"fullHistoricalReproduction": false,
|
||||
"authorizedRebaselineOnly": true
|
||||
},
|
||||
"nextTask": "WBV2-P25-000"
|
||||
}
|
||||
56
tests/golden/WBV2-P24-003/manifest.json
Normal file
56
tests/golden/WBV2-P24-003/manifest.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-003",
|
||||
"parentTask": "WBV2-P24-002",
|
||||
"operation": "SWITCH_TO_IMPLEMENTATION_FIRST_MODE",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "READ_ONLY_IMPLEMENTATION_MODE_SWITCH",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P24-002/manifest.json",
|
||||
"sha256": "446c338553843d1c899378153d439ce01d5807d651058fe355468ce155f102ce"
|
||||
},
|
||||
"parentReceipt": {
|
||||
"path": "tests/golden/WBV2-P24-002/object-move-receipt-report.json",
|
||||
"sha256": "80cfc07b0c900cf988d77488b3d7d6c7b8ab701c61f2993d40c0291289946356"
|
||||
},
|
||||
"inventory": {
|
||||
"path": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8"
|
||||
},
|
||||
"mainApi": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"client": {
|
||||
"path": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"sha256": "33338ff2ce8883eaed488f35dc5a615df48fe90f7c9a23e91066dbc2b368711f"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P24-003/implementation-mode-report.json",
|
||||
"sha256": "f58a9aef9e81c267bd92e9bc873f1821ae098873b1025a13bf710dbcccd37c7b"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P24-003.md",
|
||||
"sha256": "4d22d1fc6e1dd81bda35b4a95e16f49b26358e78a97f56378012d5f246a546d8"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"implementationFirst": true,
|
||||
"verificationDeferred": true,
|
||||
"inventoryTotal": 6900,
|
||||
"baseInventoryPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false,
|
||||
"historicalReproduction": false,
|
||||
"duplicateValidationAvoided": true
|
||||
},
|
||||
"nextTask": "WBV2-P25-000"
|
||||
}
|
||||
168
tests/golden/WBV2-P24-003/task-context.json
Normal file
168
tests/golden/WBV2-P24-003/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-003",
|
||||
"parentTask": "WBV2-P24-002",
|
||||
"status": "done",
|
||||
"goal": "Close the blocked receipt gate without changing parity counts, then authorize a source-backed implementation wave for the remaining WebEngine capability families.",
|
||||
"scope": {
|
||||
"gap": "workflow:implementation_first_mode_switch",
|
||||
"ownerFamily": "PROGRAM",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P24-003 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2283,
|
||||
"contextRemainingTokens": 569
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7621,
|
||||
"tokens": 1907
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-002/object-move-receipt-report.json",
|
||||
"bytes": 2551,
|
||||
"reason": "CONTEXT_REMAINING_SPACE"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-003/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-003/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-000",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P24-003.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P24-002/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P24-002.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P24-003.md",
|
||||
"tests/golden/WBV2-P24-002/manifest.json",
|
||||
"docs/status/WBV2-P24-002.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P24-002",
|
||||
"parentTask": "WBV2-P24-001",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P24-003",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P24-002 status",
|
||||
"- task: `WBV2-P24-002`; parent: `WBV2-P24-001`; status: `done`",
|
||||
"- exact inventory binding: `operator:object.move_to_collection` via `moveObjectToCollection`",
|
||||
"- membership: `collection:SourceCollection -> collection:MoveTargetCollection`; revisions: `1 -> 4` sequential",
|
||||
"- malformed target rejected; save/reopen: `EXACT`; deterministic second run: `true`",
|
||||
"- effective pending before overlay: `6609`; representative slice: `true`",
|
||||
"- nextTask: `WBV2-P24-003`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1413,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 36,
|
||||
"taskTokens": 354
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P24-003.md",
|
||||
"bytes": 1413,
|
||||
"lines": 36,
|
||||
"tokens": 354
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P24-002/manifest.json",
|
||||
"bytes": 2931,
|
||||
"lines": 79,
|
||||
"tokens": 733
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P24-002.md",
|
||||
"bytes": 474,
|
||||
"lines": 9,
|
||||
"tokens": 119
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1907,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1907,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2931,
|
||||
"serializedContextTokens": 644,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
61
tests/golden/WBV2-P25-000/implementation-root-report.json
Normal file
61
tests/golden/WBV2-P25-000/implementation-root-report.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-000",
|
||||
"operation": "AUTHORIZE_SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P24-003",
|
||||
"manifest": "tests/golden/WBV2-P24-003/manifest.json",
|
||||
"mode": "IMPLEMENTATION_FIRST"
|
||||
},
|
||||
"scope": {
|
||||
"plannedTasks": [
|
||||
"WBV2-P24-000",
|
||||
"WBV2-P24-001",
|
||||
"WBV2-P24-002",
|
||||
"WBV2-P24-003",
|
||||
"WBV2-P25-000",
|
||||
"WBV2-P25-001",
|
||||
"WBV2-P25-002",
|
||||
"WBV2-P25-003",
|
||||
"WBV2-P25-004",
|
||||
"WBV2-P25-005",
|
||||
"WBV2-P25-006",
|
||||
"WBV2-P25-007",
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"firstTask": "WBV2-P25-001",
|
||||
"capabilityFamilies": [
|
||||
"OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"ENGINE.COMMAND_REGISTRY",
|
||||
"OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"MESH.AUTHORING",
|
||||
"GEOMETRY.NON_MESH",
|
||||
"ANIMATION.RENDER",
|
||||
"IO.MEDIA_STORAGE",
|
||||
"FRONTEND.WORKBENCH"
|
||||
]
|
||||
},
|
||||
"implementation": {
|
||||
"sourceApi": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"protocol": "web/protocol/web-engine.ts",
|
||||
"client": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"reuseExistingMoveReceipt": true,
|
||||
"noRepeatedBehaviorRuns": true
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromiumReceipts": false,
|
||||
"completionOverlay": false,
|
||||
"fullHistoricalReproduction": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609
|
||||
},
|
||||
"nextTask": "WBV2-P25-001"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-000/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-000/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
52
tests/golden/WBV2-P25-000/manifest.json
Normal file
52
tests/golden/WBV2-P25-000/manifest.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-000",
|
||||
"parentTask": "WBV2-P24-003",
|
||||
"operation": "AUTHORIZE_SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P24-003/manifest.json",
|
||||
"sha256": "f7550751a4c14f1b737ab775985a4b16343d40e1e6009e8399ba9e5a502b5861"
|
||||
},
|
||||
"parentStatus": {
|
||||
"path": "docs/status/WBV2-P24-003.md",
|
||||
"sha256": "4d22d1fc6e1dd81bda35b4a95e16f49b26358e78a97f56378012d5f246a546d8"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-000/implementation-task-plan.json",
|
||||
"sha256": "a2384e188a815f4f6a7e25655ed33b253b65b95d57f2ed6fd65c68f93ab01f51"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-000/implementation-root-report.json",
|
||||
"sha256": "6885250b7657eea955b95d130a273777c9aeded6100cffb5397ce5add527182c"
|
||||
},
|
||||
"rootCard": {
|
||||
"path": "docs/tasks/WBV2-P25-000.md",
|
||||
"sha256": "6b38a877430afa95642beb7266c9c77c9c4fa484dd1deb065c110caa1120cc58"
|
||||
},
|
||||
"rootStatus": {
|
||||
"path": "docs/status/WBV2-P25-000.md",
|
||||
"sha256": "bc0be36028ff9ee84970b82004cdb7eb13dd3c686ef43a371867731dc0c16b64"
|
||||
},
|
||||
"taskIndex": {
|
||||
"path": "tests/golden/WBV2/task-index.json",
|
||||
"sha256": "5856ea9edb8530b00c2bdda73b4aded115a61301dbfdbf98c322e8ed2421be9c"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"implementationFirst": true,
|
||||
"sourceBacked": true,
|
||||
"plannedCapabilityFamilies": 7,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-001"
|
||||
}
|
||||
49
tests/golden/WBV2-P25-001/command-registry-report.json
Normal file
49
tests/golden/WBV2-P25-001/command-registry-report.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-001",
|
||||
"operation": "IMPLEMENT_MAIN_COMMAND_REGISTRY_AND_DISPATCH",
|
||||
"status": "PASS",
|
||||
"source": {
|
||||
"protocol": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "3bbe172afaaa414d8ede43e6c04aa84443b6e38319d09710afa141c9b5e69fc0"
|
||||
},
|
||||
"registry": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "c50bca240e4a14fb0ec3128ba85366cf2c66d996b9017dc204e00f4f0e7ee362"
|
||||
},
|
||||
"client": {
|
||||
"path": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"sha256": "33338ff2ce8883eaed488f35dc5a615df48fe90f7c9a23e91066dbc2b368711f"
|
||||
},
|
||||
"mainApi": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8"
|
||||
}
|
||||
},
|
||||
"implementation": {
|
||||
"commandTypeCount": 69,
|
||||
"registryIsTypeComplete": true,
|
||||
"clientUnknownCommandBoundary": true,
|
||||
"mainDispatcherRetained": true,
|
||||
"sourceBacked": true,
|
||||
"duplicateShimAdded": false
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-002"
|
||||
}
|
||||
62
tests/golden/WBV2-P25-001/manifest.json
Normal file
62
tests/golden/WBV2-P25-001/manifest.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-001",
|
||||
"parentTask": "WBV2-P25-000",
|
||||
"operation": "IMPLEMENT_MAIN_COMMAND_REGISTRY_AND_DISPATCH",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_PROTOCOL_CLIENT_DISPATCH",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-000/manifest.json",
|
||||
"sha256": "02b02421d6199a4d3d4c7ab08e7cf2dfba1fca5b8d0e799764aff8cf35666873"
|
||||
},
|
||||
"protocol": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"registry": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"client": {
|
||||
"path": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"sha256": "33338ff2ce8883eaed488f35dc5a615df48fe90f7c9a23e91066dbc2b368711f"
|
||||
},
|
||||
"mainApi": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-001/command-registry-report.json",
|
||||
"sha256": "47fe0f386c4fe24548702e878a694a7e758b60be095a59d8437a5df1cab63ebb"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-001.md",
|
||||
"sha256": "704a62e233dbd7cd147f3802062ecd5572c0ac002f226923b49658231fd9eeee"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-000/implementation-task-plan.json",
|
||||
"sha256": "a2384e188a815f4f6a7e25655ed33b253b65b95d57f2ed6fd65c68f93ab01f51"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P25-001/task-context.json",
|
||||
"sha256": "b5ec2e91f2999b94389eb9171c2c96548b7f661b8116023581f936f977131b03"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"commandTypeCount": 69,
|
||||
"registryTypeComplete": true,
|
||||
"unknownCommandRejected": true,
|
||||
"mainDispatchPreserved": true,
|
||||
"sourceBacked": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-002"
|
||||
}
|
||||
173
tests/golden/WBV2-P25-001/task-context.json
Normal file
173
tests/golden/WBV2-P25-001/task-context.json
Normal file
@@ -0,0 +1,173 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-001",
|
||||
"parentTask": "WBV2-P25-000",
|
||||
"status": "in_progress",
|
||||
"goal": "Create one typed registry for all WebEngine edit commands and consume it at the client/Main dispatch boundary, while keeping existing command behavior unchanged.",
|
||||
"scope": {
|
||||
"gap": "ENGINE.COMMAND_REGISTRY",
|
||||
"ownerFamily": "ENGINE",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-001 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3495,
|
||||
"contextRemainingTokens": 872
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6409,
|
||||
"tokens": 1604
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"bytes": 16507,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-001/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-001.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-001/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-002",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-001.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-000/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-000.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-001.md",
|
||||
"tests/golden/WBV2-P25-000/manifest.json",
|
||||
"docs/status/WBV2-P25-000.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-000",
|
||||
"parentTask": "WBV2-P24-003",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-001",
|
||||
"artifactCount": 7
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-000 status",
|
||||
"- task: `WBV2-P25-000`; parent: `WBV2-P24-003`; status: `done`",
|
||||
"- mode: `IMPLEMENTATION_FIRST`; source-backed capability-family queue authorized",
|
||||
"- first implementation task: `WBV2-P25-001`",
|
||||
"- verification receipts and completion overlays: `DEFERRED`",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-001`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1397,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 35,
|
||||
"taskTokens": 350
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-001.md",
|
||||
"bytes": 1397,
|
||||
"lines": 35,
|
||||
"tokens": 350
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-000/manifest.json",
|
||||
"bytes": 1790,
|
||||
"lines": 53,
|
||||
"tokens": 448
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-000.md",
|
||||
"bytes": 419,
|
||||
"lines": 9,
|
||||
"tokens": 105
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1604,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1604,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2628,
|
||||
"serializedContextTokens": 632,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
55
tests/golden/WBV2-P25-002/implementation-report.json
Normal file
55
tests/golden/WBV2-P25-002/implementation-report.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-002",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 11,
|
||||
"commands": [
|
||||
"setObjectVisibility",
|
||||
"createPrimitive",
|
||||
"duplicateObject",
|
||||
"deleteObject",
|
||||
"setObjectTransform",
|
||||
"setParent",
|
||||
"createCollection",
|
||||
"moveObjectToCollection",
|
||||
"renameId",
|
||||
"applyObjectTransform",
|
||||
"setObjectOrigin"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/protocol/core-scene-commands.ts",
|
||||
"symbol": "coreSceneCommands"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/web-engine.ts",
|
||||
"web/protocol/web-engine-capabilities.ts",
|
||||
"web/protocol/core-scene-commands.ts",
|
||||
"web/app/src/engine-client/WebEngineClient.ts",
|
||||
"web/app/src/app/App.tsx"
|
||||
],
|
||||
"duplicateShimAdded": false
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-003"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-002/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-002/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
69
tests/golden/WBV2-P25-002/manifest.json
Normal file
69
tests/golden/WBV2-P25-002/manifest.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-002",
|
||||
"parentTask": "WBV2-P25-001",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-001/manifest.json",
|
||||
"sha256": "1f7c8871fe237c8af98cac80b8b3c5a68c99941a5eb39ebf8b9b4dee8394f8eb"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"web_engine_ts": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"core_scene_commands_ts": {
|
||||
"path": "web/protocol/core-scene-commands.ts",
|
||||
"sha256": "1a16046263874898bd72bac807a187d5bdcd422c08bb567ed3aeb7bdd0b915d1"
|
||||
},
|
||||
"WebEngineClient_ts": {
|
||||
"path": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"sha256": "33338ff2ce8883eaed488f35dc5a615df48fe90f7c9a23e91066dbc2b368711f"
|
||||
},
|
||||
"App_tsx": {
|
||||
"path": "web/app/src/app/App.tsx",
|
||||
"sha256": "b1bc098274224a4ba1a180c22293c61f79a432bd1df073b5b810c820ad1b5d9f"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-002/implementation-report.json",
|
||||
"sha256": "632d854c0d37b6c5be1d79445bfad318a762233edd5900439e14a6858121e225"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-002.md",
|
||||
"sha256": "74c84dd6b453013d9105d351aa1de377f72a1e3e03339abb24988056a1fa5bb7"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-002/implementation-task-plan.json",
|
||||
"sha256": "df82fd02cddd8fb04fc87c2730ce9ad6d0fb6f99645901b79396412e47555f7d"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P25-002/task-context.json",
|
||||
"sha256": "3f9e00e514a053d7f97f3f973229d690aa5ff73f6aee7508dbc343fe28a3d7a9"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 11,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-003"
|
||||
}
|
||||
173
tests/golden/WBV2-P25-002/task-context.json
Normal file
173
tests/golden/WBV2-P25-002/task-context.json
Normal file
@@ -0,0 +1,173 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-002",
|
||||
"parentTask": "WBV2-P25-001",
|
||||
"status": "in_progress",
|
||||
"goal": "Wire the core scene/object capability family end to end through Main, protocol, worker, client and workbench entry points.",
|
||||
"scope": {
|
||||
"gap": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"ownerFamily": "OBJECT",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-002 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3015,
|
||||
"contextRemainingTokens": 752
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6889,
|
||||
"tokens": 1724
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/app/src/engine-client/WebEngineClient.ts",
|
||||
"bytes": 16507,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-002/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-002.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-002/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-003",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-002.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-001/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-001.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-002.md",
|
||||
"tests/golden/WBV2-P25-001/manifest.json",
|
||||
"docs/status/WBV2-P25-001.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-001",
|
||||
"parentTask": "WBV2-P25-000",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-002",
|
||||
"artifactCount": 9
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-001 status",
|
||||
"- task: `WBV2-P25-001`; parent: `WBV2-P25-000`; status: `done`",
|
||||
"- implementation: typed registry covers `68` WebEngine edit command types",
|
||||
"- client rejects unknown command types before worker dispatch; existing Main dispatch is retained",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-002`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1373,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 35,
|
||||
"taskTokens": 344
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-002.md",
|
||||
"bytes": 1373,
|
||||
"lines": 35,
|
||||
"tokens": 344
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-001/manifest.json",
|
||||
"bytes": 2224,
|
||||
"lines": 63,
|
||||
"tokens": 556
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-001.md",
|
||||
"bytes": 489,
|
||||
"lines": 9,
|
||||
"tokens": 123
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1724,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1724,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2748,
|
||||
"serializedContextTokens": 623,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
60
tests/golden/WBV2-P25-003/implementation-report.json
Normal file
60
tests/golden/WBV2-P25-003/implementation-report.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-003",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "MESH.AUTHORING",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 17,
|
||||
"commands": [
|
||||
"decimateMesh",
|
||||
"setModifierEnabled",
|
||||
"setModifierVisibility",
|
||||
"translateMeshVertices",
|
||||
"meshEdit",
|
||||
"createUVMap",
|
||||
"setActiveUVMap",
|
||||
"unwrapUV",
|
||||
"addMaterialSlot",
|
||||
"removeMaterialSlot",
|
||||
"assignMaterialFaces",
|
||||
"setMaterialPrincipled",
|
||||
"setMaterialImageNode",
|
||||
"joinObjects",
|
||||
"separateMeshFaces",
|
||||
"setVertexColors",
|
||||
"setVertexWeights"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/protocol/mesh-authoring-commands.ts",
|
||||
"symbol": "meshAuthoringCommands"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/web-engine.ts",
|
||||
"web/protocol/web-engine-capabilities.ts",
|
||||
"web/protocol/mesh-authoring-commands.ts",
|
||||
"web/app/src/app/App.tsx"
|
||||
],
|
||||
"duplicateShimAdded": false
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-004"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-003/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-003/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
65
tests/golden/WBV2-P25-003/manifest.json
Normal file
65
tests/golden/WBV2-P25-003/manifest.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-003",
|
||||
"parentTask": "WBV2-P25-002",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-002/manifest.json",
|
||||
"sha256": "22719f6fbdcb13631ffc4d626622c870efdf1c3d22b9347f728ed5621a257973"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"web_engine_ts": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"mesh_authoring_commands_ts": {
|
||||
"path": "web/protocol/mesh-authoring-commands.ts",
|
||||
"sha256": "af1549c55ca3fcb22822d1c0735721f84a01f00fa22a34ccf4293129eec0b6e3"
|
||||
},
|
||||
"App_tsx": {
|
||||
"path": "web/app/src/app/App.tsx",
|
||||
"sha256": "b1bc098274224a4ba1a180c22293c61f79a432bd1df073b5b810c820ad1b5d9f"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-003/implementation-report.json",
|
||||
"sha256": "c409e2d743b20b727221b8bcfbc4f8d7071fc42931a0b33747840ccbbb2d2aae"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-003.md",
|
||||
"sha256": "635eddfaa80009b581dc6cebd57ccdb2fa204be4e36784326e248d448125d4a9"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-003/implementation-task-plan.json",
|
||||
"sha256": "db76157462ad5a3a0f31460a1ec139932b216035ca2f726427f51b2dd01fb9aa"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P25-003/task-context.json",
|
||||
"sha256": "e2aae30a64f9573773873db1bff768dd1eb7f063c5b4a057c76ba283ec38e7b9"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "MESH.AUTHORING",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 17,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-004"
|
||||
}
|
||||
168
tests/golden/WBV2-P25-003/task-context.json
Normal file
168
tests/golden/WBV2-P25-003/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-003",
|
||||
"parentTask": "WBV2-P25-002",
|
||||
"status": "in_progress",
|
||||
"goal": "Wire mesh authoring, UV, materials, vertex color and weight commands through the existing source-backed path.",
|
||||
"scope": {
|
||||
"gap": "MESH.AUTHORING",
|
||||
"ownerFamily": "MESH",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-003 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2759,
|
||||
"contextRemainingTokens": 689
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7145,
|
||||
"tokens": 1787
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-003/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-003.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-003/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-004",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-003.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-002/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-002.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-003.md",
|
||||
"tests/golden/WBV2-P25-002/manifest.json",
|
||||
"docs/status/WBV2-P25-002.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-002",
|
||||
"parentTask": "WBV2-P25-001",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-003",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-002 status",
|
||||
"- task: `WBV2-P25-002`; parent: `WBV2-P25-001`; status: `done`",
|
||||
"- capability family: `OBJECT_OPERATIONS.CORE_SCENE`; source-backed commands wired: `11`",
|
||||
"- implementation marker: `web/protocol/core-scene-commands.ts#coreSceneCommands`; no duplicate protocol shim",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-003`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1276,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 319
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-003.md",
|
||||
"bytes": 1276,
|
||||
"lines": 34,
|
||||
"tokens": 319
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-002/manifest.json",
|
||||
"bytes": 2552,
|
||||
"lines": 70,
|
||||
"tokens": 638
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-002.md",
|
||||
"bytes": 514,
|
||||
"lines": 9,
|
||||
"tokens": 129
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1787,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1787,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2811,
|
||||
"serializedContextTokens": 616,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
64
tests/golden/WBV2-P25-004/implementation-report.json
Normal file
64
tests/golden/WBV2-P25-004/implementation-report.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-004",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "GEOMETRY.NON_MESH",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 21,
|
||||
"commands": [
|
||||
"createCurve",
|
||||
"deleteNonMeshData",
|
||||
"setCurveControlPoints",
|
||||
"setCurveHandle",
|
||||
"setCurveTopology",
|
||||
"setCurveSplines",
|
||||
"setSurfaceTopology",
|
||||
"setFontBody",
|
||||
"setFontProperties",
|
||||
"setFontAdvanced",
|
||||
"importVFont",
|
||||
"setFontLinks",
|
||||
"setVolumeProperties",
|
||||
"setMetaballElements",
|
||||
"createGreasePencilLayer",
|
||||
"removeGreasePencilLayer",
|
||||
"moveGreasePencilLayer",
|
||||
"moveGreasePencilFrame",
|
||||
"insertGreasePencilFrame",
|
||||
"removeGreasePencilFrame",
|
||||
"setGreasePencilStrokes"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/protocol/nonmesh-geometry-commands.ts",
|
||||
"symbol": "nonMeshGeometryCommands"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/web-engine.ts",
|
||||
"web/protocol/web-engine-capabilities.ts",
|
||||
"web/protocol/nonmesh-geometry-commands.ts",
|
||||
"web/app/src/workers/web-engine.worker.ts"
|
||||
],
|
||||
"duplicateShimAdded": false
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-005"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-004/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-004/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
65
tests/golden/WBV2-P25-004/manifest.json
Normal file
65
tests/golden/WBV2-P25-004/manifest.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-004",
|
||||
"parentTask": "WBV2-P25-003",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-003/manifest.json",
|
||||
"sha256": "20f155a3e896274bdce4a931832c87577f551320d1633366935c528fef94e93d"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"web_engine_ts": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"nonmesh_geometry_commands_ts": {
|
||||
"path": "web/protocol/nonmesh-geometry-commands.ts",
|
||||
"sha256": "bbda8b6902642b3ce948182ec5308492fc97c92292b39871ea2af908b0f96eef"
|
||||
},
|
||||
"web_engine_worker_ts": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"sha256": "bc0a1ab43b5374331267276aecac640edf3408f777571010780da09f67089af8"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-004/implementation-report.json",
|
||||
"sha256": "7218333b7c4315300cbc923daa56f4775939de722216b21c27f38fba5ecb06e7"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-004.md",
|
||||
"sha256": "c488878a3d174730076a54692d505f9602067d3f2e2aa6a4118ef495e2406587"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-004/implementation-task-plan.json",
|
||||
"sha256": "701aae8530a27f1096e77ec29d4b2cd7d9f9da83a85f6e82761d668e39de948c"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P25-004/task-context.json",
|
||||
"sha256": "081c9728f81ae9ca9e3c0fd4c2b7e7bef22123e22d5c29bee2e6a2978f2c0d2a"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "GEOMETRY.NON_MESH",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 21,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-005"
|
||||
}
|
||||
168
tests/golden/WBV2-P25-004/task-context.json
Normal file
168
tests/golden/WBV2-P25-004/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-004",
|
||||
"parentTask": "WBV2-P25-003",
|
||||
"status": "in_progress",
|
||||
"goal": "Wire curve, surface, font, volume, metaball and grease-pencil command families through Main and the web bridge.",
|
||||
"scope": {
|
||||
"gap": "GEOMETRY.NON_MESH",
|
||||
"ownerFamily": "GEOMETRY",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-004 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2940,
|
||||
"contextRemainingTokens": 734
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6964,
|
||||
"tokens": 1742
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-004/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-004.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-004/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-005",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-004.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-003/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-003.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-004.md",
|
||||
"tests/golden/WBV2-P25-003/manifest.json",
|
||||
"docs/status/WBV2-P25-003.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-003",
|
||||
"parentTask": "WBV2-P25-002",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-004",
|
||||
"artifactCount": 10
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-003 status",
|
||||
"- task: `WBV2-P25-003`; parent: `WBV2-P25-002`; status: `done`",
|
||||
"- capability family: `MESH.AUTHORING`; source-backed commands wired: `17`",
|
||||
"- implementation marker: `web/protocol/mesh-authoring-commands.ts#meshAuthoringCommands`; no duplicate protocol shim",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-004`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1287,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 322
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-004.md",
|
||||
"bytes": 1287,
|
||||
"lines": 34,
|
||||
"tokens": 322
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-003/manifest.json",
|
||||
"bytes": 2366,
|
||||
"lines": 66,
|
||||
"tokens": 592
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-003.md",
|
||||
"bytes": 508,
|
||||
"lines": 9,
|
||||
"tokens": 127
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1742,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1742,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2766,
|
||||
"serializedContextTokens": 619,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
54
tests/golden/WBV2-P25-005/implementation-report.json
Normal file
54
tests/golden/WBV2-P25-005/implementation-report.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-005",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "ANIMATION.RENDER",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 11,
|
||||
"commands": [
|
||||
"insertObjectKeyframe",
|
||||
"deleteObjectKeyframe",
|
||||
"setFCurveInterpolation",
|
||||
"setActiveAction",
|
||||
"setConstraint",
|
||||
"setNLAStack",
|
||||
"setLightProperties",
|
||||
"setCameraProperties",
|
||||
"setWorldProperties",
|
||||
"sculptStroke",
|
||||
"setSculptMeshAttributes"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/protocol/animation-render-commands.ts",
|
||||
"symbol": "animationRenderCommands"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/web-engine.ts",
|
||||
"web/protocol/web-engine-capabilities.ts",
|
||||
"web/protocol/animation-render-commands.ts",
|
||||
"web/app/src/app/App.tsx"
|
||||
],
|
||||
"duplicateShimAdded": false
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-006"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-005/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-005/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
65
tests/golden/WBV2-P25-005/manifest.json
Normal file
65
tests/golden/WBV2-P25-005/manifest.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-005",
|
||||
"parentTask": "WBV2-P25-004",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-004/manifest.json",
|
||||
"sha256": "830ec76c9bc1cfc89bdcd98db2a0d2b1d944744786ee85172dfc7542d0a62606"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"web_engine_ts": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"animation_render_commands_ts": {
|
||||
"path": "web/protocol/animation-render-commands.ts",
|
||||
"sha256": "1b5ec00b3495aa1c04ac2a1c7cdfe41a81b8c728ec572733823e1d863ba6d1ca"
|
||||
},
|
||||
"App_tsx": {
|
||||
"path": "web/app/src/app/App.tsx",
|
||||
"sha256": "b1bc098274224a4ba1a180c22293c61f79a432bd1df073b5b810c820ad1b5d9f"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-005/implementation-report.json",
|
||||
"sha256": "2835a9f0c0e7415ea219fa8c3256d2cfbe8628a7937776961034e73b44df2539"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-005.md",
|
||||
"sha256": "19b0c1d5507a64366c7b53fd5aab391246eaea753dbe004308cde17fbe64baaa"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-005/implementation-task-plan.json",
|
||||
"sha256": "85b0acf60778c67b40c0188f6845fc1e02c52b1125bdf3d33d5252b11fe4644b"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P25-005/task-context.json",
|
||||
"sha256": "a541a3225d5e8803dd4bd4b304896683523d3bfa66908cf8305b9fbb0beaa417"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "ANIMATION.RENDER",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 11,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-006"
|
||||
}
|
||||
168
tests/golden/WBV2-P25-005/task-context.json
Normal file
168
tests/golden/WBV2-P25-005/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-005",
|
||||
"parentTask": "WBV2-P25-004",
|
||||
"status": "in_progress",
|
||||
"goal": "Wire animation, constraints, NLA, camera, light, world and sculpt command families.",
|
||||
"scope": {
|
||||
"gap": "ANIMATION.RENDER",
|
||||
"ownerFamily": "ANIMATION",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-005 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2913,
|
||||
"contextRemainingTokens": 727
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6991,
|
||||
"tokens": 1749
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-005/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-005.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-005/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-006",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-005.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-004/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-004.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-005.md",
|
||||
"tests/golden/WBV2-P25-004/manifest.json",
|
||||
"docs/status/WBV2-P25-004.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-004",
|
||||
"parentTask": "WBV2-P25-003",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-005",
|
||||
"artifactCount": 10
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-004 status",
|
||||
"- task: `WBV2-P25-004`; parent: `WBV2-P25-003`; status: `done`",
|
||||
"- capability family: `GEOMETRY.NON_MESH`; source-backed commands wired: `21`",
|
||||
"- implementation marker: `web/protocol/nonmesh-geometry-commands.ts#nonMeshGeometryCommands`; no duplicate protocol shim",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-005`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1270,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 318
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-005.md",
|
||||
"bytes": 1270,
|
||||
"lines": 34,
|
||||
"tokens": 318
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-004/manifest.json",
|
||||
"bytes": 2403,
|
||||
"lines": 66,
|
||||
"tokens": 601
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-004.md",
|
||||
"bytes": 515,
|
||||
"lines": 9,
|
||||
"tokens": 129
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1749,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1749,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2773,
|
||||
"serializedContextTokens": 612,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
46
tests/golden/WBV2-P25-006/implementation-report.json
Normal file
46
tests/golden/WBV2-P25-006/implementation-report.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-006",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "IO.MEDIA_STORAGE",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 2,
|
||||
"commands": [
|
||||
"importImage",
|
||||
"importVFont"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/protocol/io-media-commands.ts",
|
||||
"symbol": "ioMediaCommands"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/web-engine.ts",
|
||||
"web/protocol/web-engine-capabilities.ts",
|
||||
"web/protocol/io-media-commands.ts",
|
||||
"web/app/src/workers/web-engine.worker.ts",
|
||||
"web/app/src/storage/StorageClient.ts"
|
||||
],
|
||||
"duplicateShimAdded": false
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-007"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-006/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-006/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
69
tests/golden/WBV2-P25-006/manifest.json
Normal file
69
tests/golden/WBV2-P25-006/manifest.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-006",
|
||||
"parentTask": "WBV2-P25-005",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-005/manifest.json",
|
||||
"sha256": "58ecc1177615a6fc733cf9b8944cef9e0e83ce75a7b3ff5e9df17a40c8daae76"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"web_engine_ts": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"io_media_commands_ts": {
|
||||
"path": "web/protocol/io-media-commands.ts",
|
||||
"sha256": "da7bd4aaa0c6040379082ba8a179ae654b53fccd9c5881ebd21012b9ab39aacc"
|
||||
},
|
||||
"web_engine_worker_ts": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"sha256": "bc0a1ab43b5374331267276aecac640edf3408f777571010780da09f67089af8"
|
||||
},
|
||||
"StorageClient_ts": {
|
||||
"path": "web/app/src/storage/StorageClient.ts",
|
||||
"sha256": "00cd35e4632479e4cd153314113e201c822fd209ae6c8e9fbeff5f1399728565"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-006/implementation-report.json",
|
||||
"sha256": "1f70b4abf21aa0e156496ec2bedd33aaeb7e55b772bafef90d51a9f2cb5eb791"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-006.md",
|
||||
"sha256": "1e2fbee21684c0e27bdd73a93131d0c407acdd12fb4e785aa308f4be452b0c6d"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-006/implementation-task-plan.json",
|
||||
"sha256": "edcc44d4c7a0ecd6b0418d30fb9118930e9f3a5f5d86d60c14c64131b25a762a"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P25-006/task-context.json",
|
||||
"sha256": "64ccd0b6bdf5391a4a4c171207c5a7c439eaafe187ff04cc72382d91d07ac9f5"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "IO.MEDIA_STORAGE",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 2,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-007"
|
||||
}
|
||||
168
tests/golden/WBV2-P25-006/task-context.json
Normal file
168
tests/golden/WBV2-P25-006/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-006",
|
||||
"parentTask": "WBV2-P25-005",
|
||||
"status": "in_progress",
|
||||
"goal": "Wire image, library, font, blend persistence and resource routing paths using existing source implementations.",
|
||||
"scope": {
|
||||
"gap": "IO.MEDIA_STORAGE",
|
||||
"ownerFamily": "IO",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-006 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2936,
|
||||
"contextRemainingTokens": 733
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6968,
|
||||
"tokens": 1743
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 126797,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-006/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-006.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-006/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-007",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-006.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-005/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-005.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-006.md",
|
||||
"tests/golden/WBV2-P25-005/manifest.json",
|
||||
"docs/status/WBV2-P25-005.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-005",
|
||||
"parentTask": "WBV2-P25-004",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-006",
|
||||
"artifactCount": 10
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-005 status",
|
||||
"- task: `WBV2-P25-005`; parent: `WBV2-P25-004`; status: `done`",
|
||||
"- capability family: `ANIMATION.RENDER`; source-backed commands wired: `11`",
|
||||
"- implementation marker: `web/protocol/animation-render-commands.ts#animationRenderCommands`; no duplicate protocol shim",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-006`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1279,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 320
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-006.md",
|
||||
"bytes": 1279,
|
||||
"lines": 34,
|
||||
"tokens": 320
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-005/manifest.json",
|
||||
"bytes": 2372,
|
||||
"lines": 66,
|
||||
"tokens": 593
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-005.md",
|
||||
"bytes": 514,
|
||||
"lines": 9,
|
||||
"tokens": 129
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1743,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1743,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2767,
|
||||
"serializedContextTokens": 617,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
52
tests/golden/WBV2-P25-007/implementation-report.json
Normal file
52
tests/golden/WBV2-P25-007/implementation-report.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-007",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "FRONTEND.WORKBENCH",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 9,
|
||||
"commands": [
|
||||
"createPrimitive",
|
||||
"duplicateObject",
|
||||
"deleteObject",
|
||||
"setObjectTransform",
|
||||
"meshEdit",
|
||||
"createCurve",
|
||||
"setGreasePencilStrokes",
|
||||
"setLightProperties",
|
||||
"setCameraProperties"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/protocol/workbench-command-groups.ts",
|
||||
"symbol": "WORKBENCH_COMMAND_GROUPS"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"web/protocol/web-engine.ts",
|
||||
"web/protocol/web-engine-capabilities.ts",
|
||||
"web/protocol/workbench-command-groups.ts",
|
||||
"web/app/src/app/App.tsx",
|
||||
"web/app/src/workers/web-engine.worker.ts"
|
||||
],
|
||||
"duplicateShimAdded": false
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-008"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-007/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-007/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
65
tests/golden/WBV2-P25-007/manifest.json
Normal file
65
tests/golden/WBV2-P25-007/manifest.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-007",
|
||||
"parentTask": "WBV2-P25-006",
|
||||
"operation": "IMPLEMENT_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-006/manifest.json",
|
||||
"sha256": "dd6087a39bd119e5fd1118d8dc7192cd13167e3ce0c95f31823db7ab790dfd79"
|
||||
},
|
||||
"web_engine_ts": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"workbench_command_groups_ts": {
|
||||
"path": "web/protocol/workbench-command-groups.ts",
|
||||
"sha256": "aeef39c43595b58969621d1e9fe5b52090fc022ad7a6ae8c06caed23cc34c244"
|
||||
},
|
||||
"App_tsx": {
|
||||
"path": "web/app/src/app/App.tsx",
|
||||
"sha256": "b1bc098274224a4ba1a180c22293c61f79a432bd1df073b5b810c820ad1b5d9f"
|
||||
},
|
||||
"web_engine_worker_ts": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"sha256": "bc0a1ab43b5374331267276aecac640edf3408f777571010780da09f67089af8"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-007/implementation-report.json",
|
||||
"sha256": "6bd741d4e33f113c79890c86ea63a5c68bf8601bfea247c57a3e74fbb41ec53b"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-007.md",
|
||||
"sha256": "5f35b1e53ca07cc83ec9d14b682b84338e065097524c5d7719ddb28b42d5eefb"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-007/implementation-task-plan.json",
|
||||
"sha256": "402b9d9f6ad88b95a4b84a6ee6de4b9082e331387b02d5fe82f6e1127eac678f"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P25-007/task-context.json",
|
||||
"sha256": "11cd1738e1f6f3d8b79b8a053f0fb38b9277c845f189f6eee2b126e46eff8e99"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "FRONTEND.WORKBENCH",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 9,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P25-008"
|
||||
}
|
||||
168
tests/golden/WBV2-P25-007/task-context.json
Normal file
168
tests/golden/WBV2-P25-007/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-007",
|
||||
"parentTask": "WBV2-P25-006",
|
||||
"status": "in_progress",
|
||||
"goal": "Expose implemented command families through worker/client state and the workbench controls without duplicating protocol logic.",
|
||||
"scope": {
|
||||
"gap": "FRONTEND.WORKBENCH",
|
||||
"ownerFamily": "FRONTEND",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-007 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2791,
|
||||
"contextRemainingTokens": 696
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7113,
|
||||
"tokens": 1780
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "web/app/src",
|
||||
"bytes": 8344,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-007/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-007.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-007/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"nextTask": "WBV2-P25-008",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-007.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-006/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-006.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-007.md",
|
||||
"tests/golden/WBV2-P25-006/manifest.json",
|
||||
"docs/status/WBV2-P25-006.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-006",
|
||||
"parentTask": "WBV2-P25-005",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-007",
|
||||
"artifactCount": 11
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-006 status",
|
||||
"- task: `WBV2-P25-006`; parent: `WBV2-P25-005`; status: `done`",
|
||||
"- capability family: `IO.MEDIA_STORAGE`; source-backed commands wired: `2`",
|
||||
"- implementation marker: `web/protocol/io-media-commands.ts#ioMediaCommands`; no duplicate protocol shim",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-007`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1258,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 315
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-007.md",
|
||||
"bytes": 1258,
|
||||
"lines": 34,
|
||||
"tokens": 315
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-006/manifest.json",
|
||||
"bytes": 2555,
|
||||
"lines": 70,
|
||||
"tokens": 639
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-006.md",
|
||||
"bytes": 497,
|
||||
"lines": 9,
|
||||
"tokens": 125
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1780,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1780,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2804,
|
||||
"serializedContextTokens": 623,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
45
tests/golden/WBV2-P25-008/implementation-smoke-report.json
Normal file
45
tests/golden/WBV2-P25-008/implementation-smoke-report.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-008",
|
||||
"operation": "RUN_IMPLEMENTATION_WAVE_SMOKE",
|
||||
"status": "PASS",
|
||||
"build": {
|
||||
"command": "npm --prefix web run build",
|
||||
"exitCode": 0,
|
||||
"index": "web/dist/index.html",
|
||||
"worker": "web/dist/assets/web-engine.worker-D48N3wX6.js",
|
||||
"wasm": "web/dist/assets/web_engine-tuhS8OZi.wasm"
|
||||
},
|
||||
"browserStart": {
|
||||
"command": "npm --prefix web run dev -- --host 127.0.0.1",
|
||||
"url": "http://127.0.0.1:5173/",
|
||||
"httpStatus": 200,
|
||||
"chromiumProductionVerification": "DEFERRED"
|
||||
},
|
||||
"implementation": {
|
||||
"p25Families": [
|
||||
"ENGINE.COMMAND_REGISTRY",
|
||||
"OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"MESH.AUTHORING",
|
||||
"GEOMETRY.NON_MESH",
|
||||
"ANIMATION.RENDER",
|
||||
"IO.MEDIA_STORAGE",
|
||||
"FRONTEND.WORKBENCH"
|
||||
],
|
||||
"sourceBacked": true
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"completionOverlay": false,
|
||||
"fullHistoricalReproduction": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609
|
||||
},
|
||||
"nextTask": "WBV2-P26-000"
|
||||
}
|
||||
416
tests/golden/WBV2-P25-008/implementation-task-plan.json
Normal file
416
tests/golden/WBV2-P25-008/implementation-task-plan.json
Normal file
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_IMPLEMENTATION_FIRST_WAVE_P25",
|
||||
"status": "ACTIVE_SOURCE_BACKED_IMPLEMENTATION_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"sourcePlan": "docs/BLENDER_WEB_PARITY_TASK_PLAN_V2.json",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred_until_implementation_wave_closes",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave",
|
||||
"provenance": "read_only"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P24-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_object_move_collection_continuation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P23-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P24-000.md",
|
||||
"behavior": "Retained source-backed Object Move-to-Collection continuation.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-001",
|
||||
"phase": "P25",
|
||||
"title": "select_object_move_collection_batch",
|
||||
"kind": "feature",
|
||||
"owner": "PARITY",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-000"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-001.md",
|
||||
"behavior": "Retained the unique moveObjectToCollection candidate without rerun.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-002",
|
||||
"phase": "P25",
|
||||
"title": "object_move_collection_engine_receipt",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.MOVE_COLLECTION",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-002.md",
|
||||
"behavior": "Retained the existing compiled WASM Main move receipt.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P24-003",
|
||||
"phase": "P25",
|
||||
"title": "switch_to_implementation_first_mode",
|
||||
"kind": "feature",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-002"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P24-003.md",
|
||||
"behavior": "Authorize implementation-first execution with verification deferred.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-000",
|
||||
"phase": "P25",
|
||||
"title": "authorize_source_backed_implementation_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P24-003"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P25-000.md",
|
||||
"behavior": "Create a capability-family implementation queue from the existing source tree.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-001",
|
||||
"phase": "P25",
|
||||
"title": "implement_main_command_registry_and_dispatch",
|
||||
"kind": "feature",
|
||||
"owner": "ENGINE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-000"
|
||||
],
|
||||
"parityId": "ENGINE.COMMAND_REGISTRY",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-001.md",
|
||||
"behavior": "Create and consume one source-of-truth registry for Main-authoritative WebEngine commands.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-002",
|
||||
"phase": "P25",
|
||||
"title": "implement_core_scene_object_surface",
|
||||
"kind": "feature",
|
||||
"owner": "OBJECT",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-001"
|
||||
],
|
||||
"parityId": "OBJECT_OPERATIONS.CORE_SCENE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-002.md",
|
||||
"behavior": "Complete create, duplicate, delete, rename, transform, parent, collection and visibility paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-003",
|
||||
"phase": "P25",
|
||||
"title": "implement_mesh_authoring_surface",
|
||||
"kind": "feature",
|
||||
"owner": "MESH",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-002"
|
||||
],
|
||||
"parityId": "MESH.AUTHORING",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-003.md",
|
||||
"behavior": "Complete mesh edit, UV, material slots, vertex colors and weights paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-004",
|
||||
"phase": "P25",
|
||||
"title": "implement_nonmesh_geometry_surface",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-003"
|
||||
],
|
||||
"parityId": "GEOMETRY.NON_MESH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-004.md",
|
||||
"behavior": "Complete curve, surface, font, volume, metaball and grease-pencil paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-005",
|
||||
"phase": "P25",
|
||||
"title": "implement_animation_constraint_render_surface",
|
||||
"kind": "feature",
|
||||
"owner": "ANIMATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-004"
|
||||
],
|
||||
"parityId": "ANIMATION.RENDER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-005.md",
|
||||
"behavior": "Complete keyframes, F-curves, NLA, constraints, cameras, lights, world and sculpt paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-006",
|
||||
"phase": "P25",
|
||||
"title": "implement_io_media_storage_surface",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-005"
|
||||
],
|
||||
"parityId": "IO.MEDIA_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-006.md",
|
||||
"behavior": "Complete image, library, font, blend save/reopen and asset/resource routing paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-007",
|
||||
"phase": "P25",
|
||||
"title": "implement_frontend_workbench_surface",
|
||||
"kind": "feature",
|
||||
"owner": "FRONTEND",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-006"
|
||||
],
|
||||
"parityId": "FRONTEND.WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-007",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-007.md",
|
||||
"behavior": "Expose implemented command families through the worker, client and workbench UI.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P25-008",
|
||||
"phase": "P25",
|
||||
"title": "run_implementation_wave_smoke",
|
||||
"kind": "feature",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-007"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p25-008",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P25-008.md",
|
||||
"behavior": "Run one bounded build and browser-start smoke before opening the verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred until the verification wave"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
52
tests/golden/WBV2-P25-008/manifest.json
Normal file
52
tests/golden/WBV2-P25-008/manifest.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-008",
|
||||
"parentTask": "WBV2-P25-007",
|
||||
"operation": "RUN_IMPLEMENTATION_WAVE_SMOKE",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "VITE_BUILD_AND_BROWSER_START_SMOKE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-007/manifest.json",
|
||||
"sha256": "9a39c1228c6dd9b50f3f73c73d0048bc2970f205d0ca31212d70ca98e0707162"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P25-008/implementation-smoke-report.json",
|
||||
"sha256": "68a32525e8f3d8d2893f8f28c4fb02757091e47ff6b42c607be179bbd170d6aa"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P25-008.md",
|
||||
"sha256": "72fbbbf162695bbf078eddc76415fe1acc30e1464569137263ea7f64beb693c5"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P25-008/implementation-task-plan.json",
|
||||
"sha256": "19f07f2dab2537ade67d496c4fea3bc1246f94c28646c70670c27a3d920cf890"
|
||||
},
|
||||
"index": {
|
||||
"path": "web/dist/index.html",
|
||||
"sha256": "65d51defc76f4abf0360cf52871c48c4e8ece6509512cb53438c2581c2d3bf83"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/dist/assets/web-engine.worker-D48N3wX6.js",
|
||||
"sha256": "97acbd8697194abf9fc30743331f26b63270b07b7d9e45e1b74d20631aac2671"
|
||||
},
|
||||
"wasm": {
|
||||
"path": "web/dist/assets/web_engine-tuhS8OZi.wasm",
|
||||
"sha256": "25bc1e286fd3b72c2c7c082b85a29b2d0bb109588a6dc0de5be94fcdc37cc88c"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"buildExitCode": 0,
|
||||
"browserStartHttpStatus": 200,
|
||||
"sourceBackedImplementation": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-000"
|
||||
}
|
||||
167
tests/golden/WBV2-P25-008/task-context.json
Normal file
167
tests/golden/WBV2-P25-008/task-context.json
Normal file
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-008",
|
||||
"parentTask": "WBV2-P25-007",
|
||||
"status": "in_progress",
|
||||
"goal": "Run only bounded build and browser-start smoke; leave full production verification for the next wave.",
|
||||
"scope": {
|
||||
"gap": "workflow:run_implementation_wave_smoke",
|
||||
"ownerFamily": "RELEASE",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P25-008 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3007,
|
||||
"contextRemainingTokens": 751
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6897,
|
||||
"tokens": 1725
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "web/package.json",
|
||||
"bytes": 36191,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/app/package.json",
|
||||
"bytes": null,
|
||||
"reason": "MISSING_PATH"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-008/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-008.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-008/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"focused command exits 0",
|
||||
"report and manifest are hash-bound",
|
||||
"failure path does not publish a late result"
|
||||
],
|
||||
"nextTask": "WBV2-P26-000",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P25-008.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P25-007/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P25-007.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P25-008.md",
|
||||
"tests/golden/WBV2-P25-007/manifest.json",
|
||||
"docs/status/WBV2-P25-007.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P25-007",
|
||||
"parentTask": "WBV2-P25-006",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P25-008",
|
||||
"artifactCount": 10
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P25-007 status",
|
||||
"- task: `WBV2-P25-007`; parent: `WBV2-P25-006`; status: `done`",
|
||||
"- capability family: `FRONTEND.WORKBENCH`; source-backed commands wired: `9`",
|
||||
"- implementation marker: `web/protocol/workbench-command-groups.ts#WORKBENCH_COMMAND_GROUPS`; no duplicate protocol shim",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P25-008`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1224,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 306
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P25-008.md",
|
||||
"bytes": 1224,
|
||||
"lines": 34,
|
||||
"tokens": 306
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P25-007/manifest.json",
|
||||
"bytes": 2355,
|
||||
"lines": 66,
|
||||
"tokens": 589
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P25-007.md",
|
||||
"bytes": 515,
|
||||
"lines": 9,
|
||||
"tokens": 129
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1725,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1725,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2749,
|
||||
"serializedContextTokens": 609,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-000",
|
||||
"operation": "AUTHORIZE_ADVANCED_CAPABILITY_IMPLEMENTATION",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P25-008",
|
||||
"manifest": "tests/golden/WBV2-P25-008/manifest.json",
|
||||
"manifestSha256": "470937c0dd4cb87acf6382b68a606cc514d57fb48f5511022657184e974a668e"
|
||||
},
|
||||
"scope": {
|
||||
"firstTask": "WBV2-P26-001",
|
||||
"plannedTasks": [
|
||||
"WBV2-P26-000",
|
||||
"WBV2-P26-001",
|
||||
"WBV2-P26-002",
|
||||
"WBV2-P26-003",
|
||||
"WBV2-P26-004",
|
||||
"WBV2-P26-005",
|
||||
"WBV2-P26-006"
|
||||
],
|
||||
"capabilityFamilies": [
|
||||
"GEOMETRY_NODES.MAIN_WRITER",
|
||||
"SHADER.GRAPH_WORKBENCH",
|
||||
"SIMULATION.PHYSICS_PARTICLE",
|
||||
"RENDER.COMPOSITOR_SEQUENCER",
|
||||
"IO.ASSET_LIBRARY_STORAGE"
|
||||
]
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609
|
||||
},
|
||||
"nextTask": "WBV2-P26-001"
|
||||
}
|
||||
234
tests/golden/WBV2-P26-000/advanced-implementation-task-plan.json
Normal file
234
tests/golden/WBV2-P26-000/advanced-implementation-task-plan.json
Normal file
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_ADVANCED_IMPLEMENTATION_WAVE_P26",
|
||||
"status": "ACTIVE_ADVANCED_SOURCE_BACKED_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P26-000",
|
||||
"phase": "P26",
|
||||
"title": "authorize_advanced_capability_implementation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P26-000.md",
|
||||
"behavior": "Authorize source-backed implementation for remaining guarded and unexposed capability domains.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-001",
|
||||
"phase": "P26",
|
||||
"title": "implement_geometry_nodes_main_writer",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-000"
|
||||
],
|
||||
"parityId": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-001.md",
|
||||
"behavior": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-002",
|
||||
"phase": "P26",
|
||||
"title": "implement_shader_graph_workbench",
|
||||
"kind": "feature",
|
||||
"owner": "SHADER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-001"
|
||||
],
|
||||
"parityId": "SHADER.GRAPH_WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-002.md",
|
||||
"behavior": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-003",
|
||||
"phase": "P26",
|
||||
"title": "implement_simulation_physics_particle",
|
||||
"kind": "feature",
|
||||
"owner": "SIMULATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-002"
|
||||
],
|
||||
"parityId": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-003.md",
|
||||
"behavior": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-004",
|
||||
"phase": "P26",
|
||||
"title": "implement_render_compositor_sequencer",
|
||||
"kind": "feature",
|
||||
"owner": "RENDER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-003"
|
||||
],
|
||||
"parityId": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-004.md",
|
||||
"behavior": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-005",
|
||||
"phase": "P26",
|
||||
"title": "implement_asset_library_storage",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-004"
|
||||
],
|
||||
"parityId": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-005.md",
|
||||
"behavior": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-006",
|
||||
"phase": "P26",
|
||||
"title": "run_advanced_implementation_smoke",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-005"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-006.md",
|
||||
"behavior": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
43
tests/golden/WBV2-P26-000/manifest.json
Normal file
43
tests/golden/WBV2-P26-000/manifest.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-000",
|
||||
"parentTask": "WBV2-P25-008",
|
||||
"operation": "AUTHORIZE_ADVANCED_CAPABILITY_IMPLEMENTATION",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_ADVANCED_IMPLEMENTATION_QUEUE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P25-008/manifest.json",
|
||||
"sha256": "162336b2d9595b792538eab918b2c6c6b2b282fdce9f7b7d729174fe21672558"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P26-000/advanced-implementation-task-plan.json",
|
||||
"sha256": "6820cd251a685bc53c46f057ffabc9608714f45ce0794705517d20aec4e25f47"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P26-000/advanced-implementation-root-report.json",
|
||||
"sha256": "ae88ad573815bb996f98ca0f3a83385edae414d85da0ca1f9080774ec94f9ced"
|
||||
},
|
||||
"rootCard": {
|
||||
"path": "docs/tasks/WBV2-P26-000.md",
|
||||
"sha256": "c46fbeb82c629571b3a2de6a84be26f928758ecd143fc572d5aea38d98683396"
|
||||
},
|
||||
"rootStatus": {
|
||||
"path": "docs/status/WBV2-P26-000.md",
|
||||
"sha256": "3d9f80cd204d294a8b945807302396708853b6bb0eecd5c4657893c29dc7454b"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"advancedImplementationWave": true,
|
||||
"plannedTasks": 7,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-001"
|
||||
}
|
||||
234
tests/golden/WBV2-P26-001/advanced-implementation-task-plan.json
Normal file
234
tests/golden/WBV2-P26-001/advanced-implementation-task-plan.json
Normal file
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_ADVANCED_IMPLEMENTATION_WAVE_P26",
|
||||
"status": "ACTIVE_ADVANCED_SOURCE_BACKED_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P26-000",
|
||||
"phase": "P26",
|
||||
"title": "authorize_advanced_capability_implementation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P26-000.md",
|
||||
"behavior": "Authorize source-backed implementation for remaining guarded and unexposed capability domains.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-001",
|
||||
"phase": "P26",
|
||||
"title": "implement_geometry_nodes_main_writer",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-000"
|
||||
],
|
||||
"parityId": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-001.md",
|
||||
"behavior": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-002",
|
||||
"phase": "P26",
|
||||
"title": "implement_shader_graph_workbench",
|
||||
"kind": "feature",
|
||||
"owner": "SHADER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-001"
|
||||
],
|
||||
"parityId": "SHADER.GRAPH_WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-002.md",
|
||||
"behavior": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-003",
|
||||
"phase": "P26",
|
||||
"title": "implement_simulation_physics_particle",
|
||||
"kind": "feature",
|
||||
"owner": "SIMULATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-002"
|
||||
],
|
||||
"parityId": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-003.md",
|
||||
"behavior": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-004",
|
||||
"phase": "P26",
|
||||
"title": "implement_render_compositor_sequencer",
|
||||
"kind": "feature",
|
||||
"owner": "RENDER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-003"
|
||||
],
|
||||
"parityId": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-004.md",
|
||||
"behavior": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-005",
|
||||
"phase": "P26",
|
||||
"title": "implement_asset_library_storage",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-004"
|
||||
],
|
||||
"parityId": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-005.md",
|
||||
"behavior": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-006",
|
||||
"phase": "P26",
|
||||
"title": "run_advanced_implementation_smoke",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-005"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-006.md",
|
||||
"behavior": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
46
tests/golden/WBV2-P26-001/implementation-report.json
Normal file
46
tests/golden/WBV2-P26-001/implementation-report.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-001",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 1,
|
||||
"commands": [
|
||||
"setGeometryNodeGraph"
|
||||
],
|
||||
"marker": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"symbol": "web_engine_blend_main_set_geometry_node_graph"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_main_state.h",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/web-engine.ts",
|
||||
"web/protocol/geometry-nodes.ts",
|
||||
"web/protocol/web-engine-capabilities.ts",
|
||||
"web/app/src/workers/web-engine.worker.ts"
|
||||
],
|
||||
"note": "validated graphs are available immediately in the authoritative Main session; binary .blend persistence is deferred to verification/persistence work"
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-002"
|
||||
}
|
||||
73
tests/golden/WBV2-P26-001/manifest.json
Normal file
73
tests/golden/WBV2-P26-001/manifest.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-001",
|
||||
"parentTask": "WBV2-P26-000",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_ADVANCED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P26-000/manifest.json",
|
||||
"sha256": "edfb331225e2e3013f52ee0d9542671cf7634c01be8d96ed5811c9a748ee8861"
|
||||
},
|
||||
"web_engine_main_state_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"sha256": "f48e424f53969cf2d9bce3ad9be565179d415301739f07785a1ed3271e430307"
|
||||
},
|
||||
"web_engine_main_state_h": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h",
|
||||
"sha256": "f6e2cfefbb70c98e905835d26cc89b0c04a1a1324cba81c499c32f69b7e2d6ef"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"web_engine_ts": {
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"sha256": "ec7c7c6cbd787359bd3c6d1fb27313a48cad67d2a1dd05f0cc5bd4dfc4209bea"
|
||||
},
|
||||
"geometry_nodes_ts": {
|
||||
"path": "web/protocol/geometry-nodes.ts",
|
||||
"sha256": "8d04291c29e9ce30e3f2f6d4141bc4101d49529bf7f7edf109d67d059efa58b1"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"web_engine_worker_ts": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"sha256": "bc0a1ab43b5374331267276aecac640edf3408f777571010780da09f67089af8"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P26-001/implementation-report.json",
|
||||
"sha256": "a007cf5e1c2cfcc815029ec34339051c1f550be4f99a0d21918628b1b0b5a855"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P26-001.md",
|
||||
"sha256": "70f44644058143a2c92de282497b554cc5425ae72af33c760ccfc6fe58994800"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P26-001/advanced-implementation-task-plan.json",
|
||||
"sha256": "5f39825fbd7aa2a7b26afab406f29c57b1a44b335ae797a04117d28e767f8c0a"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P26-001/task-context.json",
|
||||
"sha256": "7f26a2cfb97b001a682251ffeb4173bc3b24fa02e1dd525087a896767b734398"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 1,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-002"
|
||||
}
|
||||
168
tests/golden/WBV2-P26-001/task-context.json
Normal file
168
tests/golden/WBV2-P26-001/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-001",
|
||||
"parentTask": "WBV2-P26-000",
|
||||
"status": "in_progress",
|
||||
"goal": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"scope": {
|
||||
"gap": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"ownerFamily": "GEOMETRY",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P26-001 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 4047,
|
||||
"contextRemainingTokens": 1010
|
||||
},
|
||||
"source": {
|
||||
"bytes": 5857,
|
||||
"tokens": 1466
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 127145,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-001/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-001.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-001/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"nextTask": "WBV2-P26-002",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P26-001.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P26-000/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P26-000.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P26-001.md",
|
||||
"tests/golden/WBV2-P26-000/manifest.json",
|
||||
"docs/status/WBV2-P26-000.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-000",
|
||||
"parentTask": "WBV2-P25-008",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P26-001",
|
||||
"artifactCount": 5
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P26-000 status",
|
||||
"- task: `WBV2-P26-000`; parent: `WBV2-P25-008`; status: `done`",
|
||||
"- advanced guarded/unexposed capability implementation queue authorized",
|
||||
"- first task: `WBV2-P26-001` Geometry Nodes Main writer",
|
||||
"- verification receipts and completion overlays: `DEFERRED`",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P26-001`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1163,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 33,
|
||||
"taskTokens": 291
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P26-001.md",
|
||||
"bytes": 1163,
|
||||
"lines": 33,
|
||||
"tokens": 291
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-000/manifest.json",
|
||||
"bytes": 1469,
|
||||
"lines": 44,
|
||||
"tokens": 368
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-000.md",
|
||||
"bytes": 422,
|
||||
"lines": 9,
|
||||
"tokens": 106
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1466,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1466,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2490,
|
||||
"serializedContextTokens": 605,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
234
tests/golden/WBV2-P26-002/advanced-implementation-task-plan.json
Normal file
234
tests/golden/WBV2-P26-002/advanced-implementation-task-plan.json
Normal file
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_ADVANCED_IMPLEMENTATION_WAVE_P26",
|
||||
"status": "ACTIVE_ADVANCED_SOURCE_BACKED_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P26-000",
|
||||
"phase": "P26",
|
||||
"title": "authorize_advanced_capability_implementation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P26-000.md",
|
||||
"behavior": "Authorize source-backed implementation for remaining guarded and unexposed capability domains.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-001",
|
||||
"phase": "P26",
|
||||
"title": "implement_geometry_nodes_main_writer",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-000"
|
||||
],
|
||||
"parityId": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-001.md",
|
||||
"behavior": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-002",
|
||||
"phase": "P26",
|
||||
"title": "implement_shader_graph_workbench",
|
||||
"kind": "feature",
|
||||
"owner": "SHADER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-001"
|
||||
],
|
||||
"parityId": "SHADER.GRAPH_WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-002.md",
|
||||
"behavior": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-003",
|
||||
"phase": "P26",
|
||||
"title": "implement_simulation_physics_particle",
|
||||
"kind": "feature",
|
||||
"owner": "SIMULATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-002"
|
||||
],
|
||||
"parityId": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-003.md",
|
||||
"behavior": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-004",
|
||||
"phase": "P26",
|
||||
"title": "implement_render_compositor_sequencer",
|
||||
"kind": "feature",
|
||||
"owner": "RENDER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-003"
|
||||
],
|
||||
"parityId": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-004.md",
|
||||
"behavior": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-005",
|
||||
"phase": "P26",
|
||||
"title": "implement_asset_library_storage",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-004"
|
||||
],
|
||||
"parityId": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-005.md",
|
||||
"behavior": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-006",
|
||||
"phase": "P26",
|
||||
"title": "run_advanced_implementation_smoke",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-005"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-006.md",
|
||||
"behavior": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
43
tests/golden/WBV2-P26-002/implementation-report.json
Normal file
43
tests/golden/WBV2-P26-002/implementation-report.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-002",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "SHADER.GRAPH_WORKBENCH",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 1,
|
||||
"commands": [
|
||||
"setShaderGraph"
|
||||
],
|
||||
"marker": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"symbol": "web_engine_blend_main_set_shader_graph"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/shader-graph.ts",
|
||||
"web/protocol/web-engine-capabilities.ts"
|
||||
],
|
||||
"note": "source-backed shader writer is retained; workbench exposure and production verification remain deferred"
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-003"
|
||||
}
|
||||
61
tests/golden/WBV2-P26-002/manifest.json
Normal file
61
tests/golden/WBV2-P26-002/manifest.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-002",
|
||||
"parentTask": "WBV2-P26-001",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_ADVANCED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P26-001/manifest.json",
|
||||
"sha256": "1b3c3e533eed5ec29d978871b18260aa389a716dc5806d45b5a564191a0909d6"
|
||||
},
|
||||
"web_engine_main_state_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"sha256": "f48e424f53969cf2d9bce3ad9be565179d415301739f07785a1ed3271e430307"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"shader_graph_ts": {
|
||||
"path": "web/protocol/shader-graph.ts",
|
||||
"sha256": "6e9421743925b30ac7aee7c39d7a9cc38632f22584675ec5286685f442b12683"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P26-002/implementation-report.json",
|
||||
"sha256": "1376b1b1f5e7484aeb306915ecb85ed8a49d90444c65831e66919be3644eb510"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P26-002.md",
|
||||
"sha256": "c0a6862bb51a0375799a38f6ca81b2bdf21aa5e1771029964eead9f586753430"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P26-002/advanced-implementation-task-plan.json",
|
||||
"sha256": "54898bf608979e4e02b23c8e4b077a322d1169e3959a84f7e0e0b6ccd121c216"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P26-002/task-context.json",
|
||||
"sha256": "55d029d1e08dc202fff0e70985c9fd651bb299dd737915dfee24e8910fc00ac4"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "SHADER.GRAPH_WORKBENCH",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 1,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-003"
|
||||
}
|
||||
168
tests/golden/WBV2-P26-002/task-context.json
Normal file
168
tests/golden/WBV2-P26-002/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-002",
|
||||
"parentTask": "WBV2-P26-001",
|
||||
"status": "in_progress",
|
||||
"goal": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"scope": {
|
||||
"gap": "SHADER.GRAPH_WORKBENCH",
|
||||
"ownerFamily": "SHADER",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P26-002 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 2561,
|
||||
"contextRemainingTokens": 639
|
||||
},
|
||||
"source": {
|
||||
"bytes": 7343,
|
||||
"tokens": 1837
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 127145,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14830,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-002/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-002.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-002/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"nextTask": "WBV2-P26-003",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P26-002.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P26-001/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P26-001.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P26-002.md",
|
||||
"tests/golden/WBV2-P26-001/manifest.json",
|
||||
"docs/status/WBV2-P26-001.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-001",
|
||||
"parentTask": "WBV2-P26-000",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P26-002",
|
||||
"artifactCount": 12
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P26-001 status",
|
||||
"- task: `WBV2-P26-001`; parent: `WBV2-P26-000`; status: `done`",
|
||||
"- capability family: `GEOMETRY_NODES.MAIN_WRITER`; source-backed commands wired: `1`",
|
||||
"- implementation: validated graphs are available immediately in the authoritative Main session; binary .blend persistence is deferred to verification/persistence work",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P26-002`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1143,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 33,
|
||||
"taskTokens": 286
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P26-002.md",
|
||||
"bytes": 1143,
|
||||
"lines": 33,
|
||||
"tokens": 286
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-001/manifest.json",
|
||||
"bytes": 2828,
|
||||
"lines": 74,
|
||||
"tokens": 707
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-001.md",
|
||||
"bytes": 569,
|
||||
"lines": 9,
|
||||
"tokens": 143
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1837,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1837,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2861,
|
||||
"serializedContextTokens": 601,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
234
tests/golden/WBV2-P26-003/advanced-implementation-task-plan.json
Normal file
234
tests/golden/WBV2-P26-003/advanced-implementation-task-plan.json
Normal file
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_ADVANCED_IMPLEMENTATION_WAVE_P26",
|
||||
"status": "ACTIVE_ADVANCED_SOURCE_BACKED_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P26-000",
|
||||
"phase": "P26",
|
||||
"title": "authorize_advanced_capability_implementation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P26-000.md",
|
||||
"behavior": "Authorize source-backed implementation for remaining guarded and unexposed capability domains.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-001",
|
||||
"phase": "P26",
|
||||
"title": "implement_geometry_nodes_main_writer",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-000"
|
||||
],
|
||||
"parityId": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-001.md",
|
||||
"behavior": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-002",
|
||||
"phase": "P26",
|
||||
"title": "implement_shader_graph_workbench",
|
||||
"kind": "feature",
|
||||
"owner": "SHADER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-001"
|
||||
],
|
||||
"parityId": "SHADER.GRAPH_WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-002.md",
|
||||
"behavior": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-003",
|
||||
"phase": "P26",
|
||||
"title": "implement_simulation_physics_particle",
|
||||
"kind": "feature",
|
||||
"owner": "SIMULATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-002"
|
||||
],
|
||||
"parityId": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-003.md",
|
||||
"behavior": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-004",
|
||||
"phase": "P26",
|
||||
"title": "implement_render_compositor_sequencer",
|
||||
"kind": "feature",
|
||||
"owner": "RENDER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-003"
|
||||
],
|
||||
"parityId": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-004.md",
|
||||
"behavior": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-005",
|
||||
"phase": "P26",
|
||||
"title": "implement_asset_library_storage",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-004"
|
||||
],
|
||||
"parityId": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-005.md",
|
||||
"behavior": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-006",
|
||||
"phase": "P26",
|
||||
"title": "run_advanced_implementation_smoke",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-005"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-006.md",
|
||||
"behavior": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
43
tests/golden/WBV2-P26-003/implementation-report.json
Normal file
43
tests/golden/WBV2-P26-003/implementation-report.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-003",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 1,
|
||||
"commands": [
|
||||
"setPhysicsSimulation"
|
||||
],
|
||||
"marker": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"symbol": "web_engine_blend_main_set_physics_simulation"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/physics-simulation.ts",
|
||||
"web/protocol/web-engine-capabilities.ts"
|
||||
],
|
||||
"note": "validated physics manifests are writable in the authoritative Main session; solver execution and binary persistence remain separate capabilities"
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-004"
|
||||
}
|
||||
61
tests/golden/WBV2-P26-003/manifest.json
Normal file
61
tests/golden/WBV2-P26-003/manifest.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-003",
|
||||
"parentTask": "WBV2-P26-002",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_ADVANCED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P26-002/manifest.json",
|
||||
"sha256": "3b3de1dba740d2491b7cb806b66091fb756d4dc8e46a370854a3adcede345e26"
|
||||
},
|
||||
"web_engine_main_state_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp",
|
||||
"sha256": "f48e424f53969cf2d9bce3ad9be565179d415301739f07785a1ed3271e430307"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"physics_simulation_ts": {
|
||||
"path": "web/protocol/physics-simulation.ts",
|
||||
"sha256": "b02b820503d79cd26b0323a4d2033e79d0eeb3032befd26fafe5eab55634584c"
|
||||
},
|
||||
"web_engine_capabilities_ts": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P26-003/implementation-report.json",
|
||||
"sha256": "452c8330ecf36ec7b3a9c501b52b286d2784e20595dc76f84aeeb029e2fe39f0"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P26-003.md",
|
||||
"sha256": "cc83b0be5710bd5ff33b377547d3ca1156d772fe33225dfb185933082870bd21"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P26-003/advanced-implementation-task-plan.json",
|
||||
"sha256": "bf9d11026856369d6fccff7a9ef925073e171735e6a6ce7667a11cc1e6ed2ae4"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P26-003/task-context.json",
|
||||
"sha256": "88dc219b2e6360cde0d226f8a3e020aa958ce54c6b22efaf5225de47a5dc61d0"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 1,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-004"
|
||||
}
|
||||
168
tests/golden/WBV2-P26-003/task-context.json
Normal file
168
tests/golden/WBV2-P26-003/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-003",
|
||||
"parentTask": "WBV2-P26-002",
|
||||
"status": "in_progress",
|
||||
"goal": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"scope": {
|
||||
"gap": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"ownerFamily": "SIMULATION",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P26-003 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3138,
|
||||
"contextRemainingTokens": 783
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6766,
|
||||
"tokens": 1693
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 127451,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14979,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-003/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-003.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-003/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"nextTask": "WBV2-P26-004",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P26-003.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P26-002/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P26-002.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P26-003.md",
|
||||
"tests/golden/WBV2-P26-002/manifest.json",
|
||||
"docs/status/WBV2-P26-002.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-002",
|
||||
"parentTask": "WBV2-P26-001",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P26-003",
|
||||
"artifactCount": 9
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P26-002 status",
|
||||
"- task: `WBV2-P26-002`; parent: `WBV2-P26-001`; status: `done`",
|
||||
"- capability family: `SHADER.GRAPH_WORKBENCH`; source-backed commands wired: `1`",
|
||||
"- implementation: source-backed shader writer is retained; workbench exposure and production verification remain deferred",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P26-003`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1162,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 33,
|
||||
"taskTokens": 291
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P26-003.md",
|
||||
"bytes": 1162,
|
||||
"lines": 33,
|
||||
"tokens": 291
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-002/manifest.json",
|
||||
"bytes": 2281,
|
||||
"lines": 62,
|
||||
"tokens": 571
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-002.md",
|
||||
"bytes": 520,
|
||||
"lines": 9,
|
||||
"tokens": 130
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1693,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1693,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2717,
|
||||
"serializedContextTokens": 605,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
234
tests/golden/WBV2-P26-004/advanced-implementation-task-plan.json
Normal file
234
tests/golden/WBV2-P26-004/advanced-implementation-task-plan.json
Normal file
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_ADVANCED_IMPLEMENTATION_WAVE_P26",
|
||||
"status": "ACTIVE_ADVANCED_SOURCE_BACKED_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P26-000",
|
||||
"phase": "P26",
|
||||
"title": "authorize_advanced_capability_implementation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P26-000.md",
|
||||
"behavior": "Authorize source-backed implementation for remaining guarded and unexposed capability domains.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-001",
|
||||
"phase": "P26",
|
||||
"title": "implement_geometry_nodes_main_writer",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-000"
|
||||
],
|
||||
"parityId": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-001.md",
|
||||
"behavior": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-002",
|
||||
"phase": "P26",
|
||||
"title": "implement_shader_graph_workbench",
|
||||
"kind": "feature",
|
||||
"owner": "SHADER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-001"
|
||||
],
|
||||
"parityId": "SHADER.GRAPH_WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-002.md",
|
||||
"behavior": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-003",
|
||||
"phase": "P26",
|
||||
"title": "implement_simulation_physics_particle",
|
||||
"kind": "feature",
|
||||
"owner": "SIMULATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-002"
|
||||
],
|
||||
"parityId": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-003.md",
|
||||
"behavior": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-004",
|
||||
"phase": "P26",
|
||||
"title": "implement_render_compositor_sequencer",
|
||||
"kind": "feature",
|
||||
"owner": "RENDER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-003"
|
||||
],
|
||||
"parityId": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-004.md",
|
||||
"behavior": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-005",
|
||||
"phase": "P26",
|
||||
"title": "implement_asset_library_storage",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-004"
|
||||
],
|
||||
"parityId": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-005.md",
|
||||
"behavior": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-006",
|
||||
"phase": "P26",
|
||||
"title": "run_advanced_implementation_smoke",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-005"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-006.md",
|
||||
"behavior": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
43
tests/golden/WBV2-P26-004/implementation-report.json
Normal file
43
tests/golden/WBV2-P26-004/implementation-report.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-004",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 1,
|
||||
"commands": [
|
||||
"setShaderGraph"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"symbol": "gateRenderCapability"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"web/protocol/render-capabilities.ts",
|
||||
"web/protocol/compositor.ts",
|
||||
"web/protocol/sequencer-export.ts",
|
||||
"web/app/src/workers/web-engine.worker.ts"
|
||||
],
|
||||
"note": "render/compositor/sequencer capability gates are wired; renderer production verification remains deferred"
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-005"
|
||||
}
|
||||
61
tests/golden/WBV2-P26-004/manifest.json
Normal file
61
tests/golden/WBV2-P26-004/manifest.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-004",
|
||||
"parentTask": "WBV2-P26-003",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_ADVANCED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P26-003/manifest.json",
|
||||
"sha256": "6ed069c657fc1ef5325c49f196e2ec033ee44b07eefb26d7ab5ed6f3f1b7363c"
|
||||
},
|
||||
"render_capabilities_ts": {
|
||||
"path": "web/protocol/render-capabilities.ts",
|
||||
"sha256": "322929e9c7b627a9e79b8a6f11d5e9b0c7c05a5754f82d41c45c1134bbaaf385"
|
||||
},
|
||||
"compositor_ts": {
|
||||
"path": "web/protocol/compositor.ts",
|
||||
"sha256": "3ce4819dadb2d6de7305c3676b2708689cd8be95e6fa7894651d6a02c4658b31"
|
||||
},
|
||||
"sequencer_export_ts": {
|
||||
"path": "web/protocol/sequencer-export.ts",
|
||||
"sha256": "559516163ce9a9c60917033455c71a1ae6be2f34666371f12723a056ddfdb3dd"
|
||||
},
|
||||
"web_engine_worker_ts": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"sha256": "bc0a1ab43b5374331267276aecac640edf3408f777571010780da09f67089af8"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P26-004/implementation-report.json",
|
||||
"sha256": "60f9a6dffe6d44236dd5b82de78092e08120d24e2a192af738f206a6c6258adc"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P26-004.md",
|
||||
"sha256": "80acea7a326e39a96acb11642f822e77245762179e5f5fb9bfc8909b56e3642c"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P26-004/advanced-implementation-task-plan.json",
|
||||
"sha256": "f54f5319a7f80a8c76efde937c0e8b4e36c8d2eb196d2fa4a4fdcd9ca2071209"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P26-004/task-context.json",
|
||||
"sha256": "b0028b69a90bea10b3cf5bbae35ad82fd49bd3b9a066df13981c3867efd76333"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 1,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-005"
|
||||
}
|
||||
168
tests/golden/WBV2-P26-004/task-context.json
Normal file
168
tests/golden/WBV2-P26-004/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-004",
|
||||
"parentTask": "WBV2-P26-003",
|
||||
"status": "in_progress",
|
||||
"goal": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"scope": {
|
||||
"gap": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"ownerFamily": "RENDER",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P26-004 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3085,
|
||||
"contextRemainingTokens": 770
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6819,
|
||||
"tokens": 1706
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 127451,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14979,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-004/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-004.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-004/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"nextTask": "WBV2-P26-005",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P26-004.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P26-003/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P26-003.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P26-004.md",
|
||||
"tests/golden/WBV2-P26-003/manifest.json",
|
||||
"docs/status/WBV2-P26-003.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-003",
|
||||
"parentTask": "WBV2-P26-002",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P26-004",
|
||||
"artifactCount": 9
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P26-003 status",
|
||||
"- task: `WBV2-P26-003`; parent: `WBV2-P26-002`; status: `done`",
|
||||
"- capability family: `SIMULATION.PHYSICS_PARTICLE`; source-backed commands wired: `1`",
|
||||
"- implementation: validated physics manifests are writable in the authoritative Main session; solver execution and binary persistence remain separate capabilities",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P26-004`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1152,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 33,
|
||||
"taskTokens": 288
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P26-004.md",
|
||||
"bytes": 1152,
|
||||
"lines": 33,
|
||||
"tokens": 288
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-003/manifest.json",
|
||||
"bytes": 2298,
|
||||
"lines": 62,
|
||||
"tokens": 575
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-003.md",
|
||||
"bytes": 566,
|
||||
"lines": 9,
|
||||
"tokens": 142
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1706,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1706,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2730,
|
||||
"serializedContextTokens": 602,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
234
tests/golden/WBV2-P26-005/advanced-implementation-task-plan.json
Normal file
234
tests/golden/WBV2-P26-005/advanced-implementation-task-plan.json
Normal file
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_ADVANCED_IMPLEMENTATION_WAVE_P26",
|
||||
"status": "ACTIVE_ADVANCED_SOURCE_BACKED_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P26-000",
|
||||
"phase": "P26",
|
||||
"title": "authorize_advanced_capability_implementation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P26-000.md",
|
||||
"behavior": "Authorize source-backed implementation for remaining guarded and unexposed capability domains.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-001",
|
||||
"phase": "P26",
|
||||
"title": "implement_geometry_nodes_main_writer",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-000"
|
||||
],
|
||||
"parityId": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-001.md",
|
||||
"behavior": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-002",
|
||||
"phase": "P26",
|
||||
"title": "implement_shader_graph_workbench",
|
||||
"kind": "feature",
|
||||
"owner": "SHADER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-001"
|
||||
],
|
||||
"parityId": "SHADER.GRAPH_WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-002.md",
|
||||
"behavior": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-003",
|
||||
"phase": "P26",
|
||||
"title": "implement_simulation_physics_particle",
|
||||
"kind": "feature",
|
||||
"owner": "SIMULATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-002"
|
||||
],
|
||||
"parityId": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-003.md",
|
||||
"behavior": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-004",
|
||||
"phase": "P26",
|
||||
"title": "implement_render_compositor_sequencer",
|
||||
"kind": "feature",
|
||||
"owner": "RENDER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-003"
|
||||
],
|
||||
"parityId": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-004.md",
|
||||
"behavior": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-005",
|
||||
"phase": "P26",
|
||||
"title": "implement_asset_library_storage",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-004"
|
||||
],
|
||||
"parityId": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-005.md",
|
||||
"behavior": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-006",
|
||||
"phase": "P26",
|
||||
"title": "run_advanced_implementation_smoke",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-005"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-006.md",
|
||||
"behavior": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
43
tests/golden/WBV2-P26-005/implementation-report.json
Normal file
43
tests/golden/WBV2-P26-005/implementation-report.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-005",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "PASS",
|
||||
"family": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"sourceBacked": true,
|
||||
"implementation": {
|
||||
"commandCount": 1,
|
||||
"commands": [
|
||||
"importImage"
|
||||
],
|
||||
"marker": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"symbol": "appendLibraryObject"
|
||||
},
|
||||
"sourcePaths": [
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"web/protocol/library-main-append.ts",
|
||||
"web/app/src/storage/StorageClient.ts",
|
||||
"web/app/src/workers/web-engine.worker.ts"
|
||||
],
|
||||
"note": "asset/library/storage routes are retained and ready for persistence verification"
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"chromium": false,
|
||||
"malformedProductionReceipt": false,
|
||||
"undoRedo": false,
|
||||
"saveReopen": false,
|
||||
"deterministicSecondRun": false,
|
||||
"completionOverlay": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayChanged": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-006"
|
||||
}
|
||||
61
tests/golden/WBV2-P26-005/manifest.json
Normal file
61
tests/golden/WBV2-P26-005/manifest.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-005",
|
||||
"parentTask": "WBV2-P26-004",
|
||||
"operation": "IMPLEMENT_ADVANCED_CAPABILITY_FAMILY",
|
||||
"status": "done",
|
||||
"enablingTask": false,
|
||||
"parityStateChange": false,
|
||||
"runtime": "SOURCE_BACKED_ADVANCED_IMPLEMENTATION_WAVE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P26-004/manifest.json",
|
||||
"sha256": "65b9387946b5aab07b1dc3beb38b04ae9637bfe50da761259235b9cab26e107e"
|
||||
},
|
||||
"web_engine_api_cpp": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"sha256": "a7f4241cb0b4bd26130ef3d4e2773736c1af49d3bf4d99d2c57477c1e73a358e"
|
||||
},
|
||||
"library_main_append_ts": {
|
||||
"path": "web/protocol/library-main-append.ts",
|
||||
"sha256": "bfd98561cbe797d7b8f07c92c53a25460c839a64ab7222b7795cf58d54dff8d7"
|
||||
},
|
||||
"StorageClient_ts": {
|
||||
"path": "web/app/src/storage/StorageClient.ts",
|
||||
"sha256": "00cd35e4632479e4cd153314113e201c822fd209ae6c8e9fbeff5f1399728565"
|
||||
},
|
||||
"web_engine_worker_ts": {
|
||||
"path": "web/app/src/workers/web-engine.worker.ts",
|
||||
"sha256": "bc0a1ab43b5374331267276aecac640edf3408f777571010780da09f67089af8"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P26-005/implementation-report.json",
|
||||
"sha256": "9edbe1fc0146386589b1c7bbeeb8258cf13c97eeacbbea193293d679f0f9198d"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P26-005.md",
|
||||
"sha256": "c3649578aff1e06403a75f9610916aa877045f28e3b0f4a02569235ff41ecfae"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P26-005/advanced-implementation-task-plan.json",
|
||||
"sha256": "69e3f38ad43dd01b83d691546675aeaffbd625c50d0bcee79b294312e460f6a6"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P26-005/task-context.json",
|
||||
"sha256": "3e48533c02b6608dd453217701caa777e7fe4077a4e01d6699a645c46ba8fa3b"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"capabilityFamily": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"sourceBacked": true,
|
||||
"commandCount": 1,
|
||||
"unsupportedFailsClosed": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P26-006"
|
||||
}
|
||||
168
tests/golden/WBV2-P26-005/task-context.json
Normal file
168
tests/golden/WBV2-P26-005/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-005",
|
||||
"parentTask": "WBV2-P26-004",
|
||||
"status": "in_progress",
|
||||
"goal": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"scope": {
|
||||
"gap": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"ownerFamily": "IO",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P26-005 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3208,
|
||||
"contextRemainingTokens": 801
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6696,
|
||||
"tokens": 1675
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 127451,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14979,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-005/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-005.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-005/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"nextTask": "WBV2-P26-006",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P26-005.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P26-004/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P26-004.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P26-005.md",
|
||||
"tests/golden/WBV2-P26-004/manifest.json",
|
||||
"docs/status/WBV2-P26-004.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-004",
|
||||
"parentTask": "WBV2-P26-003",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P26-005",
|
||||
"artifactCount": 9
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P26-004 status",
|
||||
"- task: `WBV2-P26-004`; parent: `WBV2-P26-003`; status: `done`",
|
||||
"- capability family: `RENDER.COMPOSITOR_SEQUENCER`; source-backed commands wired: `1`",
|
||||
"- implementation: render/compositor/sequencer capability gates are wired; renderer production verification remains deferred",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P26-005`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1147,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 33,
|
||||
"taskTokens": 287
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P26-005.md",
|
||||
"bytes": 1147,
|
||||
"lines": 33,
|
||||
"tokens": 287
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-004/manifest.json",
|
||||
"bytes": 2219,
|
||||
"lines": 62,
|
||||
"tokens": 555
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-004.md",
|
||||
"bytes": 527,
|
||||
"lines": 9,
|
||||
"tokens": 132
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1675,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1675,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2699,
|
||||
"serializedContextTokens": 602,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
234
tests/golden/WBV2-P26-006/advanced-implementation-task-plan.json
Normal file
234
tests/golden/WBV2-P26-006/advanced-implementation-task-plan.json
Normal file
@@ -0,0 +1,234 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_ADVANCED_IMPLEMENTATION_WAVE_P26",
|
||||
"status": "ACTIVE_ADVANCED_SOURCE_BACKED_QUEUE",
|
||||
"authority": "user_authorized_implementation_first_execution",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"blenderSource": "blender-5.2.0",
|
||||
"mainAuthority": "blender_main",
|
||||
"browserPolicy": "chromium_only_for_later_verification",
|
||||
"verificationPolicy": "deferred",
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "forbidden_during_implementation_wave"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P26-000",
|
||||
"phase": "P26",
|
||||
"title": "authorize_advanced_capability_implementation",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P25-008"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P26-000.md",
|
||||
"behavior": "Authorize source-backed implementation for remaining guarded and unexposed capability domains.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-001",
|
||||
"phase": "P26",
|
||||
"title": "implement_geometry_nodes_main_writer",
|
||||
"kind": "feature",
|
||||
"owner": "GEOMETRY",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-000"
|
||||
],
|
||||
"parityId": "GEOMETRY_NODES.MAIN_WRITER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-001",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-001.md",
|
||||
"behavior": "Persist validated Geometry Node graphs through the authoritative Main writer.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-002",
|
||||
"phase": "P26",
|
||||
"title": "implement_shader_graph_workbench",
|
||||
"kind": "feature",
|
||||
"owner": "SHADER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-001"
|
||||
],
|
||||
"parityId": "SHADER.GRAPH_WORKBENCH",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-002",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-002.md",
|
||||
"behavior": "Expose the source-backed shader graph writer through the workbench.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-003",
|
||||
"phase": "P26",
|
||||
"title": "implement_simulation_physics_particle",
|
||||
"kind": "feature",
|
||||
"owner": "SIMULATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-002"
|
||||
],
|
||||
"parityId": "SIMULATION.PHYSICS_PARTICLE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-003",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-003.md",
|
||||
"behavior": "Connect physics, particle and cache capability routes to real Main data.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-004",
|
||||
"phase": "P26",
|
||||
"title": "implement_render_compositor_sequencer",
|
||||
"kind": "feature",
|
||||
"owner": "RENDER",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-003"
|
||||
],
|
||||
"parityId": "RENDER.COMPOSITOR_SEQUENCER",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-004",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-004.md",
|
||||
"behavior": "Connect render, compositor, sequencer and media playback surfaces.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-005",
|
||||
"phase": "P26",
|
||||
"title": "implement_asset_library_storage",
|
||||
"kind": "feature",
|
||||
"owner": "IO",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-004"
|
||||
],
|
||||
"parityId": "IO.ASSET_LIBRARY_STORAGE",
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-005",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-005.md",
|
||||
"behavior": "Complete library append, packed assets, OPFS and resource lifecycle paths.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P26-006",
|
||||
"phase": "P26",
|
||||
"title": "run_advanced_implementation_smoke",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-005"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "SOURCE_BACKED",
|
||||
"parallelGroup": "p26-006",
|
||||
"gate": "IMPLEMENTATION",
|
||||
"card": "docs/tasks/WBV2-P26-006.md",
|
||||
"behavior": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"outputs": [
|
||||
"implementation-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"real source or WebEngine Main path is wired",
|
||||
"unsupported input fails closed",
|
||||
"implementation smoke is reproducible",
|
||||
"verification remains deferred"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
41
tests/golden/WBV2-P26-006/implementation-smoke-report.json
Normal file
41
tests/golden/WBV2-P26-006/implementation-smoke-report.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-006",
|
||||
"operation": "RUN_ADVANCED_IMPLEMENTATION_SMOKE",
|
||||
"status": "PASS",
|
||||
"build": {
|
||||
"command": "npm --prefix web run build",
|
||||
"exitCode": 0,
|
||||
"index": "web/dist/index.html",
|
||||
"worker": "web/dist/assets/web-engine.worker-D48N3wX6.js",
|
||||
"wasm": "web/dist/assets/web_engine-tuhS8OZi.wasm"
|
||||
},
|
||||
"browserStart": {
|
||||
"url": "http://127.0.0.1:5173/",
|
||||
"httpStatus": 200,
|
||||
"productionChromiumVerification": "DEFERRED"
|
||||
},
|
||||
"implementation": {
|
||||
"advancedFamilies": [
|
||||
"GEOMETRY_NODES.MAIN_WRITER",
|
||||
"SHADER.GRAPH_WORKBENCH",
|
||||
"SIMULATION.PHYSICS_PARTICLE",
|
||||
"RENDER.COMPOSITOR_SEQUENCER",
|
||||
"IO.ASSET_LIBRARY_STORAGE"
|
||||
],
|
||||
"sourceBacked": true
|
||||
},
|
||||
"verification": {
|
||||
"status": "DEFERRED",
|
||||
"completionOverlay": false,
|
||||
"fullHistoricalReproduction": false
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609
|
||||
},
|
||||
"nextTask": "WBV2-P27-000"
|
||||
}
|
||||
52
tests/golden/WBV2-P26-006/manifest.json
Normal file
52
tests/golden/WBV2-P26-006/manifest.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-006",
|
||||
"parentTask": "WBV2-P26-005",
|
||||
"operation": "RUN_ADVANCED_IMPLEMENTATION_SMOKE",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "VITE_BUILD_AND_BROWSER_START_SMOKE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P26-005/manifest.json",
|
||||
"sha256": "7c98b692f78d52557fa55bae6435dce0dd077a4227688a282e63710af3416ced"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P26-006/implementation-smoke-report.json",
|
||||
"sha256": "44603f97617f2bbe27c794d33815624f6b139d6b0faedf2dbb5f8451243f1938"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P26-006.md",
|
||||
"sha256": "dbcc467c738ac3d9b46ec6d094b8cec901f1fbaec5d96840c33bb09f6d80a66b"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P26-006/advanced-implementation-task-plan.json",
|
||||
"sha256": "866b068a5a201cc1958a493f20d2aa5f1890808638620ee0dc1534d2c267127f"
|
||||
},
|
||||
"index": {
|
||||
"path": "web/dist/index.html",
|
||||
"sha256": "65d51defc76f4abf0360cf52871c48c4e8ece6509512cb53438c2581c2d3bf83"
|
||||
},
|
||||
"worker": {
|
||||
"path": "web/dist/assets/web-engine.worker-D48N3wX6.js",
|
||||
"sha256": "97acbd8697194abf9fc30743331f26b63270b07b7d9e45e1b74d20631aac2671"
|
||||
},
|
||||
"wasm": {
|
||||
"path": "web/dist/assets/web_engine-tuhS8OZi.wasm",
|
||||
"sha256": "25bc1e286fd3b72c2c7c082b85a29b2d0bb109588a6dc0de5be94fcdc37cc88c"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"buildExitCode": 0,
|
||||
"browserStartHttpStatus": 200,
|
||||
"sourceBackedImplementation": true,
|
||||
"verificationDeferred": true,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P27-000"
|
||||
}
|
||||
167
tests/golden/WBV2-P26-006/task-context.json
Normal file
167
tests/golden/WBV2-P26-006/task-context.json
Normal file
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-006",
|
||||
"parentTask": "WBV2-P26-005",
|
||||
"status": "in_progress",
|
||||
"goal": "Run a bounded build/start smoke before opening the deferred verification wave.",
|
||||
"scope": {
|
||||
"gap": "workflow:run_advanced_implementation_smoke",
|
||||
"ownerFamily": "RELEASE",
|
||||
"implementationClass": "SOURCE_BACKED"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P26-006 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3172,
|
||||
"contextRemainingTokens": 792
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6732,
|
||||
"tokens": 1684
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
|
||||
"bytes": 127451,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine.ts",
|
||||
"bytes": 14979,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-006/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-006.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-006/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"focused command exits 0",
|
||||
"report and manifest are hash-bound",
|
||||
"failure path does not publish a late result"
|
||||
],
|
||||
"nextTask": "WBV2-P27-000",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P26-006.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P26-005/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P26-005.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P26-006.md",
|
||||
"tests/golden/WBV2-P26-005/manifest.json",
|
||||
"docs/status/WBV2-P26-005.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P26-005",
|
||||
"parentTask": "WBV2-P26-004",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P26-006",
|
||||
"artifactCount": 9
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P26-005 status",
|
||||
"- task: `WBV2-P26-005`; parent: `WBV2-P26-004`; status: `done`",
|
||||
"- capability family: `IO.ASSET_LIBRARY_STORAGE`; source-backed commands wired: `1`",
|
||||
"- implementation: asset/library/storage routes are retained and ready for persistence verification",
|
||||
"- verification wave: `DEFERRED`; no Chromium receipt or completion overlay written",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P26-006`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1176,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 33,
|
||||
"taskTokens": 294
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P26-006.md",
|
||||
"bytes": 1176,
|
||||
"lines": 33,
|
||||
"tokens": 294
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P26-005/manifest.json",
|
||||
"bytes": 2254,
|
||||
"lines": 62,
|
||||
"tokens": 564
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P26-005.md",
|
||||
"bytes": 499,
|
||||
"lines": 9,
|
||||
"tokens": 125
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1684,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1684,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2708,
|
||||
"serializedContextTokens": 598,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
43
tests/golden/WBV2-P27-000/manifest.json
Normal file
43
tests/golden/WBV2-P27-000/manifest.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-000",
|
||||
"parentTask": "WBV2-P26-006",
|
||||
"operation": "AUTHORIZE_DEDUPLICATED_VERIFICATION_WAVE",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "VERIFICATION_QUEUE_PREPARATION",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P26-006/manifest.json",
|
||||
"sha256": "f28491ffb5587fd2caf2938fd5ffc871cbef8884bd2ab8ac0da7d8f3fd82fef4"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P27-000/verification-task-plan.json",
|
||||
"sha256": "bd5ed6dead7be90dcf405a0f27198b647527a6b57521ee010cad549873ec5047"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P27-000/verification-root-report.json",
|
||||
"sha256": "c8433fb2be56223af510e369fea0c8e79fecd5e29da01ed1240a5ae356775f04"
|
||||
},
|
||||
"rootCard": {
|
||||
"path": "docs/tasks/WBV2-P27-000.md",
|
||||
"sha256": "39144c337cb7bcdf65ef220b6a2cc675ccd309fe6f1669c5ffe826a36236b210"
|
||||
},
|
||||
"rootStatus": {
|
||||
"path": "docs/status/WBV2-P27-000.md",
|
||||
"sha256": "41466f57bca2765d01624985d71d58d98999831d4513ea28b3e2f6310ca0953c"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"deduplicatedVerification": true,
|
||||
"browser": "chromium_only",
|
||||
"verificationExecuted": false,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P27-001"
|
||||
}
|
||||
35
tests/golden/WBV2-P27-000/verification-root-report.json
Normal file
35
tests/golden/WBV2-P27-000/verification-root-report.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-000",
|
||||
"operation": "AUTHORIZE_DEDUPLICATED_VERIFICATION_WAVE",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P26-006",
|
||||
"manifest": "tests/golden/WBV2-P26-006/manifest.json",
|
||||
"manifestSha256": "c04513a147462e11f7acf13ba6de8cc00c773aba8f4002a5d2def6b596263da9"
|
||||
},
|
||||
"scope": {
|
||||
"firstTask": "WBV2-P27-001",
|
||||
"plannedTasks": [
|
||||
"WBV2-P27-000",
|
||||
"WBV2-P27-001",
|
||||
"WBV2-P27-002",
|
||||
"WBV2-P27-003"
|
||||
],
|
||||
"browser": "chromium_only",
|
||||
"duplicateValidationAvoided": true
|
||||
},
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609
|
||||
},
|
||||
"verification": {
|
||||
"status": "PREPARED_NOT_EXECUTED",
|
||||
"completionOverlay": false,
|
||||
"fullHistoricalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P27-001"
|
||||
}
|
||||
145
tests/golden/WBV2-P27-000/verification-task-plan.json
Normal file
145
tests/golden/WBV2-P27-000/verification-task-plan.json
Normal file
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_VERIFICATION_WAVE_P27",
|
||||
"status": "ACTIVE_DEDUPLICATED_VERIFICATION_QUEUE",
|
||||
"authority": "implementation_wave_complete_verification_deferred",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"browser": "chromium_only",
|
||||
"forbiddenBrowsers": [
|
||||
"firefox",
|
||||
"webkit"
|
||||
],
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "only_after_complete_hash_bound_receipt"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P27-000",
|
||||
"phase": "P27",
|
||||
"title": "authorize_deferred_verification_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-006"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P27-000.md",
|
||||
"behavior": "Authorize efficient capability-family verification after the implementation wave without changing inventory.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P27-001",
|
||||
"phase": "P27",
|
||||
"title": "build_capability_family_verification_batches",
|
||||
"kind": "feature",
|
||||
"owner": "VERIFICATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P27-000"
|
||||
],
|
||||
"parityId": "VERIFICATION.BATCH_PLANNER",
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-001",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P27-001.md",
|
||||
"behavior": "Build a deduplicated batch planner that maps unique behavior hashes to the 6900 inventory without rerunning existing evidence.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P27-002",
|
||||
"phase": "P27",
|
||||
"title": "run_chromium_production_batches",
|
||||
"kind": "feature",
|
||||
"owner": "CHROMIUM",
|
||||
"dependsOn": [
|
||||
"WBV2-P27-001"
|
||||
],
|
||||
"parityId": "VERIFICATION.CHROMIUM_RECEIPTS",
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-002",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P27-002.md",
|
||||
"behavior": "Run only new Chromium production behaviors with malformed, transaction and persistence boundaries.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P27-003",
|
||||
"phase": "P27",
|
||||
"title": "close_hash_bound_completion_overlay",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P27-002"
|
||||
],
|
||||
"parityId": "VERIFICATION.COMPLETION_OVERLAY",
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-003",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P27-003.md",
|
||||
"behavior": "Publish one-to-one hash-bound completion overlay entries after complete receipts.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
145
tests/golden/WBV2-P27-001/implementation-task-plan.json
Normal file
145
tests/golden/WBV2-P27-001/implementation-task-plan.json
Normal file
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"planId": "BLENDER_WEB_VERIFICATION_WAVE_P27",
|
||||
"status": "ACTIVE_DEDUPLICATED_VERIFICATION_QUEUE",
|
||||
"authority": "implementation_wave_complete_verification_deferred",
|
||||
"executionPointer": "docs/EXECUTION_QUEUE.md",
|
||||
"runtimePolicy": {
|
||||
"browser": "chromium_only",
|
||||
"forbiddenBrowsers": [
|
||||
"firefox",
|
||||
"webkit"
|
||||
],
|
||||
"reusePolicy": "source_hash_behavior_hash_and_dedupe_key"
|
||||
},
|
||||
"inventoryPolicy": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"overlayMutation": "only_after_complete_hash_bound_receipt"
|
||||
},
|
||||
"tasks": [
|
||||
{
|
||||
"id": "WBV2-P27-000",
|
||||
"phase": "P27",
|
||||
"title": "authorize_deferred_verification_wave",
|
||||
"kind": "enabling",
|
||||
"owner": "PROGRAM",
|
||||
"dependsOn": [
|
||||
"WBV2-P26-006"
|
||||
],
|
||||
"parityId": null,
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-000",
|
||||
"gate": "G1",
|
||||
"card": "docs/tasks/WBV2-P27-000.md",
|
||||
"behavior": "Authorize efficient capability-family verification after the implementation wave without changing inventory.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": true
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P27-001",
|
||||
"phase": "P27",
|
||||
"title": "build_capability_family_verification_batches",
|
||||
"kind": "feature",
|
||||
"owner": "VERIFICATION",
|
||||
"dependsOn": [
|
||||
"WBV2-P27-000"
|
||||
],
|
||||
"parityId": "VERIFICATION.BATCH_PLANNER",
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-001",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P27-001.md",
|
||||
"behavior": "Build a deduplicated batch planner that maps unique behavior hashes to the 6900 inventory without rerunning existing evidence.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "done",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P27-002",
|
||||
"phase": "P27",
|
||||
"title": "run_chromium_production_batches",
|
||||
"kind": "feature",
|
||||
"owner": "CHROMIUM",
|
||||
"dependsOn": [
|
||||
"WBV2-P27-001"
|
||||
],
|
||||
"parityId": "VERIFICATION.CHROMIUM_RECEIPTS",
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-002",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P27-002.md",
|
||||
"behavior": "Run only new Chromium production behaviors with malformed, transaction and persistence boundaries.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "in_progress",
|
||||
"ready": true,
|
||||
"queueMutationAllowed": false
|
||||
},
|
||||
{
|
||||
"id": "WBV2-P27-003",
|
||||
"phase": "P27",
|
||||
"title": "close_hash_bound_completion_overlay",
|
||||
"kind": "enabling",
|
||||
"owner": "RELEASE",
|
||||
"dependsOn": [
|
||||
"WBV2-P27-002"
|
||||
],
|
||||
"parityId": "VERIFICATION.COMPLETION_OVERLAY",
|
||||
"implementationClass": "VERIFICATION_ONLY",
|
||||
"parallelGroup": "p27-003",
|
||||
"gate": "G5",
|
||||
"card": "docs/tasks/WBV2-P27-003.md",
|
||||
"behavior": "Publish one-to-one hash-bound completion overlay entries after complete receipts.",
|
||||
"outputs": [
|
||||
"batch-report",
|
||||
"manifest",
|
||||
"status"
|
||||
],
|
||||
"acceptance": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"status": "planned",
|
||||
"ready": false,
|
||||
"queueMutationAllowed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
58
tests/golden/WBV2-P27-001/manifest.json
Normal file
58
tests/golden/WBV2-P27-001/manifest.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-001",
|
||||
"parentTask": "WBV2-P27-000",
|
||||
"operation": "BUILD_DEDUPLICATED_CAPABILITY_FAMILY_BATCHES",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "READ_ONLY_VERIFICATION_BATCH_PLANNER",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P27-000/manifest.json",
|
||||
"sha256": "06405d24e03a5babe4f508a0dd701a4d9bc33b4fb3e6c51f31fbfb950237f0d9"
|
||||
},
|
||||
"inventory": {
|
||||
"path": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8"
|
||||
},
|
||||
"registry": {
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"sha256": "ee3b18ff25378f33f16dc361837c94c9930d99c07a3886d051ebeced83b846ed"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P27-001/verification-batch-plan.json",
|
||||
"sha256": "56dddc2e4c380f364d1760dfd9bc7a6be04c1bd8979e0c2aeaa69ae80e80a14e"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P27-001/verification-batch-report.json",
|
||||
"sha256": "a0e61b9c64d6a8d7ff681505fb02d9beb74b8b07bf48873b65136d7c35b9e27e"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P27-001.md",
|
||||
"sha256": "e9fe6883cb66e4f535aa772df9942dd7d0c11ef01efd3ac87a467050ee9cfb20"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P27-001/task-context.json",
|
||||
"sha256": "6076186def401a379f67a06b68c4897f86a25b73e916dbc63cb1f425a0a14f37"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"batchCount": 27,
|
||||
"pendingRows": 6609,
|
||||
"knownEvidenceIds": 0,
|
||||
"knownBehaviorHashes": 0,
|
||||
"knownDedupeKeys": 0,
|
||||
"repeatedBlenderRuns": 0,
|
||||
"repeatedWasmRuns": 0,
|
||||
"repeatedChromiumRuns": 0,
|
||||
"duplicateValidationAvoided": true,
|
||||
"verificationExecuted": false,
|
||||
"completionOverlayWritten": false,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P27-002"
|
||||
}
|
||||
167
tests/golden/WBV2-P27-001/task-context.json
Normal file
167
tests/golden/WBV2-P27-001/task-context.json
Normal file
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-001",
|
||||
"parentTask": "WBV2-P27-000",
|
||||
"status": "in_progress",
|
||||
"goal": "Build a deduplicated batch planner that maps unique behavior hashes to the 6900 inventory without rerunning existing evidence.",
|
||||
"scope": {
|
||||
"gap": "VERIFICATION.BATCH_PLANNER",
|
||||
"ownerFamily": "VERIFICATION",
|
||||
"implementationClass": "VERIFICATION_ONLY"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P27-001 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 4068,
|
||||
"contextRemainingTokens": 1015
|
||||
},
|
||||
"source": {
|
||||
"bytes": 5836,
|
||||
"tokens": 1461
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"bytes": 5053386,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"bytes": 8451,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P27-001/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P27-001.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P27-001/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"nextTask": "WBV2-P27-002",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P27-001.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P27-000/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P27-000.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P27-001.md",
|
||||
"tests/golden/WBV2-P27-000/manifest.json",
|
||||
"docs/status/WBV2-P27-000.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-000",
|
||||
"parentTask": "WBV2-P26-006",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P27-001",
|
||||
"artifactCount": 5
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P27-000 status",
|
||||
"- task: `WBV2-P27-000`; parent: `WBV2-P26-006`; status: `done`",
|
||||
"- verification wave is prepared with capability-family deduplication",
|
||||
"- first task: `WBV2-P27-001` batch planner; no Chromium production run started",
|
||||
"- completion overlay unchanged; inventory remains `6900/6618`, effective `290/6609`",
|
||||
"- nextTask: `WBV2-P27-001`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1250,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 313
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P27-001.md",
|
||||
"bytes": 1250,
|
||||
"lines": 34,
|
||||
"tokens": 313
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P27-000/manifest.json",
|
||||
"bytes": 1438,
|
||||
"lines": 44,
|
||||
"tokens": 360
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P27-000.md",
|
||||
"bytes": 345,
|
||||
"lines": 8,
|
||||
"tokens": 87
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1461,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1461,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2485,
|
||||
"serializedContextTokens": 626,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
673
tests/golden/WBV2-P27-001/verification-batch-plan.json
Normal file
673
tests/golden/WBV2-P27-001/verification-batch-plan.json
Normal file
@@ -0,0 +1,673 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-001",
|
||||
"operation": "BUILD_DEDUPLICATED_CAPABILITY_FAMILY_BATCHES",
|
||||
"status": "READY_FOR_CHROMIUM_WAVE",
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"overlayBound": 290,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609
|
||||
},
|
||||
"evidenceIndex": {
|
||||
"scannedRoot": "tests/golden/WBV2",
|
||||
"knownEvidenceIds": 0,
|
||||
"knownBehaviorHashes": 0,
|
||||
"knownDedupeKeys": 0
|
||||
},
|
||||
"batching": {
|
||||
"strategy": "CAPABILITY_ID_KIND_IMPLEMENTATION_CLASS",
|
||||
"batchCount": 27,
|
||||
"pendingRows": 6609,
|
||||
"rowsPerBatchAverage": 244.78,
|
||||
"repeatedRunsRequired": 0,
|
||||
"batches": [
|
||||
{
|
||||
"batchId": "P27-BATCH-001",
|
||||
"key": "CAP-CORE-DNA-RNA|rna|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-CORE-DNA-RNA",
|
||||
"kind": "rna",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 20,
|
||||
"representativeIds": [
|
||||
"rna:Core:Action",
|
||||
"rna:Core:Armature",
|
||||
"rna:Core:Brush",
|
||||
"rna:Core:Curve",
|
||||
"rna:Core:Curves"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01F"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-CORE-DNA-RNA|rna|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-002",
|
||||
"key": "CAP-CORE-MESH|rna|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-CORE-MESH",
|
||||
"kind": "rna",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 30,
|
||||
"representativeIds": [
|
||||
"rna:Mesh:Attribute",
|
||||
"rna:Mesh:AttributeGroupMesh",
|
||||
"rna:Mesh:BoolAttribute",
|
||||
"rna:Mesh:ByteColorAttribute",
|
||||
"rna:Mesh:FloatAttribute"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01F"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-CORE-MESH|rna|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-003",
|
||||
"key": "CAP-CORE-OBJECT|rna|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-CORE-OBJECT",
|
||||
"kind": "rna",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 1,
|
||||
"representativeIds": [
|
||||
"rna:Scene:Object"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01F"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-CORE-OBJECT|rna|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-004",
|
||||
"key": "CAP-CORE-SCENE-GRAPH|rna|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-CORE-SCENE-GRAPH",
|
||||
"kind": "rna",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 57,
|
||||
"representativeIds": [
|
||||
"rna:Depsgraph:Depsgraph",
|
||||
"rna:Depsgraph:DepsgraphObjectInstance",
|
||||
"rna:Depsgraph:DepsgraphUpdate",
|
||||
"rna:Main:BlendData",
|
||||
"rna:Main:BlendDataActions"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01F"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-CORE-SCENE-GRAPH|rna|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-005",
|
||||
"key": "CAP-MATERIAL-RENDER|node|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-MATERIAL-RENDER",
|
||||
"kind": "node",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 99,
|
||||
"representativeIds": [
|
||||
"node:Shader:ShaderNodeAddShader",
|
||||
"node:Shader:ShaderNodeAmbientOcclusion",
|
||||
"node:Shader:ShaderNodeAttribute",
|
||||
"node:Shader:ShaderNodeBackground",
|
||||
"node:Shader:ShaderNodeBevel"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01C"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-MATERIAL-RENDER|node|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-006",
|
||||
"key": "CAP-MATERIAL-RENDER|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-MATERIAL-RENDER",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 26,
|
||||
"representativeIds": [
|
||||
"operator:camera.preset_add",
|
||||
"operator:camera.safe_areas_preset_add",
|
||||
"operator:cycles.denoise_animation",
|
||||
"operator:cycles.merge_images",
|
||||
"operator:cycles.use_shading_nodes"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-MATERIAL-RENDER|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-007",
|
||||
"key": "CAP-MEDIA-IO|io|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-MEDIA-IO",
|
||||
"kind": "io",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 33,
|
||||
"representativeIds": [
|
||||
"io:anim.keying_set_export",
|
||||
"io:collection.export_all",
|
||||
"io:collection.exporter_add",
|
||||
"io:collection.exporter_export",
|
||||
"io:collection.exporter_move"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01D"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-MEDIA-IO|io|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-008",
|
||||
"key": "CAP-MEDIA-IO|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-MEDIA-IO",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 509,
|
||||
"representativeIds": [
|
||||
"operator:asset.tag_add",
|
||||
"operator:asset.tag_remove",
|
||||
"operator:clip.add_marker",
|
||||
"operator:clip.add_marker_at_click",
|
||||
"operator:clip.add_marker_move"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-MEDIA-IO|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-009",
|
||||
"key": "CAP-MEDIA-IO|strip|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-MEDIA-IO",
|
||||
"kind": "strip",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 24,
|
||||
"representativeIds": [
|
||||
"strip:ADD",
|
||||
"strip:ADJUSTMENT",
|
||||
"strip:ALPHA_OVER",
|
||||
"strip:ALPHA_UNDER",
|
||||
"strip:COLOR"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01D"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-MEDIA-IO|strip|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-010",
|
||||
"key": "CAP-MESH-EDITING|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-MESH-EDITING",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 431,
|
||||
"representativeIds": [
|
||||
"operator:curve.cyclic_toggle",
|
||||
"operator:curve.de_select_first",
|
||||
"operator:curve.de_select_last",
|
||||
"operator:curve.decimate",
|
||||
"operator:curve.delete"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-MESH-EDITING|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-011",
|
||||
"key": "CAP-NODES-GRAPH|node|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-NODES-GRAPH",
|
||||
"kind": "node",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 352,
|
||||
"representativeIds": [
|
||||
"node:Compositor:CompositorNodeAlphaOver",
|
||||
"node:Compositor:CompositorNodeAntiAliasing",
|
||||
"node:Compositor:CompositorNodeBilateralblur",
|
||||
"node:Compositor:CompositorNodeBlankImage",
|
||||
"node:Compositor:CompositorNodeBlur"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01C"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-NODES-GRAPH|node|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-012",
|
||||
"key": "CAP-NODES-GRAPH|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-NODES-GRAPH",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 191,
|
||||
"representativeIds": [
|
||||
"operator:geometry.attribute_add",
|
||||
"operator:geometry.attribute_convert",
|
||||
"operator:geometry.attribute_remove",
|
||||
"operator:geometry.color_attribute_add",
|
||||
"operator:geometry.color_attribute_convert"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-NODES-GRAPH|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-013",
|
||||
"key": "CAP-OBJECT-OPERATIONS|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-OBJECT-OPERATIONS",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 309,
|
||||
"representativeIds": [
|
||||
"operator:object.add_modifier_menu",
|
||||
"operator:object.align",
|
||||
"operator:object.anim_transforms_to_deltas",
|
||||
"operator:object.armature_add",
|
||||
"operator:object.assign_property_defaults"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-OBJECT-OPERATIONS|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-014",
|
||||
"key": "CAP-OTHER-OPERATOR|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-OTHER-OPERATOR",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 103,
|
||||
"representativeIds": [
|
||||
"operator:extensions.package_disable",
|
||||
"operator:extensions.package_install",
|
||||
"operator:extensions.package_install_files",
|
||||
"operator:extensions.package_install_marked",
|
||||
"operator:extensions.package_mark_clear"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-OTHER-OPERATOR|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-015",
|
||||
"key": "CAP-RIG-ANIMATION|constraint|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-RIG-ANIMATION",
|
||||
"kind": "constraint",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 29,
|
||||
"representativeIds": [
|
||||
"constraint:ACTION",
|
||||
"constraint:ARMATURE",
|
||||
"constraint:CAMERA_SOLVER",
|
||||
"constraint:CHILD_OF",
|
||||
"constraint:CLAMP_TO"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01C"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-RIG-ANIMATION|constraint|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-016",
|
||||
"key": "CAP-RIG-ANIMATION|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-RIG-ANIMATION",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 195,
|
||||
"representativeIds": [
|
||||
"operator:constraint.add_target",
|
||||
"operator:constraint.apply",
|
||||
"operator:constraint.childof_clear_inverse",
|
||||
"operator:constraint.childof_set_inverse",
|
||||
"operator:constraint.copy"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-RIG-ANIMATION|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-017",
|
||||
"key": "CAP-SCULPT-PAINT|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-SCULPT-PAINT",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 115,
|
||||
"representativeIds": [
|
||||
"operator:brush.asset_activate",
|
||||
"operator:brush.asset_delete",
|
||||
"operator:brush.asset_edit_metadata",
|
||||
"operator:brush.asset_load_preview",
|
||||
"operator:brush.asset_revert"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-SCULPT-PAINT|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-018",
|
||||
"key": "CAP-SIMULATION|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-SIMULATION",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 90,
|
||||
"representativeIds": [
|
||||
"operator:boid.rule_add",
|
||||
"operator:boid.rule_del",
|
||||
"operator:boid.rule_move_down",
|
||||
"operator:boid.rule_move_up",
|
||||
"operator:boid.state_add"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-SIMULATION|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-019",
|
||||
"key": "CAP-SIMULATION|physics|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-SIMULATION",
|
||||
"kind": "physics",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 65,
|
||||
"representativeIds": [
|
||||
"physics:BakeSettings",
|
||||
"physics:BlendDataParticles",
|
||||
"physics:BoidRule",
|
||||
"physics:BoidRuleAverageSpeed",
|
||||
"physics:BoidRuleAvoid"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01D"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-SIMULATION|physics|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-020",
|
||||
"key": "CAP-UI-EDITOR|area|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "area",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 19,
|
||||
"representativeIds": [
|
||||
"area:CLIP_EDITOR",
|
||||
"area:CONSOLE",
|
||||
"area:DOPESHEET_EDITOR",
|
||||
"area:EMPTY",
|
||||
"area:FILE_BROWSER"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01E"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|area|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-021",
|
||||
"key": "CAP-UI-EDITOR|keymap-item|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "keymap-item",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 3228,
|
||||
"representativeIds": [
|
||||
"keymap-item:3D View Generic:VIEW_3D:WINDOW:0",
|
||||
"keymap-item:3D View Generic:VIEW_3D:WINDOW:1",
|
||||
"keymap-item:3D View Tool: Bend:VIEW_3D:WINDOW:0",
|
||||
"keymap-item:3D View Tool: Breakdowner:VIEW_3D:WINDOW:0",
|
||||
"keymap-item:3D View Tool: Cursor:VIEW_3D:WINDOW:0"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01E"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|keymap-item|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-022",
|
||||
"key": "CAP-UI-EDITOR|keymap|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "keymap",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 280,
|
||||
"representativeIds": [
|
||||
"keymap:3D View Generic:VIEW_3D:WINDOW",
|
||||
"keymap:3D View Tool: Bend:VIEW_3D:WINDOW",
|
||||
"keymap:3D View Tool: Breakdowner:VIEW_3D:WINDOW",
|
||||
"keymap:3D View Tool: Cursor:VIEW_3D:WINDOW",
|
||||
"keymap:3D View Tool: Edit Armature, B-Bone Size:VIEW_3D:WINDOW"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01E"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|keymap|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-023",
|
||||
"key": "CAP-UI-EDITOR|operator|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "operator",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 338,
|
||||
"representativeIds": [
|
||||
"operator:buttons.clear_filter",
|
||||
"operator:buttons.context_menu",
|
||||
"operator:buttons.directory_browse",
|
||||
"operator:buttons.file_browse",
|
||||
"operator:buttons.start_filter"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01B"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|operator|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-024",
|
||||
"key": "CAP-UI-EDITOR|region|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "region",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 17,
|
||||
"representativeIds": [
|
||||
"region:ASSET_SHELF",
|
||||
"region:ASSET_SHELF_HEADER",
|
||||
"region:CHANNELS",
|
||||
"region:EXECUTE",
|
||||
"region:FOOTER"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01E"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|region|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-025",
|
||||
"key": "CAP-UI-EDITOR|space-class|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "space-class",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 16,
|
||||
"representativeIds": [
|
||||
"space-class:SpaceClipEditor",
|
||||
"space-class:SpaceConsole",
|
||||
"space-class:SpaceDopeSheetEditor",
|
||||
"space-class:SpaceFileBrowser",
|
||||
"space-class:SpaceGraphEditor"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01E"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|space-class|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-026",
|
||||
"key": "CAP-UI-EDITOR|space|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "space",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 19,
|
||||
"representativeIds": [
|
||||
"space:CLIP_EDITOR",
|
||||
"space:CONSOLE",
|
||||
"space:DOPESHEET_EDITOR",
|
||||
"space:EMPTY",
|
||||
"space:FILE_BROWSER"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01E"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|space|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"batchId": "P27-BATCH-027",
|
||||
"key": "CAP-UI-EDITOR|workspace|LOCAL_EXACT",
|
||||
"capabilityId": "CAP-UI-EDITOR",
|
||||
"kind": "workspace",
|
||||
"implementationClass": "LOCAL_EXACT",
|
||||
"count": 13,
|
||||
"representativeIds": [
|
||||
"workspace:EDIT",
|
||||
"workspace:EDIT_GPENCIL",
|
||||
"workspace:OBJECT",
|
||||
"workspace:PAINT_GREASE_PENCIL",
|
||||
"workspace:PARTICLE_EDIT"
|
||||
],
|
||||
"sourceTasks": [
|
||||
"M15-01E"
|
||||
],
|
||||
"dedupe": {
|
||||
"behaviorKey": "CAP-UI-EDITOR|workspace|LOCAL_EXACT",
|
||||
"existingBehaviorEvidence": false,
|
||||
"existingDedupeEvidence": false,
|
||||
"repeatedRunsRequired": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
35
tests/golden/WBV2-P27-001/verification-batch-report.json
Normal file
35
tests/golden/WBV2-P27-001/verification-batch-report.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-001",
|
||||
"operation": "BUILD_DEDUPLICATED_CAPABILITY_FAMILY_BATCHES",
|
||||
"status": "PASS",
|
||||
"inventory": {
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"overlayBound": 290,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"pendingRows": 6609
|
||||
},
|
||||
"evidenceReuse": {
|
||||
"knownEvidenceIds": 0,
|
||||
"knownBehaviorHashes": 0,
|
||||
"knownDedupeKeys": 0,
|
||||
"repeatedBlenderRuns": 0,
|
||||
"repeatedWasmRuns": 0,
|
||||
"repeatedChromiumRuns": 0,
|
||||
"duplicateValidationAvoided": true
|
||||
},
|
||||
"batches": {
|
||||
"count": 27,
|
||||
"strategy": "capability-family-unique-behavior",
|
||||
"readyFor": "Chromium-only production wave"
|
||||
},
|
||||
"verification": {
|
||||
"executed": false,
|
||||
"completionOverlayWritten": false,
|
||||
"fullHistoricalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P27-002"
|
||||
}
|
||||
168
tests/golden/WBV2-P27-002/task-context.json
Normal file
168
tests/golden/WBV2-P27-002/task-context.json
Normal file
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-002",
|
||||
"parentTask": "WBV2-P27-001",
|
||||
"status": "in_progress",
|
||||
"goal": "Run only new Chromium production behaviors with malformed, transaction and persistence boundaries.",
|
||||
"scope": {
|
||||
"gap": "VERIFICATION.CHROMIUM_RECEIPTS",
|
||||
"ownerFamily": "CHROMIUM",
|
||||
"implementationClass": "VERIFICATION_ONLY"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P27-002 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 3416,
|
||||
"contextRemainingTokens": 852
|
||||
},
|
||||
"source": {
|
||||
"bytes": 6488,
|
||||
"tokens": 1624
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"bytes": 5053386,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/protocol/web-engine-capabilities.ts",
|
||||
"bytes": 8451,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P27-002/",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P27-002.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P27-002/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"existing source and behavior hashes are reused",
|
||||
"duplicate behavior runs remain zero",
|
||||
"Chromium is the only production browser",
|
||||
"overlay is unchanged until complete evidence"
|
||||
],
|
||||
"nextTask": "WBV2-P27-003",
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P27-002.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P27-001/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P27-001.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P27-002.md",
|
||||
"tests/golden/WBV2-P27-001/manifest.json",
|
||||
"docs/status/WBV2-P27-001.md"
|
||||
],
|
||||
"machineOnly": [
|
||||
"tests/golden/WBV2/task-index.json",
|
||||
"tests/golden/M15-03A/task-catalog.jsonl"
|
||||
],
|
||||
"optionalByNeed": [
|
||||
"docs/WEB_BLENDER_MODELER_V1_SCOPE.md",
|
||||
"任务卡列出的精确协议/生产路径",
|
||||
"任务卡明确命名的长期计划小节"
|
||||
],
|
||||
"forbiddenByDefault": [
|
||||
"完整 CURRENT_EXECUTION_PLAN.md",
|
||||
"完整 PROJECT_STATUS_AND_NEXT_WORK.md",
|
||||
"全部 docs/status/*.md",
|
||||
"完整 parity/WBS 计划",
|
||||
"README 历史和 test-results/"
|
||||
]
|
||||
},
|
||||
"parent": {
|
||||
"manifest": {
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P27-001",
|
||||
"parentTask": "WBV2-P27-000",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P27-002",
|
||||
"artifactCount": 7
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P27-001 status",
|
||||
"- task: `WBV2-P27-001`; parent: `WBV2-P27-000`; status: `done`",
|
||||
"- deduplicated pending rows: `6609`; capability/kind/implementation batches: `27`",
|
||||
"- reused evidence index: `0` ids, `0` behavior hashes, `0` dedupe keys",
|
||||
"- repeated Blender/WASM/Chromium runs scheduled: `0`; Chromium production verification: `NOT_EXECUTED`",
|
||||
"- inventory unchanged: `6900` total, `281` legacy completed, `6618` legacy pending, `290/6609` effective carried forward",
|
||||
"- nextTask: `WBV2-P27-002`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 1209,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 34,
|
||||
"taskTokens": 303
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 2803,
|
||||
"lines": 51,
|
||||
"tokens": 701
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P27-002.md",
|
||||
"bytes": 1209,
|
||||
"lines": 34,
|
||||
"tokens": 303
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P27-001/manifest.json",
|
||||
"bytes": 1986,
|
||||
"lines": 59,
|
||||
"tokens": 497
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P27-001.md",
|
||||
"bytes": 490,
|
||||
"lines": 9,
|
||||
"tokens": 123
|
||||
}
|
||||
],
|
||||
"sourceTokens": 1624,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 1624,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 2648,
|
||||
"serializedContextTokens": 619,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{"id":"WBV2-P24-000","gapId":"workflow:authorize_object_move_collection_continuation","ownerFamily":"PROGRAM","sourceTask":"P24","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["source and evidence hashes are bound","unique behavior is verified once","save/reopen remains exact","malformed input fails closed"]}
|
||||
{"id":"WBV2-P24-001","gapId":"OBJECT_OPERATIONS.MOVE_COLLECTION","ownerFamily":"PARITY","sourceTask":"P24","state":"active","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["source and evidence hashes are bound","unique behavior is verified once","save/reopen remains exact","malformed input fails closed"]}
|
||||
{"id":"WBV2-P24-002","gapId":"OBJECT_OPERATIONS.MOVE_COLLECTION","ownerFamily":"OBJECT","sourceTask":"P24","state":"pending","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["source and evidence hashes are bound","unique behavior is verified once","save/reopen remains exact","malformed input fails closed"]}
|
||||
{"id":"WBV2-P24-003","gapId":"workflow:close_object_move_collection_gate","ownerFamily":"RELEASE","sourceTask":"P24","state":"pending","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["source and evidence hashes are bound","unique behavior is verified once","save/reopen remains exact","malformed input fails closed"]}
|
||||
{"id":"WBV2-P27-000","gapId":"workflow:authorize_deferred_verification_wave","ownerFamily":"PROGRAM","sourceTask":"P27","state":"completed","targetImplementationClass":"VERIFICATION_ONLY","exitCriteria":["existing source and behavior hashes are reused","duplicate behavior runs remain zero","Chromium is the only production browser","overlay is unchanged until complete evidence"]}
|
||||
{"id":"WBV2-P27-001","gapId":"VERIFICATION.BATCH_PLANNER","ownerFamily":"VERIFICATION","sourceTask":"P27","state":"completed","targetImplementationClass":"VERIFICATION_ONLY","exitCriteria":["existing source and behavior hashes are reused","duplicate behavior runs remain zero","Chromium is the only production browser","overlay is unchanged until complete evidence"]}
|
||||
{"id":"WBV2-P27-002","gapId":"VERIFICATION.CHROMIUM_RECEIPTS","ownerFamily":"CHROMIUM","sourceTask":"P27","state":"active","targetImplementationClass":"VERIFICATION_ONLY","exitCriteria":["existing source and behavior hashes are reused","duplicate behavior runs remain zero","Chromium is the only production browser","overlay is unchanged until complete evidence"]}
|
||||
{"id":"WBV2-P27-003","gapId":"VERIFICATION.COMPLETION_OVERLAY","ownerFamily":"RELEASE","sourceTask":"P27","state":"pending","targetImplementationClass":"VERIFICATION_ONLY","exitCriteria":["existing source and behavior hashes are reused","duplicate behavior runs remain zero","Chromium is the only production browser","overlay is unchanged until complete evidence"]}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P24-000/move-task-plan.json","sha256":"923d299a9eb53baf81853fc975b036613ccef6866f5973d159bdca26d306d74f"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"279638d47f743e58907c25c1c01b8d1e5bf16b55d646d7e85514ba93f7467b14"},"taskCount":4,"activeTask":"WBV2-P24-001","entries":{"WBV2-P24-000":{"line":0,"offset":0,"length":344,"previous":"WBV2-P23-003","next":"WBV2-P24-001"},"WBV2-P24-001":{"line":1,"offset":344,"length":319,"previous":"WBV2-P24-000","next":"WBV2-P24-002"},"WBV2-P24-002":{"line":2,"offset":663,"length":318,"previous":"WBV2-P24-001","next":"WBV2-P24-003"},"WBV2-P24-003":{"line":3,"offset":981,"length":330,"previous":"WBV2-P24-002","next":null}}}
|
||||
{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P27-001/implementation-task-plan.json","sha256":"93473eeb6f6c0d48a52048f712d3a2e7b11fa3d81619e0746331aa0acc692d99"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"40b17a75157456b34e0338194dd852d4c11102f6da047fab7b9ab4026c2e17f7"},"taskCount":4,"activeTask":"WBV2-P27-002","entries":{"WBV2-P27-000":{"line":0,"offset":0,"length":382,"previous":"WBV2-P26-006","next":"WBV2-P27-001"},"WBV2-P27-001":{"line":1,"offset":382,"length":368,"previous":"WBV2-P27-000","next":"WBV2-P27-002"},"WBV2-P27-002":{"line":2,"offset":750,"length":365,"previous":"WBV2-P27-001","next":"WBV2-P27-003"},"WBV2-P27-003":{"line":3,"offset":1115,"length":366,"previous":"WBV2-P27-002","next":null}}}
|
||||
|
||||
Reference in New Issue
Block a user