feat(web): authorize corrective smooth reader

This commit is contained in:
mes123456
2026-09-02 18:35:58 +08:00
parent 244e058999
commit 0d61c64150
51 changed files with 127040 additions and 67 deletions

View File

@@ -2,20 +2,22 @@
更新时间:2026-08-22(America/New_York)
本页是唯一的当前任务指针,不保存历史任务表、实现日志或长期规划。领取任务前只读取本页、当前任务上下文、parent manifest 和 parent status;完整规则见 [`CONTEXT_BUDGET.md`](CONTEXT_BUDGET.md)。
本页是唯一的当前任务指针,不保存历史任务表、实现日志或长期规划。当前生产单位是功能模块,不是重复 continuation 任务。领取任务前只读取本页、当前任务上下文、parent manifest 和 parent status;完整规则见 [`CONTEXT_BUDGET.md`](CONTEXT_BUDGET.md)。
生产实现按能力工作流推进,legacy `M16-GAP-*` 只作为覆盖回归;能力矩阵、共享 runner 和效率规则见 [`BLENDER_WEB_EXECUTION_CONTROL_PLANE.md`](BLENDER_WEB_EXECUTION_CONTROL_PLANE.md)。
连续接续入口见 [`nextTask.md`](../nextTask.md):用户发送“按 nextTask.md 接续执行”时,进入连续模式;每个迭代只完成一个任务并以 fresh compact context 交接,成功后自动读取新指针继续,直到失败、阻塞、预算/环境/传输异常、闭合门或用户要求停止。
连续接续入口见 [`nextTask.md`](../nextTask.md):用户发送“按 nextTask.md 接续执行”时,按当前模块卡执行;模块未通过完整生产验证时不得推进,不得把授权、索引或重复构建当作能力完成。
跨会话无人值守执行统一使用 `node tools/web/run-wbv2-scheduler.mjs --max-iterations 0 --commit --push`;调度器会委托 guardian/supervisor 逐个完成当前 `nextTask`,并在源码映射、队列交接和远端提交均可证明安全时自动继续。
## 当前指针
| 字段 | 值 |
| --- | --- |
| 里程碑 | WBV2 capability workflow |
| 当前任务 | `WBV2-P607-002` |
| parent manifest | `tests/golden/WBV2-P607-001/manifest.json` |
| 任务卡 | [`tasks/WBV2-P607-002.md`](tasks/WBV2-P607-002.md) |
| 当前任务 | `WBV2-P1145-001` |
| parent manifest | `tests/golden/WBV2-P1145-000/manifest.json` |
| 任务卡 | [`tasks/WBV2-P1145-001.md`](tasks/WBV2-P1145-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` |
@@ -32,10 +34,13 @@ node tools/web/print-task-context.mjs
## 铁律
- 移植过程的功能不得使用 JS 模拟;功能实现必须调用 Blender 5.2 源码编译出的原生 WebEngine/WASM 路径,并由 Chromium 生产证据验证。
- 浏览器执行、CI、验收证据和发布声明永久仅限 Chromium;禁止领取 Firefox/WebKit 任务。
- 当前任务必须等于 parent manifest 的 `nextTask`;不得从 Markdown 历史编号手工推导。
- 一个任务只能有一个主要行为变化或一个独立证据变化。实现、浏览器接线、负例和证据需要拆成明确子任务时,沿任务卡的门逐项完成。
- 完成必须有真实命令、退出码、构件 SHA-256、manifest 和 status;协议、fixture 或测试文件存在不等于完成。
- 一个模块任务覆盖一个连贯功能边界,可包含多个共享命令和 operator case;必须完成 source/协议/Worker/前端接线,以及模块契约规定的正例 Main mutation 或精确 Main reader/context 证据、负例 no-mutation、undo/redo、save/reopen、Chromium 和聚合 manifest。
- generic continuation、QUEUE_ENABLEMENT、索引生成和单纯 build 只能作为模块前置或证据,不得单独计入移植完成。
- 模块完成必须有真实命令、退出码、构件 SHA-256、正负例和恢复证据、聚合 manifest 和 status;协议、fixture 或测试文件存在不等于完成。
- 每完成一个段落或模块,报告必须明确列出源码动态 inventory 的 unitCount、verifiedUnits、unverifiedUnits、sourceTreeSha256,以及本段绑定的 unit 增量;历史 `6900-entry` 只读保留,未绑定源码单元不得计为覆盖进度。
- 失败、环境缺失或 hash 漂移保持 `in_progress`/`blocked`,不得推进指针。
## 交接

View File

@@ -0,0 +1,13 @@
# WBV2 source dynamic inventory status
- operation: `BLENDER_52_SOURCE_DYNAMIC_INVENTORY`; status: `done`
- source authority: `blender-5.2.0/source/blender`; tree SHA: `600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202`
- source scan: `6206` files, `96049182` bytes, `3745` deduplicated units
- explicit coverage: verified `350`, unverified `3395`; this audit delta: `350`
- planning estimate: `5200` (non-binding); hard target: `false`
- unverified boundary: operators `2012`, operator-macros `58`, nodes `476`, RNA structs `785`, modifier sources `64`
- boundary rule: no source-backed WebEngine route plus Chromium behavior receipt means the unit remains `UNVERIFIED`
- historical 6900-entry parity map remains immutable and is retained only for regression provenance
- cmd json transport: `web_engine_call_json` provides one stable Worker-to-WASM entrypoint for stateful commands and read-only reports; it reduces native registration points but does not replace per-unit Chromium evidence
- headless boundary: `blender-5.2.0/source/blender/web_engine/web_engine_headless_fallback.cpp` records the intentional absence of window manager, desktop sequencer playback and GPU context for operator/macro execution
- deterministic generator/checker: `PASS`

View File

@@ -0,0 +1,9 @@
# WBV2-P1144-001 status
- task: `WBV2-P1144-001`; module: `DRIVER_READER`; 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
- Driver/AnimData reader exposes Blender scripted expression, variables and DriverTarget RNA path/ID metadata; Chromium undo/redo, malformed-input rejection and save/reopen passed; no JS simulation
- dynamic source inventory: `3745` units; verified `350`; unverified `3395`; planning estimate `5200` (non-binding); sourceTreeSha256=`600cb3dd441f09d9655b740735fbf8fa49ad6c14d308c68d59a29f9c338e4202`; this-segment binding delta: `6`
- historical 6900-entry inventory remains read-only; full-family parity: `false`
- nextTask: `WBV2-P1145-000`

View File

@@ -0,0 +1,7 @@
# WBV2-P1145-000 status
- task: `WBV2-P1145-000`; parent: `WBV2-P1144-001`; status: `done`
- taskClass: `QUEUE_ENABLEMENT`; no Corrective Smooth parity completion claimed
- source-backed successor authorized for `CORRECTIVE_SMOOTH_READER`
- dynamic inventory remains `3745` units; verified `350`; unverified `3395`; bound delta `0`
- nextTask: `WBV2-P1145-001`

View File

@@ -0,0 +1,8 @@
# WBV2-P1145-001 status
- task: `WBV2-P1145-001`; module: `CORRECTIVE_SMOOTH_READER`; 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 `350`; unverified `3395`; planning estimate `5200` (non-binding)
- historical 6900-entry inventory remains read-only; full-family parity: `false`
- nextTask: `NONE`

View File

@@ -0,0 +1,41 @@
# WBV2-P1145-001: verify Corrective Smooth reader module
- task: WBV2-P1145-001
- parent: WBV2-P1145-000
- status: in_progress
- gap: capability:CORRECTIVE_SMOOTH_READER
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
- Implementation entrypoint: `node tools/web/run-wbv2-module-task.mjs --task WBV2-P1145-001 --write`
## 目标
验证 Blender Main 中 Corrective Smooth modifier 的真实类型和 RNA 元数据,并确认 save/reopen、worker termination 和 malformed 输入保持确定性。
## 输入与范围
- Blender source: `blender-5.2.0/source/blender/modifiers/intern/MOD_correctivesmooth.cc`
- 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_corrective_smooth_scene.blend`
- Chromium test: `web/tests/e2e/wbv2-corrective-smooth-reader-production.spec.ts`
## 验收
- Corrective Smooth is read from Blender Main through the compiled WebEngine/WASM path
- malformed blend is rejected without Main mutation
- save/reopen and deterministic second read are exact
- Chromium is the only browser and JS simulation is forbidden
- `node tools/web/check-task-context.mjs --task WBV2-P1145-001 --write`
## 失败边界
- missing source, unsupported modifier, hash drift, malformed data or non-exact recovery remains `in_progress`/`blocked`
- this slice never claims full modifier-family parity or mutates historical inventory
## 交付与回滚
- Receipt: `tests/golden/WBV2-P1145-001/module-receipt.json`
- Manifest: `tests/golden/WBV2-P1145-001/manifest.json`
- Status: `docs/status/WBV2-P1145-001.md`
- Rollback: restore WBV2-P1145-000 as queue parent without rewriting prior evidence.