feat(web): optimize source coverage batching
This commit is contained in:
@@ -5,4 +5,4 @@
|
||||
- positive Main mutation, negative no-mutation, recovery and Chromium gates are recorded in the module receipt
|
||||
- dynamic source inventory: `3745` units; verified `377`; unverified `3368`; this-segment binding delta: `8`; planning estimate `5200` (non-binding)
|
||||
- historical 6900-entry inventory remains read-only; full-family parity: `false`
|
||||
- nextTask: `NONE`
|
||||
- nextTask: `WBV2-P1149-000`
|
||||
|
||||
7
docs/status/WBV2-P1149-000.md
Normal file
7
docs/status/WBV2-P1149-000.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WBV2-P1149-000 status
|
||||
|
||||
- task: `WBV2-P1149-000`; parent: `WBV2-P1148-001`; status: `done`
|
||||
- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed
|
||||
- source-backed batch authorized: `MODIFIER_READER_BATCH_FOUR` (8 units)
|
||||
- dynamic inventory: `3745` units; verified `377`; unverified `3368`; bound delta `0`
|
||||
- nextTask: `WBV2-P1149-001`
|
||||
@@ -3,6 +3,6 @@
|
||||
- task: `WBV2-P1149-001`; module: `MODIFIER_READER_BATCH_FOUR`; status: `done`
|
||||
- source hashes stable: `true`; commands passed: `4`
|
||||
- positive Main mutation, negative no-mutation, recovery and Chromium gates are recorded in the module receipt
|
||||
- dynamic source inventory: `3745` units; verified `377`; unverified `3368`; planning estimate `5200` (non-binding)
|
||||
- dynamic source inventory: `3745` units; verified `385`; unverified `3360`; planning estimate `5200` (non-binding); this-segment binding delta: `8`
|
||||
- historical 6900-entry inventory remains read-only; full-family parity: `false`
|
||||
- nextTask: `NONE`
|
||||
- nextTask: `WBV2-P1150-000`
|
||||
|
||||
7
docs/status/WBV2-P1150-000.md
Normal file
7
docs/status/WBV2-P1150-000.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WBV2-P1150-000 status
|
||||
|
||||
- task: `WBV2-P1150-000`; parent: `WBV2-P1149-001`; status: `done`
|
||||
- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed
|
||||
- source-backed batch authorized: `MODIFIER_READER_BATCH_FIVE` (8 units)
|
||||
- dynamic inventory: `3745` units; verified `385`; unverified `3360`; bound delta `0`
|
||||
- nextTask: `WBV2-P1150-001`
|
||||
@@ -5,4 +5,4 @@
|
||||
- positive Main mutation, negative no-mutation, recovery and Chromium gates are recorded in the module receipt
|
||||
- dynamic source inventory: `3745` units; verified `393`; unverified `3352`; planning estimate `5200` (non-binding); this-segment binding delta: `8`
|
||||
- historical 6900-entry inventory remains read-only; full-family parity: `false`
|
||||
- nextTask: `NONE`
|
||||
- nextTask: `WBV2-P1151-000`
|
||||
|
||||
7
docs/status/WBV2-P1151-000.md
Normal file
7
docs/status/WBV2-P1151-000.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# WBV2-P1151-000 status
|
||||
|
||||
- task: `WBV2-P1151-000`; parent: `WBV2-P1150-001`; status: `done`
|
||||
- taskClass: `QUEUE_ENABLEMENT`; no modifier-family parity completion claimed
|
||||
- source-backed batch authorized: `GREASE_PENCIL_MODIFIER_READER_BATCH` (48 units)
|
||||
- dynamic inventory: `3745` units; verified `393`; unverified `3352`; bound delta `0`
|
||||
- nextTask: `WBV2-P1151-001`
|
||||
@@ -3,6 +3,6 @@
|
||||
- task: `WBV2-P1151-001`; module: `GREASE_PENCIL_MODIFIER_READER_BATCH`; status: `done`
|
||||
- source hashes stable: `true`; commands passed: `4`
|
||||
- positive Main mutation, negative no-mutation, recovery and Chromium gates are recorded in the module receipt
|
||||
- dynamic source inventory: `3745` units; verified `441`; unverified `3304`; planning estimate `5200` (non-binding); this-segment binding delta: `48`
|
||||
- dynamic source inventory: `3745` units; verified `442`; unverified `3303`; this-segment binding delta: `49`; planning estimate `5200` (non-binding)
|
||||
- historical 6900-entry inventory remains read-only; full-family parity: `false`
|
||||
- nextTask: `NONE`
|
||||
|
||||
45
docs/tasks/WBV2-P1149-000.md
Normal file
45
docs/tasks/WBV2-P1149-000.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# WBV2-P1149-000: verify modifier reader batch four
|
||||
|
||||
- task: WBV2-P1149-000
|
||||
- parent: WBV2-P1148-001
|
||||
- status: done
|
||||
- gap: capability:MODIFIER_READER_BATCH_FOUR
|
||||
- ownerFamily: MODIFIER
|
||||
- targetImplementationClass: LOCAL_EXACT
|
||||
- Implementation entrypoint: `python3 my-tools/authorize_next_wbv2_task.py --write`
|
||||
|
||||
## 目标
|
||||
|
||||
以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 MOD_uvproject, MOD_uvwarp, MOD_volume_displace, MOD_volume_to_mesh 的真实 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`
|
||||
- Fixture: `tests/files/web/modifier_reader_batch_four_scene.blend`
|
||||
- Chromium test: `web/tests/e2e/wbv2-modifier-reader-batch-two-production.spec.ts`
|
||||
- Selected modifier units: `modifier-source:MOD_uvproject`, `modifier-source:MOD_uvwarp`, `modifier-source:MOD_volume_displace`, `modifier-source:MOD_volume_to_mesh`
|
||||
- Selected RNA units: `rna-struct:UVProjectModifier`, `rna-struct:UVWarpModifier`, `rna-struct:VolumeDisplaceModifier`, `rna-struct:VolumeToMeshModifier`
|
||||
|
||||
## 验收
|
||||
|
||||
- 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-P1149-000 --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-P1149-000/module-receipt.json`
|
||||
- Aggregate production evidence: `tests/golden/WBV2-P1149-000/modifier-reader-batch-production.json`
|
||||
- Manifest: `tests/golden/WBV2-P1149-000/manifest.json`
|
||||
- Status: `docs/status/WBV2-P1149-000.md`
|
||||
- Rollback: restore WBV2-P1148-001 as queue parent without rewriting prior evidence.
|
||||
45
docs/tasks/WBV2-P1150-000.md
Normal file
45
docs/tasks/WBV2-P1150-000.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# WBV2-P1150-000: verify modifier reader batch five
|
||||
|
||||
- task: WBV2-P1150-000
|
||||
- parent: WBV2-P1149-001
|
||||
- status: done
|
||||
- gap: capability:MODIFIER_READER_BATCH_FIVE
|
||||
- ownerFamily: MODIFIER
|
||||
- targetImplementationClass: LOCAL_EXACT
|
||||
- Implementation entrypoint: `python3 my-tools/authorize_next_wbv2_task.py --write`
|
||||
|
||||
## 目标
|
||||
|
||||
以一个共享 Blender Main reader、WASM build、Worker 路由和 Chromium receipt 批量验证 MOD_meshcache, MOD_meshsequencecache, MOD_multires, MOD_ocean 的真实 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`
|
||||
- Fixture: `tests/files/web/modifier_reader_batch_five_scene.blend`
|
||||
- Chromium test: `web/tests/e2e/wbv2-modifier-reader-batch-two-production.spec.ts`
|
||||
- Selected modifier units: `modifier-source:MOD_meshcache`, `modifier-source:MOD_meshsequencecache`, `modifier-source:MOD_multires`, `modifier-source:MOD_ocean`
|
||||
- Selected RNA units: `rna-struct:MeshCacheModifier`, `rna-struct:MeshSequenceCacheModifier`, `rna-struct:MultiresModifier`, `rna-struct:OceanModifier`
|
||||
|
||||
## 验收
|
||||
|
||||
- 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-P1150-000 --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-P1150-000/module-receipt.json`
|
||||
- Aggregate production evidence: `tests/golden/WBV2-P1150-000/modifier-reader-batch-production.json`
|
||||
- Manifest: `tests/golden/WBV2-P1150-000/manifest.json`
|
||||
- Status: `docs/status/WBV2-P1150-000.md`
|
||||
- Rollback: restore WBV2-P1149-001 as queue parent without rewriting prior evidence.
|
||||
31
docs/tasks/WBV2-P1151-000.md
Normal file
31
docs/tasks/WBV2-P1151-000.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# WBV2-P1151-000: authorize module batch
|
||||
|
||||
- task: WBV2-P1151-000
|
||||
- parent: WBV2-P1150-001
|
||||
- status: done
|
||||
- gap: capability:GREASE_PENCIL_MODIFIER_READER_BATCH
|
||||
- ownerFamily: DRAWING
|
||||
- targetImplementationClass: QUEUE_ONLY
|
||||
- Implementation entrypoint: `python3 my-tools/authorize_next_wbv2_task.py --write`
|
||||
|
||||
## 目标
|
||||
|
||||
授权一个共享 Blender Main/WASM/Chromium 功能批次:GREASE_PENCIL_MODIFIER_READER_BATCH,共 48 个源码/RNA 单元。
|
||||
|
||||
## 输入与范围
|
||||
|
||||
- Blender source: `blender-5.2.0/source/blender`
|
||||
- Fixture/test: `tests/files/web/modifier_grease_pencil_scene.blend`, `web/tests/e2e/wbv2-modifier-reader-batch-two-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-P1151-000 --write`
|
||||
|
||||
## 交付与回滚
|
||||
|
||||
- Manifest: `tests/golden/WBV2-P1151-000/manifest.json`
|
||||
- Status: `docs/status/WBV2-P1151-000.md`
|
||||
- Rollback: restore WBV2-P1150-001 as queue parent.
|
||||
@@ -53,6 +53,66 @@ PREFERRED_BATCHES = [
|
||||
"production": "tests/golden/{task}/modifier-reader-batch-production.json",
|
||||
"types": ["REMESH", "SKIN", "WEIGHTED_NORMAL", "WARP"],
|
||||
},
|
||||
{
|
||||
"moduleId": "MODIFIER_READER_BATCH_FOUR",
|
||||
"title": "verify modifier reader batch four",
|
||||
"owner": "MODIFIER",
|
||||
"identifiers": ["MOD_uvproject", "MOD_uvwarp", "MOD_normal_edit", "MOD_volume_to_mesh"],
|
||||
"rna": ["UVProjectModifier", "UVWarpModifier", "NormalEditModifier", "VolumeToMeshModifier"],
|
||||
"fixture": "tests/files/web/modifier_reader_batch_four_scene.blend",
|
||||
"test": "web/tests/e2e/wbv2-modifier-reader-batch-two-production.spec.ts",
|
||||
"production": "tests/golden/{task}/modifier-reader-batch-production.json",
|
||||
"types": ["UV_PROJECT", "UV_WARP", "NORMAL_EDIT", "VOLUME_TO_MESH"],
|
||||
},
|
||||
{
|
||||
"moduleId": "MODIFIER_READER_BATCH_FIVE",
|
||||
"title": "verify modifier reader batch five",
|
||||
"owner": "MODIFIER",
|
||||
"identifiers": ["MOD_meshcache", "MOD_meshsequencecache", "MOD_multires", "MOD_ocean"],
|
||||
"rna": ["MeshCacheModifier", "MeshSequenceCacheModifier", "MultiresModifier", "OceanModifier"],
|
||||
"fixture": "tests/files/web/modifier_reader_batch_five_scene.blend",
|
||||
"test": "web/tests/e2e/wbv2-modifier-reader-batch-two-production.spec.ts",
|
||||
"production": "tests/golden/{task}/modifier-reader-batch-production.json",
|
||||
"types": ["MESH_CACHE", "MESH_SEQUENCE_CACHE", "MULTIRES", "OCEAN"],
|
||||
},
|
||||
{
|
||||
"moduleId": "GREASE_PENCIL_MODIFIER_READER_BATCH",
|
||||
"title": "verify Grease Pencil modifier reader batch",
|
||||
"owner": "DRAWING",
|
||||
"identifiers": [
|
||||
"MOD_grease_pencil_armature", "MOD_grease_pencil_array", "MOD_grease_pencil_build",
|
||||
"MOD_grease_pencil_color", "MOD_grease_pencil_dash", "MOD_grease_pencil_envelope",
|
||||
"MOD_grease_pencil_hook", "MOD_grease_pencil_lattice", "MOD_grease_pencil_length",
|
||||
"MOD_grease_pencil_mirror", "MOD_grease_pencil_multiply", "MOD_grease_pencil_noise",
|
||||
"MOD_grease_pencil_offset", "MOD_grease_pencil_opacity", "MOD_grease_pencil_outline",
|
||||
"MOD_grease_pencil_shrinkwrap", "MOD_grease_pencil_simplify", "MOD_grease_pencil_smooth",
|
||||
"MOD_grease_pencil_subdiv", "MOD_grease_pencil_texture", "MOD_grease_pencil_thickness",
|
||||
"MOD_grease_pencil_time", "MOD_grease_pencil_tint", "MOD_grease_pencil_weight_angle",
|
||||
"MOD_grease_pencil_weight_proximity",
|
||||
],
|
||||
"rna": [
|
||||
"GreasePencilArmatureModifier", "GreasePencilArrayModifier", "GreasePencilBuildModifier",
|
||||
"GreasePencilColorModifier", "GreasePencilEnvelopeModifier", "GreasePencilHookModifier",
|
||||
"GreasePencilLatticeModifier", "GreasePencilLengthModifier", "GreasePencilMirrorModifier",
|
||||
"GreasePencilMultiplyModifier", "GreasePencilNoiseModifier", "GreasePencilOffsetModifier",
|
||||
"GreasePencilOpacityModifier", "GreasePencilOutlineModifier", "GreasePencilShrinkwrapModifier",
|
||||
"GreasePencilSimplifyModifier", "GreasePencilSmoothModifier", "GreasePencilSubdivModifier",
|
||||
"GreasePencilTextureModifier", "GreasePencilTimeModifier", "GreasePencilTintModifier",
|
||||
"GreasePencilWeightAngleModifier", "GreasePencilWeightProximityModifier",
|
||||
],
|
||||
"fixture": "tests/files/web/modifier_grease_pencil_scene.blend",
|
||||
"test": "web/tests/e2e/wbv2-modifier-reader-batch-two-production.spec.ts",
|
||||
"production": "tests/golden/{task}/modifier-reader-batch-production.json",
|
||||
"types": [
|
||||
"GREASE_PENCIL_ARMATURE", "GREASE_PENCIL_ARRAY", "GREASE_PENCIL_BUILD", "GREASE_PENCIL_COLOR",
|
||||
"GREASE_PENCIL_DASH", "GREASE_PENCIL_ENVELOPE", "GREASE_PENCIL_HOOK", "GREASE_PENCIL_LATTICE",
|
||||
"GREASE_PENCIL_LENGTH", "GREASE_PENCIL_MIRROR", "GREASE_PENCIL_MULTIPLY", "GREASE_PENCIL_NOISE",
|
||||
"GREASE_PENCIL_OFFSET", "GREASE_PENCIL_OPACITY", "GREASE_PENCIL_OUTLINE", "GREASE_PENCIL_SHRINKWRAP",
|
||||
"GREASE_PENCIL_SIMPLIFY", "GREASE_PENCIL_SMOOTH", "GREASE_PENCIL_SUBDIV", "GREASE_PENCIL_TEXTURE",
|
||||
"GREASE_PENCIL_THICKNESS", "GREASE_PENCIL_TIME", "GREASE_PENCIL_TINT", "GREASE_PENCIL_VERTEX_WEIGHT_ANGLE",
|
||||
"GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY",
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
@@ -113,6 +173,80 @@ 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:
|
||||
if task.endswith("-000"):
|
||||
return f"""# {task}: authorize module batch
|
||||
|
||||
- task: {task}
|
||||
- parent: {parent}
|
||||
- status: {status}
|
||||
- gap: capability:{batch['moduleId']}
|
||||
- ownerFamily: {batch['owner']}
|
||||
- targetImplementationClass: QUEUE_ONLY
|
||||
- Implementation entrypoint: `{entrypoint}`
|
||||
|
||||
## 目标
|
||||
|
||||
授权一个共享 Blender Main/WASM/Chromium 功能批次:{batch['moduleId']},共 {len(batch['identifiers']) + len(batch['rna'])} 个源码/RNA 单元。
|
||||
|
||||
## 输入与范围
|
||||
|
||||
- Blender source: `blender-5.2.0/source/blender`
|
||||
- Fixture/test: `{batch['fixture']}`, `{batch['test']}`
|
||||
|
||||
## 验收
|
||||
|
||||
- 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 {task} --write`
|
||||
|
||||
## 交付与回滚
|
||||
|
||||
- Manifest: `tests/golden/{task}/manifest.json`
|
||||
- Status: `docs/status/{task}.md`
|
||||
- Rollback: restore {parent} as queue parent.
|
||||
"""
|
||||
if len(batch["identifiers"]) + len(batch["rna"]) > 16:
|
||||
return f"""# {task}: {batch['title']}
|
||||
|
||||
- task: {task}
|
||||
- parent: {parent}
|
||||
- status: {status}
|
||||
- gap: capability:{batch['moduleId']}
|
||||
- ownerFamily: {batch['owner']}
|
||||
- targetImplementationClass: LOCAL_EXACT
|
||||
- Implementation entrypoint: `{entrypoint}`
|
||||
|
||||
## 目标
|
||||
|
||||
使用一个共享 Blender Main/WASM/Worker/Chromium 链验证 {len(batch['identifiers'])} 个 modifier source 与 {len(batch['rna'])} 个 RNA unit,形成一个聚合 receipt。
|
||||
|
||||
## 输入与范围
|
||||
|
||||
- Blender source family: `blender-5.2.0/source/blender`
|
||||
- Fixture: `{batch['fixture']}`
|
||||
- Chromium test: `{batch['test']}`
|
||||
- Unit selection: `{len(batch['identifiers']) + len(batch['rna'])} units`(完整列表只在 module plan/manifest)
|
||||
|
||||
## 验收
|
||||
|
||||
- one shared function chain covers every selected unit exactly once
|
||||
- malformed input, unsupported data and hash drift fail closed without Main mutation
|
||||
- save/reopen, deterministic second read and Chromium evidence are exact
|
||||
- `node tools/web/check-task-context.mjs --task {task} --write`
|
||||
|
||||
## 失败边界
|
||||
|
||||
- partial batch success never advances or claims omitted units
|
||||
- existing source/receipt hashes are reused; historical inventory remains read-only
|
||||
|
||||
## 交付与回滚
|
||||
|
||||
- Aggregate receipt: `tests/golden/{task}/module-receipt.json`
|
||||
- Production evidence: `tests/golden/{task}/modifier-reader-batch-production.json`
|
||||
- Manifest: `tests/golden/{task}/manifest.json`
|
||||
- Rollback: restore {parent} as queue parent.
|
||||
"""
|
||||
names = ", ".join(batch["identifiers"])
|
||||
units = ", ".join(f"`modifier-source:{name}`" for name in batch["identifiers"])
|
||||
rna_units = ", ".join(f"`rna-struct:{name}`" for name in batch["rna"])
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P1148-001.md",
|
||||
"sha256": "bbfd0890471b04498c501960087fb99b4547638115548a0d00af8ed577be546d"
|
||||
"sha256": "563f94e962ccba81976b2a9b1a09397745ed080701e6f37551d0f8169a614f52"
|
||||
},
|
||||
"log": {
|
||||
"path": "tests/golden/WBV2-P1148-001/module-run.log",
|
||||
@@ -107,5 +107,5 @@
|
||||
"historicalEffectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": null
|
||||
"nextTask": "WBV2-P1149-000"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1149-000",
|
||||
"operation": "AUTHORIZE_SOURCE_BACKED_MODULE_BATCH",
|
||||
"taskClass": "QUEUE_ENABLEMENT",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P1148-001",
|
||||
"manifest": "tests/golden/WBV2-P1148-001/manifest.json",
|
||||
"manifestSha256": "3602227697c22e05550370215e38b30cdcc4e9fd27a2f8a1fe8842f85cdbed69"
|
||||
},
|
||||
"module": {
|
||||
"moduleId": "MODIFIER_READER_BATCH_FOUR",
|
||||
"task": "WBV2-P1149-001",
|
||||
"batchSize": 8,
|
||||
"sourceUnits": [
|
||||
"modifier-source:MOD_uvproject",
|
||||
"modifier-source:MOD_uvwarp",
|
||||
"modifier-source:MOD_volume_displace",
|
||||
"modifier-source:MOD_volume_to_mesh",
|
||||
"rna-struct:UVProjectModifier",
|
||||
"rna-struct:UVWarpModifier",
|
||||
"rna-struct:VolumeDisplaceModifier",
|
||||
"rna-struct:VolumeToMeshModifier"
|
||||
],
|
||||
"sourceBacked": true
|
||||
},
|
||||
"inventory": {
|
||||
"unitCount": 3745,
|
||||
"verifiedUnits": 377,
|
||||
"unverifiedUnits": 3368,
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"boundUnitDelta": 0
|
||||
},
|
||||
"nextTask": "WBV2-P1149-001"
|
||||
}
|
||||
12
tests/golden/WBV2-P1149-001/continuous-commit-result.log
Normal file
12
tests/golden/WBV2-P1149-001/continuous-commit-result.log
Normal file
@@ -0,0 +1,12 @@
|
||||
[main 3c9ac9992] chore(web): continuous handoff WBV2-P1149-001
|
||||
14 files changed, 6966 insertions(+), 9 deletions(-)
|
||||
create mode 100644 docs/status/WBV2-P1149-001.md
|
||||
create mode 100644 docs/tasks/WBV2-P1149-001.md
|
||||
create mode 100644 tests/files/web/modifier_reader_batch_four_scene.blend
|
||||
create mode 100644 tests/golden/WBV2-P1149-000/manifest.json
|
||||
create mode 100644 tests/golden/WBV2-P1149-000/module-execution-plan.json
|
||||
create mode 100644 tests/golden/WBV2-P1149-001/manifest.json
|
||||
create mode 100644 tests/golden/WBV2-P1149-001/modifier-reader-batch-production.json
|
||||
create mode 100644 tests/golden/WBV2-P1149-001/module-receipt.json
|
||||
create mode 100644 tests/golden/WBV2-P1149-001/module-run.log
|
||||
create mode 100644 tests/golden/WBV2-P1149-001/task-context.json
|
||||
0
tests/golden/WBV2-P1149-001/continuous-commit.log
Normal file
0
tests/golden/WBV2-P1149-001/continuous-commit.log
Normal file
12
tests/golden/WBV2-P1149-001/continuous-gates.log
Normal file
12
tests/golden/WBV2-P1149-001/continuous-gates.log
Normal file
@@ -0,0 +1,12 @@
|
||||
context-governance-ok task=WBV2-P1149-001 contentTokens=1973 envelopeTokens=658/1024 estimatedTokens=2997/3500 inputs=0 commands=1
|
||||
{"schemaVersion":1,"operation":"BLENDER_WEB_EXECUTION_CONTROL_PLANE","status":"PASS","authority":{"executionPointer":"docs/EXECUTION_QUEUE.md","productCapabilities":"docs/BLENDER_WASM_CAPABILITY_MATRIX_TEMPLATE.json","legacyCoverage":"tests/golden/M15-03A/next-task-plan.json","historicalEvidence":"tests/golden/corrective/"},"queue":{"currentTask":"WBV2-P1149-001","parentManifest":"tests/golden/WBV2-P1149-000/manifest.json","parentTask":"WBV2-P1149-000","parentNextTask":"WBV2-P1149-001","activeCatalogTask":null,"legacyCoverageTask":"M16-GAP-00282","legacyCoverageParentManifest":"tests/golden/M16-GAP-00281/manifest.json","legacyCoverageState":"active","runnableInputs":null},"efficiency":{"legacyGapTasks":6900,"legacyCompleted":281,"legacyPending":6618,"capabilityClusters":3,"mappedLegacyGaps":9,"averageGapsPerCapability":3,"productiveLane":0,"rule":"one capability task may close multiple legacy cases; legacy cases remain regression coverage"},"dynamicInventory":{"path":"tests/golden/WBV2/dynamic-inventory.json","manifestPath":"tests/golden/WBV2/dynamic-inventory-manifest.json","sourceTreeSha256":"600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202","sourceFiles":6206,"unitCount":3745,"planningEstimate":5200,"hardTarget":false,"verifiedUnits":385,"unverifiedUnits":3360},"capabilityClusters":{"ASSET_CATALOG":{"capabilityId":"CAP-ASSET-CATALOG-MUTATION","sourceGaps":5,"parityLevel":"L0","targetParityLevel":"L4","lifecycleStatus":"planned"},"MODIFIER":{"capabilityId":"CAP-MODIFIER-STATE-MUTATION","sourceGaps":2,"parityLevel":"L0","targetParityLevel":"L3","lifecycleStatus":"planned"},"MESH":{"capabilityId":"CAP-MESH-POSITIVE-EDIT","sourceGaps":2,"parityLevel":"L0","targetParityLevel":"L3","lifecycleStatus":"planned"}},"issues":[],"remediation":[],"allowUnrunnable":true,"inputDigest":"5a71eda030919a06046dfa569b0af2ec9fbc8247e6e2d477d64c3981e61321cc"}
|
||||
v2-task-index-ok tasks=79 active=NONE catalog=tests/golden/WBV2/task-catalog.jsonl
|
||||
v2-handoff-ok task=WBV2-P1149-001 parent=WBV2-P1149-000 status=done artifacts=19
|
||||
|
||||
> blender-web-editor@0.1.0-rc.1 typecheck
|
||||
> tsc -p tsconfig.json --noEmit
|
||||
|
||||
|
||||
> blender-web-editor@0.1.0-rc.1 lint
|
||||
> eslint app
|
||||
|
||||
1
tests/golden/WBV2-P1149-001/continuous-push-verify.log
Normal file
1
tests/golden/WBV2-P1149-001/continuous-push-verify.log
Normal file
@@ -0,0 +1 @@
|
||||
local_head=3c9ac9992586f4ea99f1e04ac21e7aed0fb4a0f8 remote_head=3c9ac9992586f4ea99f1e04ac21e7aed0fb4a0f8
|
||||
4
tests/golden/WBV2-P1149-001/continuous-push.log
Normal file
4
tests/golden/WBV2-P1149-001/continuous-push.log
Normal file
@@ -0,0 +1,4 @@
|
||||
remote: . Processing 1 references
|
||||
remote: Processed 1 references in total
|
||||
To https://gitea.meswork.com/wangdequan/workinf_Blender_Wasm.git
|
||||
61b27cdeb..3c9ac9992 main -> main
|
||||
4
tests/golden/WBV2-P1149-001/continuous-runner.log
Normal file
4
tests/golden/WBV2-P1149-001/continuous-runner.log
Normal file
@@ -0,0 +1,4 @@
|
||||
v2-task-index-generated tasks=79 active=NONE output=tests/golden/WBV2/task-index.json
|
||||
task-context-ok task=WBV2-P1149-001 parent=WBV2-P1149-000 contentTokens=1973 envelopeTokens=658/1024 estimatedTokens=2997/3500 taskBytes=2313 next=NONE output=tests/golden/WBV2-P1149-001/task-context.json
|
||||
wbv2-module-coverage-bound task=WBV2-P1149-001 module=MODIFIER_READER_BATCH_FOUR added=8 verified=385 unverified=3360
|
||||
module-task-complete task=WBV2-P1149-001 module=MODIFIER_READER_BATCH_FOUR next=null commands=4
|
||||
@@ -67,11 +67,11 @@
|
||||
},
|
||||
"moduleReceipt": {
|
||||
"path": "tests/golden/WBV2-P1149-001/module-receipt.json",
|
||||
"sha256": "8c0c1ac15c67dcf8896731b7b4c1ed1661b0ccb9fe6718af83c35e9cc04b8ee9"
|
||||
"sha256": "62f0d1772b2d8a049f5dee846fc1a3be1949f9f51c70832e4990731f6952e41f"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P1149-001.md",
|
||||
"sha256": "e112ea060c91b500fff02d6d7c35e87518e9a00c2c8ad7bc670bd1794a19a900"
|
||||
"sha256": "4b073b2e841be29b21869139c771df7b57aae57f5ccc70e07852da836ea9d86b"
|
||||
},
|
||||
"log": {
|
||||
"path": "tests/golden/WBV2-P1149-001/module-run.log",
|
||||
@@ -99,13 +99,13 @@
|
||||
"dynamicInventoryPath": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"dynamicSourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"dynamicUnitCount": 3745,
|
||||
"dynamicVerifiedUnits": 377,
|
||||
"dynamicUnverifiedUnits": 3368,
|
||||
"dynamicVerifiedUnits": 385,
|
||||
"dynamicUnverifiedUnits": 3360,
|
||||
"planningEstimate": 5200,
|
||||
"historicalInventoryTotal": 6900,
|
||||
"historicalEffectiveCompleted": 290,
|
||||
"historicalEffectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": null
|
||||
"nextTask": "WBV2-P1150-000"
|
||||
}
|
||||
|
||||
@@ -115,13 +115,13 @@
|
||||
},
|
||||
"dynamic": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"sha256": "6ccf20cd15cf065e6432c209afa7e32557e619837f7880f0f38a2bc01ccaa02d",
|
||||
"sha256": "d3d52d4021c68e3d1f2c25ba009f079376ab270c74046ec78f7c8ce8cb6b420a",
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"unitCount": 3745,
|
||||
"planningEstimate": 5200,
|
||||
"hardTarget": false,
|
||||
"verifiedUnits": 377,
|
||||
"unverifiedUnits": 3368
|
||||
"verifiedUnits": 385,
|
||||
"unverifiedUnits": 3360
|
||||
}
|
||||
},
|
||||
"nextTask": null
|
||||
|
||||
0
tests/golden/WBV2-P1149-001/scheduler-child.log
Normal file
0
tests/golden/WBV2-P1149-001/scheduler-child.log
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1150-000",
|
||||
"operation": "AUTHORIZE_SOURCE_BACKED_MODULE_BATCH",
|
||||
"taskClass": "QUEUE_ENABLEMENT",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P1149-001",
|
||||
"manifest": "tests/golden/WBV2-P1149-001/manifest.json",
|
||||
"manifestSha256": "1f031db52009e862852f802cb4273ec53e5b1c004fff7bfd0e469cbaf65a64c4"
|
||||
},
|
||||
"module": {
|
||||
"moduleId": "MODIFIER_READER_BATCH_FIVE",
|
||||
"task": "WBV2-P1150-001",
|
||||
"batchSize": 8,
|
||||
"sourceUnits": [
|
||||
"modifier-source:MOD_meshcache",
|
||||
"modifier-source:MOD_meshsequencecache",
|
||||
"modifier-source:MOD_multires",
|
||||
"modifier-source:MOD_ocean",
|
||||
"rna-struct:MeshCacheModifier",
|
||||
"rna-struct:MeshSequenceCacheModifier",
|
||||
"rna-struct:MultiresModifier",
|
||||
"rna-struct:OceanModifier"
|
||||
],
|
||||
"sourceBacked": true
|
||||
},
|
||||
"inventory": {
|
||||
"unitCount": 3745,
|
||||
"verifiedUnits": 385,
|
||||
"unverifiedUnits": 3360,
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"boundUnitDelta": 0
|
||||
},
|
||||
"nextTask": "WBV2-P1150-001"
|
||||
}
|
||||
12
tests/golden/WBV2-P1150-001/continuous-commit-result.log
Normal file
12
tests/golden/WBV2-P1150-001/continuous-commit-result.log
Normal file
@@ -0,0 +1,12 @@
|
||||
[main dfe86bef3] chore(web): continuous handoff WBV2-P1150-001
|
||||
14 files changed, 7127 insertions(+), 7 deletions(-)
|
||||
create mode 100644 docs/status/WBV2-P1150-001.md
|
||||
create mode 100644 docs/tasks/WBV2-P1150-001.md
|
||||
create mode 100644 tests/files/web/modifier_reader_batch_five_scene.blend
|
||||
create mode 100644 tests/golden/WBV2-P1150-000/manifest.json
|
||||
create mode 100644 tests/golden/WBV2-P1150-000/module-execution-plan.json
|
||||
create mode 100644 tests/golden/WBV2-P1150-001/manifest.json
|
||||
create mode 100644 tests/golden/WBV2-P1150-001/modifier-reader-batch-production.json
|
||||
create mode 100644 tests/golden/WBV2-P1150-001/module-receipt.json
|
||||
create mode 100644 tests/golden/WBV2-P1150-001/module-run.log
|
||||
create mode 100644 tests/golden/WBV2-P1150-001/task-context.json
|
||||
0
tests/golden/WBV2-P1150-001/continuous-commit.log
Normal file
0
tests/golden/WBV2-P1150-001/continuous-commit.log
Normal file
12
tests/golden/WBV2-P1150-001/continuous-gates.log
Normal file
12
tests/golden/WBV2-P1150-001/continuous-gates.log
Normal file
@@ -0,0 +1,12 @@
|
||||
context-governance-ok task=WBV2-P1150-001 contentTokens=1970 envelopeTokens=657/1024 estimatedTokens=2994/3500 inputs=0 commands=1
|
||||
{"schemaVersion":1,"operation":"BLENDER_WEB_EXECUTION_CONTROL_PLANE","status":"PASS","authority":{"executionPointer":"docs/EXECUTION_QUEUE.md","productCapabilities":"docs/BLENDER_WASM_CAPABILITY_MATRIX_TEMPLATE.json","legacyCoverage":"tests/golden/M15-03A/next-task-plan.json","historicalEvidence":"tests/golden/corrective/"},"queue":{"currentTask":"WBV2-P1150-001","parentManifest":"tests/golden/WBV2-P1150-000/manifest.json","parentTask":"WBV2-P1150-000","parentNextTask":"WBV2-P1150-001","activeCatalogTask":null,"legacyCoverageTask":"M16-GAP-00282","legacyCoverageParentManifest":"tests/golden/M16-GAP-00281/manifest.json","legacyCoverageState":"active","runnableInputs":null},"efficiency":{"legacyGapTasks":6900,"legacyCompleted":281,"legacyPending":6618,"capabilityClusters":3,"mappedLegacyGaps":9,"averageGapsPerCapability":3,"productiveLane":0,"rule":"one capability task may close multiple legacy cases; legacy cases remain regression coverage"},"dynamicInventory":{"path":"tests/golden/WBV2/dynamic-inventory.json","manifestPath":"tests/golden/WBV2/dynamic-inventory-manifest.json","sourceTreeSha256":"600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202","sourceFiles":6206,"unitCount":3745,"planningEstimate":5200,"hardTarget":false,"verifiedUnits":393,"unverifiedUnits":3352},"capabilityClusters":{"ASSET_CATALOG":{"capabilityId":"CAP-ASSET-CATALOG-MUTATION","sourceGaps":5,"parityLevel":"L0","targetParityLevel":"L4","lifecycleStatus":"planned"},"MODIFIER":{"capabilityId":"CAP-MODIFIER-STATE-MUTATION","sourceGaps":2,"parityLevel":"L0","targetParityLevel":"L3","lifecycleStatus":"planned"},"MESH":{"capabilityId":"CAP-MESH-POSITIVE-EDIT","sourceGaps":2,"parityLevel":"L0","targetParityLevel":"L3","lifecycleStatus":"planned"}},"issues":[],"remediation":[],"allowUnrunnable":true,"inputDigest":"82d38fc4d28b8866a6a3993fde1c5b69160bdb219909a325b2715b0a4e1b3002"}
|
||||
v2-task-index-ok tasks=81 active=NONE catalog=tests/golden/WBV2/task-catalog.jsonl
|
||||
v2-handoff-ok task=WBV2-P1150-001 parent=WBV2-P1150-000 status=done artifacts=19
|
||||
|
||||
> blender-web-editor@0.1.0-rc.1 typecheck
|
||||
> tsc -p tsconfig.json --noEmit
|
||||
|
||||
|
||||
> blender-web-editor@0.1.0-rc.1 lint
|
||||
> eslint app
|
||||
|
||||
1
tests/golden/WBV2-P1150-001/continuous-push-verify.log
Normal file
1
tests/golden/WBV2-P1150-001/continuous-push-verify.log
Normal file
@@ -0,0 +1 @@
|
||||
local_head=dfe86bef38818c0a7132f49b0fb78b196b4395ed remote_head=dfe86bef38818c0a7132f49b0fb78b196b4395ed
|
||||
4
tests/golden/WBV2-P1150-001/continuous-push.log
Normal file
4
tests/golden/WBV2-P1150-001/continuous-push.log
Normal file
@@ -0,0 +1,4 @@
|
||||
remote: . Processing 1 references
|
||||
remote: Processed 1 references in total
|
||||
To https://gitea.meswork.com/wangdequan/workinf_Blender_Wasm.git
|
||||
3c9ac9992..dfe86bef3 main -> main
|
||||
8
tests/golden/WBV2-P1150-001/continuous-runner.log
Normal file
8
tests/golden/WBV2-P1150-001/continuous-runner.log
Normal file
@@ -0,0 +1,8 @@
|
||||
v2-task-index-generated tasks=81 active=NONE output=tests/golden/WBV2/task-index.json
|
||||
task-context-ok task=WBV2-P1150-001 parent=WBV2-P1150-000 contentTokens=1970 envelopeTokens=657/1024 estimatedTokens=2994/3500 taskBytes=2301 next=NONE output=tests/golden/WBV2-P1150-001/task-context.json
|
||||
wbv2-module-coverage-bound task=WBV2-P1150-001 module=MODIFIER_READER_BATCH_FIVE added=8 verified=393 unverified=3352
|
||||
wbv2-module-coverage-bound task=WBV2-P1150-001 module=MODIFIER_READER_BATCH_FIVE added=8 verified=393 unverified=3352
|
||||
source-dynamic-inventory-generated files=6206 units=3745 planningEstimate=5200 sourceTree=600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202 output=tests/golden/WBV2/dynamic-inventory.json
|
||||
source-dynamic-inventory-ok files=6206 units=3745 planningEstimate=5200 verified=393 unverified=3352 sourceTree=600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202
|
||||
wbv2-module-batch-finalized task=WBV2-P1150-001 verified=393 unverified=3352
|
||||
module-task-complete task=WBV2-P1150-001 module=MODIFIER_READER_BATCH_FIVE next=null commands=4
|
||||
@@ -71,7 +71,7 @@
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P1150-001.md",
|
||||
"sha256": "0acbab59f91ae8babd1de4f1451e7d51a2377f7593516b3ce20ee8d9cb7cde69"
|
||||
"sha256": "917d81f22d2ae35acc037f22b0a6a14ab6e6106bce5601e2b6c8003a45e5058f"
|
||||
},
|
||||
"log": {
|
||||
"path": "tests/golden/WBV2-P1150-001/module-run.log",
|
||||
@@ -107,5 +107,5 @@
|
||||
"historicalEffectivePending": 6609,
|
||||
"historicalReproduction": false
|
||||
},
|
||||
"nextTask": null
|
||||
"nextTask": "WBV2-P1151-000"
|
||||
}
|
||||
|
||||
0
tests/golden/WBV2-P1150-001/scheduler-child.log
Normal file
0
tests/golden/WBV2-P1150-001/scheduler-child.log
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1151-000",
|
||||
"operation": "AUTHORIZE_SOURCE_BACKED_MODULE_BATCH",
|
||||
"taskClass": "QUEUE_ENABLEMENT",
|
||||
"status": "PASS",
|
||||
"parent": {
|
||||
"task": "WBV2-P1150-001",
|
||||
"manifest": "tests/golden/WBV2-P1150-001/manifest.json",
|
||||
"manifestSha256": "98df7f27ebf6575f81b96b89b92cdb6016122f5a0e5470a8fd039eb30e2a6d9e"
|
||||
},
|
||||
"module": {
|
||||
"moduleId": "GREASE_PENCIL_MODIFIER_READER_BATCH",
|
||||
"task": "WBV2-P1151-001",
|
||||
"batchSize": 48,
|
||||
"sourceUnits": [
|
||||
"modifier-source:MOD_grease_pencil_armature",
|
||||
"modifier-source:MOD_grease_pencil_array",
|
||||
"modifier-source:MOD_grease_pencil_build",
|
||||
"modifier-source:MOD_grease_pencil_color",
|
||||
"modifier-source:MOD_grease_pencil_dash",
|
||||
"modifier-source:MOD_grease_pencil_envelope",
|
||||
"modifier-source:MOD_grease_pencil_hook",
|
||||
"modifier-source:MOD_grease_pencil_lattice",
|
||||
"modifier-source:MOD_grease_pencil_length",
|
||||
"modifier-source:MOD_grease_pencil_mirror",
|
||||
"modifier-source:MOD_grease_pencil_multiply",
|
||||
"modifier-source:MOD_grease_pencil_noise",
|
||||
"modifier-source:MOD_grease_pencil_offset",
|
||||
"modifier-source:MOD_grease_pencil_opacity",
|
||||
"modifier-source:MOD_grease_pencil_outline",
|
||||
"modifier-source:MOD_grease_pencil_shrinkwrap",
|
||||
"modifier-source:MOD_grease_pencil_simplify",
|
||||
"modifier-source:MOD_grease_pencil_smooth",
|
||||
"modifier-source:MOD_grease_pencil_subdiv",
|
||||
"modifier-source:MOD_grease_pencil_texture",
|
||||
"modifier-source:MOD_grease_pencil_thickness",
|
||||
"modifier-source:MOD_grease_pencil_time",
|
||||
"modifier-source:MOD_grease_pencil_tint",
|
||||
"modifier-source:MOD_grease_pencil_weight_angle",
|
||||
"modifier-source:MOD_grease_pencil_weight_proximity",
|
||||
"rna-struct:GreasePencilArmatureModifier",
|
||||
"rna-struct:GreasePencilArrayModifier",
|
||||
"rna-struct:GreasePencilBuildModifier",
|
||||
"rna-struct:GreasePencilColorModifier",
|
||||
"rna-struct:GreasePencilEnvelopeModifier",
|
||||
"rna-struct:GreasePencilHookModifier",
|
||||
"rna-struct:GreasePencilLatticeModifier",
|
||||
"rna-struct:GreasePencilLengthModifier",
|
||||
"rna-struct:GreasePencilMirrorModifier",
|
||||
"rna-struct:GreasePencilMultiplyModifier",
|
||||
"rna-struct:GreasePencilNoiseModifier",
|
||||
"rna-struct:GreasePencilOffsetModifier",
|
||||
"rna-struct:GreasePencilOpacityModifier",
|
||||
"rna-struct:GreasePencilOutlineModifier",
|
||||
"rna-struct:GreasePencilShrinkwrapModifier",
|
||||
"rna-struct:GreasePencilSimplifyModifier",
|
||||
"rna-struct:GreasePencilSmoothModifier",
|
||||
"rna-struct:GreasePencilSubdivModifier",
|
||||
"rna-struct:GreasePencilTextureModifier",
|
||||
"rna-struct:GreasePencilTimeModifier",
|
||||
"rna-struct:GreasePencilTintModifier",
|
||||
"rna-struct:GreasePencilWeightAngleModifier",
|
||||
"rna-struct:GreasePencilWeightProximityModifier"
|
||||
],
|
||||
"sourceBacked": true
|
||||
},
|
||||
"inventory": {
|
||||
"unitCount": 3745,
|
||||
"verifiedUnits": 393,
|
||||
"unverifiedUnits": 3352,
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"boundUnitDelta": 0
|
||||
},
|
||||
"nextTask": "WBV2-P1151-001"
|
||||
}
|
||||
11
tests/golden/WBV2-P1151-001/continuous-commit-result.log
Normal file
11
tests/golden/WBV2-P1151-001/continuous-commit-result.log
Normal file
@@ -0,0 +1,11 @@
|
||||
[main 0c74adf96] chore(web): continuous handoff WBV2-P1151-001
|
||||
14 files changed, 8688 insertions(+), 8 deletions(-)
|
||||
create mode 100644 docs/status/WBV2-P1151-001.md
|
||||
create mode 100644 docs/tasks/WBV2-P1151-001.md
|
||||
create mode 100644 tests/golden/WBV2-P1151-000/manifest.json
|
||||
create mode 100644 tests/golden/WBV2-P1151-000/module-execution-plan.json
|
||||
create mode 100644 tests/golden/WBV2-P1151-001/manifest.json
|
||||
create mode 100644 tests/golden/WBV2-P1151-001/modifier-reader-batch-production.json
|
||||
create mode 100644 tests/golden/WBV2-P1151-001/module-receipt.json
|
||||
create mode 100644 tests/golden/WBV2-P1151-001/module-run.log
|
||||
create mode 100644 tests/golden/WBV2-P1151-001/task-context.json
|
||||
0
tests/golden/WBV2-P1151-001/continuous-commit.log
Normal file
0
tests/golden/WBV2-P1151-001/continuous-commit.log
Normal file
12
tests/golden/WBV2-P1151-001/continuous-gates.log
Normal file
12
tests/golden/WBV2-P1151-001/continuous-gates.log
Normal file
@@ -0,0 +1,12 @@
|
||||
context-governance-ok task=WBV2-P1151-001 contentTokens=1829 envelopeTokens=648/1024 estimatedTokens=2853/3500 inputs=0 commands=1
|
||||
{"schemaVersion":1,"operation":"BLENDER_WEB_EXECUTION_CONTROL_PLANE","status":"PASS","authority":{"executionPointer":"docs/EXECUTION_QUEUE.md","productCapabilities":"docs/BLENDER_WASM_CAPABILITY_MATRIX_TEMPLATE.json","legacyCoverage":"tests/golden/M15-03A/next-task-plan.json","historicalEvidence":"tests/golden/corrective/"},"queue":{"currentTask":"WBV2-P1151-001","parentManifest":"tests/golden/WBV2-P1151-000/manifest.json","parentTask":"WBV2-P1151-000","parentNextTask":"WBV2-P1151-001","activeCatalogTask":null,"legacyCoverageTask":"M16-GAP-00282","legacyCoverageParentManifest":"tests/golden/M16-GAP-00281/manifest.json","legacyCoverageState":"active","runnableInputs":null},"efficiency":{"legacyGapTasks":6900,"legacyCompleted":281,"legacyPending":6618,"capabilityClusters":3,"mappedLegacyGaps":9,"averageGapsPerCapability":3,"productiveLane":0,"rule":"one capability task may close multiple legacy cases; legacy cases remain regression coverage"},"dynamicInventory":{"path":"tests/golden/WBV2/dynamic-inventory.json","manifestPath":"tests/golden/WBV2/dynamic-inventory-manifest.json","sourceTreeSha256":"600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202","sourceFiles":6206,"unitCount":3745,"planningEstimate":5200,"hardTarget":false,"verifiedUnits":441,"unverifiedUnits":3304},"capabilityClusters":{"ASSET_CATALOG":{"capabilityId":"CAP-ASSET-CATALOG-MUTATION","sourceGaps":5,"parityLevel":"L0","targetParityLevel":"L4","lifecycleStatus":"planned"},"MODIFIER":{"capabilityId":"CAP-MODIFIER-STATE-MUTATION","sourceGaps":2,"parityLevel":"L0","targetParityLevel":"L3","lifecycleStatus":"planned"},"MESH":{"capabilityId":"CAP-MESH-POSITIVE-EDIT","sourceGaps":2,"parityLevel":"L0","targetParityLevel":"L3","lifecycleStatus":"planned"}},"issues":[],"remediation":[],"allowUnrunnable":true,"inputDigest":"cce7a5010266c618620ebd96b06b4e95f94503bfa164629a6b761e4c6265a33c"}
|
||||
v2-task-index-ok tasks=83 active=NONE catalog=tests/golden/WBV2/task-catalog.jsonl
|
||||
v2-handoff-ok task=WBV2-P1151-001 parent=WBV2-P1151-000 status=done artifacts=59
|
||||
|
||||
> blender-web-editor@0.1.0-rc.1 typecheck
|
||||
> tsc -p tsconfig.json --noEmit
|
||||
|
||||
|
||||
> blender-web-editor@0.1.0-rc.1 lint
|
||||
> eslint app
|
||||
|
||||
1
tests/golden/WBV2-P1151-001/continuous-push-verify.log
Normal file
1
tests/golden/WBV2-P1151-001/continuous-push-verify.log
Normal file
@@ -0,0 +1 @@
|
||||
local_head=0c74adf96cafd0731cc308fb31d1cb398a007952 remote_head=0c74adf96cafd0731cc308fb31d1cb398a007952
|
||||
4
tests/golden/WBV2-P1151-001/continuous-push.log
Normal file
4
tests/golden/WBV2-P1151-001/continuous-push.log
Normal file
@@ -0,0 +1,4 @@
|
||||
remote: . Processing 1 references
|
||||
remote: Processed 1 references in total
|
||||
To https://gitea.meswork.com/wangdequan/workinf_Blender_Wasm.git
|
||||
dfe86bef3..0c74adf96 main -> main
|
||||
8
tests/golden/WBV2-P1151-001/continuous-runner.log
Normal file
8
tests/golden/WBV2-P1151-001/continuous-runner.log
Normal file
@@ -0,0 +1,8 @@
|
||||
v2-task-index-generated tasks=83 active=NONE output=tests/golden/WBV2/task-index.json
|
||||
task-context-ok task=WBV2-P1151-001 parent=WBV2-P1151-000 contentTokens=1829 envelopeTokens=648/1024 estimatedTokens=2853/3500 taskBytes=1722 next=NONE output=tests/golden/WBV2-P1151-001/task-context.json
|
||||
wbv2-module-coverage-bound task=WBV2-P1151-001 module=GREASE_PENCIL_MODIFIER_READER_BATCH added=48 verified=441 unverified=3304
|
||||
wbv2-module-coverage-bound task=WBV2-P1151-001 module=GREASE_PENCIL_MODIFIER_READER_BATCH added=48 verified=441 unverified=3304
|
||||
source-dynamic-inventory-generated files=6206 units=3745 planningEstimate=5200 sourceTree=600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202 output=tests/golden/WBV2/dynamic-inventory.json
|
||||
source-dynamic-inventory-ok files=6206 units=3745 planningEstimate=5200 verified=441 unverified=3304 sourceTree=600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202
|
||||
wbv2-module-batch-finalized task=WBV2-P1151-001 verified=441 unverified=3304
|
||||
module-task-complete task=WBV2-P1151-001 module=GREASE_PENCIL_MODIFIER_READER_BATCH next=null commands=4
|
||||
@@ -227,11 +227,11 @@
|
||||
},
|
||||
"moduleReceipt": {
|
||||
"path": "tests/golden/WBV2-P1151-001/module-receipt.json",
|
||||
"sha256": "06917514f586ad32fb588c3595209971187d0b67c6651378f29b0da0ca3174b3"
|
||||
"sha256": "d5a9379fb1ce4d3f8aa54c77d49e75172a0cf32f5255a38634437db6605643d0"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-P1151-001.md",
|
||||
"sha256": "b07e007e9affc524667c6bfdb443816876f3df62eb301905d409ee0cdf2ed7cd"
|
||||
"sha256": "d056941e7aac051c994e158604288a0b4d9e1499137b577097ea0d14b63d75b5"
|
||||
},
|
||||
"log": {
|
||||
"path": "tests/golden/WBV2-P1151-001/module-run.log",
|
||||
@@ -259,8 +259,8 @@
|
||||
"dynamicInventoryPath": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"dynamicSourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"dynamicUnitCount": 3745,
|
||||
"dynamicVerifiedUnits": 441,
|
||||
"dynamicUnverifiedUnits": 3304,
|
||||
"dynamicVerifiedUnits": 442,
|
||||
"dynamicUnverifiedUnits": 3303,
|
||||
"planningEstimate": 5200,
|
||||
"historicalInventoryTotal": 6900,
|
||||
"historicalEffectiveCompleted": 290,
|
||||
|
||||
@@ -218,13 +218,13 @@
|
||||
},
|
||||
"dynamic": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"sha256": "31f45ea6b72993d47a29c2e17f81224e0b4b419b8149ff2b1d25fed6a15f5c3c",
|
||||
"sha256": "f372626a9ae77da2b072a290f1fd5d99046218e9e2ac3d63fb97234805e4962b",
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202",
|
||||
"unitCount": 3745,
|
||||
"planningEstimate": 5200,
|
||||
"hardTarget": false,
|
||||
"verifiedUnits": 441,
|
||||
"unverifiedUnits": 3304
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303
|
||||
}
|
||||
},
|
||||
"nextTask": null
|
||||
|
||||
0
tests/golden/WBV2-P1151-001/scheduler-child.log
Normal file
0
tests/golden/WBV2-P1151-001/scheduler-child.log
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,19 +5,19 @@
|
||||
"artifacts": {
|
||||
"inventory": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"sha256": "6ccf20cd15cf065e6432c209afa7e32557e619837f7880f0f38a2bc01ccaa02d"
|
||||
"sha256": "acb78f7d5a01069e3866cfe21c35fcfa3a80181e4729ea0d0d6db387cf019960"
|
||||
},
|
||||
"inventoryManifest": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory-manifest.json",
|
||||
"sha256": "d85db305e0476115a6508fcb178d6adabc3b352b2837de9e3776722981b8e8fc"
|
||||
"sha256": "3825ab486bd2752a86a601fd2ad0b1b420eaa1fbe51f7cd751b2d2acda42d660"
|
||||
},
|
||||
"bindings": {
|
||||
"path": "tests/golden/WBV2/dynamic-coverage-bindings.json",
|
||||
"sha256": "15da1b24eceed1de4cec27f4d47d3171163dc323247af278217920ca376c6b32"
|
||||
"sha256": "950e950d02865e095212ad10aa9ec83e37bb9f74e7f88c9e305dce92e327f1f8"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2/dynamic-coverage-audit.json",
|
||||
"sha256": "c67af84b3229806950712079b0d05517d041823e2504a47540e8b1166df65049"
|
||||
"sha256": "ece41eebf229e8a6c19539ac153eb6d449ef5134c3f7ccbfcc55ab9251508da9"
|
||||
},
|
||||
"generator": {
|
||||
"path": "tools/web/reconcile-source-dynamic-coverage.mjs",
|
||||
@@ -26,9 +26,9 @@
|
||||
},
|
||||
"coverage": {
|
||||
"unitCount": 3745,
|
||||
"verifiedUnits": 377,
|
||||
"unverifiedUnits": 3368,
|
||||
"boundUnitDelta": 8,
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"boundUnitDelta": 1,
|
||||
"sourceTreeSha256": "600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202"
|
||||
},
|
||||
"historical": {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"planningEstimate": 5200,
|
||||
"hardTarget": false,
|
||||
"verifiedUnits": 377,
|
||||
"unverifiedUnits": 3368,
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"deterministic": true
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
},
|
||||
"inventory": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory.json",
|
||||
"sha256": "6ccf20cd15cf065e6432c209afa7e32557e619837f7880f0f38a2bc01ccaa02d"
|
||||
"sha256": "acb78f7d5a01069e3866cfe21c35fcfa3a80181e4729ea0d0d6db387cf019960"
|
||||
},
|
||||
"report": {
|
||||
"path": "tests/golden/WBV2/dynamic-inventory-check-report.json",
|
||||
"sha256": "715b24623dfbe5ef1ce60f9ddb64fb1ffd9ac4bf4ed18162dc68580adc31e1d8"
|
||||
"sha256": "7724729292c472b13741f1a2691405d2aac8729da1ba1501cb9456fb89f8f305"
|
||||
},
|
||||
"status": {
|
||||
"path": "docs/status/WBV2-DYNAMIC-INVENTORY.md",
|
||||
@@ -47,9 +47,9 @@
|
||||
},
|
||||
"planningEstimate": 5200,
|
||||
"hardTarget": false,
|
||||
"verifiedUnits": 377,
|
||||
"unverifiedUnits": 3368,
|
||||
"boundCaseDelta": 8
|
||||
"verifiedUnits": 442,
|
||||
"unverifiedUnits": 3303,
|
||||
"boundCaseDelta": 1
|
||||
},
|
||||
"historical": {
|
||||
"initialEstimate": 6900,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
69
tools/web/finalize-wbv2-module-batch.mjs
Normal file
69
tools/web/finalize-wbv2-module-batch.mjs
Normal file
@@ -0,0 +1,69 @@
|
||||
import crypto from "node:crypto";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { execFileSync } from "node:child_process";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
||||
const abs = (file) => path.join(root, file);
|
||||
const json = (file) => JSON.parse(fs.readFileSync(abs(file), "utf8"));
|
||||
const write = (file, value) => fs.writeFileSync(abs(file), `${JSON.stringify(value, null, 2)}\n`);
|
||||
const sha = (file) => crypto.createHash("sha256").update(fs.readFileSync(abs(file))).digest("hex");
|
||||
const argIndex = process.argv.indexOf("--task");
|
||||
const task = argIndex >= 0 ? process.argv[argIndex + 1] : null;
|
||||
if (!task) throw new Error("usage: node tools/web/finalize-wbv2-module-batch.mjs --task <task-id>");
|
||||
const manifestPath = `tests/golden/${task}/manifest.json`;
|
||||
const manifest = json(manifestPath);
|
||||
const receiptPath = manifest.artifacts.moduleReceipt.path;
|
||||
const statusPath = manifest.artifacts.status.path;
|
||||
const inventory = json("tests/golden/WBV2/dynamic-inventory.json");
|
||||
const verifiedUnits = inventory.coverage.verifiedUnits;
|
||||
const unverifiedUnits = inventory.coverage.unverifiedUnits;
|
||||
const taskPlan = json(manifest.artifacts.plan.path);
|
||||
const taskRecord = taskPlan.tasks.find((candidate) => candidate.id === task);
|
||||
const bindingDelta = taskRecord?.module?.coverageBindings?.length ?? 0;
|
||||
const receipt = json(receiptPath);
|
||||
if (receipt.inventory?.dynamic) {
|
||||
receipt.inventory.dynamic.verifiedUnits = verifiedUnits;
|
||||
receipt.inventory.dynamic.unverifiedUnits = unverifiedUnits;
|
||||
receipt.inventory.dynamic.sha256 = sha("tests/golden/WBV2/dynamic-inventory.json");
|
||||
}
|
||||
write(receiptPath, receipt);
|
||||
let status = fs.readFileSync(abs(statusPath), "utf8");
|
||||
status = status.replace(/verified `\d+`/g, `verified \`${verifiedUnits}\``).replace(/unverified `\d+`/g, `unverified \`${unverifiedUnits}\``);
|
||||
if (!status.includes("this-segment binding delta:")) status = status.replace(/(dynamic source inventory:[^\n]*)/, `$1; this-segment binding delta: \`${bindingDelta}\``);
|
||||
fs.writeFileSync(abs(statusPath), status);
|
||||
for (const artifact of Object.values(manifest.artifacts ?? {})) {
|
||||
if (artifact?.path && fs.existsSync(abs(artifact.path))) artifact.sha256 = sha(artifact.path);
|
||||
}
|
||||
manifest.assertions.dynamicVerifiedUnits = verifiedUnits;
|
||||
manifest.assertions.dynamicUnverifiedUnits = unverifiedUnits;
|
||||
write(manifestPath, manifest);
|
||||
execFileSync(process.execPath, [abs("tools/web/bind-wbv2-module-coverage.mjs"), "--task", task], { cwd: root, stdio: "inherit" });
|
||||
execFileSync(process.execPath, [abs("tools/web/generate-source-dynamic-inventory.mjs"), "--output", abs("tests/golden/WBV2/dynamic-inventory.json")], { cwd: root, stdio: "inherit" });
|
||||
const inventoryPath = "tests/golden/WBV2/dynamic-inventory.json";
|
||||
const checkReportPath = "tests/golden/WBV2/dynamic-inventory-check-report.json";
|
||||
const inventoryManifestPath = "tests/golden/WBV2/dynamic-inventory-manifest.json";
|
||||
const coverageManifestPath = "tests/golden/WBV2/dynamic-coverage-manifest.json";
|
||||
const bindingsPath = "tests/golden/WBV2/dynamic-coverage-bindings.json";
|
||||
const auditPath = "tests/golden/WBV2/dynamic-coverage-audit.json";
|
||||
// The checker validates manifest hashes before it rewrites its compact report.
|
||||
// Bind the newly generated inventory and the previous report first, then run
|
||||
// the checker once, and finally bind the report it produced.
|
||||
const inventoryManifest = json(inventoryManifestPath);
|
||||
inventoryManifest.artifacts.inventory.sha256 = sha(inventoryPath);
|
||||
inventoryManifest.artifacts.report.sha256 = sha(checkReportPath);
|
||||
write(inventoryManifestPath, inventoryManifest);
|
||||
execFileSync(process.execPath, [abs("tools/web/check-source-dynamic-inventory.mjs")], { cwd: root, stdio: "inherit" });
|
||||
const refreshedInventoryManifest = json(inventoryManifestPath);
|
||||
refreshedInventoryManifest.artifacts.inventory.sha256 = sha(inventoryPath);
|
||||
refreshedInventoryManifest.artifacts.report.sha256 = sha(checkReportPath);
|
||||
write(inventoryManifestPath, refreshedInventoryManifest);
|
||||
const coverageManifest = json(coverageManifestPath);
|
||||
coverageManifest.artifacts.inventory.sha256 = sha(inventoryPath);
|
||||
coverageManifest.artifacts.inventoryManifest.sha256 = sha(inventoryManifestPath);
|
||||
coverageManifest.artifacts.bindings.sha256 = sha(bindingsPath);
|
||||
coverageManifest.artifacts.report.sha256 = sha(auditPath);
|
||||
coverageManifest.coverage = { ...coverageManifest.coverage, unitCount: inventory.summary.unitCount, verifiedUnits, unverifiedUnits, sourceTreeSha256: inventory.authority.sourceTreeSha256 };
|
||||
write(coverageManifestPath, coverageManifest);
|
||||
process.stdout.write(`wbv2-module-batch-finalized task=${task} verified=${verifiedUnits} unverified=${unverifiedUnits}\n`);
|
||||
@@ -97,6 +97,7 @@ if (failed || !sourceUnchanged) {
|
||||
writeJson(manifestPath, { schemaVersion: 1, task, parentTask: parentId, operation: "MODULE_FUNCTION_EXECUTION", taskClass: "MODULE", status: "done", enablingTask: true, parityStateChange: false, runtime: "BLENDER_WEB_FUNCTION_MODULE", artifacts, assertions: { moduleId: record.module.moduleId, sourceBacked: true, positiveCases: record.module.positive.length, negativeCases: record.module.negative.length, recoveryCases: record.module.recovery.length, commandCount: results.length, reusedReceiptCount: reusedReceipts.length, sourceUnchanged, fullFamilyParity: false, dynamicInventoryPath, dynamicSourceTreeSha256: dynamicInventory.authority.sourceTreeSha256, dynamicUnitCount: dynamicInventory.summary.unitCount, dynamicVerifiedUnits: dynamicInventory.coverage.verifiedUnits, dynamicUnverifiedUnits: dynamicInventory.coverage.unverifiedUnits, planningEstimate: dynamicInventory.policy.planningEstimate, historicalInventoryTotal: 6900, historicalEffectiveCompleted: 290, historicalEffectivePending: 6609, historicalReproduction: false }, nextTask });
|
||||
if (record.module.coverageBindings?.length) {
|
||||
execFileSync(process.execPath, [abs("tools/web/bind-wbv2-module-coverage.mjs"), "--task", task], { cwd: root, stdio: "inherit" });
|
||||
execFileSync(process.execPath, [abs("tools/web/finalize-wbv2-module-batch.mjs"), "--task", task], { cwd: root, stdio: "inherit" });
|
||||
}
|
||||
if (nextTask) execFileSync(process.execPath, [abs("tools/web/check-task-context.mjs"), "--task", nextTask, "--write"], { cwd: root, stdio: "inherit" });
|
||||
let next = read("nextTask.md");
|
||||
|
||||
Reference in New Issue
Block a user