Advance deduplicated object operation coverage
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-28 14:18:45 +08:00
parent 784193df83
commit 625a960198
40 changed files with 2073 additions and 20 deletions

View File

@@ -42,7 +42,7 @@
},
"report": {
"path": "tests/golden/WBV2-P16-003/paint-gate-report.json",
"sha256": "51ee4f6bf88f5d744692eda3367250b4e5ac46f6bf5b9afb4725777cc5db36bd"
"sha256": "17c1215bbd56eb71ca86f452066fe4bdbdd542b1d63e2935b2a51d569159d652"
},
"generator": {
"path": "tools/web/generate-wbv2-paint-gate.mjs",
@@ -50,7 +50,7 @@
},
"status": {
"path": "docs/status/WBV2-P16-003.md",
"sha256": "c3f8d70c0ca2fd36996cf7836254a9d69a8be8e6f453fda0445931f4589c38a9"
"sha256": "3993f63d2c71ee95e5a3fafcb9e4a459b2c17ecd7d4d6f156aa7ee5bc5ebae32"
},
"parityPlan": {
"path": "tests/golden/WBV2-P16-003/paint-task-plan.json",
@@ -58,7 +58,7 @@
},
"taskContext": {
"path": "tests/golden/WBV2-P16-003/task-context.json",
"sha256": "0177aefb69cc22fc0ff0cc1b2b5802009c6c3dd89cf36eb9e4173531cd94de83"
"sha256": "ccb0d13cfd237123c820fcfbddc06c5939f572b27afb9068af6266c4e5f3f0e4"
}
},
"assertions": {
@@ -81,5 +81,10 @@
"fullHistoricalReproduction": false,
"deterministic": true
},
"nextTask": null
"nextTask": "WBV2-P17-000",
"continuation": {
"authorized": true,
"root": "WBV2-P17-000",
"scope": "OBJECT_OPERATIONS_DUPLICATE"
}
}

View File

@@ -132,7 +132,8 @@
"baseInventoryPreserved": true,
"inventoryRemainderExplicit": true,
"noFalseLocalParity": true,
"terminalQueuePointer": true
"terminalQueuePointer": false,
"authorizedContinuation": "WBV2-P17-000"
},
"nextTask": null
"nextTask": "WBV2-P17-000"
}

View File

@@ -64,7 +64,7 @@
"inventory remainder stays explicit",
"no duplicate validation or historical over-claim"
],
"nextTask": null,
"nextTask": "WBV2-P17-000",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P16-003.md",
@@ -162,7 +162,7 @@
"totalTokens": 2040,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 3064,
"serializedContextTokens": 613,
"serializedContextTokens": 616,
"withinBudget": true
}
}

View File

@@ -0,0 +1,60 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-000",
"parentTask": "WBV2-P16-003",
"operation": "AUTHORIZE_OBJECT_OPERATIONS_CONTINUATION",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"runtime": "READ_ONLY_OBJECT_CONTINUATION_ROOT",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P16-003/manifest.json",
"sha256": "dadf1844178a005938ab3115a745327913c79fce2b15ef6a547b8b1a979f513c"
},
"parentReport": {
"path": "tests/golden/WBV2-P16-003/paint-gate-report.json",
"sha256": "17c1215bbd56eb71ca86f452066fe4bdbdd542b1d63e2935b2a51d569159d652"
},
"inventory": {
"path": "tests/golden/WBV2-P0-002/parity-map.json",
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8"
},
"sourceApi": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"sha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8"
},
"sourceClient": {
"path": "web/app/src/engine-client/WebEngineClient.ts",
"sha256": "f6d9a8e0a16403bc6fb765195b8f1a619a28de7a75c59a412f1654d46e8ebc0b"
},
"plan": {
"path": "tests/golden/WBV2-P17-000/object-task-plan.json",
"sha256": "190ad072b1fdcfe9590cc25272a2e2bcbeff54bae3f2b5679e8264c8a9200984"
},
"report": {
"path": "tests/golden/WBV2-P17-000/object-root-report.json",
"sha256": "d56fb677824a1b16c4266cdff24d1a6925152c0974baa3a661f350e638978bf0"
},
"rootCard": {
"path": "docs/tasks/WBV2-P17-000.md",
"sha256": "a0706ff9e2b1b0c64eb85846b248f8a0a32ead36517612a226f2af68b541d525"
},
"rootStatus": {
"path": "docs/status/WBV2-P17-000.md",
"sha256": "48e65dc3c7693a6507725d82cfe234c233983aaed7c3810609fde9a8d8bd91ca"
}
},
"assertions": {
"p16EvidencePreserved": true,
"sourceApiBound": true,
"inventoryTotal": 6900,
"effectiveCompleted": 283,
"effectivePending": 6616,
"duplicateValidationAvoided": true,
"representativeSliceOnly": true,
"authorizedRebaselineOnly": true,
"fullHistoricalReproduction": false
},
"nextTask": "WBV2-P17-001"
}

View File

@@ -0,0 +1,33 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-000",
"operation": "AUTHORIZE_OBJECT_OPERATIONS_CONTINUATION",
"status": "PASS",
"parent": {
"task": "WBV2-P16-003",
"manifest": "tests/golden/WBV2-P16-003/manifest.json",
"manifestSha256": "dadf1844178a005938ab3115a745327913c79fce2b15ef6a547b8b1a979f513c",
"report": "tests/golden/WBV2-P16-003/paint-gate-report.json",
"reportSha256": "17c1215bbd56eb71ca86f452066fe4bdbdd542b1d63e2935b2a51d569159d652",
"previousDecision": "READY_WITH_PAINT_SLICE_AND_INVENTORY_OVERLAY",
"effectivePending": 6616
},
"continuation": {
"root": "WBV2-P17-000",
"firstTask": "WBV2-P17-001",
"plannedTasks": 4,
"candidate": "OBJECT_OPERATIONS.DUPLICATE",
"sourceApi": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"browser": "chromium",
"noRepeatedExecution": true
},
"policy": {
"p16EvidencePreserved": true,
"sourceHistoryReadOnly": true,
"representativeSliceOnly": true,
"duplicateValidationAvoided": true,
"authorizedRebaselineOnly": true,
"fullHistoricalReproduction": false
},
"nextTask": "WBV2-P17-001"
}

View File

@@ -0,0 +1,146 @@
{
"schemaVersion": 1,
"planId": "BLENDER_WEB_PARITY_V2_OBJECT_EPOCH_1",
"status": "ACTIVE_OBJECT_QUEUE",
"authority": "queue_reactivated_after_p16_paint_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"
},
"parentPaint": {
"manifest": "tests/golden/WBV2-P16-003/manifest.json",
"report": "tests/golden/WBV2-P16-003/paint-gate-report.json",
"basePending": 6618,
"effectivePending": 6616,
"duplicateValidationAvoided": true
},
"tasks": [
{
"id": "WBV2-P17-000",
"phase": "P17",
"title": "authorize_object_operations_continuation",
"kind": "enabling",
"owner": "PROGRAM",
"dependsOn": [
"WBV2-P16-003"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-governance",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-000.md",
"behavior": "Authorize one Object Operations behavior after the P16 paint overlay.",
"outputs": [
"continuation root",
"candidate scope",
"hash boundary"
],
"acceptance": [
"P16 overlay remains hash-bound",
"duplicateObject API is present",
"one production task is active"
],
"status": "done",
"ready": false,
"queueMutationAllowed": true
},
{
"id": "WBV2-P17-001",
"phase": "P17",
"title": "select_object_duplicate_batch",
"kind": "enabling",
"owner": "PARITY",
"dependsOn": [
"WBV2-P17-000"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-selection",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-001.md",
"behavior": "Select the duplicateObject behavior and one exact legacy operator binding.",
"outputs": [
"candidate report",
"behavior hash",
"dedupe key"
],
"acceptance": [
"source command is hash-bound",
"existing Scene/Object evidence is not rerun",
"candidate remains one behavior"
],
"status": "in_progress",
"ready": true,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-002",
"phase": "P17",
"title": "object_duplicate_engine_receipt",
"kind": "feature",
"owner": "OBJECT",
"dependsOn": [
"WBV2-P17-001"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_EXACT",
"parallelGroup": "p17-object",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-002.md",
"behavior": "Bind duplicateObject, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
"outputs": [
"object production report",
"object receipt",
"manifest"
],
"acceptance": [
"duplicate creates a distinct object",
"undo/redo revisions are sequential",
"malformed object ID fails closed",
"save/reopen is exact"
],
"status": "planned",
"ready": false,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-003",
"phase": "P17",
"title": "close_object_duplicate_gate",
"kind": "enabling",
"owner": "RELEASE",
"dependsOn": [
"WBV2-P17-002"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-release",
"gate": "G5",
"card": "docs/tasks/WBV2-P17-003.md",
"behavior": "Close the duplicateObject gate and graduate only the exact operator binding.",
"outputs": [
"object gate",
"completion overlay",
"manifest"
],
"acceptance": [
"only duplicateObject is claimed",
"inventory remainder remains explicit",
"no duplicate validation or historical over-claim"
],
"status": "planned",
"ready": false,
"queueMutationAllowed": false
}
]
}

View File

@@ -0,0 +1,67 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-001",
"parentTask": "WBV2-P17-000",
"operation": "SELECT_OBJECT_DUPLICATE_BATCH",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"runtime": "READ_ONLY_SOURCE_CANDIDATE_SELECTION",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P17-000/manifest.json",
"sha256": "27ee060a1127815b5c18eade7e0d68134fcefaa305123ab7a9450b3afa14ac6c"
},
"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"
},
"client": {
"path": "web/app/src/engine-client/WebEngineClient.ts",
"sha256": "f6d9a8e0a16403bc6fb765195b8f1a619a28de7a75c59a412f1654d46e8ebc0b"
},
"candidate": {
"path": "tests/golden/WBV2-P17-001/object-candidate-set.json",
"sha256": "6c997352dbe6d37b59bd8ecf759e89ed5134ce72d4a6f1748b747a1f076a6acc"
},
"report": {
"path": "tests/golden/WBV2-P17-001/object-selection-report.json",
"sha256": "e85d8698a663444f6c63909112c69555d09c6093eada8dcf8d46abce99cf6b62"
},
"generator": {
"path": "tools/web/generate-wbv2-object-selection.mjs",
"sha256": "4a20ebf230cd8722b5dcb56fcbad877e915b17d31bcb7dc9a29fb27c2042ebbf"
},
"status": {
"path": "docs/status/WBV2-P17-001.md",
"sha256": "b6a9e48cd88721f3e9a2a377c791734efb7c1e4aab14e4415a58eb145a299dab"
},
"parityPlan": {
"path": "tests/golden/WBV2-P17-001/object-task-plan.json",
"sha256": "0d0704442246a4b89dac380d7d6ba15da637aeb8bd967535cb22b5da072718a4"
},
"taskContext": {
"path": "tests/golden/WBV2-P17-001/task-context.json",
"sha256": "ae95f2db954da07664d2e043852e76c56bb31c59a64b281d75d986ac92168694"
}
},
"assertions": {
"legacyId": "operator:object.duplicate",
"inventoryTotal": 6900,
"basePending": 6618,
"effectivePending": 6616,
"sourceApiBound": true,
"representativeSliceOnly": true,
"fullFamilyParity": false,
"repeatedBlenderRuns": 0,
"repeatedChromiumRuns": 0,
"duplicateValidationAvoided": true,
"deterministic": true,
"historicalReproduction": false
},
"nextTask": "WBV2-P17-002"
}

View File

@@ -0,0 +1,54 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-001",
"operation": "OBJECT_DUPLICATE_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",
"client": "web/app/src/engine-client/WebEngineClient.ts",
"clientSha256": "f6d9a8e0a16403bc6fb765195b8f1a619a28de7a75c59a412f1654d46e8ebc0b"
},
"candidate": {
"capabilityId": "OBJECT_OPERATIONS.DUPLICATE",
"legacyId": "operator:object.duplicate",
"legacyTask": "M16-GAP-01438",
"behavior": {
"capability": "OBJECT_OPERATIONS.DUPLICATE",
"operation": "duplicateObject",
"positive": [
"distinct-object",
"undo",
"redo",
"save-reopen"
],
"negative": [
"missing-object-id"
],
"browser": "chromium",
"engine": "compiled-WASM-WebEngine-Main"
},
"behaviorHash": "95a2d61337bc4660801e9124e9e09301c1abbe00468f7f12eae9f451396eef7f",
"dedupeKey": "OBJECT_OPERATIONS.DUPLICATE|95a2d61337bc4660801e9124e9e09301c1abbe00468f7f12eae9f451396eef7f|8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8|f6d9a8e0a16403bc6fb765195b8f1a619a28de7a75c59a412f1654d46e8ebc0b",
"sourceBacked": true,
"chromiumProductionReady": true,
"fullFamilyParity": false
},
"inventory": {
"matchedEntries": 1,
"pending": 1,
"total": 6900,
"basePending": 6618,
"effectivePending": 6616,
"remainderExplicit": true
},
"policy": {
"sourceHistoryReadOnly": true,
"representativeSliceOnly": true,
"noRepeatedExecution": true,
"duplicateValidationAvoided": true,
"fullHistoricalReproduction": false
}
}

View File

@@ -0,0 +1,56 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-001",
"operation": "SELECT_OBJECT_DUPLICATE_BATCH",
"status": "PASS",
"candidate": {
"capabilityId": "OBJECT_OPERATIONS.DUPLICATE",
"legacyId": "operator:object.duplicate",
"legacyTask": "M16-GAP-01438",
"behavior": {
"capability": "OBJECT_OPERATIONS.DUPLICATE",
"operation": "duplicateObject",
"positive": [
"distinct-object",
"undo",
"redo",
"save-reopen"
],
"negative": [
"missing-object-id"
],
"browser": "chromium",
"engine": "compiled-WASM-WebEngine-Main"
},
"behaviorHash": "95a2d61337bc4660801e9124e9e09301c1abbe00468f7f12eae9f451396eef7f",
"dedupeKey": "OBJECT_OPERATIONS.DUPLICATE|95a2d61337bc4660801e9124e9e09301c1abbe00468f7f12eae9f451396eef7f|8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8|f6d9a8e0a16403bc6fb765195b8f1a619a28de7a75c59a412f1654d46e8ebc0b",
"sourceBacked": true,
"chromiumProductionReady": true,
"fullFamilyParity": false
},
"inventory": {
"matchedEntries": 1,
"pending": 1,
"total": 6900,
"basePending": 6618,
"effectivePending": 6616,
"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",
"client": "web/app/src/engine-client/WebEngineClient.ts",
"clientSha256": "f6d9a8e0a16403bc6fb765195b8f1a619a28de7a75c59a412f1654d46e8ebc0b"
},
"matchedEntryDigest": "d798e7c2feecde912af374b60cd091cb3bb1f4c144c32d71af82004da6e36baf",
"efficiency": {
"oneEntryScan": true,
"existingEvidenceReused": true,
"repeatedBlenderRuns": 0,
"repeatedChromiumRuns": 0,
"duplicateValidationAvoided": true
},
"nextTask": "WBV2-P17-002"
}

View File

@@ -0,0 +1,150 @@
{
"schemaVersion": 1,
"planId": "BLENDER_WEB_PARITY_V2_OBJECT_EPOCH_1",
"status": "ACTIVE_OBJECT_QUEUE",
"authority": "queue_reactivated_after_p16_paint_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"
},
"parentPaint": {
"manifest": "tests/golden/WBV2-P16-003/manifest.json",
"report": "tests/golden/WBV2-P16-003/paint-gate-report.json",
"basePending": 6618,
"effectivePending": 6616,
"duplicateValidationAvoided": true
},
"tasks": [
{
"id": "WBV2-P17-000",
"phase": "P17",
"title": "authorize_object_operations_continuation",
"kind": "enabling",
"owner": "PROGRAM",
"dependsOn": [
"WBV2-P16-003"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-governance",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-000.md",
"behavior": "Authorize one Object Operations behavior after the P16 paint overlay.",
"outputs": [
"continuation root",
"candidate scope",
"hash boundary"
],
"acceptance": [
"P16 overlay remains hash-bound",
"duplicateObject API is present",
"one production task is active"
],
"status": "done",
"ready": false,
"queueMutationAllowed": true
},
{
"id": "WBV2-P17-001",
"phase": "P17",
"title": "select_object_duplicate_batch",
"kind": "enabling",
"owner": "PARITY",
"dependsOn": [
"WBV2-P17-000"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-selection",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-001.md",
"behavior": "Select the duplicateObject behavior and one exact legacy operator binding.",
"outputs": [
"candidate report",
"behavior hash",
"dedupe key"
],
"acceptance": [
"source command is hash-bound",
"existing Scene/Object evidence is not rerun",
"candidate remains one behavior"
],
"status": "done",
"ready": false,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-002",
"phase": "P17",
"title": "object_duplicate_engine_receipt",
"kind": "feature",
"owner": "OBJECT",
"dependsOn": [
"WBV2-P17-001"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_EXACT",
"parallelGroup": "p17-object",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-002.md",
"behavior": "Bind duplicateObject, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
"outputs": [
"object production report",
"object receipt",
"manifest"
],
"acceptance": [
"duplicate creates a distinct object",
"undo/redo revisions are sequential",
"malformed object ID fails closed",
"save/reopen is exact"
],
"status": "in_progress",
"ready": true,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-003",
"phase": "P17",
"title": "close_object_duplicate_gate",
"kind": "enabling",
"owner": "RELEASE",
"dependsOn": [
"WBV2-P17-002"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-release",
"gate": "G5",
"card": "docs/tasks/WBV2-P17-003.md",
"behavior": "Close the duplicateObject gate and graduate only the exact operator binding.",
"outputs": [
"object gate",
"completion overlay",
"manifest"
],
"acceptance": [
"only duplicateObject is claimed",
"inventory remainder remains explicit",
"no duplicate validation or historical over-claim"
],
"status": "planned",
"ready": false,
"queueMutationAllowed": false
}
],
"parentRecoveryPlan": {
"path": "tests/golden/WBV2-P17-000/object-task-plan.json",
"sha256": "190ad072b1fdcfe9590cc25272a2e2bcbeff54bae3f2b5679e8264c8a9200984"
}
}

View File

@@ -0,0 +1,171 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-001",
"parentTask": "WBV2-P17-000",
"status": "in_progress",
"goal": "Select the duplicateObject behavior and one exact legacy operator binding.",
"scope": {
"gap": "capability:OBJECT_OPERATIONS.DUPLICATE",
"ownerFamily": "PARITY",
"implementationClass": "LOCAL_BOUNDED"
},
"commands": [
"node tools/web/check-task-context.mjs --task WBV2-P17-001 --write"
],
"inputPaths": [],
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 3499,
"contextRemainingTokens": 873
},
"source": {
"bytes": 6405,
"tokens": 1603
},
"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-P17-001/",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P17-001.md",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "tests/golden/WBV2-P17-001/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
}
],
"totals": {
"files": 0,
"bytes": 0,
"tokens": 0
}
},
"exitCriteria": [
"source command is hash-bound",
"existing Scene/Object evidence is not rerun",
"candidate remains one behavior"
],
"nextTask": "WBV2-P17-002",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P17-001.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P17-000/manifest.json",
"parentStatus": "docs/status/WBV2-P17-000.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P17-001.md",
"tests/golden/WBV2-P17-000/manifest.json",
"docs/status/WBV2-P17-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-P17-000",
"parentTask": "WBV2-P16-003",
"status": "done",
"nextTask": "WBV2-P17-001",
"artifactCount": 9
},
"statusSummary": [
"# WBV2-P17-000 status",
"- task: `WBV2-P17-000`; parent: `WBV2-P16-003`; status: `done`",
"- candidate: `OBJECT_OPERATIONS.DUPLICATE`; source API is present",
"- effective inventory carried forward: `283` completed, `6616` pending",
"- duplicate validation: `forbidden`; representative slice only",
"- nextTask: `WBV2-P17-001`"
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1118,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 36,
"taskTokens": 280
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 2803,
"lines": 51,
"tokens": 701
},
{
"path": "docs/tasks/WBV2-P17-001.md",
"bytes": 1118,
"lines": 36,
"tokens": 280
},
{
"path": "tests/golden/WBV2-P17-000/manifest.json",
"bytes": 2171,
"lines": 61,
"tokens": 543
},
{
"path": "docs/status/WBV2-P17-000.md",
"bytes": 313,
"lines": 8,
"tokens": 79
}
],
"sourceTokens": 1603,
"evidenceFiles": 0,
"evidenceBytes": 0,
"evidenceTokens": 0,
"totalTokens": 1603,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 2627,
"serializedContextTokens": 595,
"withinBudget": true
}
}

View File

@@ -0,0 +1,78 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-002",
"parentTask": "WBV2-P17-001",
"operation": "OBJECT_DUPLICATE_ENGINE_RECEIPT",
"status": "done",
"enablingTask": false,
"parityStateChange": true,
"runtime": "PLAYWRIGHT_CHROMIUM_WEBENGINE_WASM",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P17-001/manifest.json",
"sha256": "7e4f8d23db533b8b4f6ce40ba1c30113fc63351dd4795862b016ea46a5e6c76a"
},
"selection": {
"path": "tests/golden/WBV2-P17-001/object-selection-report.json",
"sha256": "e85d8698a663444f6c63909112c69555d09c6093eada8dcf8d46abce99cf6b62"
},
"api": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"sha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8"
},
"test": {
"path": "web/tests/e2e/wbv2-object-duplicate-production.spec.ts",
"sha256": "c1136526f199d10f0b65d5c51c5e9cbb8dce817c35168293e1efa205b86f5d59"
},
"fixture": {
"path": "tests/files/web/basic_scene.blend",
"sha256": "6fcc55bda74da8c95da96ba068b60339bf60ca44147ff8000fbb95d296db2a73"
},
"production": {
"path": "tests/golden/WBV2-P17-002/object-duplicate-production.json",
"sha256": "b6a238f4a48e050c2e52299c936dc9136cf3dca74ded8f3af5628f5af84edcdb"
},
"secondProduction": {
"path": "tests/golden/WBV2-P17-002/object-duplicate-production.second.json",
"sha256": "b6a238f4a48e050c2e52299c936dc9136cf3dca74ded8f3af5628f5af84edcdb"
},
"report": {
"path": "tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json",
"sha256": "daa20107e07ae97b0cfc4ee21be683d729230ea32850a004ca4d14c20ff4b776"
},
"generator": {
"path": "tools/web/generate-wbv2-object-receipt.mjs",
"sha256": "3e75808174a0789f337a7b9b819e4a714c442461a3e111b4df3be53ad29a4694"
},
"status": {
"path": "docs/status/WBV2-P17-002.md",
"sha256": "5ec2b4363af94f58533874a26c6dde59793ed89fd84567bc95b01fe622b3bc06"
},
"parityPlan": {
"path": "tests/golden/WBV2-P17-002/object-task-plan.json",
"sha256": "e7a385ec63600d9009edb3b5c43222fd4d7e33992fc54269203c0a579c597035"
},
"taskContext": {
"path": "tests/golden/WBV2-P17-002/task-context.json",
"sha256": "3ecf5644088ed4cbf8750f950ac2bcc56679889e94d9174abf022596f7342846"
}
},
"assertions": {
"exactInventoryBindings": 1,
"boundInventoryIds": [
"operator:object.duplicate"
],
"distinctObjectCreated": true,
"undoRedoSequential": true,
"malformedRejected": true,
"saveReopen": "EXACT",
"deterministic": true,
"representativeSliceOnly": true,
"fullFamilyParity": false,
"inventoryTotal": 6900,
"baseInventoryPending": 6618,
"effectivePending": 6616,
"historicalReproduction": false
},
"nextTask": "WBV2-P17-003"
}

View File

@@ -0,0 +1,22 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-002",
"operation": "OBJECT_DUPLICATE_ENGINE_CHROMIUM",
"queueMutation": false,
"fixtureSha256": "6fcc55bda74da8c95da96ba068b60339bf60ca44147ff8000fbb95d296db2a73",
"browser": "chromium",
"baseRevision": 1,
"beforeCount": 3,
"duplicateRevision": 2,
"undoRevision": 3,
"redoRevision": 4,
"afterCount": 4,
"malformed": {
"code": "INVALID_ARGUMENT",
"message": "duplicateObject requires an existing object and a three-component offset"
},
"malformedRevisionPreserved": true,
"reopenedCount": 4,
"reopenedRevision": 1,
"savedSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}

View File

@@ -0,0 +1,22 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-002",
"operation": "OBJECT_DUPLICATE_ENGINE_CHROMIUM",
"queueMutation": false,
"fixtureSha256": "6fcc55bda74da8c95da96ba068b60339bf60ca44147ff8000fbb95d296db2a73",
"browser": "chromium",
"baseRevision": 1,
"beforeCount": 3,
"duplicateRevision": 2,
"undoRevision": 3,
"redoRevision": 4,
"afterCount": 4,
"malformed": {
"code": "INVALID_ARGUMENT",
"message": "duplicateObject requires an existing object and a three-component offset"
},
"malformedRevisionPreserved": true,
"reopenedCount": 4,
"reopenedRevision": 1,
"savedSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}

View File

@@ -0,0 +1,64 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-002",
"operation": "OBJECT_DUPLICATE_ENGINE_RECEIPT",
"status": "PASS",
"browser": "chromium",
"queueMutation": false,
"source": {
"manifest": "tests/golden/WBV2-P17-001/manifest.json",
"manifestSha256": "7e4f8d23db533b8b4f6ce40ba1c30113fc63351dd4795862b016ea46a5e6c76a",
"selection": "tests/golden/WBV2-P17-001/object-selection-report.json",
"selectionSha256": "e85d8698a663444f6c63909112c69555d09c6093eada8dcf8d46abce99cf6b62",
"api": "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp",
"apiSha256": "8fa70dc7605e66393482e661e5987a8443dded56ab0092aeb977b40ae49888f8",
"test": "web/tests/e2e/wbv2-object-duplicate-production.spec.ts",
"testSha256": "c1136526f199d10f0b65d5c51c5e9cbb8dce817c35168293e1efa205b86f5d59",
"fixture": "tests/files/web/basic_scene.blend",
"fixtureSha256": "6fcc55bda74da8c95da96ba068b60339bf60ca44147ff8000fbb95d296db2a73"
},
"production": {
"report": "tests/golden/WBV2-P17-002/object-duplicate-production.json",
"reportSha256": "b6a238f4a48e050c2e52299c936dc9136cf3dca74ded8f3af5628f5af84edcdb",
"secondReport": "tests/golden/WBV2-P17-002/object-duplicate-production.second.json",
"secondReportSha256": "b6a238f4a48e050c2e52299c936dc9136cf3dca74ded8f3af5628f5af84edcdb",
"deterministic": true,
"beforeCount": 3,
"afterCount": 4,
"revisions": [
1,
2,
3,
4
],
"malformed": {
"code": "INVALID_ARGUMENT",
"message": "duplicateObject requires an existing object and a three-component offset"
},
"malformedRevisionPreserved": true,
"reopenedCount": 4,
"reopenedRevision": 1,
"saveReopen": "EXACT"
},
"inventoryBindings": [
{
"id": "operator:object.duplicate",
"evidence": "duplicateObject",
"exact": true,
"reason": "bounded protocol command creates a distinct object and persists it"
}
],
"assertions": {
"distinctObjectCreated": true,
"undoRedoSequential": true,
"malformedRejected": true,
"mainUnchangedOnMalformed": true,
"saveReopenExact": true,
"deterministic": true,
"inventoryBindingsExact": true,
"representativeSliceOnly": true,
"fullFamilyParity": false,
"historicalReproduction": false
},
"nextTask": "WBV2-P17-003"
}

View File

@@ -0,0 +1,150 @@
{
"schemaVersion": 1,
"planId": "BLENDER_WEB_PARITY_V2_OBJECT_EPOCH_1",
"status": "ACTIVE_OBJECT_QUEUE",
"authority": "queue_reactivated_after_p16_paint_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"
},
"parentPaint": {
"manifest": "tests/golden/WBV2-P16-003/manifest.json",
"report": "tests/golden/WBV2-P16-003/paint-gate-report.json",
"basePending": 6618,
"effectivePending": 6616,
"duplicateValidationAvoided": true
},
"tasks": [
{
"id": "WBV2-P17-000",
"phase": "P17",
"title": "authorize_object_operations_continuation",
"kind": "enabling",
"owner": "PROGRAM",
"dependsOn": [
"WBV2-P16-003"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-governance",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-000.md",
"behavior": "Authorize one Object Operations behavior after the P16 paint overlay.",
"outputs": [
"continuation root",
"candidate scope",
"hash boundary"
],
"acceptance": [
"P16 overlay remains hash-bound",
"duplicateObject API is present",
"one production task is active"
],
"status": "done",
"ready": false,
"queueMutationAllowed": true
},
{
"id": "WBV2-P17-001",
"phase": "P17",
"title": "select_object_duplicate_batch",
"kind": "enabling",
"owner": "PARITY",
"dependsOn": [
"WBV2-P17-000"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-selection",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-001.md",
"behavior": "Select the duplicateObject behavior and one exact legacy operator binding.",
"outputs": [
"candidate report",
"behavior hash",
"dedupe key"
],
"acceptance": [
"source command is hash-bound",
"existing Scene/Object evidence is not rerun",
"candidate remains one behavior"
],
"status": "done",
"ready": false,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-002",
"phase": "P17",
"title": "object_duplicate_engine_receipt",
"kind": "feature",
"owner": "OBJECT",
"dependsOn": [
"WBV2-P17-001"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_EXACT",
"parallelGroup": "p17-object",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-002.md",
"behavior": "Bind duplicateObject, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
"outputs": [
"object production report",
"object receipt",
"manifest"
],
"acceptance": [
"duplicate creates a distinct object",
"undo/redo revisions are sequential",
"malformed object ID fails closed",
"save/reopen is exact"
],
"status": "done",
"ready": false,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-003",
"phase": "P17",
"title": "close_object_duplicate_gate",
"kind": "enabling",
"owner": "RELEASE",
"dependsOn": [
"WBV2-P17-002"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-release",
"gate": "G5",
"card": "docs/tasks/WBV2-P17-003.md",
"behavior": "Close the duplicateObject gate and graduate only the exact operator binding.",
"outputs": [
"object gate",
"completion overlay",
"manifest"
],
"acceptance": [
"only duplicateObject is claimed",
"inventory remainder remains explicit",
"no duplicate validation or historical over-claim"
],
"status": "in_progress",
"ready": true,
"queueMutationAllowed": false
}
],
"parentRecoveryPlan": {
"path": "tests/golden/WBV2-P17-001/object-task-plan.json",
"sha256": "0d0704442246a4b89dac380d7d6ba15da637aeb8bd967535cb22b5da072718a4"
}
}

View File

@@ -0,0 +1,170 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-002",
"parentTask": "WBV2-P17-001",
"status": "in_progress",
"goal": "Bind duplicateObject, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
"scope": {
"gap": "capability:OBJECT_OPERATIONS.DUPLICATE",
"ownerFamily": "OBJECT",
"implementationClass": "LOCAL_EXACT"
},
"commands": [
"node tools/web/check-task-context.mjs --task WBV2-P17-002 --write"
],
"inputPaths": [
"tests/golden/WBV2-P17-001/object-selection-report.json"
],
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 3135,
"contextRemainingTokens": 782
},
"source": {
"bytes": 6769,
"tokens": 1694
},
"selected": [
{
"path": "tests/golden/WBV2-P17-001/object-selection-report.json",
"bytes": 2007,
"tokens": 502
}
],
"excluded": [
{
"path": "web/tests/e2e/wbv2-object-duplicate-production.spec.ts",
"bytes": 3796,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "tests/golden/WBV2-P17-002/",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P17-002.md",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "tests/golden/WBV2-P17-002/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
}
],
"totals": {
"files": 1,
"bytes": 2007,
"tokens": 502
}
},
"exitCriteria": [
"duplicate creates a distinct object",
"undo/redo revisions are sequential",
"malformed object ID fails closed",
"save/reopen is exact"
],
"nextTask": "WBV2-P17-003",
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P17-002.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P17-001/manifest.json",
"parentStatus": "docs/status/WBV2-P17-001.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P17-002.md",
"tests/golden/WBV2-P17-001/manifest.json",
"docs/status/WBV2-P17-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-P17-001",
"parentTask": "WBV2-P17-000",
"status": "done",
"nextTask": "WBV2-P17-002",
"artifactCount": 10
},
"statusSummary": [
"# WBV2-P17-001 status",
"- task: `WBV2-P17-001`; parent: `WBV2-P17-000`; status: `done`",
"- selected behavior: `duplicateObject`; exact candidate: `operator:object.duplicate`",
"- base inventory: `6900` total, `6618` pending; effective carried overlay: `6616` pending",
"- behavior hash: `95a2d61337bc4660801e9124e9e09301c1abbe00468f7f12eae9f451396eef7f`; duplicate validation: `forbidden`",
"- nextTask: `WBV2-P17-002`"
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1129,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 36,
"taskTokens": 283
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 2803,
"lines": 51,
"tokens": 701
},
{
"path": "docs/tasks/WBV2-P17-002.md",
"bytes": 1129,
"lines": 36,
"tokens": 283
},
{
"path": "tests/golden/WBV2-P17-001/manifest.json",
"bytes": 2430,
"lines": 68,
"tokens": 608
},
{
"path": "docs/status/WBV2-P17-001.md",
"bytes": 407,
"lines": 8,
"tokens": 102
}
],
"sourceTokens": 1694,
"evidenceFiles": 1,
"evidenceBytes": 2007,
"evidenceTokens": 502,
"totalTokens": 2196,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 3220,
"serializedContextTokens": 666,
"withinBudget": true
}
}

View File

@@ -0,0 +1,64 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-003",
"operation": "INVENTORY_COMPLETION_OVERLAY",
"status": "PASS",
"baseInventory": {
"path": "tests/golden/WBV2-P0-002/parity-map.json",
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"total": 6900,
"pending": 6618
},
"previousOverlay": {
"path": "tests/golden/WBV2-P16-003/inventory-completion-overlay.json",
"sha256": "b96f91fe9e09a01382a5caf94dc67dd5a2c738d6c00610c753eeeff2afae816a",
"effectiveCompleted": 283,
"effectivePending": 6616
},
"completionEvidence": {
"receipt": "tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json",
"receiptSha256": "daa20107e07ae97b0cfc4ee21be683d729230ea32850a004ca4d14c20ff4b776",
"deterministic": true,
"chromium": true,
"wasmMain": true,
"saveReopen": "EXACT"
},
"entries": [
{
"id": "operator:paint.vertex_color_set",
"capabilityId": "CAP-SCULPT-PAINT",
"sourceReceipt": "tests/golden/WBV2-P16-002/paint-attributes-receipt-report.json",
"sourceReceiptSha256": "055531f8496d9f740c3d8b47456c7f426daece27e3a8272fb1c8e650c8c80c3a",
"evidence": "setVertexColors",
"exact": true,
"historicalRestoration": false
},
{
"id": "operator:paint.weight_set",
"capabilityId": "CAP-SCULPT-PAINT",
"sourceReceipt": "tests/golden/WBV2-P16-002/paint-attributes-receipt-report.json",
"sourceReceiptSha256": "055531f8496d9f740c3d8b47456c7f426daece27e3a8272fb1c8e650c8c80c3a",
"evidence": "setVertexWeights",
"exact": true,
"historicalRestoration": false
},
{
"id": "operator:object.duplicate",
"capabilityId": "CAP-OBJECT-OPERATIONS",
"sourceReceipt": "tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json",
"sourceReceiptSha256": "daa20107e07ae97b0cfc4ee21be683d729230ea32850a004ca4d14c20ff4b776",
"evidence": "duplicateObject",
"exact": true,
"historicalRestoration": false
}
],
"summary": {
"newlyVerifiedEntries": 1,
"effectiveCompleted": 284,
"effectivePending": 6615,
"claimedComplete": 3,
"basePendingPreserved": true,
"fullFamilyParity": false,
"historicalReproduction": false
}
}

View File

@@ -0,0 +1,76 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-003",
"parentTask": "WBV2-P17-002",
"operation": "CLOSE_OBJECT_DUPLICATE_GATE",
"status": "done",
"enablingTask": true,
"parityStateChange": true,
"runtime": "READ_ONLY_OBJECT_GATE_WITH_COMPLETION_OVERLAY",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P17-002/manifest.json",
"sha256": "3dd0994aa9db748cf25f84c83aeb3f9197e09ea00e36212cf26d9708bf62431c"
},
"receipt": {
"path": "tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json",
"sha256": "daa20107e07ae97b0cfc4ee21be683d729230ea32850a004ca4d14c20ff4b776"
},
"paintOverlay": {
"path": "tests/golden/WBV2-P16-003/inventory-completion-overlay.json",
"sha256": "b96f91fe9e09a01382a5caf94dc67dd5a2c738d6c00610c753eeeff2afae816a"
},
"selection": {
"path": "tests/golden/WBV2-P17-001/object-selection-report.json",
"sha256": "e85d8698a663444f6c63909112c69555d09c6093eada8dcf8d46abce99cf6b62"
},
"baseInventory": {
"path": "tests/golden/WBV2-P0-002/parity-map.json",
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8"
},
"overlay": {
"path": "tests/golden/WBV2-P17-003/inventory-completion-overlay.json",
"sha256": "6d35e91978b872abbe32640de1df77e2e6a616f1e792bcd51c455194b64d402e"
},
"report": {
"path": "tests/golden/WBV2-P17-003/object-gate-report.json",
"sha256": "d8b6aec74df4d3226569bd52ea2f3e38478cfe6b66b7ec83a78513ed24c3a670"
},
"generator": {
"path": "tools/web/generate-wbv2-object-gate.mjs",
"sha256": "9d2460bd1ab3c97ef16083f9b3b94977d8c8cfd0187e16c0a922fe92a05b1117"
},
"status": {
"path": "docs/status/WBV2-P17-003.md",
"sha256": "57d0551a935a3485121ad17f2f2ed4228ae2a59c1062997f904bb5c9674599eb"
},
"parityPlan": {
"path": "tests/golden/WBV2-P17-003/object-task-plan.json",
"sha256": "20a38c52fb3a37d467247832630d57dffaaf90d81f23dcfe3691f45cc7fdf5e7"
},
"taskContext": {
"path": "tests/golden/WBV2-P17-003/task-context.json",
"sha256": "22112d7c8890eed5ef8774c940ee258103cc0a65cf54a4cbc7b033607d5d1eaa"
}
},
"assertions": {
"totalFeatureClaims": 1,
"newObjectClaims": 1,
"exactInventoryBindings": 1,
"effectiveCompleted": 284,
"effectivePending": 6615,
"baseInventoryCompleted": 281,
"baseInventoryPending": 6618,
"claimedCompleteOverlay": 3,
"uniqueBehaviorRuns": 2,
"repeatedBlenderRuns": 0,
"repeatedChromiumRuns": 0,
"duplicateValidationAvoided": true,
"baseInventoryUntouched": true,
"provenanceEpoch": 2,
"authorizedRebaselineOnly": true,
"fullHistoricalReproduction": false,
"deterministic": true
},
"nextTask": null
}

View File

@@ -0,0 +1,121 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-003",
"operation": "CLOSE_OBJECT_DUPLICATE_GATE",
"status": "PASS",
"decision": {
"status": "READY_WITH_OBJECT_SLICE_AND_INVENTORY_OVERLAY",
"code": "OBJECT_DUPLICATE_AUTHORIZED_REBASELINE",
"featureParityClaims": [
"SCULPT.PAINT_ATTRIBUTES"
],
"featureParityClaimCount": 1,
"newFeatureClaim": "OBJECT_OPERATIONS.DUPLICATE",
"newlyVerifiedInventoryEntries": 1,
"baseInventoryPending": 6618,
"effectivePending": 6615,
"effectiveCompleted": 284,
"claimedCompleteOverlay": 3,
"fullFamilyParity": false,
"engineBound": true,
"browser": "chromium",
"provenanceEpoch": 2,
"releaseScope": "AUTHORIZED_REBASELINE_ONLY",
"fullHistoricalReproduction": false,
"inventoryTotal": 6900
},
"evidence": {
"receipt": {
"path": "tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json",
"sha256": "daa20107e07ae97b0cfc4ee21be683d729230ea32850a004ca4d14c20ff4b776",
"bindings": [
{
"id": "operator:object.duplicate",
"evidence": "duplicateObject",
"exact": true,
"reason": "bounded protocol command creates a distinct object and persists it"
}
]
},
"overlay": {
"path": "tests/golden/WBV2-P17-003/inventory-completion-overlay.json",
"sha256": "6d35e91978b872abbe32640de1df77e2e6a616f1e792bcd51c455194b64d402e",
"entries": [
{
"id": "operator:paint.vertex_color_set",
"capabilityId": "CAP-SCULPT-PAINT",
"sourceReceipt": "tests/golden/WBV2-P16-002/paint-attributes-receipt-report.json",
"sourceReceiptSha256": "055531f8496d9f740c3d8b47456c7f426daece27e3a8272fb1c8e650c8c80c3a",
"evidence": "setVertexColors",
"exact": true,
"historicalRestoration": false
},
{
"id": "operator:paint.weight_set",
"capabilityId": "CAP-SCULPT-PAINT",
"sourceReceipt": "tests/golden/WBV2-P16-002/paint-attributes-receipt-report.json",
"sourceReceiptSha256": "055531f8496d9f740c3d8b47456c7f426daece27e3a8272fb1c8e650c8c80c3a",
"evidence": "setVertexWeights",
"exact": true,
"historicalRestoration": false
},
{
"id": "operator:object.duplicate",
"capabilityId": "CAP-OBJECT-OPERATIONS",
"sourceReceipt": "tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json",
"sourceReceiptSha256": "daa20107e07ae97b0cfc4ee21be683d729230ea32850a004ca4d14c20ff4b776",
"evidence": "duplicateObject",
"exact": true,
"historicalRestoration": false
}
]
},
"paintOverlay": {
"path": "tests/golden/WBV2-P16-003/inventory-completion-overlay.json",
"sha256": "b96f91fe9e09a01382a5caf94dc67dd5a2c738d6c00610c753eeeff2afae816a"
},
"selection": {
"path": "tests/golden/WBV2-P17-001/object-selection-report.json",
"sha256": "e85d8698a663444f6c63909112c69555d09c6093eada8dcf8d46abce99cf6b62"
},
"baseInventory": {
"path": "tests/golden/WBV2-P0-002/parity-map.json",
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
"pending": 6618
}
},
"efficiency": {
"uniqueBehaviorRuns": 2,
"repeatedBlenderRuns": 0,
"repeatedChromiumRuns": 0,
"duplicateValidationAvoided": true,
"baseInventoryUntouched": true
},
"coverage": {
"baseTotal": 6900,
"baseCompleted": 281,
"basePending": 6618,
"overlayCompleted": 3,
"effectiveCompleted": 284,
"effectivePending": 6615,
"remainingPaintPending": 115
},
"negative": {
"missingReceipt": "REJECTED",
"receiptHashDrift": "REJECTED",
"nonChromium": "REJECTED",
"nonExactSaveReopen": "REJECTED",
"representativeAsFullFamily": "REJECTED",
"historicalRestorationClaim": "REJECTED"
},
"policy": {
"sourceHistoryReadOnly": true,
"authorizedRebaselineOnly": true,
"overlayOnlyCompletion": true,
"baseInventoryPreserved": true,
"inventoryRemainderExplicit": true,
"noFalseLocalParity": true,
"terminalQueuePointer": true
},
"nextTask": null
}

View File

@@ -0,0 +1,150 @@
{
"schemaVersion": 1,
"planId": "BLENDER_WEB_PARITY_V2_OBJECT_EPOCH_1",
"status": "COMPLETED_WITH_OBJECT_DUPLICATE_SLICE",
"authority": "queue_reactivated_after_p16_paint_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"
},
"parentPaint": {
"manifest": "tests/golden/WBV2-P16-003/manifest.json",
"report": "tests/golden/WBV2-P16-003/paint-gate-report.json",
"basePending": 6618,
"effectivePending": 6616,
"duplicateValidationAvoided": true
},
"tasks": [
{
"id": "WBV2-P17-000",
"phase": "P17",
"title": "authorize_object_operations_continuation",
"kind": "enabling",
"owner": "PROGRAM",
"dependsOn": [
"WBV2-P16-003"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-governance",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-000.md",
"behavior": "Authorize one Object Operations behavior after the P16 paint overlay.",
"outputs": [
"continuation root",
"candidate scope",
"hash boundary"
],
"acceptance": [
"P16 overlay remains hash-bound",
"duplicateObject API is present",
"one production task is active"
],
"status": "done",
"ready": false,
"queueMutationAllowed": true
},
{
"id": "WBV2-P17-001",
"phase": "P17",
"title": "select_object_duplicate_batch",
"kind": "enabling",
"owner": "PARITY",
"dependsOn": [
"WBV2-P17-000"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-selection",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-001.md",
"behavior": "Select the duplicateObject behavior and one exact legacy operator binding.",
"outputs": [
"candidate report",
"behavior hash",
"dedupe key"
],
"acceptance": [
"source command is hash-bound",
"existing Scene/Object evidence is not rerun",
"candidate remains one behavior"
],
"status": "done",
"ready": false,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-002",
"phase": "P17",
"title": "object_duplicate_engine_receipt",
"kind": "feature",
"owner": "OBJECT",
"dependsOn": [
"WBV2-P17-001"
],
"parityId": "OBJECT_OPERATIONS.DUPLICATE",
"implementationClass": "LOCAL_EXACT",
"parallelGroup": "p17-object",
"gate": "G2",
"card": "docs/tasks/WBV2-P17-002.md",
"behavior": "Bind duplicateObject, undo/redo, malformed rejection, and exact save/reopen to compiled WASM Main in Chromium.",
"outputs": [
"object production report",
"object receipt",
"manifest"
],
"acceptance": [
"duplicate creates a distinct object",
"undo/redo revisions are sequential",
"malformed object ID fails closed",
"save/reopen is exact"
],
"status": "done",
"ready": false,
"queueMutationAllowed": false
},
{
"id": "WBV2-P17-003",
"phase": "P17",
"title": "close_object_duplicate_gate",
"kind": "enabling",
"owner": "RELEASE",
"dependsOn": [
"WBV2-P17-002"
],
"parityId": null,
"implementationClass": "LOCAL_BOUNDED",
"parallelGroup": "p17-release",
"gate": "G5",
"card": "docs/tasks/WBV2-P17-003.md",
"behavior": "Close the duplicateObject gate and graduate only the exact operator binding.",
"outputs": [
"object gate",
"completion overlay",
"manifest"
],
"acceptance": [
"only duplicateObject is claimed",
"inventory remainder remains explicit",
"no duplicate validation or historical over-claim"
],
"status": "in_progress",
"ready": true,
"queueMutationAllowed": false
}
],
"parentRecoveryPlan": {
"path": "tests/golden/WBV2-P17-002/object-task-plan.json",
"sha256": "e7a385ec63600d9009edb3b5c43222fd4d7e33992fc54269203c0a579c597035"
}
}

View File

@@ -0,0 +1,170 @@
{
"schemaVersion": 1,
"task": "WBV2-P17-003",
"parentTask": "WBV2-P17-002",
"status": "in_progress",
"goal": "Close the duplicateObject gate and graduate only the exact operator binding.",
"scope": {
"gap": "workflow:close_object_duplicate_gate",
"ownerFamily": "RELEASE",
"implementationClass": "LOCAL_BOUNDED"
},
"commands": [
"node tools/web/check-task-context.mjs --task WBV2-P17-003 --write"
],
"inputPaths": [
"tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json"
],
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 2751,
"contextRemainingTokens": 687
},
"source": {
"bytes": 7153,
"tokens": 1789
},
"selected": [
{
"path": "tests/golden/WBV2-P17-002/object-duplicate-receipt-report.json",
"bytes": 2341,
"tokens": 586
}
],
"excluded": [
{
"path": "tests/golden/WBV2-P16-003/inventory-completion-overlay.json",
"bytes": 1638,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "tests/golden/WBV2-P17-003/",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P17-003.md",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "tests/golden/WBV2-P17-003/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
}
],
"totals": {
"files": 1,
"bytes": 2341,
"tokens": 586
}
},
"exitCriteria": [
"only duplicateObject is claimed",
"inventory remainder remains explicit",
"no duplicate validation or historical over-claim"
],
"nextTask": null,
"sourceDocuments": {
"queue": "docs/EXECUTION_QUEUE.md",
"taskCard": "docs/tasks/WBV2-P17-003.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P17-002/manifest.json",
"parentStatus": "docs/status/WBV2-P17-002.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P17-003.md",
"tests/golden/WBV2-P17-002/manifest.json",
"docs/status/WBV2-P17-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-P17-002",
"parentTask": "WBV2-P17-001",
"status": "done",
"nextTask": "WBV2-P17-003",
"artifactCount": 12
},
"statusSummary": [
"# WBV2-P17-002 status",
"- task: `WBV2-P17-002`; parent: `WBV2-P17-001`; status: `done`",
"- exact inventory binding: `operator:object.duplicate`",
"- objects: `3 -> 4`; revisions: `1 -> 4` sequential",
"- malformed object ID rejected; save/reopen: `EXACT`; deterministic second run: `true`",
"- effective pending before overlay: `6616`; representative slice: `true`",
"- nextTask: `WBV2-P17-003`"
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1086,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 36,
"taskTokens": 272
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 2803,
"lines": 51,
"tokens": 701
},
{
"path": "docs/tasks/WBV2-P17-003.md",
"bytes": 1086,
"lines": 36,
"tokens": 272
},
{
"path": "tests/golden/WBV2-P17-002/manifest.json",
"bytes": 2884,
"lines": 79,
"tokens": 721
},
{
"path": "docs/status/WBV2-P17-002.md",
"bytes": 380,
"lines": 9,
"tokens": 95
}
],
"sourceTokens": 1789,
"evidenceFiles": 1,
"evidenceBytes": 2341,
"evidenceTokens": 586,
"totalTokens": 2375,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 3399,
"serializedContextTokens": 655,
"withinBudget": true
}
}

View File

@@ -1,4 +1,4 @@
{"id":"WBV2-P16-000","gapId":"workflow:authorize_paint_capability_continuation","ownerFamily":"PROGRAM","sourceTask":"P16","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["P15 evidence remains hash-bound","paint source and fixtures exist","one production task is active"]}
{"id":"WBV2-P16-001","gapId":"SCULPT.PAINT_ATTRIBUTES","ownerFamily":"PARITY","sourceTask":"P16","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["source commands are present","existing paint evidence is reused","candidate remains representative"]}
{"id":"WBV2-P16-002","gapId":"SCULPT.PAINT_ATTRIBUTES","ownerFamily":"SCULPT","sourceTask":"P16","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["vertex colors and weights match","undo/redo is sequential","malformed input fails closed","save/reopen is exact"]}
{"id":"WBV2-P16-003","gapId":"workflow:close_paint_capability_gate","ownerFamily":"RELEASE","sourceTask":"P16","state":"active","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["only tested paint behavior is claimed","inventory remainder stays explicit","no duplicate validation or historical over-claim"]}
{"id":"WBV2-P17-000","gapId":"workflow:authorize_object_operations_continuation","ownerFamily":"PROGRAM","sourceTask":"P17","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["P16 overlay remains hash-bound","duplicateObject API is present","one production task is active"]}
{"id":"WBV2-P17-001","gapId":"OBJECT_OPERATIONS.DUPLICATE","ownerFamily":"PARITY","sourceTask":"P17","state":"completed","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["source command is hash-bound","existing Scene/Object evidence is not rerun","candidate remains one behavior"]}
{"id":"WBV2-P17-002","gapId":"OBJECT_OPERATIONS.DUPLICATE","ownerFamily":"OBJECT","sourceTask":"P17","state":"completed","targetImplementationClass":"LOCAL_EXACT","exitCriteria":["duplicate creates a distinct object","undo/redo revisions are sequential","malformed object ID fails closed","save/reopen is exact"]}
{"id":"WBV2-P17-003","gapId":"workflow:close_object_duplicate_gate","ownerFamily":"RELEASE","sourceTask":"P17","state":"active","targetImplementationClass":"LOCAL_BOUNDED","exitCriteria":["only duplicateObject is claimed","inventory remainder remains explicit","no duplicate validation or historical over-claim"]}

View File

@@ -1 +1 @@
{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P16-003/paint-task-plan.json","sha256":"830162784de4c873db7408f838110d528185606cff2877187ccf365c93882389"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"fdc0994965aa5322ac6f89c6e3633dc63df56d532cf3ee3e16cf3cdb57b3bb31"},"taskCount":4,"activeTask":"WBV2-P16-003","entries":{"WBV2-P16-000":{"line":0,"offset":0,"length":305,"previous":"WBV2-P15-003","next":"WBV2-P16-001"},"WBV2-P16-001":{"line":1,"offset":305,"length":280,"previous":"WBV2-P16-000","next":"WBV2-P16-002"},"WBV2-P16-002":{"line":2,"offset":585,"length":291,"previous":"WBV2-P16-001","next":"WBV2-P16-003"},"WBV2-P16-003":{"line":3,"offset":876,"length":318,"previous":"WBV2-P16-002","next":null}}}
{"schemaVersion":1,"operation":"BLENDER_WEB_CAPABILITY_TASK_INDEX","source":{"path":"tests/golden/WBV2-P17-003/object-task-plan.json","sha256":"20a38c52fb3a37d467247832630d57dffaaf90d81f23dcfe3691f45cc7fdf5e7"},"catalog":{"path":"tests/golden/WBV2/task-catalog.jsonl","sha256":"08bc328ad25ce5fccdc18317b6c069d26fd66bc9a98984b0ae524e3d57af720a"},"taskCount":4,"activeTask":"WBV2-P17-003","entries":{"WBV2-P17-000":{"line":0,"offset":0,"length":304,"previous":"WBV2-P16-003","next":"WBV2-P17-001"},"WBV2-P17-001":{"line":1,"offset":304,"length":293,"previous":"WBV2-P17-000","next":"WBV2-P17-002"},"WBV2-P17-002":{"line":2,"offset":597,"length":314,"previous":"WBV2-P17-001","next":"WBV2-P17-003"},"WBV2-P17-003":{"line":3,"offset":911,"length":314,"previous":"WBV2-P17-002","next":null}}}