feat(web): add incremental modifier reader batch
This commit is contained in:
@@ -15,9 +15,9 @@
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| 里程碑 | WBV2 capability workflow |
|
||||
| 当前任务 | `WBV2-P1151-001` |
|
||||
| parent manifest | `tests/golden/WBV2-P1151-000/manifest.json` |
|
||||
| 任务卡 | [`tasks/WBV2-P1151-001.md`](tasks/WBV2-P1151-001.md) |
|
||||
| 当前任务 | `WBV2-P1152-001` |
|
||||
| parent manifest | `tests/golden/WBV2-P1152-000/manifest.json` |
|
||||
| 任务卡 | [`tasks/WBV2-P1152-001.md`](tasks/WBV2-P1152-001.md) |
|
||||
| 专项验收 | `node tools/web/check-execution-control-plane.mjs` |
|
||||
| legacy coverage checkpoint | `M16-GAP-00282` |
|
||||
| legacy coverage parent | `tests/golden/M16-GAP-00281/manifest.json` |
|
||||
|
||||
7
docs/status/WBV2-P1152-000.md
Normal file
7
docs/status/WBV2-P1152-000.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WBV2-P1152-000 status
|
||||
|
||||
- task: `WBV2-P1152-000`; parent: `WBV2-P1151-001`; status: `done`
|
||||
- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed
|
||||
- source-backed batch authorized: `MODIFIER_READER_BATCH_SIX` (12 units)
|
||||
- dynamic inventory: `3745` units; verified `442`; unverified `3303`; bound delta `0`
|
||||
- nextTask: `WBV2-P1152-001`
|
||||
9
docs/status/WBV2-P1152-001.md
Normal file
9
docs/status/WBV2-P1152-001.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# WBV2-P1152-001 status
|
||||
|
||||
- task: `WBV2-P1152-001`; module: `MODIFIER_READER_BATCH_SIX`; status: `done`
|
||||
- source hashes stable: `true`; commands passed: `4`
|
||||
- existing production evidence reused: `false`; skipped commands: `0`
|
||||
- positive Main mutation, negative no-mutation, recovery and Chromium gates are recorded in the module receipt
|
||||
- dynamic source inventory: `3745` units; verified `454`; unverified `3291`; planning estimate `5200` (non-binding); this-segment binding delta: `12`
|
||||
- historical 6900-entry inventory remains read-only; full-family parity: `false`
|
||||
- nextTask: `NONE`
|
||||
31
docs/tasks/WBV2-P1152-000.md
Normal file
31
docs/tasks/WBV2-P1152-000.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# WBV2-P1152-000: authorize module batch
|
||||
|
||||
- task: WBV2-P1152-000
|
||||
- parent: WBV2-P1151-001
|
||||
- status: done
|
||||
- gap: capability:MODIFIER_READER_BATCH_SIX
|
||||
- ownerFamily: MODIFIER
|
||||
- targetImplementationClass: QUEUE_ONLY
|
||||
- Implementation entrypoint: `python3 my-tools/authorize_next_wbv2_task.py --write`
|
||||
|
||||
## 目标
|
||||
|
||||
授权一个共享 Blender Main/WASM/Chromium 功能批次:MODIFIER_READER_BATCH_SIX,共 12 个源码/RNA 单元。
|
||||
|
||||
## 输入与范围
|
||||
|
||||
- Blender source: `blender-5.2.0/source/blender`
|
||||
- Fixtures/test: `tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend`, `tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend`, `tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend`, `tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend`, `tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend`, `tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend`, `web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts`
|
||||
|
||||
## 验收
|
||||
|
||||
- prior evidence and dynamic inventory remain hash-bound and immutable
|
||||
- one shared function chain validates the complete selected batch
|
||||
- missing source, unsupported data, hash drift or false completion remains blocked
|
||||
- `node tools/web/check-task-context.mjs --task WBV2-P1152-000 --write`
|
||||
|
||||
## 交付与回滚
|
||||
|
||||
- Manifest: `tests/golden/WBV2-P1152-000/manifest.json`
|
||||
- Status: `docs/status/WBV2-P1152-000.md`
|
||||
- Rollback: restore WBV2-P1151-001 as queue parent.
|
||||
45
docs/tasks/WBV2-P1152-001.md
Normal file
45
docs/tasks/WBV2-P1152-001.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# WBV2-P1152-001: verify modifier reader batch six
|
||||
|
||||
- task: WBV2-P1152-001
|
||||
- parent: WBV2-P1152-000
|
||||
- status: in_progress
|
||||
- gap: capability:MODIFIER_READER_BATCH_SIX
|
||||
- ownerFamily: MODIFIER
|
||||
- targetImplementationClass: LOCAL_EXACT
|
||||
- Implementation entrypoint: `node tools/web/run-wbv2-module-task.mjs --task WBV2-P1152-001 --write`
|
||||
|
||||
## 目标
|
||||
|
||||
以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 MOD_mesh_to_volume, MOD_particleinstance, MOD_surface, MOD_weightvgedit, MOD_weightvgmix, MOD_weightvgproximity 的真实 modifier/RNA 元数据。
|
||||
|
||||
## 输入与范围
|
||||
|
||||
- Blender modifier sources: `blender-5.2.0/source/blender/modifiers/intern/`
|
||||
- RNA source: `blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc`
|
||||
- Native reader: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
|
||||
- Fixtures: `tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend`, `tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend`, `tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend`, `tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend`, `tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend`, `tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend`
|
||||
- Chromium test: `web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts`
|
||||
- Selected modifier units: `modifier-source:MOD_mesh_to_volume`, `modifier-source:MOD_particleinstance`, `modifier-source:MOD_surface`, `modifier-source:MOD_weightvgedit`, `modifier-source:MOD_weightvgmix`, `modifier-source:MOD_weightvgproximity`
|
||||
- Selected RNA units: `rna-struct:MeshToVolumeModifier`, `rna-struct:ParticleInstanceModifier`, `rna-struct:SurfaceModifier`, `rna-struct:VertexWeightEditModifier`, `rna-struct:VertexWeightMixModifier`, `rna-struct:VertexWeightProximityModifier`
|
||||
|
||||
## 验收
|
||||
|
||||
- one shared Main/WASM/Worker/Chromium chain observes every selected type
|
||||
- malformed input is rejected without Main mutation
|
||||
- save/reopen and deterministic second read are exact
|
||||
- only Chromium is used; JS simulation and per-API duplicate workers are forbidden
|
||||
- each selected source unit receives an explicit hash-bound coverage binding
|
||||
- `node tools/web/check-task-context.mjs --task WBV2-P1152-001 --write`
|
||||
|
||||
## 失败边界
|
||||
|
||||
- any missing source, unsupported type, hash drift, malformed data or non-exact recovery keeps the batch `in_progress`/`blocked`
|
||||
- partial batch success never claims the omitted family; historical inventory remains read-only
|
||||
|
||||
## 交付与回滚
|
||||
|
||||
- Receipt: `tests/golden/WBV2-P1152-001/module-receipt.json`
|
||||
- Aggregate production evidence: `tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json`
|
||||
- Manifest: `tests/golden/WBV2-P1152-001/manifest.json`
|
||||
- Status: `docs/status/WBV2-P1152-001.md`
|
||||
- Rollback: restore WBV2-P1152-000 as queue parent without rewriting prior evidence.
|
||||
@@ -75,6 +75,24 @@ PREFERRED_BATCHES = [
|
||||
"production": "tests/golden/{task}/modifier-reader-batch-production.json",
|
||||
"types": ["MESH_CACHE", "MESH_SEQUENCE_CACHE", "MULTIRES", "OCEAN"],
|
||||
},
|
||||
{
|
||||
"moduleId": "MODIFIER_READER_BATCH_SIX",
|
||||
"title": "verify modifier reader batch six",
|
||||
"owner": "MODIFIER",
|
||||
"identifiers": ["MOD_mesh_to_volume", "MOD_particleinstance", "MOD_surface", "MOD_weightvgedit", "MOD_weightvgmix", "MOD_weightvgproximity"],
|
||||
"rna": ["MeshToVolumeModifier", "ParticleInstanceModifier", "SurfaceModifier", "VertexWeightEditModifier", "VertexWeightMixModifier", "VertexWeightProximityModifier"],
|
||||
"fixtures": [
|
||||
"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend",
|
||||
"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend",
|
||||
"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend",
|
||||
"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend",
|
||||
"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend",
|
||||
],
|
||||
"test": "web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts",
|
||||
"production": "tests/golden/{task}/modifier-reader-batch-production.json",
|
||||
"types": ["MESH_TO_VOLUME", "PARTICLE_INSTANCE", "SURFACE", "VERTEX_WEIGHT_EDIT", "VERTEX_WEIGHT_MIX", "VERTEX_WEIGHT_PROXIMITY"],
|
||||
},
|
||||
{
|
||||
"moduleId": "GREASE_PENCIL_MODIFIER_READER_BATCH",
|
||||
"title": "verify Grease Pencil modifier reader batch",
|
||||
@@ -173,6 +191,8 @@ def snapshot(text: str, task: str, parent: str, next_task: str) -> str:
|
||||
|
||||
|
||||
def make_card(task: str, parent: str, status: str, batch: dict, entrypoint: str) -> str:
|
||||
fixture_paths = batch.get("fixtures") or [batch["fixture"]]
|
||||
fixture_text = ", ".join(f"`{fixture}`" for fixture in fixture_paths)
|
||||
if task.endswith("-000"):
|
||||
return f"""# {task}: authorize module batch
|
||||
|
||||
@@ -191,7 +211,7 @@ def make_card(task: str, parent: str, status: str, batch: dict, entrypoint: str)
|
||||
## 输入与范围
|
||||
|
||||
- Blender source: `blender-5.2.0/source/blender`
|
||||
- Fixture/test: `{batch['fixture']}`, `{batch['test']}`
|
||||
- Fixtures/test: {fixture_text}, `{batch['test']}`
|
||||
|
||||
## 验收
|
||||
|
||||
@@ -224,7 +244,7 @@ def make_card(task: str, parent: str, status: str, batch: dict, entrypoint: str)
|
||||
## 输入与范围
|
||||
|
||||
- Blender source family: `blender-5.2.0/source/blender`
|
||||
- Fixture: `{batch['fixture']}`
|
||||
- Fixtures: {fixture_text}
|
||||
- Chromium test: `{batch['test']}`
|
||||
- Unit selection: `{len(batch['identifiers']) + len(batch['rna'])} units`(完整列表只在 module plan/manifest)
|
||||
|
||||
@@ -269,7 +289,7 @@ def make_card(task: str, parent: str, status: str, batch: dict, entrypoint: str)
|
||||
- Blender modifier sources: `blender-5.2.0/source/blender/modifiers/intern/`
|
||||
- RNA source: `blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc`
|
||||
- Native reader: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
|
||||
- Fixture: `{batch['fixture']}`
|
||||
- Fixtures: {fixture_text}
|
||||
- Chromium test: `{batch['test']}`
|
||||
- Selected modifier units: {units}
|
||||
- Selected RNA units: {rna_units}
|
||||
@@ -341,12 +361,16 @@ def main() -> int:
|
||||
write_json(current_manifest_path, current_manifest)
|
||||
|
||||
source_paths = [unit["locations"][0]["path"] for unit in batch["units"]]
|
||||
source_paths += ["blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", batch["test"], batch["fixture"], "web/app/src/vendor/blender/web_engine.wasm"]
|
||||
fixture_paths = batch.get("fixtures") or [batch["fixture"]]
|
||||
source_paths += ["blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", batch["test"], *fixture_paths, "web/app/src/vendor/blender/web_engine.wasm"]
|
||||
batch_types = json.dumps(batch["types"], separators=(',', ':'))
|
||||
batch_units = json.dumps([unit["id"] for unit in batch["units"]], separators=(',', ':'))
|
||||
fixture_env = f"WBV2_BATCH_FIXTURES='{json.dumps(fixture_paths, separators=(',', ':'))}'" if batch.get("fixtures") else f"WBV2_BATCH_FIXTURE={batch['fixture']}"
|
||||
commands = [
|
||||
"source tools/web/emscripten-env.sh && cmake --build build_web_blender6 --target web_engine -- -j8 && cp build_web_blender6/bin/web_engine.wasm web/app/src/vendor/blender/web_engine.wasm && cp build_web_blender6/bin/web_engine.wasm web/app/public/vendor/blender/web_engine.wasm",
|
||||
"npm --prefix web run typecheck",
|
||||
"npm --prefix web run build",
|
||||
f"WBV2_BATCH_TASK={module_task} WBV2_BATCH_FIXTURE={batch['fixture']} WBV2_BATCH_TYPES='{json.dumps(batch['types'], separators=(',', ':'))}' WBV2_BATCH_UNITS='{json.dumps([unit['id'] for unit in batch['units']], separators=(',', ':'))}' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/{Path(batch['test']).name}",
|
||||
f"WBV2_BATCH_TASK={module_task} {fixture_env} WBV2_BATCH_TYPES='{batch_types}' WBV2_BATCH_UNITS='{batch_units}' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/{Path(batch['test']).name}",
|
||||
]
|
||||
root_record = {"id": root_task, "phase": str(phase), "title": "authorize_modifier_reader_batch", "kind": "enabling", "owner": "PROGRAM", "dependsOn": [current], "parityId": None, "implementationClass": "QUEUE_ONLY", "parallelGroup": f"module-root-{phase}", "gate": "MODULE", "card": f"docs/tasks/{root_task}.md", "behavior": "Authorize one shared source-backed modifier reader batch.", "outputs": ["successor authorization", "module plan", "manifest", "status"], "acceptance": ["prior evidence remains hash-bound", "batch source mapping is explicit", "inventory remains source-derived"], "commands": ["node tools/web/check-execution-control-plane.mjs"], "status": "done", "ready": False, "queueMutationAllowed": True}
|
||||
module_record = {"id": module_task, "phase": str(phase), "title": batch["title"], "kind": "module", "owner": batch["owner"], "dependsOn": [root_task], "parityId": batch["moduleId"], "implementationClass": "LOCAL_EXACT", "parallelGroup": f"module-{batch['moduleId'].lower()}", "gate": "MODULE", "card": f"docs/tasks/{module_task}.md", "behavior": f"Verify the {batch['moduleId']} batch through Blender Main, WASM and Chromium recovery.", "outputs": ["aggregate module receipt", "coverage bindings", "manifest", "status"], "acceptance": ["source and protocol hashes are bound", "every selected Main reader type is proven", "negative no-mutation and recovery are proven", "Chromium and save/reopen evidence are exact"], "status": "in_progress", "ready": True, "queueMutationAllowed": True, "module": {"moduleId": batch["moduleId"], "sourceBacked": True, "capabilities": [f"CAP-{batch['moduleId']}-READER", f"CAP-{batch['moduleId']}-RECOVERY", f"CAP-{batch['moduleId']}-FAIL-CLOSED"], "sourcePaths": source_paths, "reuseReceipts": [{"manifest": "tests/golden/WBV2-P1107-000/manifest.json", "report": "tests/golden/WBV2-P1107-000/module-receipt.json"}], "positive": [f"{name} type is read from Blender Main" for name in batch["identifiers"]] + ["shared RNA metadata is preserved", "save/reopen preserves the batch metadata"], "negative": ["malformed blend is rejected without Main mutation", "unsupported batch data fails closed", "non-finite metadata is not synthesized"], "recovery": ["save/reopen", "worker termination", "deterministic second read"], "commands": commands, "fullFamilyParity": False, "evidencePaths": [batch["production"].format(task=module_task)], "coverageBindings": [unit["id"] for unit in batch["units"]]}}
|
||||
|
||||
@@ -467,10 +467,10 @@ Recorded: 2026-08-29 Asia/Shanghai
|
||||
|
||||
| Field | Value |
|
||||
| --- | --- |
|
||||
| Current task when this file was written | `WBV2-P1151-001` |
|
||||
| Current task when this file was written | `WBV2-P1152-001` |
|
||||
| Current task state | `done` |
|
||||
| Parent manifest | `tests/golden/WBV2-P1151-001/manifest.json` |
|
||||
| Current task card | `docs/tasks/WBV2-P1151-001.md` |
|
||||
| Parent manifest | `tests/golden/WBV2-P1152-001/manifest.json` |
|
||||
| Current task card | `docs/tasks/WBV2-P1152-001.md` |
|
||||
| Current task-context nextTask | `NONE` |
|
||||
| Focused command | `node tools/web/check-wbv2-module-execution.mjs` |
|
||||
|
||||
|
||||
42
tests/golden/WBV2-P1152-000/manifest.json
Normal file
42
tests/golden/WBV2-P1152-000/manifest.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1152-000",
|
||||
"parentTask": "WBV2-P1151-001",
|
||||
"operation": "AUTHORIZE_SOURCE_BACKED_MODULE_BATCH",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "MODULE_EXECUTION_QUEUE_BRIDGE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P1151-001/manifest.json",
|
||||
"sha256": "c6d4c9cbd777843c37dcdd2218494d895d8e3354e7ee867bace297fbe85895b2"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P1152-000/module-execution-plan.json",
|
||||
"sha256": "8aeabfc4d8e7830db154e006a5768ecfa506c447905fa763c627297ba24a45a8"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2-P1152-000/successor-authorization-report.json",
|
||||
"sha256": "55ce869a7f1ad2817ff5acb6a35c704b8652d4b8aa82c2f1868995cfaa295d61"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P1152-000.md",
|
||||
"sha256": "a7046f999f4d2519465e34b0af0b635b00a4f050c0ae34a0f84a61f9e4947eec"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"sourceBackedSuccessor": true,
|
||||
"moduleId": "MODIFIER_READER_BATCH_SIX",
|
||||
"batchSize": 12,
|
||||
"inventoryTotal": 6900,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"dynamicUnitCount": 3745,
|
||||
"dynamicVerifiedUnits": 442,
|
||||
"dynamicUnverifiedUnits": 3303,
|
||||
"boundUnitDelta": 0,
|
||||
"fullHistoricalReproduction": false
|
||||
},
|
||||
"nextTask": "WBV2-P1152-001"
|
||||
}
|
||||
6827
tests/golden/WBV2-P1152-000/module-execution-plan.json
Normal file
6827
tests/golden/WBV2-P1152-000/module-execution-plan.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1152-000",
|
||||
"operation": "AUTHORIZE_SOURCE_BACKED_MODULE_BATCH",
|
||||
"taskClass": "QUEUE_ENABLEMENT",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P1151-001",
|
||||
"manifest": "tests/golden/WBV2-P1151-001/manifest.json",
|
||||
"manifestSha256": "c6d4c9cbd777843c37dcdd2218494d895d8e3354e7ee867bace297fbe85895b2"
|
||||
},
|
||||
"module": {
|
||||
"moduleId": "MODIFIER_READER_BATCH_SIX",
|
||||
"task": "WBV2-P1152-001",
|
||||
"batchSize": 12,
|
||||
"candidateBatchSize": 12,
|
||||
"sourceUnits": [
|
||||
"modifier-source:MOD_mesh_to_volume",
|
||||
"modifier-source:MOD_particleinstance",
|
||||
"modifier-source:MOD_surface",
|
||||
"modifier-source:MOD_weightvgedit",
|
||||
"modifier-source:MOD_weightvgmix",
|
||||
"modifier-source:MOD_weightvgproximity",
|
||||
"rna-struct:MeshToVolumeModifier",
|
||||
"rna-struct:ParticleInstanceModifier",
|
||||
"rna-struct:SurfaceModifier",
|
||||
"rna-struct:VertexWeightEditModifier",
|
||||
"rna-struct:VertexWeightMixModifier",
|
||||
"rna-struct:VertexWeightProximityModifier"
|
||||
],
|
||||
"sourceBacked": true
|
||||
},
|
||||
"inventory": {
|
||||
"unitCount": 3745,
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"boundUnitDelta": 0
|
||||
},
|
||||
"efficiency": {
|
||||
"existingBindingsReused": 0,
|
||||
"selectionPolicy": "all-candidate-units-then-unresolved-only"
|
||||
},
|
||||
"nextTask": "WBV2-P1152-001"
|
||||
}
|
||||
147
tests/golden/WBV2-P1152-001/manifest.json
Normal file
147
tests/golden/WBV2-P1152-001/manifest.json
Normal file
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1152-001",
|
||||
"parentTask": "WBV2-P1152-000",
|
||||
"operation": "MODULE_FUNCTION_EXECUTION",
|
||||
"taskClass": "MODULE",
|
||||
"status": "done",
|
||||
"enablingTask": true,
|
||||
"parityStateChange": false,
|
||||
"runtime": "BLENDER_WEB_FUNCTION_MODULE",
|
||||
"artifacts": {
|
||||
"parentManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-000/manifest.json",
|
||||
"sha256": "42db0e38427d7a61098d177a0b693fd33ab83e879be34e60e5ae2f1da1ac8b49"
|
||||
},
|
||||
"source1": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc",
|
||||
"sha256": "908eba5de75261b67bd6eb5154259ac44fa015014e5003bd69079aa55f046a2e"
|
||||
},
|
||||
"source2": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc",
|
||||
"sha256": "edf4f43bfe8dd65a1e4d7096ee6af4503dd6bc722f721a668ed7c2a7c74e6de2"
|
||||
},
|
||||
"source3": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc",
|
||||
"sha256": "bf792974882469a510176218aabd0745d3c6e0fed0f6840b364f3d31b3cc406c"
|
||||
},
|
||||
"source4": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc",
|
||||
"sha256": "ec20b812740b65fe2a840a3e4144e84e5bb28bb35d7916ab63c4ae82a4b7cbea"
|
||||
},
|
||||
"source5": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc",
|
||||
"sha256": "2b14c2d3b9db493b78549171cb7f2a73d558f78237ef27d0762b9b1a49b97305"
|
||||
},
|
||||
"source6": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc",
|
||||
"sha256": "c136f682f33d81a120173cfd30865419c122ff1dacf9f7146c80a6bb04753a4c"
|
||||
},
|
||||
"source7": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"sha256": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b"
|
||||
},
|
||||
"source8": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"sha256": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b"
|
||||
},
|
||||
"source9": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"sha256": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b"
|
||||
},
|
||||
"source10": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"sha256": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b"
|
||||
},
|
||||
"source11": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"sha256": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b"
|
||||
},
|
||||
"source12": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"sha256": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b"
|
||||
},
|
||||
"source13": {
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"sha256": "f6fbd04315c48ad4dfbf109b91e5b350550d23c227e5c11a71a58f09e923c990"
|
||||
},
|
||||
"source14": {
|
||||
"path": "web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts",
|
||||
"sha256": "e814e9eaeca1efe9586698cde0fec3549d9319a64de66b7c036009d33836d9f2"
|
||||
},
|
||||
"source15": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend",
|
||||
"sha256": "52ab00ddd22c609f59f06c3747700b17f5b970ee4980dd287076446d289439db"
|
||||
},
|
||||
"source16": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend",
|
||||
"sha256": "d4f4667cac6061406c5a7bf8231fdaf9e6ee589ee57d168b21fa9347f90395da"
|
||||
},
|
||||
"source17": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"sha256": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937"
|
||||
},
|
||||
"source18": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend",
|
||||
"sha256": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2"
|
||||
},
|
||||
"source19": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend",
|
||||
"sha256": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a"
|
||||
},
|
||||
"source20": {
|
||||
"path": "tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend",
|
||||
"sha256": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2"
|
||||
},
|
||||
"source21": {
|
||||
"path": "web/app/src/vendor/blender/web_engine.wasm",
|
||||
"sha256": "32bc36aba563fe1ed0fb5d0292ca8a3ada1eecd6d45e38d9dcde565f02a312fe"
|
||||
},
|
||||
"evidence1": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"moduleReceipt": {
|
||||
"path": "tests/golden/WBV2-P1152-001/module-receipt.json",
|
||||
"sha256": "abbaff0f8b1fc3fe06eee7d970eeaddea87b1e9caceb438dede8e84908580dc2"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P1152-001.md",
|
||||
"sha256": "0f9c472e8cf34e5d26be0a0b4308d4eb408449a5d217327b119f8b9e10396fd6"
|
||||
},
|
||||
"log": {
|
||||
"path": "tests/golden/WBV2-P1152-001/module-run.log",
|
||||
"sha256": "7f584327d6079527613114cf5c2e94bab7366437a912ecb2fcc7256ce37da044"
|
||||
},
|
||||
"plan": {
|
||||
"path": "tests/golden/WBV2-P1152-000/module-execution-plan.json",
|
||||
"sha256": "1d955bf65df2f185650adbcd58fb3ec335e14e183d9701a5d93c9f88d944db46"
|
||||
},
|
||||
"taskContext": {
|
||||
"path": "tests/golden/WBV2-P1152-001/task-context.json",
|
||||
"sha256": "adc71f752605b871a925a9b5107520f0ada0d852626f68a8936bcdcac8168b55"
|
||||
}
|
||||
},
|
||||
"assertions": {
|
||||
"moduleId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceBacked": true,
|
||||
"positiveCases": 8,
|
||||
"negativeCases": 3,
|
||||
"recoveryCases": 3,
|
||||
"commandCount": 4,
|
||||
"reusedReceiptCount": 1,
|
||||
"sourceUnchanged": true,
|
||||
"fullFamilyParity": false,
|
||||
"dynamicInventoryPath": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"dynamicSourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"dynamicUnitCount": 3745,
|
||||
"dynamicVerifiedUnits": 454,
|
||||
"dynamicUnverifiedUnits": 3291,
|
||||
"planningEstimate": 5200,
|
||||
"historicalInventoryTotal": 6900,
|
||||
"historicalEffectiveCompleted": 290,
|
||||
"historicalEffectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": null
|
||||
}
|
||||
@@ -0,0 +1,620 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1152-001",
|
||||
"operation": "MODIFIER_READER_MULTI_FIXTURE_CHROMIUM_SAVE_REOPEN",
|
||||
"browser": "chromium",
|
||||
"queueMutation": false,
|
||||
"fixtures": [
|
||||
"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend",
|
||||
"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend",
|
||||
"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend",
|
||||
"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend",
|
||||
"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend"
|
||||
],
|
||||
"fixtureSha256": {
|
||||
"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend": "52ab00ddd22c609f59f06c3747700b17f5b970ee4980dd287076446d289439db",
|
||||
"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend": "d4f4667cac6061406c5a7bf8231fdaf9e6ee589ee57d168b21fa9347f90395da",
|
||||
"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937",
|
||||
"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2",
|
||||
"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a",
|
||||
"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2"
|
||||
},
|
||||
"expectedTypes": [
|
||||
"MESH_TO_VOLUME",
|
||||
"PARTICLE_INSTANCE",
|
||||
"SURFACE",
|
||||
"VERTEX_WEIGHT_EDIT",
|
||||
"VERTEX_WEIGHT_MIX",
|
||||
"VERTEX_WEIGHT_PROXIMITY"
|
||||
],
|
||||
"sourceUnits": [
|
||||
"modifier-source:MOD_mesh_to_volume",
|
||||
"modifier-source:MOD_particleinstance",
|
||||
"modifier-source:MOD_surface",
|
||||
"modifier-source:MOD_weightvgedit",
|
||||
"modifier-source:MOD_weightvgmix",
|
||||
"modifier-source:MOD_weightvgproximity",
|
||||
"rna-struct:MeshToVolumeModifier",
|
||||
"rna-struct:ParticleInstanceModifier",
|
||||
"rna-struct:SurfaceModifier",
|
||||
"rna-struct:VertexWeightEditModifier",
|
||||
"rna-struct:VertexWeightMixModifier",
|
||||
"rna-struct:VertexWeightProximityModifier"
|
||||
],
|
||||
"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend": {
|
||||
"before": [
|
||||
{
|
||||
"meshId": "object:WebGapMeshToVolumeObject",
|
||||
"uuid": "modifier:object:WebGapMeshToVolumeObject:569533986",
|
||||
"name": "WebGapMeshToVolume",
|
||||
"type": "MESH_TO_VOLUME",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 569533986,
|
||||
"typeCode": 58
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
"MESH_TO_VOLUME"
|
||||
],
|
||||
"after": [
|
||||
{
|
||||
"meshId": "object:WebGapMeshToVolumeObject",
|
||||
"uuid": "modifier:object:WebGapMeshToVolumeObject:569533986",
|
||||
"name": "WebGapMeshToVolume",
|
||||
"type": "MESH_TO_VOLUME",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 569533986,
|
||||
"typeCode": 58
|
||||
}
|
||||
}
|
||||
],
|
||||
"second": [
|
||||
{
|
||||
"meshId": "object:WebGapMeshToVolumeObject",
|
||||
"uuid": "modifier:object:WebGapMeshToVolumeObject:569533986",
|
||||
"name": "WebGapMeshToVolume",
|
||||
"type": "MESH_TO_VOLUME",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 569533986,
|
||||
"typeCode": 58
|
||||
}
|
||||
}
|
||||
],
|
||||
"saveReopenExact": true,
|
||||
"deterministicExact": true,
|
||||
"savedSha256": "52ab00ddd22c609f59f06c3747700b17f5b970ee4980dd287076446d289439db",
|
||||
"malformed": {
|
||||
"code": "BLEND_READ_FAILED",
|
||||
"message": "Input is not an uncompressed, gzip, or zstd Blender file"
|
||||
}
|
||||
},
|
||||
"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend": {
|
||||
"before": [
|
||||
{
|
||||
"meshId": "mesh:WebGapParticleInstanceMesh",
|
||||
"uuid": "modifier:object:WebGapParticleInstanceObject:618743081",
|
||||
"name": "WebGapParticleInstance",
|
||||
"type": "PARTICLE_INSTANCE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 618743081,
|
||||
"typeCode": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapParticleInstanceObject",
|
||||
"uuid": "modifier:object:WebGapParticleInstanceObject:618743081",
|
||||
"name": "WebGapParticleInstance",
|
||||
"type": "PARTICLE_INSTANCE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 618743081,
|
||||
"typeCode": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
"PARTICLE_INSTANCE",
|
||||
"PARTICLE_INSTANCE"
|
||||
],
|
||||
"after": [
|
||||
{
|
||||
"meshId": "mesh:WebGapParticleInstanceMesh",
|
||||
"uuid": "modifier:object:WebGapParticleInstanceObject:618743081",
|
||||
"name": "WebGapParticleInstance",
|
||||
"type": "PARTICLE_INSTANCE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 618743081,
|
||||
"typeCode": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapParticleInstanceObject",
|
||||
"uuid": "modifier:object:WebGapParticleInstanceObject:618743081",
|
||||
"name": "WebGapParticleInstance",
|
||||
"type": "PARTICLE_INSTANCE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 618743081,
|
||||
"typeCode": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"second": [
|
||||
{
|
||||
"meshId": "mesh:WebGapParticleInstanceMesh",
|
||||
"uuid": "modifier:object:WebGapParticleInstanceObject:618743081",
|
||||
"name": "WebGapParticleInstance",
|
||||
"type": "PARTICLE_INSTANCE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 618743081,
|
||||
"typeCode": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapParticleInstanceObject",
|
||||
"uuid": "modifier:object:WebGapParticleInstanceObject:618743081",
|
||||
"name": "WebGapParticleInstance",
|
||||
"type": "PARTICLE_INSTANCE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 5,
|
||||
"persistentUid": 618743081,
|
||||
"typeCode": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"saveReopenExact": true,
|
||||
"deterministicExact": true,
|
||||
"savedSha256": "d4f4667cac6061406c5a7bf8231fdaf9e6ee589ee57d168b21fa9347f90395da",
|
||||
"malformed": {
|
||||
"code": "BLEND_READ_FAILED",
|
||||
"message": "Input is not an uncompressed, gzip, or zstd Blender file"
|
||||
}
|
||||
},
|
||||
"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend": {
|
||||
"before": [
|
||||
{
|
||||
"meshId": "mesh:WebGapSurfaceMesh",
|
||||
"uuid": "modifier:object:WebGapSurfaceObject:298436185",
|
||||
"name": "WebGapSurface",
|
||||
"type": "SURFACE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 298436185,
|
||||
"typeCode": 30
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapSurfaceObject",
|
||||
"uuid": "modifier:object:WebGapSurfaceObject:298436185",
|
||||
"name": "WebGapSurface",
|
||||
"type": "SURFACE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 298436185,
|
||||
"typeCode": 30
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
"SURFACE",
|
||||
"SURFACE"
|
||||
],
|
||||
"after": [
|
||||
{
|
||||
"meshId": "mesh:WebGapSurfaceMesh",
|
||||
"uuid": "modifier:object:WebGapSurfaceObject:298436185",
|
||||
"name": "WebGapSurface",
|
||||
"type": "SURFACE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 298436185,
|
||||
"typeCode": 30
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapSurfaceObject",
|
||||
"uuid": "modifier:object:WebGapSurfaceObject:298436185",
|
||||
"name": "WebGapSurface",
|
||||
"type": "SURFACE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 298436185,
|
||||
"typeCode": 30
|
||||
}
|
||||
}
|
||||
],
|
||||
"second": [
|
||||
{
|
||||
"meshId": "mesh:WebGapSurfaceMesh",
|
||||
"uuid": "modifier:object:WebGapSurfaceObject:298436185",
|
||||
"name": "WebGapSurface",
|
||||
"type": "SURFACE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 298436185,
|
||||
"typeCode": 30
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapSurfaceObject",
|
||||
"uuid": "modifier:object:WebGapSurfaceObject:298436185",
|
||||
"name": "WebGapSurface",
|
||||
"type": "SURFACE",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 298436185,
|
||||
"typeCode": 30
|
||||
}
|
||||
}
|
||||
],
|
||||
"saveReopenExact": true,
|
||||
"deterministicExact": true,
|
||||
"savedSha256": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937",
|
||||
"malformed": {
|
||||
"code": "BLEND_READ_FAILED",
|
||||
"message": "Input is not an uncompressed, gzip, or zstd Blender file"
|
||||
}
|
||||
},
|
||||
"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend": {
|
||||
"before": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightEditMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightEditObject:1300223564",
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1300223564,
|
||||
"typeCode": 36
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightEditObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightEditObject:1300223564",
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1300223564,
|
||||
"typeCode": 36
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
"VERTEX_WEIGHT_EDIT",
|
||||
"VERTEX_WEIGHT_EDIT"
|
||||
],
|
||||
"after": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightEditMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightEditObject:1300223564",
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1300223564,
|
||||
"typeCode": 36
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightEditObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightEditObject:1300223564",
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1300223564,
|
||||
"typeCode": 36
|
||||
}
|
||||
}
|
||||
],
|
||||
"second": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightEditMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightEditObject:1300223564",
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1300223564,
|
||||
"typeCode": 36
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightEditObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightEditObject:1300223564",
|
||||
"name": "WebGapVertexWeightEdit",
|
||||
"type": "VERTEX_WEIGHT_EDIT",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1300223564,
|
||||
"typeCode": 36
|
||||
}
|
||||
}
|
||||
],
|
||||
"saveReopenExact": true,
|
||||
"deterministicExact": true,
|
||||
"savedSha256": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2",
|
||||
"malformed": {
|
||||
"code": "BLEND_READ_FAILED",
|
||||
"message": "Input is not an uncompressed, gzip, or zstd Blender file"
|
||||
}
|
||||
},
|
||||
"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend": {
|
||||
"before": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightMixMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightMixObject:1288824592",
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1288824592,
|
||||
"typeCode": 37
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightMixObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightMixObject:1288824592",
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1288824592,
|
||||
"typeCode": 37
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
"VERTEX_WEIGHT_MIX",
|
||||
"VERTEX_WEIGHT_MIX"
|
||||
],
|
||||
"after": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightMixMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightMixObject:1288824592",
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1288824592,
|
||||
"typeCode": 37
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightMixObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightMixObject:1288824592",
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1288824592,
|
||||
"typeCode": 37
|
||||
}
|
||||
}
|
||||
],
|
||||
"second": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightMixMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightMixObject:1288824592",
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1288824592,
|
||||
"typeCode": 37
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightMixObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightMixObject:1288824592",
|
||||
"name": "WebGapVertexWeightMix",
|
||||
"type": "VERTEX_WEIGHT_MIX",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1288824592,
|
||||
"typeCode": 37
|
||||
}
|
||||
}
|
||||
],
|
||||
"saveReopenExact": true,
|
||||
"deterministicExact": true,
|
||||
"savedSha256": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a",
|
||||
"malformed": {
|
||||
"code": "BLEND_READ_FAILED",
|
||||
"message": "Input is not an uncompressed, gzip, or zstd Blender file"
|
||||
}
|
||||
},
|
||||
"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend": {
|
||||
"before": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightProximityMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightProximityObject:1266791070",
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1266791070,
|
||||
"typeCode": 38
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightProximityObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightProximityObject:1266791070",
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1266791070,
|
||||
"typeCode": 38
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
"VERTEX_WEIGHT_PROXIMITY",
|
||||
"VERTEX_WEIGHT_PROXIMITY"
|
||||
],
|
||||
"after": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightProximityMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightProximityObject:1266791070",
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1266791070,
|
||||
"typeCode": 38
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightProximityObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightProximityObject:1266791070",
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1266791070,
|
||||
"typeCode": 38
|
||||
}
|
||||
}
|
||||
],
|
||||
"second": [
|
||||
{
|
||||
"meshId": "mesh:WebGapVertexWeightProximityMesh",
|
||||
"uuid": "modifier:object:WebGapVertexWeightProximityObject:1266791070",
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1266791070,
|
||||
"typeCode": 38
|
||||
}
|
||||
},
|
||||
{
|
||||
"meshId": "object:WebGapVertexWeightProximityObject",
|
||||
"uuid": "modifier:object:WebGapVertexWeightProximityObject:1266791070",
|
||||
"name": "WebGapVertexWeightProximity",
|
||||
"type": "VERTEX_WEIGHT_PROXIMITY",
|
||||
"enabled": true,
|
||||
"evaluationStatus": "BLOCKED",
|
||||
"parameters": {
|
||||
"flag": 5,
|
||||
"mode": 1,
|
||||
"persistentUid": 1266791070,
|
||||
"typeCode": 38
|
||||
}
|
||||
}
|
||||
],
|
||||
"saveReopenExact": true,
|
||||
"deterministicExact": true,
|
||||
"savedSha256": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2",
|
||||
"malformed": {
|
||||
"code": "BLEND_READ_FAILED",
|
||||
"message": "Input is not an uncompressed, gzip, or zstd Blender file"
|
||||
}
|
||||
}
|
||||
}
|
||||
158
tests/golden/WBV2-P1152-001/module-receipt.json
Normal file
158
tests/golden/WBV2-P1152-001/module-receipt.json
Normal file
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1152-001",
|
||||
"operation": "MODULE_FUNCTION_EXECUTION",
|
||||
"moduleId": "MODIFIER_READER_BATCH_SIX",
|
||||
"status": "PASS",
|
||||
"source": {
|
||||
"paths": [
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts",
|
||||
"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend",
|
||||
"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend",
|
||||
"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend",
|
||||
"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend",
|
||||
"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend",
|
||||
"web/app/src/vendor/blender/web_engine.wasm"
|
||||
],
|
||||
"before": {
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc": "908eba5de75261b67bd6eb5154259ac44fa015014e5003bd69079aa55f046a2e",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc": "edf4f43bfe8dd65a1e4d7096ee6af4503dd6bc722f721a668ed7c2a7c74e6de2",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc": "bf792974882469a510176218aabd0745d3c6e0fed0f6840b364f3d31b3cc406c",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc": "ec20b812740b65fe2a840a3e4144e84e5bb28bb35d7916ab63c4ae82a4b7cbea",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc": "2b14c2d3b9db493b78549171cb7f2a73d558f78237ef27d0762b9b1a49b97305",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc": "c136f682f33d81a120173cfd30865419c122ff1dacf9f7146c80a6bb04753a4c",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "f6fbd04315c48ad4dfbf109b91e5b350550d23c227e5c11a71a58f09e923c990",
|
||||
"web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts": "e814e9eaeca1efe9586698cde0fec3549d9319a64de66b7c036009d33836d9f2",
|
||||
"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend": "52ab00ddd22c609f59f06c3747700b17f5b970ee4980dd287076446d289439db",
|
||||
"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend": "d4f4667cac6061406c5a7bf8231fdaf9e6ee589ee57d168b21fa9347f90395da",
|
||||
"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937",
|
||||
"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2",
|
||||
"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a",
|
||||
"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2",
|
||||
"web/app/src/vendor/blender/web_engine.wasm": "32bc36aba563fe1ed0fb5d0292ca8a3ada1eecd6d45e38d9dcde565f02a312fe"
|
||||
},
|
||||
"after": {
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc": "908eba5de75261b67bd6eb5154259ac44fa015014e5003bd69079aa55f046a2e",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc": "edf4f43bfe8dd65a1e4d7096ee6af4503dd6bc722f721a668ed7c2a7c74e6de2",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc": "bf792974882469a510176218aabd0745d3c6e0fed0f6840b364f3d31b3cc406c",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc": "ec20b812740b65fe2a840a3e4144e84e5bb28bb35d7916ab63c4ae82a4b7cbea",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc": "2b14c2d3b9db493b78549171cb7f2a73d558f78237ef27d0762b9b1a49b97305",
|
||||
"blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc": "c136f682f33d81a120173cfd30865419c122ff1dacf9f7146c80a6bb04753a4c",
|
||||
"blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc": "1292112c20eaa113084a2a7093c349e7787db818950d80a6e11b75b287e4287b",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "f6fbd04315c48ad4dfbf109b91e5b350550d23c227e5c11a71a58f09e923c990",
|
||||
"web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts": "e814e9eaeca1efe9586698cde0fec3549d9319a64de66b7c036009d33836d9f2",
|
||||
"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend": "52ab00ddd22c609f59f06c3747700b17f5b970ee4980dd287076446d289439db",
|
||||
"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend": "d4f4667cac6061406c5a7bf8231fdaf9e6ee589ee57d168b21fa9347f90395da",
|
||||
"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend": "41aa335359773ce72a3f372784d1fbf74a1ec65c077652f0cb98d34793edc937",
|
||||
"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend": "2ecafafb8d81c27842512406dd93978754f624f0e9012e4a2036d32eac1178b2",
|
||||
"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend": "19a164b591a6fbe02df07797c422aea350e26f1e9125589037067f609095105a",
|
||||
"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend": "53234cfd0e10e91b78465d8f18a4b8d863885d1d93c0757c07f0d31da486fbf2",
|
||||
"web/app/src/vendor/blender/web_engine.wasm": "32bc36aba563fe1ed0fb5d0292ca8a3ada1eecd6d45e38d9dcde565f02a312fe"
|
||||
},
|
||||
"unchanged": true
|
||||
},
|
||||
"reusedReceipts": [
|
||||
{
|
||||
"manifest": "tests/golden/WBV2-P1107-000/manifest.json",
|
||||
"report": "tests/golden/WBV2-P1107-000/module-receipt.json",
|
||||
"manifestSha256": "a53ebdc52db5dcf27d44e938e5551f1ee2adae8e46c3fe8661604ee6b1000f8c",
|
||||
"reportSha256": "6dd419799e1a4b9251328d9496f2459d148cd89118740a06b0ee6ffb78e0b1d2"
|
||||
}
|
||||
],
|
||||
"cases": {
|
||||
"positive": [
|
||||
"MOD_mesh_to_volume type is read from Blender Main",
|
||||
"MOD_particleinstance type is read from Blender Main",
|
||||
"MOD_surface type is read from Blender Main",
|
||||
"MOD_weightvgedit type is read from Blender Main",
|
||||
"MOD_weightvgmix type is read from Blender Main",
|
||||
"MOD_weightvgproximity type is read from Blender Main",
|
||||
"shared RNA metadata is preserved",
|
||||
"save/reopen preserves the batch metadata"
|
||||
],
|
||||
"negative": [
|
||||
"malformed blend is rejected without Main mutation",
|
||||
"unsupported batch data fails closed",
|
||||
"non-finite metadata is not synthesized"
|
||||
],
|
||||
"recovery": [
|
||||
"save/reopen",
|
||||
"worker termination",
|
||||
"deterministic second read"
|
||||
]
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
"command": "source tools/web/emscripten-env.sh && cmake --build build_web_blender6 --target web_engine -- -j8 && cp build_web_blender6/bin/web_engine.wasm web/app/src/vendor/blender/web_engine.wasm && cp build_web_blender6/bin/web_engine.wasm web/app/public/vendor/blender/web_engine.wasm",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"command": "npm --prefix web run typecheck",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"command": "npm --prefix web run build",
|
||||
"exitCode": 0
|
||||
},
|
||||
{
|
||||
"command": "WBV2_BATCH_TASK=WBV2-P1152-001 WBV2_BATCH_FIXTURES='[\"tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend\",\"tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend\",\"tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend\",\"tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend\",\"tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend\",\"tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend\"]' WBV2_BATCH_TYPES='[\"MESH_TO_VOLUME\",\"PARTICLE_INSTANCE\",\"SURFACE\",\"VERTEX_WEIGHT_EDIT\",\"VERTEX_WEIGHT_MIX\",\"VERTEX_WEIGHT_PROXIMITY\"]' WBV2_BATCH_UNITS='[\"modifier-source:MOD_mesh_to_volume\",\"modifier-source:MOD_particleinstance\",\"modifier-source:MOD_surface\",\"modifier-source:MOD_weightvgedit\",\"modifier-source:MOD_weightvgmix\",\"modifier-source:MOD_weightvgproximity\",\"rna-struct:MeshToVolumeModifier\",\"rna-struct:ParticleInstanceModifier\",\"rna-struct:SurfaceModifier\",\"rna-struct:VertexWeightEditModifier\",\"rna-struct:VertexWeightMixModifier\",\"rna-struct:VertexWeightProximityModifier\"]' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts",
|
||||
"exitCode": 0
|
||||
}
|
||||
],
|
||||
"verification": {
|
||||
"required": [
|
||||
"sourceHash",
|
||||
"wasmBuild",
|
||||
"positiveMainMutation",
|
||||
"negativeNoMutation",
|
||||
"undoRedo",
|
||||
"saveReopen",
|
||||
"aggregateManifest"
|
||||
],
|
||||
"chromiumOnly": true,
|
||||
"fullFamilyParity": false
|
||||
},
|
||||
"efficiency": {
|
||||
"existingEvidenceReused": false,
|
||||
"skippedCommands": 0,
|
||||
"reusePolicy": "hash_bound_receipt"
|
||||
},
|
||||
"inventory": {
|
||||
"historical": {
|
||||
"path": "tests/golden/WBV2-P0-002/parity-map.json",
|
||||
"sha256": "a60a77cae000941a953d55adbf93d8f6e275533891713d6eae993f60faed94e8",
|
||||
"total": 6900,
|
||||
"legacyCompleted": 281,
|
||||
"legacyPending": 6618,
|
||||
"effectiveCompleted": 290,
|
||||
"effectivePending": 6609,
|
||||
"mutation": "forbidden_by_module_execution"
|
||||
},
|
||||
"dynamic": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"sha256": "97bc20046f2aa7a7e03a87429a75ecac492feaf794cf9514318ac7ebd27e945a",
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"unitCount": 3745,
|
||||
"planningEstimate": 5200,
|
||||
"hardTarget": false,
|
||||
"verifiedUnits": 454,
|
||||
"unverifiedUnits": 3291
|
||||
}
|
||||
},
|
||||
"nextTask": null
|
||||
}
|
||||
212
tests/golden/WBV2-P1152-001/task-context.json
Normal file
212
tests/golden/WBV2-P1152-001/task-context.json
Normal file
@@ -0,0 +1,212 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1152-001",
|
||||
"parentTask": "WBV2-P1152-000",
|
||||
"status": "in_progress",
|
||||
"goal": "以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 MOD_mesh_to_volume, MOD_particleinstance, MOD_surface, MOD_weightvgedit, MOD_weightvgmix, MOD_weightvgproximity 的真实 modifier/RNA 元数据。",
|
||||
"scope": {
|
||||
"gap": "capability:MODIFIER_READER_BATCH_SIX",
|
||||
"ownerFamily": "MODIFIER",
|
||||
"implementationClass": "LOCAL_EXACT"
|
||||
},
|
||||
"commands": [
|
||||
"node tools/web/check-task-context.mjs --task WBV2-P1152-001 --write"
|
||||
],
|
||||
"inputPaths": [],
|
||||
"inputSelection": {
|
||||
"schemaVersion": 1,
|
||||
"limits": {
|
||||
"maxFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextRemainingBytes": 1409,
|
||||
"contextRemainingTokens": 350
|
||||
},
|
||||
"source": {
|
||||
"bytes": 8495,
|
||||
"tokens": 2126
|
||||
},
|
||||
"selected": [],
|
||||
"excluded": [
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/",
|
||||
"bytes": 10155,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"bytes": 521651,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"bytes": 313993,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00081-modifier-MESH_TO_VOLUME.blend",
|
||||
"bytes": 86084,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00087-modifier-PARTICLE_INSTANCE.blend",
|
||||
"bytes": 86412,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00098-modifier-SURFACE.blend",
|
||||
"bytes": 86387,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00103-modifier-VERTEX_WEIGHT_EDIT.blend",
|
||||
"bytes": 86454,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00104-modifier-VERTEX_WEIGHT_MIX.blend",
|
||||
"bytes": 86411,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/files/web/generated/M16-GAP-00105-modifier-VERTEX_WEIGHT_PROXIMITY.blend",
|
||||
"bytes": 86460,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "web/tests/e2e/wbv2-modifier-reader-multi-fixture-production.spec.ts",
|
||||
"bytes": 4477,
|
||||
"reason": "CONTEXT_REMAINING_SPACE"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P1152-001/module-receipt.json",
|
||||
"bytes": 10588,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"bytes": 19285,
|
||||
"reason": "EVIDENCE_BYTE_BUDGET"
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P1152-001.md",
|
||||
"bytes": null,
|
||||
"reason": "GENERATED_EVIDENCE_OUTPUT"
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"files": 0,
|
||||
"bytes": 0,
|
||||
"tokens": 0
|
||||
}
|
||||
},
|
||||
"exitCriteria": [
|
||||
"source and protocol hashes are bound",
|
||||
"every selected Main reader type is proven",
|
||||
"negative no-mutation and recovery are proven",
|
||||
"Chromium and save/reopen evidence are exact"
|
||||
],
|
||||
"nextTask": null,
|
||||
"sourceDocuments": {
|
||||
"queue": "docs/EXECUTION_QUEUE.md",
|
||||
"taskCard": "docs/tasks/WBV2-P1152-001.md",
|
||||
"taskIndex": "tests/golden/WBV2/task-index.json",
|
||||
"parentManifest": "tests/golden/WBV2-P1152-000/manifest.json",
|
||||
"parentStatus": "docs/status/WBV2-P1152-000.md"
|
||||
},
|
||||
"readPolicy": {
|
||||
"required": [
|
||||
"docs/EXECUTION_QUEUE.md",
|
||||
"docs/tasks/WBV2-P1152-001.md",
|
||||
"tests/golden/WBV2-P1152-000/manifest.json",
|
||||
"docs/status/WBV2-P1152-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-P1152-000",
|
||||
"parentTask": "WBV2-P1151-001",
|
||||
"status": "done",
|
||||
"nextTask": "WBV2-P1152-001",
|
||||
"artifactCount": 4
|
||||
},
|
||||
"statusSummary": [
|
||||
"# WBV2-P1152-000 status",
|
||||
"- task: `WBV2-P1152-000`; parent: `WBV2-P1151-001`; status: `done`",
|
||||
"- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed",
|
||||
"- source-backed batch authorized: `MODIFIER_READER_BATCH_SIX` (12 units)",
|
||||
"- dynamic inventory: `3745` units; verified `442`; unverified `3303`; bound delta `0`",
|
||||
"- nextTask: `WBV2-P1152-001`"
|
||||
]
|
||||
},
|
||||
"budgets": {
|
||||
"queueBytes": 4096,
|
||||
"taskBytes": 2926,
|
||||
"parentManifestBytes": 24576,
|
||||
"parentStatusBytes": 6144,
|
||||
"evidenceFiles": 12,
|
||||
"evidenceBytes": 8192,
|
||||
"contextTokens": 3500,
|
||||
"contextEnvelopeTokens": 1024,
|
||||
"taskLines": 46,
|
||||
"taskTokens": 732
|
||||
},
|
||||
"size": {
|
||||
"documents": [
|
||||
{
|
||||
"path": "docs/EXECUTION_QUEUE.md",
|
||||
"bytes": 3830,
|
||||
"lines": 56,
|
||||
"tokens": 958
|
||||
},
|
||||
{
|
||||
"path": "docs/tasks/WBV2-P1152-001.md",
|
||||
"bytes": 2926,
|
||||
"lines": 46,
|
||||
"tokens": 732
|
||||
},
|
||||
{
|
||||
"path": "tests/golden/WBV2-P1152-000/manifest.json",
|
||||
"bytes": 1381,
|
||||
"lines": 43,
|
||||
"tokens": 346
|
||||
},
|
||||
{
|
||||
"path": "docs/status/WBV2-P1152-000.md",
|
||||
"bytes": 358,
|
||||
"lines": 8,
|
||||
"tokens": 90
|
||||
}
|
||||
],
|
||||
"sourceTokens": 2126,
|
||||
"evidenceFiles": 0,
|
||||
"evidenceBytes": 0,
|
||||
"evidenceTokens": 0,
|
||||
"totalTokens": 2126,
|
||||
"reservedEnvelopeTokens": 1024,
|
||||
"estimatedContextTokens": 3150,
|
||||
"serializedContextTokens": 670,
|
||||
"withinBudget": true
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,10 @@
|
||||
"dynamicInventory": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"beforeSha256": "02a76d4b766c5e921edc9a0b162f5be3ebc7218aee56dd63e31593817c231763",
|
||||
"afterSha256": "8515f41f97664c6cbd74e11d44c75603623e196c8091eded3b3d33fc93370b76",
|
||||
"afterSha256": "dc56239de97df983300670f142148c08780c5f8f3d35a41bb3144132726cfc9e",
|
||||
"unitCount": 3745,
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303
|
||||
"verifiedUnits": 454,
|
||||
"unverifiedUnits": 3291
|
||||
},
|
||||
"explicitBindings": [
|
||||
{
|
||||
@@ -8851,12 +8851,252 @@
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_mesh_to_volume",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_particleinstance",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_surface",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgedit",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgmix",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgproximity",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:MeshToVolumeModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 8486,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:ParticleInstanceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 4758,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:SurfaceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 5670,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightEditModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6235,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightMixModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6370,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightProximityModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6494,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
],
|
||||
"coverageByKind": {
|
||||
"modifier-source": {
|
||||
"verified": 80,
|
||||
"unverified": 17
|
||||
"verified": 86,
|
||||
"unverified": 11
|
||||
},
|
||||
"node": {
|
||||
"verified": 21,
|
||||
@@ -8871,8 +9111,8 @@
|
||||
"unverified": 2012
|
||||
},
|
||||
"rna-struct": {
|
||||
"verified": 239,
|
||||
"unverified": 740
|
||||
"verified": 245,
|
||||
"unverified": 734
|
||||
},
|
||||
"web-command": {
|
||||
"verified": 96,
|
||||
@@ -8881,8 +9121,8 @@
|
||||
},
|
||||
"coverageByFamily": {
|
||||
"MODIFIER": {
|
||||
"verified": 80,
|
||||
"unverified": 17
|
||||
"verified": 86,
|
||||
"unverified": 11
|
||||
},
|
||||
"NODES": {
|
||||
"verified": 21,
|
||||
@@ -8897,8 +9137,8 @@
|
||||
"unverified": 53
|
||||
},
|
||||
"RNA": {
|
||||
"verified": 239,
|
||||
"unverified": 740
|
||||
"verified": 245,
|
||||
"unverified": 734
|
||||
},
|
||||
"WEB_ENGINE": {
|
||||
"verified": 96,
|
||||
|
||||
@@ -8838,5 +8838,245 @@
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_mesh_to_volume",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_particleinstance",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_surface",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgedit",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgmix",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgproximity",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:MeshToVolumeModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 8486,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:ParticleInstanceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 4758,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:SurfaceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 5670,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightEditModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6235,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightMixModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6370,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightProximityModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6494,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -5,19 +5,19 @@
|
||||
"artifacts": {
|
||||
"inventory": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"sha256": "8515f41f97664c6cbd74e11d44c75603623e196c8091eded3b3d33fc93370b76"
|
||||
"sha256": "dc56239de97df983300670f142148c08780c5f8f3d35a41bb3144132726cfc9e"
|
||||
},
|
||||
"inventoryManifest": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory-manifest.json",
|
||||
"sha256": "f573ccfc15c31f9ba93bfab7d16b092373946cd9bf6f8f6b0769f78911f3ef13"
|
||||
"sha256": "265d0e0f09a0697b41859d698347beec3c55e350b4677e5ee71b223132d3df14"
|
||||
},
|
||||
"bindings": {
|
||||
"path": "tests/golden/WBV2/dynamic-coverage-bindings.json",
|
||||
"sha256": "ec42203e03de87a272836d56e6bc434f49fd3cba5ed4d4cf67c7ffb710d99cbe"
|
||||
"sha256": "0bff89f65ae2191b734979e1f41a531ee4c0ee6378985751dd32c410b0d2193c"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2/dynamic-coverage-audit.json",
|
||||
"sha256": "78235ee0f71f95362c65323d216b6d0c050198b671c04db6a3ae2282abc93333"
|
||||
"sha256": "99d3eaaaf24efff35952db71a172b57ca14e0247058ed9adc2b24cd963f0b057"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/reconcile-source-dynamic-coverage.mjs",
|
||||
@@ -26,9 +26,9 @@
|
||||
},
|
||||
"coverage": {
|
||||
"unitCount": 3745,
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"boundUnitDelta": 48,
|
||||
"verifiedUnits": 454,
|
||||
"unverifiedUnits": 3291,
|
||||
"boundUnitDelta": 12,
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202"
|
||||
},
|
||||
"historical": {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"planningEstimate": 5200,
|
||||
"hardTarget": false,
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"verifiedUnits": 454,
|
||||
"unverifiedUnits": 3291,
|
||||
"deterministic": true
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
},
|
||||
"inventory": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"sha256": "8515f41f97664c6cbd74e11d44c75603623e196c8091eded3b3d33fc93370b76"
|
||||
"sha256": "dc56239de97df983300670f142148c08780c5f8f3d35a41bb3144132726cfc9e"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory-check-report.json",
|
||||
"sha256": "7724729292c472b13741f1a2691405d2aac8729da1ba1501cb9456fb89f8f305"
|
||||
"sha256": "712a6e4d0832459feee34811cfc99775c7836ba3fe349e769c0344a3bc609ce3"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-DYNAMIC-INVENTORY.md",
|
||||
@@ -47,9 +47,9 @@
|
||||
},
|
||||
"planningEstimate": 5200,
|
||||
"hardTarget": false,
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"boundCaseDelta": 48
|
||||
"verifiedUnits": 454,
|
||||
"unverifiedUnits": 3291,
|
||||
"boundCaseDelta": 12
|
||||
},
|
||||
"historical": {
|
||||
"initialEstimate": 6900,
|
||||
|
||||
@@ -77,8 +77,8 @@
|
||||
"estimateDelta": -1455
|
||||
},
|
||||
"coverage": {
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"verifiedUnits": 454,
|
||||
"unverifiedUnits": 3291,
|
||||
"sourceMappingRequired": 3745,
|
||||
"inventoryMutation": "explicit_source_case_bindings_only",
|
||||
"lastReconciledAt": "2026-09-01"
|
||||
@@ -39048,7 +39048,27 @@
|
||||
"evidence": "modifier-source-file"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "modifier-source:MOD_mesh_to_volume",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "modifier-source:MOD_meshcache",
|
||||
@@ -39424,7 +39444,27 @@
|
||||
"evidence": "modifier-source-file"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "modifier-source:MOD_particleinstance",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "modifier-source:MOD_particlesystem",
|
||||
@@ -39820,7 +39860,27 @@
|
||||
"evidence": "modifier-source-file"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "modifier-source:MOD_surface",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "modifier-source:MOD_surfacedeform",
|
||||
@@ -40182,7 +40242,27 @@
|
||||
"evidence": "modifier-source-file"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "modifier-source:MOD_weightvgedit",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "modifier-source:MOD_weightvgmix",
|
||||
@@ -40196,7 +40276,27 @@
|
||||
"evidence": "modifier-source-file"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "modifier-source:MOD_weightvgmix",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "modifier-source:MOD_weightvgproximity",
|
||||
@@ -40210,7 +40310,27 @@
|
||||
"evidence": "modifier-source-file"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "modifier-source:MOD_weightvgproximity",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "modifier-source:MOD_weld",
|
||||
@@ -87286,7 +87406,27 @@
|
||||
"evidence": "RNA_def_struct"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "rna-struct:MeshToVolumeModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 8486,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "rna-struct:MeshUVLoop",
|
||||
@@ -89684,7 +89824,27 @@
|
||||
"evidence": "RNA_def_struct"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "rna-struct:ParticleInstanceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 4758,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "rna-struct:ParticleKey",
|
||||
@@ -92914,7 +93074,27 @@
|
||||
"evidence": "RNA_def_struct"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "rna-struct:SurfaceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 5670,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "rna-struct:Test",
|
||||
@@ -94290,7 +94470,27 @@
|
||||
"evidence": "RNA_def_struct"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "rna-struct:VertexWeightEditModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6235,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "rna-struct:VertexWeightMixModifier",
|
||||
@@ -94304,7 +94504,27 @@
|
||||
"evidence": "RNA_def_struct"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "rna-struct:VertexWeightMixModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6370,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "rna-struct:VertexWeightProximityModifier",
|
||||
@@ -94318,7 +94538,27 @@
|
||||
"evidence": "RNA_def_struct"
|
||||
}
|
||||
],
|
||||
"coverageStatus": "UNVERIFIED"
|
||||
"coverageStatus": "VERIFIED",
|
||||
"coverage": {
|
||||
"unitId": "rna-struct:VertexWeightProximityModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6494,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "rna-struct:View2D",
|
||||
@@ -107978,6 +108218,246 @@
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_mesh_to_volume",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_mesh_to_volume.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_particleinstance",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_particleinstance.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_surface",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_surface.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgedit",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgedit.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgmix",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgmix.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "modifier-source:MOD_weightvgproximity",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/modifiers/intern/MOD_weightvgproximity.cc",
|
||||
"line": 1,
|
||||
"evidence": "modifier-source-file"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:MeshToVolumeModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 8486,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:ParticleInstanceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 4758,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:SurfaceModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 5670,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightEditModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6235,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightMixModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6370,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
},
|
||||
{
|
||||
"unitId": "rna-struct:VertexWeightProximityModifier",
|
||||
"task": "WBV2-P1152-001",
|
||||
"capabilityId": "MODIFIER_READER_BATCH_SIX",
|
||||
"sourceLocation": {
|
||||
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_modifier.cc",
|
||||
"line": 6494,
|
||||
"evidence": "RNA_def_struct"
|
||||
},
|
||||
"evidenceManifest": {
|
||||
"path": "tests/golden/WBV2-P1152-001/manifest.json",
|
||||
"sha256": "cdaf821477bdb244a99d28cd8173394aaed20a7bc1e4f90a9a46ac67e600ac2f"
|
||||
},
|
||||
"productionEvidence": {
|
||||
"path": "tests/golden/WBV2-P1152-001/modifier-reader-batch-production.json",
|
||||
"sha256": "6fc2e91cf28b8d8e3a54182df4552c67b963a824d8d99967ddfc622186d4fdbf"
|
||||
},
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"status": "VERIFIED"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -32,12 +32,25 @@ if (!coverageBindings.length) throw new Error(`task ${task} has no coverageBindi
|
||||
const production = json(productionPath);
|
||||
assert.equal(production.browser, "chromium");
|
||||
assert.equal(production.queueMutation, false);
|
||||
assert.equal(production.error, undefined);
|
||||
assert.equal(production.saveReopenExact, true);
|
||||
assert.equal(production.deterministicExact, true);
|
||||
const inventoryPath = "tests/golden/WBV2/dynamic-inventory.json";
|
||||
const inventory = json(inventoryPath);
|
||||
assert.equal(production.fixtureSha256, sha(production.fixture));
|
||||
const fixturePaths = Array.isArray(production.fixtures) ? production.fixtures : production.fixture ? [production.fixture] : [];
|
||||
assert.ok(fixturePaths.length, "production evidence has no fixture(s)");
|
||||
const fixtureEvidence = Array.isArray(production.fixtures)
|
||||
? fixturePaths.map((fixture) => production[fixture])
|
||||
: [production];
|
||||
for (const evidence of fixtureEvidence) {
|
||||
assert.ok(evidence && typeof evidence === "object", "fixture result is missing");
|
||||
assert.equal(evidence.error, undefined);
|
||||
assert.equal(evidence.saveReopenExact, true);
|
||||
assert.equal(evidence.deterministicExact, true);
|
||||
}
|
||||
if (Array.isArray(production.fixtures)) {
|
||||
assert.equal(typeof production.fixtureSha256, "object");
|
||||
for (const fixture of fixturePaths) assert.equal(production.fixtureSha256[fixture], sha(fixture), `fixture hash drift: ${fixture}`);
|
||||
} else {
|
||||
assert.equal(production.fixtureSha256, sha(production.fixture));
|
||||
}
|
||||
const bindingsPath = "tests/golden/WBV2/dynamic-coverage-bindings.json";
|
||||
const existing = fs.existsSync(abs(bindingsPath)) ? json(bindingsPath) : [];
|
||||
const byId = new Map(existing.map((binding) => [binding.unitId, binding]));
|
||||
|
||||
@@ -62,8 +62,15 @@ const reusableProductionEvidence = () => {
|
||||
try { evidence = json(evidencePath); }
|
||||
catch { return null; }
|
||||
if (evidence.task !== task || evidence.browser !== "chromium" || evidence.queueMutation !== false
|
||||
|| evidence.error !== undefined || evidence.saveReopenExact !== true || evidence.deterministicExact !== true) return null;
|
||||
if (!evidence.fixture || !fs.existsSync(abs(evidence.fixture)) || evidence.fixtureSha256 !== sha(evidence.fixture)) return null;
|
||||
|| evidence.error !== undefined) return null;
|
||||
const fixturePaths = Array.isArray(evidence.fixtures) ? evidence.fixtures : evidence.fixture ? [evidence.fixture] : [];
|
||||
if (!fixturePaths.length) return null;
|
||||
const fixtureEvidence = Array.isArray(evidence.fixtures) ? fixturePaths.map((fixture) => evidence[fixture]) : [evidence];
|
||||
if (fixtureEvidence.some((entry) => !entry || entry.error !== undefined || entry.saveReopenExact !== true || entry.deterministicExact !== true)) return null;
|
||||
if (Array.isArray(evidence.fixtures)) {
|
||||
if (!evidence.fixtureSha256 || typeof evidence.fixtureSha256 !== "object") return null;
|
||||
if (fixturePaths.some((fixture) => !fs.existsSync(abs(fixture)) || evidence.fixtureSha256[fixture] !== sha(fixture))) return null;
|
||||
} else if (!fs.existsSync(abs(evidence.fixture)) || evidence.fixtureSha256 !== sha(evidence.fixture)) return null;
|
||||
const expectedUnits = record.module.coverageBindings ?? [];
|
||||
if (expectedUnits.length && !sameIds(evidence.sourceUnits, expectedUnits)) return null;
|
||||
if (!fs.existsSync(abs(reportPath))) return null;
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
import crypto from "node:crypto";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { expect, test } from "@playwright/test";
|
||||
|
||||
const root = path.resolve(import.meta.dirname, "../../..");
|
||||
const fixtures = JSON.parse(process.env.WBV2_BATCH_FIXTURES ?? "[]") as string[];
|
||||
const task = process.env.WBV2_BATCH_TASK ?? "WBV2-P1152-001";
|
||||
const expectedTypes = JSON.parse(process.env.WBV2_BATCH_TYPES ?? "[]") as string[];
|
||||
const sourceUnits = JSON.parse(process.env.WBV2_BATCH_UNITS ?? "[]") as string[];
|
||||
if (!fixtures.length || !expectedTypes.length || !sourceUnits.length) throw new Error("multi-fixture batch requires fixtures, expected types and source units");
|
||||
const fixtureBytes = Object.fromEntries(fixtures.map((name) => [name, Array.from(fs.readFileSync(path.join(root, name)))]));
|
||||
const fixtureSha256 = Object.fromEntries(fixtures.map((name) => [name, crypto.createHash("sha256").update(Buffer.from(fixtureBytes[name])).digest("hex")]));
|
||||
|
||||
test("multi-fixture modifier reader batch preserves Blender Main metadata", async ({ page }) => {
|
||||
test.setTimeout(180_000);
|
||||
await page.goto("/");
|
||||
const result = await page.evaluate(async (input) => {
|
||||
const { WebEngineClient } = await import("/src/engine-client/WebEngineClient.ts");
|
||||
const canonical = (snapshot: any) => [...(snapshot.meshes ?? []), ...(snapshot.nodes ?? [])].flatMap((mesh: any) =>
|
||||
(mesh.modifierStack ?? []).map((modifier: any) => ({
|
||||
meshId: mesh.id,
|
||||
uuid: modifier.uuid,
|
||||
name: modifier.name,
|
||||
type: modifier.type,
|
||||
enabled: modifier.enabled,
|
||||
evaluationStatus: modifier.evaluationStatus,
|
||||
parameters: modifier.parameters ?? null,
|
||||
})));
|
||||
const output: Record<string, any> = {};
|
||||
for (const [name, bytes] of Object.entries(input.fixtures as Record<string, number[]>)) {
|
||||
const client = new WebEngineClient({ timeoutMs: 60_000 });
|
||||
const reopenedClient = new WebEngineClient({ timeoutMs: 60_000 });
|
||||
const secondClient = new WebEngineClient({ timeoutMs: 60_000 });
|
||||
try {
|
||||
const opened = await client.openBlend(Uint8Array.from(bytes).buffer);
|
||||
const before = canonical(opened.snapshot);
|
||||
const saved = await client.saveBlend();
|
||||
const after = canonical((await reopenedClient.openBlend(saved.slice(0))).snapshot);
|
||||
const second = canonical((await secondClient.openBlend(Uint8Array.from(bytes).buffer)).snapshot);
|
||||
output[name] = {
|
||||
before,
|
||||
types: before.map((modifier: any) => modifier.type),
|
||||
after,
|
||||
second,
|
||||
saveReopenExact: JSON.stringify(before) === JSON.stringify(after),
|
||||
deterministicExact: JSON.stringify(before) === JSON.stringify(second),
|
||||
savedSha256: await crypto.subtle.digest("SHA-256", saved).then((hash) =>
|
||||
Array.from(new Uint8Array(hash), (byte) => byte.toString(16).padStart(2, "0")).join("")),
|
||||
};
|
||||
try {
|
||||
await client.openBlend(Uint8Array.from([0x42, 0x4c, 0x45, 0x4e, 0x44]).buffer);
|
||||
output[name].malformed = { code: "ACCEPTED_MALFORMED" };
|
||||
} catch (error: any) {
|
||||
output[name].malformed = { code: error?.code, message: error?.message };
|
||||
}
|
||||
} catch (error: any) {
|
||||
output[name] = { error: { code: error?.code, message: error?.message, detail: String(error) } };
|
||||
} finally {
|
||||
client.terminate();
|
||||
reopenedClient.terminate();
|
||||
secondClient.terminate();
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}, { fixtures: fixtureBytes });
|
||||
|
||||
const report = {
|
||||
schemaVersion: 1,
|
||||
task,
|
||||
operation: "MODIFIER_READER_MULTI_FIXTURE_CHROMIUM_SAVE_REOPEN",
|
||||
browser: "chromium",
|
||||
queueMutation: false,
|
||||
fixtures,
|
||||
fixtureSha256,
|
||||
expectedTypes,
|
||||
sourceUnits,
|
||||
...result,
|
||||
};
|
||||
fs.mkdirSync(path.join(root, `tests/golden/${task}`), { recursive: true });
|
||||
fs.writeFileSync(path.join(root, `tests/golden/${task}/modifier-reader-batch-production.json`), `${JSON.stringify(report, null, 2)}\n`);
|
||||
|
||||
const observedTypes = new Set(Object.values(result).flatMap((entry: any) => entry?.types ?? []));
|
||||
for (const type of expectedTypes) expect(observedTypes.has(type)).toBe(true);
|
||||
for (const fixture of fixtures) {
|
||||
expect(result[fixture]?.error).toBeUndefined();
|
||||
expect(result[fixture]?.saveReopenExact).toBe(true);
|
||||
expect(result[fixture]?.deterministicExact).toBe(true);
|
||||
expect(result[fixture]?.malformed?.code).not.toBe("ACCEPTED_MALFORMED");
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user