Advance deduplicated object operation coverage
This commit is contained in:
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,7 +132,8 @@
|
||||
"baseInventoryPreserved": true,
|
||||
"inventoryRemainderExplicit": true,
|
||||
"noFalseLocalParity": true,
|
||||
"terminalQueuePointer": true
|
||||
"terminalQueuePointer": false,
|
||||
"authorizedContinuation": "WBV2-P17-000"
|
||||
},
|
||||
"nextTask": null
|
||||
"nextTask": "WBV2-P17-000"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
60
tests/golden/WBV2-P17-000/manifest.json
Normal file
60
tests/golden/WBV2-P17-000/manifest.json
Normal 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"
|
||||
}
|
||||
33
tests/golden/WBV2-P17-000/object-root-report.json
Normal file
33
tests/golden/WBV2-P17-000/object-root-report.json
Normal 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"
|
||||
}
|
||||
146
tests/golden/WBV2-P17-000/object-task-plan.json
Normal file
146
tests/golden/WBV2-P17-000/object-task-plan.json
Normal 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
|
||||
}
|
||||
]
|
||||
}
|
||||
67
tests/golden/WBV2-P17-001/manifest.json
Normal file
67
tests/golden/WBV2-P17-001/manifest.json
Normal 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"
|
||||
}
|
||||
54
tests/golden/WBV2-P17-001/object-candidate-set.json
Normal file
54
tests/golden/WBV2-P17-001/object-candidate-set.json
Normal 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
|
||||
}
|
||||
}
|
||||
56
tests/golden/WBV2-P17-001/object-selection-report.json
Normal file
56
tests/golden/WBV2-P17-001/object-selection-report.json
Normal 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"
|
||||
}
|
||||
150
tests/golden/WBV2-P17-001/object-task-plan.json
Normal file
150
tests/golden/WBV2-P17-001/object-task-plan.json
Normal 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"
|
||||
}
|
||||
}
|
||||
171
tests/golden/WBV2-P17-001/task-context.json
Normal file
171
tests/golden/WBV2-P17-001/task-context.json
Normal 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
|
||||
}
|
||||
}
|
||||
78
tests/golden/WBV2-P17-002/manifest.json
Normal file
78
tests/golden/WBV2-P17-002/manifest.json
Normal 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"
|
||||
}
|
||||
22
tests/golden/WBV2-P17-002/object-duplicate-production.json
Normal file
22
tests/golden/WBV2-P17-002/object-duplicate-production.json
Normal 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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
150
tests/golden/WBV2-P17-002/object-task-plan.json
Normal file
150
tests/golden/WBV2-P17-002/object-task-plan.json
Normal 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"
|
||||
}
|
||||
}
|
||||
170
tests/golden/WBV2-P17-002/task-context.json
Normal file
170
tests/golden/WBV2-P17-002/task-context.json
Normal 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
|
||||
}
|
||||
}
|
||||
64
tests/golden/WBV2-P17-003/inventory-completion-overlay.json
Normal file
64
tests/golden/WBV2-P17-003/inventory-completion-overlay.json
Normal 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
|
||||
}
|
||||
}
|
||||
76
tests/golden/WBV2-P17-003/manifest.json
Normal file
76
tests/golden/WBV2-P17-003/manifest.json
Normal 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
|
||||
}
|
||||
121
tests/golden/WBV2-P17-003/object-gate-report.json
Normal file
121
tests/golden/WBV2-P17-003/object-gate-report.json
Normal 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
|
||||
}
|
||||
150
tests/golden/WBV2-P17-003/object-task-plan.json
Normal file
150
tests/golden/WBV2-P17-003/object-task-plan.json
Normal 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"
|
||||
}
|
||||
}
|
||||
170
tests/golden/WBV2-P17-003/task-context.json
Normal file
170
tests/golden/WBV2-P17-003/task-context.json
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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"]}
|
||||
|
||||
@@ -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}}}
|
||||
|
||||
Reference in New Issue
Block a user