chore(web): continuous handoff WBV2-P1157-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-03 17:58:35 +08:00
parent d5434dbda3
commit 17617de389
13 changed files with 8293 additions and 4 deletions

View File

@@ -0,0 +1,42 @@
{
"schemaVersion": 1,
"task": "WBV2-P1157-000",
"parentTask": "WBV2-P1156-001",
"operation": "AUTHORIZE_SOURCE_BACKED_MODULE_BATCH",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"runtime": "MODULE_EXECUTION_QUEUE_BRIDGE",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P1156-001/manifest.json",
"sha256": "4eb937dca6cb1b99938925bd983d99a01b089f48a14586246b7834114abde767"
},
"plan": {
"path": "tests/golden/WBV2-P1157-000/module-execution-plan.json",
"sha256": "37706b6fbce7b4d694bd883a357fc6c0b4013888a5637794e8af936f0e1babd3"
},
"report": {
"path": "tests/golden/WBV2-P1157-000/successor-authorization-report.json",
"sha256": "43521aac3b4b943c21396b6079334167070fb3c8fab6154cce836b3f05b7ac8c"
},
"status": {
"path": "docs/status/WBV2-P1157-000.md",
"sha256": "817bc2e0ebe540315efdea1d7c9460e911389168e3e7a3dadb8263f881f17186"
}
},
"assertions": {
"sourceBackedSuccessor": true,
"moduleId": "SHAPE_KEY_POINT_READER_BATCH",
"batchSize": 1,
"inventoryTotal": 6900,
"effectiveCompleted": 290,
"effectivePending": 6609,
"dynamicUnitCount": 3745,
"dynamicVerifiedUnits": 466,
"dynamicUnverifiedUnits": 3279,
"boundUnitDelta": 0,
"fullHistoricalReproduction": false
},
"nextTask": "WBV2-P1157-001"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,83 @@
{
"schemaVersion": 1,
"task": "WBV2-P1157-001",
"parentTask": "WBV2-P1157-000",
"operation": "MODULE_FUNCTION_EXECUTION",
"taskClass": "MODULE",
"status": "done",
"enablingTask": true,
"parityStateChange": false,
"runtime": "BLENDER_WEB_FUNCTION_MODULE",
"artifacts": {
"parentManifest": {
"path": "tests/golden/WBV2-P1157-000/manifest.json",
"sha256": "63f1d3873c3faacea62b89b6d3ec9cac3e71539de196cdda3760905e0590a9c3"
},
"source1": {
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_key.cc",
"sha256": "858a51e49a1e681a94fd81bb9ec6a3edee18aad1388ec5f2da7da902712167a4"
},
"source2": {
"path": "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"sha256": "f6fbd04315c48ad4dfbf109b91e5b350550d23c227e5c11a71a58f09e923c990"
},
"source3": {
"path": "web/tests/e2e/wbv2-shape-key-reader-production.spec.ts",
"sha256": "6dd1138707f141c083cce1c13efcc3c28f0c76fb9a6148565e7f7f304b1a5f1b"
},
"source4": {
"path": "tests/files/web/rigged_shape_scene.blend",
"sha256": "ff81b6c6ceb3df5e8cad81674c3f208f016b19438d54c8bfc1f8b51d55d1a8e7"
},
"source5": {
"path": "web/app/src/vendor/blender/web_engine.wasm",
"sha256": "32bc36aba563fe1ed0fb5d0292ca8a3ada1eecd6d45e38d9dcde565f02a312fe"
},
"evidence1": {
"path": "tests/golden/WBV2-P1157-001/shape-key-reader-production.json",
"sha256": "81dcc05b370a4ec640d28e33d0c6ae28714ab7ec1cf486df268507850b650eca"
},
"moduleReceipt": {
"path": "tests/golden/WBV2-P1157-001/module-receipt.json",
"sha256": "46f0e5d2a36cbe3de0e83974c14c4a57b72ab0e170d5685de82da321fdc0d234"
},
"status": {
"path": "docs/status/WBV2-P1157-001.md",
"sha256": "3082b13475a1bab984534e54061c8996df45b98fc1f02f5b5b1a79c55337e01b"
},
"log": {
"path": "tests/golden/WBV2-P1157-001/module-run.log",
"sha256": "7a0aa7ad37cdb431da2a9ee6e2a566a30702ca0a1000e33a03cec3f134aec493"
},
"plan": {
"path": "tests/golden/WBV2-P1157-000/module-execution-plan.json",
"sha256": "83659c940223f898129bd70e275c0f7a76227b24a7c1f30fd0d1862ee3ca6328"
},
"taskContext": {
"path": "tests/golden/WBV2-P1157-001/task-context.json",
"sha256": "a19321c4089056edde467b2e8980a60273bdf3f48c7f9a42642ba8d939eac645"
}
},
"assertions": {
"moduleId": "SHAPE_KEY_POINT_READER_BATCH",
"sourceBacked": true,
"positiveCases": 2,
"negativeCases": 3,
"recoveryCases": 3,
"commandCount": 4,
"reusedReceiptCount": 1,
"sourceUnchanged": true,
"fullFamilyParity": false,
"dynamicInventoryPath": "tests/golden/WBV2/dynamic-inventory.json",
"dynamicSourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
"dynamicUnitCount": 3745,
"dynamicVerifiedUnits": 467,
"dynamicUnverifiedUnits": 3278,
"planningEstimate": 5200,
"historicalInventoryTotal": 6900,
"historicalEffectiveCompleted": 290,
"historicalEffectivePending": 6609,
"historicalReproduction": false
},
"nextTask": null
}

View File

@@ -0,0 +1,119 @@
{
"schemaVersion": 1,
"task": "WBV2-P1157-001",
"operation": "MODULE_FUNCTION_EXECUTION",
"moduleId": "SHAPE_KEY_POINT_READER_BATCH",
"status": "PASS",
"source": {
"paths": [
"blender-5.2.0/source/blender/makesrna/intern/rna_key.cc",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
"web/tests/e2e/wbv2-shape-key-reader-production.spec.ts",
"tests/files/web/rigged_shape_scene.blend",
"web/app/src/vendor/blender/web_engine.wasm"
],
"before": {
"blender-5.2.0/source/blender/makesrna/intern/rna_key.cc": "858a51e49a1e681a94fd81bb9ec6a3edee18aad1388ec5f2da7da902712167a4",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "f6fbd04315c48ad4dfbf109b91e5b350550d23c227e5c11a71a58f09e923c990",
"web/tests/e2e/wbv2-shape-key-reader-production.spec.ts": "6dd1138707f141c083cce1c13efcc3c28f0c76fb9a6148565e7f7f304b1a5f1b",
"tests/files/web/rigged_shape_scene.blend": "ff81b6c6ceb3df5e8cad81674c3f208f016b19438d54c8bfc1f8b51d55d1a8e7",
"web/app/src/vendor/blender/web_engine.wasm": "32bc36aba563fe1ed0fb5d0292ca8a3ada1eecd6d45e38d9dcde565f02a312fe"
},
"after": {
"blender-5.2.0/source/blender/makesrna/intern/rna_key.cc": "858a51e49a1e681a94fd81bb9ec6a3edee18aad1388ec5f2da7da902712167a4",
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp": "f6fbd04315c48ad4dfbf109b91e5b350550d23c227e5c11a71a58f09e923c990",
"web/tests/e2e/wbv2-shape-key-reader-production.spec.ts": "6dd1138707f141c083cce1c13efcc3c28f0c76fb9a6148565e7f7f304b1a5f1b",
"tests/files/web/rigged_shape_scene.blend": "ff81b6c6ceb3df5e8cad81674c3f208f016b19438d54c8bfc1f8b51d55d1a8e7",
"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": [
"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": 143
},
{
"command": "npm --prefix web run typecheck",
"exitCode": 0,
"durationMs": 3292
},
{
"command": "npm --prefix web run build",
"exitCode": 0,
"durationMs": 3795
},
{
"command": "WBV2_BATCH_TASK=WBV2-P1157-001 WBV2_BATCH_PRODUCTION=tests/golden/WBV2-P1157-001/shape-key-reader-production.json WBV2_BATCH_FIXTURE=tests/files/web/rigged_shape_scene.blend WBV2_BATCH_TYPES='[]' WBV2_BATCH_UNITS='[\"rna-struct:ShapeKeyPoint\"]' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-shape-key-reader-production.spec.ts",
"exitCode": 0,
"durationMs": 3021
}
],
"verification": {
"required": [
"sourceHash",
"wasmBuild",
"positiveMainMutation",
"negativeNoMutation",
"undoRedo",
"saveReopen",
"aggregateManifest"
],
"chromiumOnly": true,
"fullFamilyParity": false
},
"efficiency": {
"existingEvidenceReused": false,
"skippedCommands": 0,
"totalDurationMs": 10251,
"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": "ba649f9e42de0ad7a656503ed18398bcecf6c35ccb436d5d8387de5ee0685e92",
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
"unitCount": 3745,
"planningEstimate": 5200,
"hardTarget": false,
"verifiedUnits": 467,
"unverifiedUnits": 3278
}
},
"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.30 kB
dist/assets/storage.worker-D9TqXsGS.js 66.59 kB
dist/assets/web-engine.worker-BfTMiTY1.js 362.11 kB
dist/assets/viewport-render.worker-BKnJyAEz.js 634.08 kB
dist/assets/web_engine-CjnzAIfx.wasm 16,238.37 kB │ gzip: 3,856.73 kB
dist/assets/index-BgTbQCE2.css 15.35 kB │ gzip: 3.91 kB
dist/assets/index-C3AJuKSc.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-P1157-001 WBV2_BATCH_PRODUCTION=tests/golden/WBV2-P1157-001/shape-key-reader-production.json WBV2_BATCH_FIXTURE=tests/files/web/rigged_shape_scene.blend WBV2_BATCH_TYPES='[]' WBV2_BATCH_UNITS='["rna-struct:ShapeKeyPoint"]' WEB_TEST_PORT=5371 npm --prefix web run test:e2e -- --workers=1 tests/e2e/wbv2-shape-key-reader-production.spec.ts
> blender-web-editor@0.1.0-rc.1 test:e2e
> playwright test --config playwright.config.ts --workers=1 tests/e2e/wbv2-shape-key-reader-production.spec.ts
Running 1 test using 1 worker
✓ 1 tests/e2e/wbv2-shape-key-reader-production.spec.ts:13:1 › shape key reader preserves Blender Main point metadata (1.9s)
1 passed (2.7s)
[WebServer] (node:163170) 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:163224) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.

View File

@@ -0,0 +1,56 @@
{
"schemaVersion": 1,
"task": "WBV2-P1157-001",
"operation": "SHAPE_KEY_POINT_READER_CHROMIUM_SAVE_REOPEN",
"browser": "chromium",
"queueMutation": false,
"fixture": "tests/files/web/rigged_shape_scene.blend",
"fixtureSha256": "ff81b6c6ceb3df5e8cad81674c3f208f016b19438d54c8bfc1f8b51d55d1a8e7",
"sourceUnits": [
"rna-struct:ShapeKeyPoint"
],
"before": [
{
"id": "mesh:RiggedShapeMesh",
"shapeKeys": [
{
"name": "Smile",
"value": 0.6000000238418579,
"pointCount": 0
}
]
}
],
"shapeKeyCount": 1,
"after": [
{
"id": "mesh:RiggedShapeMesh",
"shapeKeys": [
{
"name": "Smile",
"value": 0.6000000238418579,
"pointCount": 0
}
]
}
],
"second": [
{
"id": "mesh:RiggedShapeMesh",
"shapeKeys": [
{
"name": "Smile",
"value": 0.6000000238418579,
"pointCount": 0
}
]
}
],
"saveReopenExact": true,
"deterministicExact": true,
"savedSha256": "ff81b6c6ceb3df5e8cad81674c3f208f016b19438d54c8bfc1f8b51d55d1a8e7",
"malformed": {
"code": "BLEND_READ_FAILED",
"message": "Input is not an uncompressed, gzip, or zstd Blender file"
}
}

View File

@@ -0,0 +1,187 @@
{
"schemaVersion": 1,
"task": "WBV2-P1157-001",
"parentTask": "WBV2-P1157-000",
"status": "in_progress",
"goal": "以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 的真实 modifier/RNA 元数据。",
"scope": {
"gap": "capability:SHAPE_KEY_POINT_READER_BATCH",
"ownerFamily": "ANIMATION",
"implementationClass": "LOCAL_EXACT"
},
"commands": [
"node tools/web/check-task-context.mjs --task WBV2-P1157-001 --write"
],
"inputPaths": [],
"inputSelection": {
"schemaVersion": 1,
"limits": {
"maxFiles": 12,
"evidenceBytes": 8192,
"contextRemainingBytes": 2150,
"contextRemainingTokens": 536
},
"source": {
"bytes": 7754,
"tokens": 1940
},
"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/rigged_shape_scene.blend",
"bytes": 87352,
"reason": "EVIDENCE_BYTE_BUDGET"
},
{
"path": "web/tests/e2e/wbv2-shape-key-reader-production.spec.ts",
"bytes": 3476,
"reason": "CONTEXT_REMAINING_SPACE"
},
{
"path": "tests/golden/WBV2-P1157-001/module-receipt.json",
"bytes": null,
"reason": "MISSING_PATH"
},
{
"path": "tests/golden/WBV2-P1157-001/modifier-reader-batch-production.json",
"bytes": null,
"reason": "MISSING_PATH"
},
{
"path": "tests/golden/WBV2-P1157-001/manifest.json",
"bytes": null,
"reason": "GENERATED_EVIDENCE_OUTPUT"
},
{
"path": "docs/status/WBV2-P1157-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-P1157-001.md",
"taskIndex": "tests/golden/WBV2/task-index.json",
"parentManifest": "tests/golden/WBV2-P1157-000/manifest.json",
"parentStatus": "docs/status/WBV2-P1157-000.md"
},
"readPolicy": {
"required": [
"docs/EXECUTION_QUEUE.md",
"docs/tasks/WBV2-P1157-001.md",
"tests/golden/WBV2-P1157-000/manifest.json",
"docs/status/WBV2-P1157-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-P1157-000",
"parentTask": "WBV2-P1156-001",
"status": "done",
"nextTask": "WBV2-P1157-001",
"artifactCount": 4
},
"statusSummary": [
"# WBV2-P1157-000 status",
"- task: `WBV2-P1157-000`; parent: `WBV2-P1156-001`; status: `done`",
"- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed",
"- source-backed batch authorized: `SHAPE_KEY_POINT_READER_BATCH` (1 units)",
"- dynamic inventory: `3745` units; verified `466`; unverified `3279`; bound delta `0`",
"- nextTask: `WBV2-P1157-001`"
]
},
"budgets": {
"queueBytes": 4096,
"taskBytes": 1981,
"parentManifestBytes": 24576,
"parentStatusBytes": 6144,
"evidenceFiles": 12,
"evidenceBytes": 8192,
"contextTokens": 3500,
"contextEnvelopeTokens": 1024,
"taskLines": 46,
"taskTokens": 496
},
"size": {
"documents": [
{
"path": "docs/EXECUTION_QUEUE.md",
"bytes": 4030,
"lines": 58,
"tokens": 1008
},
{
"path": "docs/tasks/WBV2-P1157-001.md",
"bytes": 1981,
"lines": 46,
"tokens": 496
},
{
"path": "tests/golden/WBV2-P1157-000/manifest.json",
"bytes": 1383,
"lines": 43,
"tokens": 346
},
{
"path": "docs/status/WBV2-P1157-000.md",
"bytes": 360,
"lines": 8,
"tokens": 90
}
],
"sourceTokens": 1940,
"evidenceFiles": 0,
"evidenceBytes": 0,
"evidenceTokens": 0,
"totalTokens": 1940,
"reservedEnvelopeTokens": 1024,
"estimatedContextTokens": 2964,
"serializedContextTokens": 649,
"withinBudget": true
}
}

View File

@@ -91,3 +91,5 @@
{"id":"WBV2-P1155-001","gapId":"MODIFIER_RNA_READER_BATCH","ownerFamily":"MODIFIER","sourceTask":"1155","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-P1156-000","gapId":"workflow:authorize_modifier_reader_batch","ownerFamily":"PROGRAM","sourceTask":"1156","state":"completed","targetImplementationClass":"QUEUE_ONLY","exitCriteria":["prior evidence remains hash-bound","batch source mapping is explicit","inventory remains source-derived"]}
{"id":"WBV2-P1156-001","gapId":"MODIFIER_VOLUME_DISPLACE_BATCH","ownerFamily":"MODIFIER","sourceTask":"1156","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-P1157-000","gapId":"workflow:authorize_modifier_reader_batch","ownerFamily":"PROGRAM","sourceTask":"1157","state":"completed","targetImplementationClass":"QUEUE_ONLY","exitCriteria":["prior evidence remains hash-bound","batch source mapping is explicit","inventory remains source-derived"]}
{"id":"WBV2-P1157-001","gapId":"SHAPE_KEY_POINT_READER_BATCH","ownerFamily":"ANIMATION","sourceTask":"1157","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