chore(web): continuous handoff WBV2-P1201-001
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-09-04 07:58:24 +08:00
parent 9ac4acae47
commit e8f809db22
13 changed files with 16498 additions and 4 deletions

View File

@@ -15,9 +15,9 @@
| 字段 | 值 |
| --- | --- |
| 里程碑 | WBV2 capability workflow |
| 当前任务 | `WBV2-P1200-001` |
| parent manifest | `tests/golden/WBV2-P1200-000/manifest.json` |
| 任务卡 | [`tasks/WBV2-P1200-001.md`](tasks/WBV2-P1200-001.md) |
| 当前任务 | `WBV2-P1201-001` |
| parent manifest | `tests/golden/WBV2-P1201-000/manifest.json` |
| 任务卡 | [`tasks/WBV2-P1201-001.md`](tasks/WBV2-P1201-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` |

View File

@@ -0,0 +1,9 @@
# WBV2-P1201-001 status
- task: `WBV2-P1201-001`; module: `AUTO_GEOMETRY_NATIVE_NODE_READER`; 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 `683`; unverified `3062`; planning estimate `5200` (non-binding); this-segment binding delta: `5`
- historical 6900-entry inventory remains read-only; full-family parity: `false`
- nextTask: `NONE`

View File

@@ -0,0 +1,48 @@
# WBV2-P1201-001: verify auto-generated native geometry node reader batch
- task: WBV2-P1201-001
- parent: WBV2-P1201-000
- status: in_progress
- gap: capability:AUTO_GEOMETRY_NATIVE_NODE_READER
- ownerFamily: NODES
- targetImplementationClass: LOCAL_EXACT
- batchId: WBV2-P1201-001:AUTO_GEOMETRY_NATIVE_NODE_READER:163fbe66b349eb14
- selectedRecordIds: ["node:GeometryNodeGreasePencilToCurves","node:GeometryNodeGridAdvect","node:GeometryNodeGridClip","node:GeometryNodeGridCurl","node:GeometryNodeGridDilateAndErode"]
- commandBudget: max=48; read/exploration max=16
- Implementation entrypoint: `node tools/web/run-wbv2-module-task.mjs --task WBV2-P1201-001 --write`
## 目标
以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 GeometryNodeGreasePencilToCurves, GeometryNodeGridAdvect, GeometryNodeGridClip, GeometryNodeGridCurl, GeometryNodeGridDilateAndErode 的真实 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/wbv2-geometry-163fbe66b349eb14.blend`
- Chromium test: `web/tests/e2e/geometry-node-main-reader.spec.ts`
- Selected modifier units: `modifier-source:GeometryNodeGreasePencilToCurves`, `modifier-source:GeometryNodeGridAdvect`, `modifier-source:GeometryNodeGridClip`, `modifier-source:GeometryNodeGridCurl`, `modifier-source:GeometryNodeGridDilateAndErode`
- Selected RNA units: none (source-only dependency batch)
## 验收
- 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-P1201-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-P1201-001/module-receipt.json`
- Aggregate production evidence: `tests/golden/WBV2-P1201-001/modifier-reader-batch-production.json`
- Manifest: `tests/golden/WBV2-P1201-001/manifest.json`
- Status: `docs/status/WBV2-P1201-001.md`
- Rollback: restore WBV2-P1201-000 as queue parent without rewriting prior evidence.

View File

@@ -0,0 +1,50 @@
{
"schemaVersion": 1,
"task": "WBV2-P1201-000",
"parentTask": "WBV2-P1200-001",
"operation": "AUTHORIZE_SOURCE_BACKED_MODULE_BATCH",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"runtime": "MODULE_EXECUTION_QUEUE_BRIDGE",
"batchId": "WBV2-P1201-001:AUTO_GEOMETRY_NATIVE_NODE_READER:163fbe66b349eb14",
"selectedRecordIds": [
"node:GeometryNodeGreasePencilToCurves",
"node:GeometryNodeGridAdvect",
"node:GeometryNodeGridClip",
"node:GeometryNodeGridCurl",
"node:GeometryNodeGridDilateAndErode"
],
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P1200-001/manifest.json",
"sha256": "d55d40d5d89d1110680b30c72607bc378870558ef7023d25f988ce15c241afd7"
},
"plan": {
"path": "tests/golden/WBV2-P1201-000/module-execution-plan.json",
"sha256": "cd4df2a23c73f369be88efd77630594da66eaa4d2531fe7a37f393e6272e071b"
},
"report": {
"path": "tests/golden/WBV2-P1201-000/successor-authorization-report.json",
"sha256": "b2775252c9f820f31dc178669d83088b9db52b853d89194261e19604f2eb781e"
},
"status": {
"path": "docs/status/WBV2-P1201-000.md",
"sha256": "a93e3e0318cca23faeae72e3e47a721396f1a2528a894491c46806d65d74f344"
}
},
"assertions": {
"sourceBackedSuccessor": true,
"moduleId": "AUTO_GEOMETRY_NATIVE_NODE_READER",
"batchSize": 5,
"inventoryTotal": 6900,
"effectiveCompleted": 290,
"effectivePending": 6609,
"dynamicUnitCount": 3745,
"dynamicVerifiedUnits": 678,
"dynamicUnverifiedUnits": 3067,
"boundUnitDelta": 0,
"fullHistoricalReproduction": false
},
"nextTask": "WBV2-P1201-001"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,43 @@
{
"schemaVersion": 1,
"task": "WBV2-P1201-001",
"operation": "GEOMETRY_NODE_MAIN_READER_CHROMIUM",
"browser": "chromium",
"queueMutation": false,
"fixture": "tests/files/web/generated/wbv2-geometry-163fbe66b349eb14.blend",
"fixtureSha256": "8f862d4537247311154d4198171482c43db3cf91fb812ef4bc96478f608ac8e5",
"sourceUnits": [
"node:GeometryNodeGreasePencilToCurves",
"node:GeometryNodeGridAdvect",
"node:GeometryNodeGridClip",
"node:GeometryNodeGridCurl",
"node:GeometryNodeGridDilateAndErode"
],
"expectedTypes": [
"GeometryNodeGreasePencilToCurves",
"GeometryNodeGridAdvect",
"GeometryNodeGridClip",
"GeometryNodeGridCurl",
"GeometryNodeGridDilateAndErode"
],
"graphNames": [
"WBV2 Geometry Batch"
],
"nodeTypes": [
"GeometryNodeGridDilateAndErode",
"NodeGroupOutput",
"GeometryNodeGreasePencilToCurves",
"GeometryNodeGridAdvect",
"GeometryNodeGridCurl",
"GeometryNodeGridClip",
"NodeGroupInput"
],
"nodeCount": 7,
"linkCount": 1,
"defaultCount": 23,
"unsupportedPreserved": false,
"stable": true,
"hashes": [
"16ddb14ecb30582eacd3daf1f3bb6094d818f163dd1aab94e3fda76935ef0ffb"
]
}

View File

@@ -0,0 +1,116 @@
{
"schemaVersion": 1,
"task": "WBV2-P1201-001",
"parentTask": "WBV2-P1201-000",
"operation": "MODULE_FUNCTION_EXECUTION",
"phase": "CONTINUE",
"taskClass": "MODULE",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"runtime": "BLENDER_WEB_FUNCTION_MODULE",
"batchId": "WBV2-P1201-001:AUTO_GEOMETRY_NATIVE_NODE_READER:163fbe66b349eb14",
"selectedRecordIds": [
"node:GeometryNodeGreasePencilToCurves",
"node:GeometryNodeGridAdvect",
"node:GeometryNodeGridClip",
"node:GeometryNodeGridCurl",
"node:GeometryNodeGridDilateAndErode"
],
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P1201-000/manifest.json",
"sha256": "decf5ca65b3bf525a3da9ca131cda19fb02278a75360039a880c17687bdbd4e1"
},
"source1": {
"path": "blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grease_pencil_to_curves.cc",
"sha256": "1faf9d560d9e3235e6e1dc63c954d5ecc33d2d09a8756fcd97d5df8dacef970e"
},
"source2": {
"path": "blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_advect.cc",
"sha256": "f8f5b3c9ec799429dde8a58e05d916c7f85bfc8fe0eefd5389ebc81436488f34"
},
"source3": {
"path": "blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_clip.cc",
"sha256": "2d8aeb224f9e87df4d13a22aac6651af774ae7d5d57d733b6f943c59983f5c86"
},
"source4": {
"path": "blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_curl.cc",
"sha256": "46af003c5cab64aa664e58c46a506db8205fd7e5741d9eb039eb0b9041cd1c57"
},
"source5": {
"path": "blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_dilate_erode.cc",
"sha256": "9b0212c0fc593699642d4e7281f4cc51ce311ae9224300533d219992987054a8"
},
"source6": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "8a9b46e8f5f9c4b30ad7818fac6fbd64b20dc2d0a962630f50c8f352bdf230d3"
},
"source7": {
"path": "web/tests/e2e/geometry-node-main-reader.spec.ts",
"sha256": "066e205d7a329fe96b4a344f052034790563447edd8d9eb25afd730618a26f84"
},
"source8": {
"path": "tests/files/web/generated/wbv2-geometry-163fbe66b349eb14.blend",
"sha256": "8f862d4537247311154d4198171482c43db3cf91fb812ef4bc96478f608ac8e5"
},
"source9": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "66fc59cba55a8c17d398b74d12ea4a9f09746c0f30c40f579c44aa34956e3072"
},
"evidence1": {
"path": "tests/golden/WBV2-P1201-001/geometry-node-reader-production.json",
"sha256": "b9f25213453c378df35a3096c50316b3afc6671dd0c6482a93340c014189086e"
},
"moduleReceipt": {
"path": "tests/golden/WBV2-P1201-001/module-receipt.json",
"sha256": "aedcf826c0759bf5cbe51970b904cd5f302aa93e0a9d4f143b51ebfec1304574"
},
"status": {
"path": "docs/status/WBV2-P1201-001.md",
"sha256": "b72c48b17a61d2724b1bfa1ab755baeb9f5a4913d28a66e9e265a3e9c66083b7"
},
"log": {
"path": "tests/golden/WBV2-P1201-001/module-run.log",
"sha256": "598f8bef1ac131efbbc5be67a64e9b5ffc96333c0a30c26ddb2562249a32db2f"
},
"plan": {
"path": "tests/golden/WBV2-P1201-000/module-execution-plan.json",
"sha256": "a237edab4073b1dad7c2648a17a99c59dccf45125a18513cfdb66ecaad45248b"
},
"taskContext": {
"path": "tests/golden/WBV2-P1201-001/task-context.json",
"sha256": "40b2e19c7162eaa7cebe3f5e84fa12cbfc607b5af6575641df6ccb256d2eca34"
}
},
"assertions": {
"moduleId": "AUTO_GEOMETRY_NATIVE_NODE_READER",
"batchId": "WBV2-P1201-001:AUTO_GEOMETRY_NATIVE_NODE_READER:163fbe66b349eb14",
"selectedRecordIds": [
"node:GeometryNodeGreasePencilToCurves",
"node:GeometryNodeGridAdvect",
"node:GeometryNodeGridClip",
"node:GeometryNodeGridCurl",
"node:GeometryNodeGridDilateAndErode"
],
"sourceBacked": true,
"positiveCases": 7,
"negativeCases": 3,
"recoveryCases": 3,
"commandCount": 4,
"reusedReceiptCount": 1,
"sourceUnchanged": true,
"fullFamilyParity": false,
"dynamicInventoryPath": "tests/golden/WBV2/dynamic-inventory.json",
"dynamicSourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
"dynamicUnitCount": 3745,
"dynamicVerifiedUnits": 683,
"dynamicUnverifiedUnits": 3062,
"planningEstimate": 5200,
"historicalInventoryTotal": 6900,
"historicalEffectiveCompleted": 290,
"historicalEffectivePending": 6609,
"historicalReproduction": false
},
"nextTask": null
}

View File

@@ -0,0 +1,154 @@
{
"schemaVersion": 1,
"task": "WBV2-P1201-001",
"operation": "MODULE_FUNCTION_EXECUTION",
"phase": "CONTINUE",
"moduleId": "AUTO_GEOMETRY_NATIVE_NODE_READER",
"batchId": "WBV2-P1201-001:AUTO_GEOMETRY_NATIVE_NODE_READER:163fbe66b349eb14",
"selectedRecordIds": [
"node:GeometryNodeGreasePencilToCurves",
"node:GeometryNodeGridAdvect",
"node:GeometryNodeGridClip",
"node:GeometryNodeGridCurl",
"node:GeometryNodeGridDilateAndErode"
],
"commandBudget": {
"maxCommands": 48,
"maxReadCommands": 16,
"commandCount": 4,
"readCommandCount": 0,
"withinBudget": true
},
"status": "PASS",
"source": {
"paths": [
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grease_pencil_to_curves.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_advect.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_clip.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_curl.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_dilate_erode.cc",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"web/tests/e2e/geometry-node-main-reader.spec.ts",
"tests/files/web/generated/wbv2-geometry-163fbe66b349eb14.blend",
"web/app/src/vendor/blender/web_engine.wasm"
],
"auditedPaths": [
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grease_pencil_to_curves.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_advect.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_clip.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_curl.cc",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_dilate_erode.cc",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp"
],
"before": {
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grease_pencil_to_curves.cc": "1faf9d560d9e3235e6e1dc63c954d5ecc33d2d09a8756fcd97d5df8dacef970e",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_advect.cc": "f8f5b3c9ec799429dde8a58e05d916c7f85bfc8fe0eefd5389ebc81436488f34",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_clip.cc": "2d8aeb224f9e87df4d13a22aac6651af774ae7d5d57d733b6f943c59983f5c86",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_curl.cc": "46af003c5cab64aa664e58c46a506db8205fd7e5741d9eb039eb0b9041cd1c57",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_dilate_erode.cc": "9b0212c0fc593699642d4e7281f4cc51ce311ae9224300533d219992987054a8",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "8a9b46e8f5f9c4b30ad7818fac6fbd64b20dc2d0a962630f50c8f352bdf230d3"
},
"after": {
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grease_pencil_to_curves.cc": "1faf9d560d9e3235e6e1dc63c954d5ecc33d2d09a8756fcd97d5df8dacef970e",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_advect.cc": "f8f5b3c9ec799429dde8a58e05d916c7f85bfc8fe0eefd5389ebc81436488f34",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_clip.cc": "2d8aeb224f9e87df4d13a22aac6651af774ae7d5d57d733b6f943c59983f5c86",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_curl.cc": "46af003c5cab64aa664e58c46a506db8205fd7e5741d9eb039eb0b9041cd1c57",
"blender-5.2.0/source/blender/nodes/geometry/nodes/node_geo_grid_dilate_erode.cc": "9b0212c0fc593699642d4e7281f4cc51ce311ae9224300533d219992987054a8",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "8a9b46e8f5f9c4b30ad7818fac6fbd64b20dc2d0a962630f50c8f352bdf230d3"
},
"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": [
"GeometryNodeGreasePencilToCurves type is read from Blender Main",
"GeometryNodeGridAdvect type is read from Blender Main",
"GeometryNodeGridClip type is read from Blender Main",
"GeometryNodeGridCurl type is read from Blender Main",
"GeometryNodeGridDilateAndErode 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,
"durationMs": 139
},
{
"command": "npm --prefix web run typecheck",
"exitCode": 0,
"durationMs": 3346
},
{
"command": "npm --prefix web run build",
"exitCode": 0,
"durationMs": 3870
},
{
"command": "WBV2_BATCH_TASK=WBV2-P1201-001 WBV2_BATCH_PRODUCTION=tests/golden/WBV2-P1201-001/geometry-node-reader-production.json WBV2_BATCH_FIXTURE=tests/files/web/generated/wbv2-geometry-163fbe66b349eb14.blend WBV2_BATCH_TYPES='[\"GeometryNodeGreasePencilToCurves\",\"GeometryNodeGridAdvect\",\"GeometryNodeGridClip\",\"GeometryNodeGridCurl\",\"GeometryNodeGridDilateAndErode\"]' WBV2_BATCH_UNITS='[\"node:GeometryNodeGreasePencilToCurves\",\"node:GeometryNodeGridAdvect\",\"node:GeometryNodeGridClip\",\"node:GeometryNodeGridCurl\",\"node:GeometryNodeGridDilateAndErode\"]' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/geometry-node-main-reader.spec.ts",
"exitCode": 0,
"durationMs": 2626
}
],
"verification": {
"required": [
"sourceHash",
"wasmBuild",
"positiveMainMutation",
"negativeNoMutation",
"undoRedo",
"saveReopen",
"aggregateManifest"
],
"chromiumOnly": true,
"fullFamilyParity": false
},
"efficiency": {
"existingEvidenceReused": false,
"skippedCommands": 0,
"totalDurationMs": 9981,
"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": "caa2f4d3876ab3e6913ad81a57163cb72295456fb6813daf6e6bea1cb046e5ab",
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
"unitCount": 3745,
"planningEstimate": 5200,
"hardTarget": false,
"verifiedUnits": 683,
"unverifiedUnits": 3062
}
},
"nextTask": null
}

View File

@@ -0,0 +1,49 @@
> 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
ninja: no work to do.
> npm --prefix web run typecheck
> blender-web-editor@0.1.0-rc.1 typecheck
> tsc -p tsconfig.json --noEmit
> npm --prefix web run build
> blender-web-editor@0.1.0-rc.1 build
> tsc -p tsconfig.json && vite build --config app/vite.config.ts
vite v8.2.0 building client environment for production...

transforming...✓ 102 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html 0.46 kB │ gzip: 0.29 kB
dist/assets/storage.worker-D9TqXsGS.js 66.59 kB
dist/assets/web-engine.worker-ynL11m10.js 362.11 kB
dist/assets/viewport-render.worker-BKnJyAEz.js 634.08 kB
dist/assets/web_engine-C04Dp4ba.wasm 16,243.50 kB │ gzip: 3,858.52 kB
dist/assets/index-BgTbQCE2.css 15.35 kB │ gzip: 3.91 kB
dist/assets/index-B1m0FaKy.js 1,190.30 kB │ gzip: 316.69 kB
✓ built in 455ms
[plugin rolldown:vite-resolve] Module "module" has been externalized for browser compatibility, imported by "/home/mes123456/workinf_Blender_Wasm/web/app/src/vendor/blender/web_engine.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
[plugin builtin:vite-reporter]
(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
> WBV2_BATCH_TASK=WBV2-P1201-001 WBV2_BATCH_PRODUCTION=tests/golden/WBV2-P1201-001/geometry-node-reader-production.json WBV2_BATCH_FIXTURE=tests/files/web/generated/wbv2-geometry-163fbe66b349eb14.blend WBV2_BATCH_TYPES='["GeometryNodeGreasePencilToCurves","GeometryNodeGridAdvect","GeometryNodeGridClip","GeometryNodeGridCurl","GeometryNodeGridDilateAndErode"]' WBV2_BATCH_UNITS='["node:GeometryNodeGreasePencilToCurves","node:GeometryNodeGridAdvect","node:GeometryNodeGridClip","node:GeometryNodeGridCurl","node:GeometryNodeGridDilateAndErode"]' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/geometry-node-main-reader.spec.ts
> blender-web-editor@0.1.0-rc.1 test:e2e
> playwright test --config playwright.config.ts --workers=1 tests/e2e/geometry-node-main-reader.spec.ts
Running 1 test using 1 worker
✓ 1 tests/e2e/geometry-node-main-reader.spec.ts:14:1 › M10-01 production Worker preserves Main Geometry Node topology across save and reopen (1.5s)
1 passed (2.3s)
[WebServer] (node:1281077) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
(node:1281131) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.

View File

@@ -0,0 +1,217 @@
{
"schemaVersion": 1,
"task": "WBV2-P1201-001",
"parentTask": "WBV2-P1201-000",
"status": "in_progress",
"goal": "以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 GeometryNodeGreasePencilToCurves, GeometryNodeGridAdvect, GeometryNodeGridClip, GeometryNodeGridCurl, GeometryNodeGridDilateAndErode 的真实 modifier/RNA 元数据。",
"scope": {
"gap": "capability:AUTO_GEOMETRY_NATIVE_NODE_READER",
"ownerFamily": "NODES",
"implementationClass": "LOCAL_EXACT"
},
"commands": [
"node tools/web/check-task-context.mjs --task WBV2-P1201-001 --write"
],
"inputPaths": [],
"inputMetadata": {
"docs/EXECUTION_QUEUE.md": {
"path": "docs/EXECUTION_QUEUE.md",
"exists": true,
"bytes": 4030,
"mtime_ns": "1788479904285426639",
"sha256": "d38147ba4af4899ce1cd57c3c3fe8947d696b7802b21df49bbfd080b41e9a809"
},
"docs/tasks/WBV2-P1201-001.md": {
"path": "docs/tasks/WBV2-P1201-001.md",
"exists": true,
"bytes": 2697,
"mtime_ns": "1788479893822859249",
"sha256": "d04a90ddd1458b10c2637c01a8424746bd7c384ed609e1dd29bf3acbfa830fd3"
},
"tests/golden/WBV2-P1201-000/manifest.json": {
"path": "tests/golden/WBV2-P1201-000/manifest.json",
"exists": true,
"bytes": 1686,
"mtime_ns": "1788479893823488578",
"sha256": "decf5ca65b3bf525a3da9ca131cda19fb02278a75360039a880c17687bdbd4e1"
},
"docs/status/WBV2-P1201-000.md": {
"path": "docs/status/WBV2-P1201-000.md",
"exists": true,
"bytes": 364,
"mtime_ns": "1788479893823007565",
"sha256": "a93e3e0318cca23faeae72e3e47a721396f1a2528a894491c46806d65d74f344"
}
},
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 1127,
"contextRemainingTokens": 280
},
"source": {
"bytes": 8777,
"tokens": 2196
},
"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": 314614,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "tests/files/web/generated/wbv2-geometry-163fbe66b349eb14.blend",
"bytes": 98261,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "web/tests/e2e/geometry-node-main-reader.spec.ts",
"bytes": 3789,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "tests/golden/WBV2-P1201-001/module-receipt.json",
"bytes": 7462,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "tests/golden/WBV2-P1201-001/modifier-reader-batch-production.json",
"bytes": null,
"reason": "MISSING_PATH"
},
{
"path": "tests/golden/WBV2-P1201-001/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P1201-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-P1201-001.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P1201-000/manifest.json",
"parentStatus": "docs/status/WBV2-P1201-000.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P1201-001.md",
"tests/golden/WBV2-P1201-000/manifest.json",
"docs/status/WBV2-P1201-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-P1201-000",
"parentTask": "WBV2-P1200-001",
"status": "done",
"nextTask": "WBV2-P1201-001",
"artifactCount": 4
},
"statusSummary": [
"# WBV2-P1201-000 status",
"- task: `WBV2-P1201-000`; parent: `WBV2-P1200-001`; status: `done`",
"- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed",
"- source-backed batch authorized: `AUTO_GEOMETRY_NATIVE_NODE_READER` (5 units)",
"- dynamic inventory: `3745` units; verified `678`; unverified `3067`; bound delta `0`",
"- nextTask: `WBV2-P1201-001`"
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 2697,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 49,
"taskTokens": 675
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 4030,
"lines": 58,
"tokens": 1008
},
{
"path": "docs/tasks/WBV2-P1201-001.md",
"bytes": 2697,
"lines": 49,
"tokens": 675
},
{
"path": "tests/golden/WBV2-P1201-000/manifest.json",
"bytes": 1686,
"lines": 51,
"tokens": 422
},
{
"path": "docs/status/WBV2-P1201-000.md",
"bytes": 364,
"lines": 8,
"tokens": 91
}
],
"sourceTokens": 2196,
"evidenceFiles": 0,
"evidenceBytes": 0,
"evidenceTokens": 0,
"totalTokens": 2196,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 3220,
"serializedContextTokens": 682,
"withinBudget": true
}
}

View File

@@ -179,3 +179,5 @@
{"id":"WBV2-P1199-001","gapId":"AUTO_GEOMETRY_NATIVE_NODE_READER","ownerFamily":"NODES","sourceTask":"1199","state":"completed","targetImplementationClass":"LOCAL_EXACT","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"]}
{"id":"WBV2-P1200-000","gapId":"workflow:authorize_modifier_reader_batch","ownerFamily":"PROGRAM","sourceTask":"1200","state":"completed","targetImplementationClass":"QUEUE_ONLY","exitCriteria":["prior evidence remains hash-bound","batch source mapping is explicit","inventory remains source-derived"]}
{"id":"WBV2-P1200-001","gapId":"AUTO_GEOMETRY_NATIVE_NODE_READER","ownerFamily":"NODES","sourceTask":"1200","state":"completed","targetImplementationClass":"LOCAL_EXACT","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"]}
{"id":"WBV2-P1201-000","gapId":"workflow:authorize_modifier_reader_batch","ownerFamily":"PROGRAM","sourceTask":"1201","state":"completed","targetImplementationClass":"QUEUE_ONLY","exitCriteria":["prior evidence remains hash-bound","batch source mapping is explicit","inventory remains source-derived"]}
{"id":"WBV2-P1201-001","gapId":"AUTO_GEOMETRY_NATIVE_NODE_READER","ownerFamily":"NODES","sourceTask":"1201","state":"completed","targetImplementationClass":"LOCAL_EXACT","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"]}

File diff suppressed because one or more lines are too long