Govern task context and advance execution pointer
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-08-20 06:02:43 -04:00
parent 380cbed4ff
commit 10640aeb3c
984 changed files with 543475 additions and 327 deletions

View File

@@ -2,7 +2,7 @@
- `task`: `M14-04F`
- `parent`: `M14-04E`
- `status`: `in_progress`
- `status`: `done`
## 目标
@@ -31,8 +31,8 @@ Firefox/WebKit 不在本项目范围内。
等价生产诊断,而不是仅记录派发了几个 `PointerEvent`
7. **交接门**focused 命令、必要的 typecheck/build、report、manifest、status 和回滚路径齐全。
协议单测和事件派发通过,只能关闭前四个门的一部分;在生产接线和真实状态断言完成前,任务保持
`in_progress`,不得根据报告中的固定保证字段直接改为 `done`
协议状态已接入主线程 WebGL 和 OffscreenCanvas Worker 两条生产 viewport 路径Chromium checker
读取两个 canvas 的真实 `data-input-modal-*` 状态,重复 `pointerup`/`pointercancel` 不增加提交计数
## 验收

60
docs/tasks/M14-04G.md Normal file
View File

@@ -0,0 +1,60 @@
# M14-04GChromium responsive layout no-overlap/no-overflow matrix
- `task`: `M14-04G`
- `parent`: `M14-04F`
- `status`: `done`
## 目标
在 Chromium 主线程 WebGL 和 OffscreenCanvas Worker 两种生产视口下,验证桌面、平板和手机
尺寸不会产生横向溢出、关键区域重叠、文字裁切或不可操作的触控目标;布局失败必须能被
机器 checker 稳定报告。Firefox/WebKit 不在本项目范围内。
## 输入
- 上一个 manifest`tests/golden/M14-04F/manifest.json`
- 生产布局入口:`web/app/src/app/App.tsx``web/app/src/app/app-shell.css`
- 视口入口:`web/app/src/three-adapter/viewport.ts``web/app/src/three-adapter/offscreen-viewport.ts`
- 既有 e2e 参考:`web/tests/e2e/responsive-layout.spec.ts`
## 范围
做:
- 固定 `1440x900``1280x720``834x1112``390x844` 四个 Chromium viewport。
- 分别验证 `offscreen=0``offscreen=1`,记录实际 renderer backend。
- 检查 document 横向滚动、topbar、sidebar、viewport、timeline、status bar 的 bounding box。
- 检查长项目名、错误提示、打开进度、面板展开和 DPR 2 下文字与按钮仍在容器内。
- 记录失败元素、测量值、viewport、DPR、backend 和报告 hash。
不做:
- Firefox/WebKit 兼容性证据。
- 完整 UI 重设计或新增 Blender 功能。
- 只用截图非空作为布局通过条件。
## 验收
```text
npm --prefix web run test:chromium-layout
```
必要的补充门:
```text
npm --prefix web run typecheck
npm --prefix web run build
git diff --check
```
## 产物和交接
- 报告:`tests/golden/M14-04G/chromium-layout-report.json`
- manifest`tests/golden/M14-04G/manifest.json`
- 状态页:`docs/status/M14-04G.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除布局 checker、测试、报告、manifest、package 命令和本任务状态页;恢复 `M14-04F` 作为队列尾,
不得修改 M14-04F 的成功证据。

60
docs/tasks/M14-04H.md Normal file
View File

@@ -0,0 +1,60 @@
# M14-04HChromium keyboard-only, accessible names/roles and focus restoration
- `task`: `M14-04H`
- `parent`: `M14-04G`
- `status`: `done`
## 目标
在 Chromium 中验证不依赖 pointer 的核心菜单与操作搜索流程:键盘可以到达并激活入口,打开
modal/menu 后焦点落在可操作项Escape/提交后焦点回到触发器,交互元素具备可计算名称和正确
角色。Firefox/WebKit 不在本项目范围内。
## 输入
- 上一个 manifest`tests/golden/M14-04G/manifest.json`
- 生产入口:`web/app/src/app/App.tsx`
- 样式入口:`web/app/src/app/app-shell.css`
- 既有参考 e2e`web/tests/e2e/keyboard-accessibility.spec.ts`
## 范围
做:
- main/offscreen 两个 Chromium 页面配置。
- Tab/Shift+Tab 到文件菜单、Enter 打开、Escape 关闭并恢复触发器焦点。
- F3 打开操作搜索、输入框自动聚焦、Escape 关闭并恢复 F3 触发器焦点。
- 扫描可见 button/input/select/textarea/canvas/[role],检查可计算名称、禁用状态和合法角色。
- 记录焦点轨迹、角色/名称缺口和稳定报告 hash。
不做:
- Firefox/WebKit 或特定屏幕阅读器的兼容性声明。
- 重新设计所有快捷键或引入新的 operator。
- 用 axe 的单一静态结果替代真实键盘路径。
## 验收
```text
npm --prefix web run test:chromium-accessibility
```
必要的补充门:
```text
npm --prefix web run typecheck
npm --prefix web run build
git diff --check
```
## 产物和交接
- 报告:`tests/golden/M14-04H/chromium-accessibility-report.json`
- manifest`tests/golden/M14-04H/manifest.json`
- 状态页:`docs/status/M14-04H.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 accessibility checker、报告、manifest、package 命令和本任务状态页;恢复 `M14-04G` 作为队列尾,
不得修改 M14-04G 的布局证据。

58
docs/tasks/M15-01A.md Normal file
View File

@@ -0,0 +1,58 @@
# M15-01ABlender 5.2 RNA data-block type inventory
- `task`: `M15-01A`
- `parent`: `M14-04H`
- `status`: `done`
## 目标
使用 pinned Blender 5.2 runtime 的真实 RNA 注册表生成稳定的 data-block type 清单;每项必须
包含稳定 RNA identifier、类型名、ID 基类和 runtime/source anchor。此项只冻结 inventory
不改变任何 V1 `releaseStatus` 或 Blender family `parityStatus`
## 输入
- 上一个 manifest`tests/golden/M14-04H/manifest.json`
- Blender runtime`build_blender_5.2.0/bin/blender`
- 生成器:`tools/web/generate-blender-rna-datablock-inventory.py`
- 最小执行入口:`tools/web/check-blender-rna-datablock-inventory.mjs`
## 范围
做:
-`bpy.types` 中继承 `bpy.types.ID` 的注册类型为 inventory 输入。
- 固定 schema、排序、稳定 `parityId`、Blender version/build identity 和 source anchor。
- 重新生成到临时目录并与提交的 golden JSON 做字节级比较。
- 拒绝重复 identifier、空 identifier、版本漂移和未排序条目。
不做:
- operator、modifier、node、editor、format 或 runtime evaluator 清单;这些由后续 M15-01B-F 负责。
- 通过手写列表补齐 Blender 类型。
- 修改 `parity-ledger.json` 的完成状态。
## 验收
```text
npm --prefix web run test:blender-rna-inventory
```
必要的补充门:
```text
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- 报告/清单:`tests/golden/M15-01A/blender-rna-datablock-inventory.json`
- manifest`tests/golden/M15-01A/manifest.json`
- 状态页:`docs/status/M15-01A.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除生成器、checker、报告、manifest、package 命令和本任务状态页;恢复 `M14-04H` 作为队列尾,
不得修改 M14-04H 的 Chromium 证据。

58
docs/tasks/M15-01B.md Normal file
View File

@@ -0,0 +1,58 @@
# M15-01BBlender 5.2 operator idname/poll/property inventory
- `task`: `M15-01B`
- `parent`: `M15-01A`
- `status`: `in_progress`
## 目标
从 pinned Blender 5.2 的真实 `bpy.ops` registry 生成确定性的 operator 清单,记录 operator
idname、RNA identifier、factory-startup poll 结果和排序后的 RNA properties。此项只生成机器
基线,不把 operator 自动标记为已支持。
## 输入
- 上一个 manifest`tests/golden/M15-01A/manifest.json`
- Blender runtime`build_blender_5.2.0/bin/blender`
- 生成器:`tools/web/generate-blender-operator-inventory.py`
- checker`tools/web/check-blender-operator-inventory.mjs`
## 范围
做:
- 递归枚举 `bpy.ops` 的注册 module/operator。
- 记录稳定 operator path、RNA identifier、poll result/error 和属性 identifier/type。
- 固定排序、去重、runtime identity 和 inventory hash临时重生成必须字节相同。
不做:
- 执行任意 operator 或修改 `.blend`
- 生成 modifier、node、editor 或 import/export 清单。
-`poll=false` 或 build-disabled 当成 parity 完成/阻断结论。
## 验收
```text
npm --prefix web run test:blender-operator-inventory
```
必要的补充门:
```text
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- inventory`tests/golden/M15-01B/blender-operator-inventory.json`
- report`tests/golden/M15-01B/operator-inventory-check-report.json`
- manifest`tests/golden/M15-01B/manifest.json`
- 状态页:`docs/status/M15-01B.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 operator generator、checker、inventory、report、manifest、package 命令和本任务状态页;恢复
`M15-01A` 作为队列尾,不修改 data-block inventory。

38
docs/tasks/M15-01C.md Normal file
View File

@@ -0,0 +1,38 @@
# M15-01CBlender 5.2 modifier、constraint 与 node inventory
- `task`: `M15-01C`
- `parent`: `M15-01B`
- `status`: `in_progress`
## 目标
从 pinned Blender 5.2 的真实 RNA registry 生成 modifier、constraint、Shader Node、Geometry
Node 和 Compositor Node 清单。此项只冻结机器基线,不把任何条目标记为已支持。
## 输入
- 上一个 manifest`tests/golden/M15-01B/manifest.json`
- Blender runtime`build_blender_5.2.0/bin/blender`
- 生成器:`tools/web/generate-blender-family-inventory.py`
- checker`tools/web/check-blender-family-inventory.mjs`
## 验收
```text
npm --prefix web run test:blender-family-inventory
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- inventory`tests/golden/M15-01C/blender-family-inventory.json`
- report`tests/golden/M15-01C/family-inventory-check-report.json`
- manifest`tests/golden/M15-01C/manifest.json`
- 状态页:`docs/status/M15-01C.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 family generator、checker、inventory、report、manifest、package 命令和本任务状态页;恢复
`M15-01B` 作为队列尾,不修改 operator inventory。

38
docs/tasks/M15-01D.md Normal file
View File

@@ -0,0 +1,38 @@
# M15-01DBlender 5.2 sequencer、physics 与 import/export inventory
- `task`: `M15-01D`
- `parent`: `M15-01C`
- `status`: `in_progress`
## 目标
从 pinned Blender 5.2 的真实 RNA/operator registry 生成 sequencer strip/effect 类型、physics
数据类型和 import/export operator 清单。此项只冻结机器基线,不把任何条目标记为已支持。
## 输入
- 上一个 manifest`tests/golden/M15-01C/manifest.json`
- Blender runtime`build_blender_5.2.0/bin/blender`
- 生成器:`tools/web/generate-blender-format-inventory.py`
- checker`tools/web/check-blender-format-inventory.mjs`
## 验收
```text
npm --prefix web run test:blender-format-inventory
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- inventory`tests/golden/M15-01D/blender-format-inventory.json`
- report`tests/golden/M15-01D/format-inventory-check-report.json`
- manifest`tests/golden/M15-01D/manifest.json`
- 状态页:`docs/status/M15-01D.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 format generator、checker、inventory、report、manifest、package 命令和本任务状态页;恢复
`M15-01C` 作为队列尾,不修改 family inventory。

31
docs/tasks/M15-01E.md Normal file
View File

@@ -0,0 +1,31 @@
# M15-01EBlender 5.2 editor/space/region/workspace/keymap inventory
- `task`: `M15-01E`
- `parent`: `M15-01D`
- `status`: `in_progress`
## 目标
从 pinned Blender 5.2 的真实 RNA registry 和初始化后的默认 keyconfig 生成 editor、space、region、
workspace mode 与 keymap 清单。此项只冻结机器基线,不把任何条目标记为已支持。
## 验收
```text
npm --prefix web run test:blender-editor-inventory
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- inventory`tests/golden/M15-01E/blender-editor-inventory.json`
- report`tests/golden/M15-01E/editor-inventory-check-report.json`
- manifest`tests/golden/M15-01E/manifest.json`
- 状态页:`docs/status/M15-01E.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 editor generator、checker、inventory、report、manifest、package 命令和本任务状态页;恢复
`M15-01D` 作为队列尾,不修改 format inventory。

31
docs/tasks/M15-01F.md Normal file
View File

@@ -0,0 +1,31 @@
# M15-01FBlender 5.2 Main/Scene/Mesh/Depsgraph/core inventory
- `task`: `M15-01F`
- `parent`: `M15-01E`
- `status`: `in_progress`
## 目标
为 Main、Scene、Mesh、Depsgraph 和现有 V1 core slice 生成同级的 Blender 5.2 RNA 类与属性清单。
此项只冻结机器基线,不把“当前范围完成”映射为全量 parity 完成。
## 验收
```text
npm --prefix web run test:blender-core-inventory
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- inventory`tests/golden/M15-01F/blender-core-inventory.json`
- report`tests/golden/M15-01F/core-inventory-check-report.json`
- manifest`tests/golden/M15-01F/manifest.json`
- 状态页:`docs/status/M15-01F.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 core generator、checker、inventory、report、manifest、package 命令和本任务状态页;恢复
`M15-01E` 作为队列尾,不修改 editor inventory。

31
docs/tasks/M15-02A.md Normal file
View File

@@ -0,0 +1,31 @@
# M15-02Ainventory 条目 owner/implementation/test/evidence 映射
- `task`: `M15-02A`
- `parent`: `M15-01F`
- `status`: `in_progress`
## 目标
为 M15-01A 至 M15-01F 的每个 inventory 条目生成唯一稳定 ID并绑定 owner family、实现分类、
专项 checker 和 manifest evidence。映射保持 `INVENTORIED_ONLY`,不改变 parity 或 release 状态。
## 验收
```text
npm --prefix web run test:blender-parity-map
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- map`tests/golden/M15-02A/blender-parity-map.json`
- report`tests/golden/M15-02A/parity-map-check-report.json`
- manifest`tests/golden/M15-02A/manifest.json`
- 状态页:`docs/status/M15-02A.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 parity map generator、checker、map、report、manifest、package 命令和本任务状态页;恢复
`M15-01F` 作为队列尾,不修改任何 inventory。

31
docs/tasks/M15-02B.md Normal file
View File

@@ -0,0 +1,31 @@
# M15-02Bparity map gap 分类审计
- `task`: `M15-02B`
- `parent`: `M15-02A`
- `status`: `in_progress`
## 目标
机器化识别 inventory map 中的未映射、重复映射、只有 summary、只有 proxy 和只有 route 条目。
`INVENTORY_BASELINE` 明确分类为 `summaryOnly`,不当作 parity 完成。
## 验收
```text
npm --prefix web run test:blender-gap-audit
npm --prefix web run typecheck
git diff --check
```
## 产物和交接
- audit`tests/golden/M15-02B/blender-gap-audit.json`
- report`tests/golden/M15-02B/gap-audit-check-report.json`
- manifest`tests/golden/M15-02B/manifest.json`
- 状态页:`docs/status/M15-02B.md`
- 下一任务:由 manifest 的 `nextTask` 决定
## 回滚
删除 gap audit generator、checker、audit、report、manifest、package 命令和本任务状态页;恢复
`M15-02A` 作为队列尾,不修改 parity map。

10
docs/tasks/M15-02C.md Normal file
View File

@@ -0,0 +1,10 @@
# M15-02CLOCAL_EXACT 证据 fail-closed 审计
- `task`: `M15-02C`
- `parent`: `M15-02B`
- `status`: `in_progress`
审计每条 `LOCAL_EXACT` 声明是否同时具备 desktop fixture、WASM fixture 和同 fixture 比较证据;当前
inventory-only map 没有此类声明,结果必须为 `notApplicable`,不能推导 parity 完成。
验收:`npm --prefix web run test:blender-local-exact-audit``npm --prefix web run typecheck``git diff --check`

9
docs/tasks/M15-02D.md Normal file
View File

@@ -0,0 +1,9 @@
# M15-02DLOCAL_EQUIVALENT 证据 fail-closed 审计
- `task`: `M15-02D`
- `parent`: `M15-02C`
- `status`: `pending`
审计 Main 与 save/reopen 证据;无声明时输出 `notApplicable`,缺证据的声明必须阻断。
验收:`npm --prefix web run test:blender-local-equivalent-audit``npm --prefix web run typecheck``git diff --check`

9
docs/tasks/M15-02E.md Normal file
View File

@@ -0,0 +1,9 @@
# M15-02ESERVER_EXACT 证据 fail-closed 审计
- `task`: `M15-02E`
- `parent`: `M15-02D`
- `status`: `pending`
审计真实 job、cancel、isolation、result binding 证据;无声明时输出 `notApplicable`,缺证据的声明必须阻断。
验收:`npm --prefix web run test:blender-server-exact-audit``npm --prefix web run typecheck``git diff --check`

9
docs/tasks/M15-02F.md Normal file
View File

@@ -0,0 +1,9 @@
# M15-02Funknown data 保存破坏 fail-closed 审计
- `task`: `M15-02F`
- `parent`: `M15-02E`
- `status`: `pending`
审计 unknown-data fixture、save/reload 与 byte-preservation 证据;无声明时输出 `notApplicable`,缺证据的声明必须阻断。
验收:`npm --prefix web run test:blender-unknown-data-audit``npm --prefix web run typecheck``git diff --check`

9
docs/tasks/M15-03A.md Normal file
View File

@@ -0,0 +1,9 @@
# M15-03A每 gap 一个最小 nextTask
- `task`: `M15-03A`
- `parent`: `M15-02F`
- `status`: `in_progress`
为每个 gap 生成唯一最小任务,不生成“完成整个 family”的聚合任务只允许一个 active task。
验收:`npm --prefix web run test:blender-next-task-plan``npm --prefix web run typecheck``git diff --check`

9
docs/tasks/M15-03B.md Normal file
View File

@@ -0,0 +1,9 @@
# M15-03BnextTask 完整规格审计
- `task`: `M15-03B`
- `parent`: `M15-03A`
- `status`: `in_progress`
验证每个生成任务包含 fixture、desktop command、Web command、comparator 和退出条件。
验收:`npm --prefix web run test:blender-next-task-spec``npm --prefix web run typecheck``git diff --check`

9
docs/tasks/M15-03C.md Normal file
View File

@@ -0,0 +1,9 @@
# M15-03CnextTask 依赖图与单 active 指针
- `task`: `M15-03C`
- `parent`: `M15-03B`
- `status`: `pending`
验证依赖无缺失、无环且仅有一个 active task。
验收:`npm --prefix web run test:blender-task-graph``npm --prefix web run typecheck``git diff --check`

9
docs/tasks/M15-03D.md Normal file
View File

@@ -0,0 +1,9 @@
# M15-03D机器 gap 统计
- `task`: `M15-03D`
- `parent`: `M15-03C`
- `status`: `pending`
分别输出 inventoried、completed、blocked、uninventoried禁止聚合 gate 推导完成。
验收:`npm --prefix web run test:blender-task-stats``npm --prefix web run typecheck``git diff --check`

10
docs/tasks/M15-03E.md Normal file
View File

@@ -0,0 +1,10 @@
# M15-03Eowner family 零 gap closure gate
- `task`: `M15-03E`
- `parent`: `M15-03D`
- `status`: `blocked`
逐 family 验证零 gap。当前仍有 6,900 项gate 必须为 `BLOCKED`,并把执行指针交给唯一 active
实现任务;不得由历史 release 聚合 gate 反推完成。
验收:`npm --prefix web run test:blender-zero-gap-gate``npm --prefix web run typecheck``git diff --check`

View File

@@ -0,0 +1,18 @@
# M16-GAP-00001Action data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00001`
- `parent`: `M15-03E`
- `status`: `in_progress`
- `gap`: `datablock:Action`
- `ownerFamily`: `RNA_DATABLOCK`
- `targetImplementationClass`: `LOCAL_EXACT`
## Required evidence
- Fixture: `tests/files/web/generated/M16-GAP-00001-datablock-Action.blend`
- Desktop command: `build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00001.py -- tests/files/web/generated/M16-GAP-00001-datablock-Action.blend`
- Web command: `npm --prefix web run test:generated-gap -- --task M16-GAP-00001`
- Comparator: `node tools/web/check-generated-gap.mjs --task M16-GAP-00001`
The task cannot be marked complete until desktop/WASM same-fixture evidence, save/reopen Main evidence,
artifact hashes and the comparator result are present.

View File

@@ -0,0 +1,18 @@
# M16-GAP-00002Armature data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00002`
- `parent`: `M16-GAP-00001`
- `status`: `in_progress`
- `gap`: `datablock:Armature`
- `ownerFamily`: `RNA_DATABLOCK`
- `targetImplementationClass`: `LOCAL_EXACT`
## Required evidence
- Fixture: `tests/files/web/generated/M16-GAP-00002-datablock-Armature.blend`
- Desktop command: `build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00002.py -- tests/files/web/generated/M16-GAP-00002-datablock-Armature.blend`
- Web command: `npm --prefix web run test:generated-gap -- --task M16-GAP-00002`
- Comparator: `node tools/web/check-generated-gap.mjs --task M16-GAP-00002`
The task remains blocked until a same-fixture desktop/WASM report, save/reopen evidence and artifact
manifest are present. The checker currently reports `IMPLEMENTATION_NOT_STARTED` for this pointer.

View File

@@ -0,0 +1,11 @@
# M16-GAP-00003Brush data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00003`
- `parent`: `M16-GAP-00002`
- `status`: `in_progress`
- `gap`: `datablock:Brush`
- `ownerFamily`: `RNA_DATABLOCK`
- `targetImplementationClass`: `LOCAL_EXACT`
Required fixture, Blender desktop report, WASM report, save/reopen comparison and manifest hashes must
be produced before completion. The generated-gap checker currently reports `IMPLEMENTATION_NOT_STARTED`.

View File

@@ -0,0 +1,11 @@
# M16-GAP-00004Camera data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00004`
- `parent`: `M16-GAP-00003`
- `status`: `in_progress`
- `gap`: `datablock:Camera`
- `ownerFamily`: `RNA_DATABLOCK`
- `targetImplementationClass`: `LOCAL_EXACT`
Required fixture, Blender desktop report, WASM report, save/reopen comparison and manifest hashes must
be produced before completion. The generated-gap checker currently reports `IMPLEMENTATION_NOT_STARTED`.

View File

@@ -0,0 +1,9 @@
# M16-GAP-00005Collection data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00005`
- `parent`: `M16-GAP-00004`
- `status`: `in_progress`
- `gap`: `datablock:Collection`
- `targetImplementationClass`: `LOCAL_EXACT`
The task requires same-fixture desktop/WASM collection hierarchy and save/reopen evidence.

View File

@@ -0,0 +1,10 @@
# M16-GAP-00006Curve data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00006`
- `parent`: `M16-GAP-00005`
- `status`: `in_progress`
- `gap`: `datablock:Curve`
- `targetImplementationClass`: `LOCAL_EXACT`
Required fixture, desktop/WASM curve geometry report, save/reopen comparison and manifest hashes are
still outstanding; checker reports `IMPLEMENTATION_NOT_STARTED`.

View File

@@ -0,0 +1,10 @@
# M16-GAP-00007Curves data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00007`
- `parent`: `M16-GAP-00006`
- `status`: `in_progress`
- `gap`: `datablock:Curves`
- `targetImplementationClass`: `LOCAL_EXACT`
Required hair/curves fixture, desktop/WASM geometry report, save/reopen comparison and manifest hashes
are outstanding; checker reports `IMPLEMENTATION_NOT_STARTED`.

View File

@@ -0,0 +1,9 @@
# M16-GAP-00008FreestyleLineStyle data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00008`
- `parent`: `M16-GAP-00007`
- `status`: `in_progress`
- `gap`: `datablock:FreestyleLineStyle`
- `targetImplementationClass`: `LOCAL_EXACT`
Required style fixture, desktop/WASM evidence and save/reopen comparison are outstanding.

View File

@@ -0,0 +1,9 @@
# M16-GAP-00009GreasePencil data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00009`
- `parent`: `M16-GAP-00008`
- `status`: `in_progress`
- `gap`: `datablock:GreasePencil`
- `targetImplementationClass`: `LOCAL_EXACT`
Required Grease Pencil drawing fixture, desktop/WASM evidence and save/reopen comparison are outstanding.

View File

@@ -0,0 +1,50 @@
# M16-GAP-00010Lattice data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00010`
- `parent`: `M16-GAP-00009`
- `status`: `done`
- `gap`: `datablock:Lattice`
- `ownerFamily`: `RNA_DATABLOCK`
- `targetImplementationClass`: `LOCAL_EXACT`
## 目标
让同一个 Lattice fixture 在 Blender desktop 和 WASM/Main 中得到一致的点阵/形变数据,并在 save/reopen 后保持一致。
## 输入与范围
- Fixture`tests/files/web/generated/M16-GAP-00010-datablock-Lattice.blend`
- 生产入口:`blender-5.2.0/source/blender/web_engine/``web/app/src/vendor/blender/`
- 检查器:`tools/web/check-generated-gap.mjs``tools/web/generated/M16-GAP-00010.py`
-Lattice 数据读取、desktop/WASM 对标、save/reopen 和结构化报告。
- 不做:其他 data-block、UI 编辑器、Firefox/WebKit 或完整 Lattice 编辑工具。
## 子任务门
| 门 | 唯一交付 | 通过条件 |
| --- | --- | --- |
| L-C | Lattice 字段/稳定 ID/错误码契约 | schema 和 malformed/unsupported 负例固定 |
| L-D | Blender desktop fixture/report | 同一 fixture 生成可重跑 report 和 hash |
| L-W | WASM/Main reader | 生产入口读取同一 fixture输出字段与 desktop 对齐 |
| L-R | save/reopen | 新 Main 重开后点阵/形变和 revision 不变 |
| L-E | 证据交接 | comparator、manifest、status 和 rollback 全部可复验 |
每次只推进一扇门;失败门保持 `in_progress`,不得用后续报告代替前置证据。
## 验收
```bash
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00010.py -- tests/files/web/generated/M16-GAP-00010-datablock-Lattice.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00010
node tools/web/check-generated-gap.mjs --task M16-GAP-00010
```
必须覆盖 malformed/unsupported 输入或取消路径;失败不得改变 Main revision 或推进 `nextTask`
## 交付与回滚
- 报告:`tests/golden/M16-GAP-00010/`
- 状态:`docs/status/M16-GAP-00010.md`
- manifest`tests/golden/M16-GAP-00010/manifest.json`
- 完成后运行 `node tools/web/check-task-context.mjs --task M16-GAP-00010 --write`
- 回滚删除本任务新增的生产入口、测试、报告、manifest、status 和 context恢复 parent manifest 为队列尾;不得改写 parent 成功证据。

View File

@@ -0,0 +1,39 @@
# M16-GAP-00011Library data-block LOCAL_EXACT slice
- `task`: `M16-GAP-00011`
- `parent`: `M16-GAP-00010`
- `status`: `in_progress`
- `gap`: `datablock:Library`
- `ownerFamily`: `RNA_DATABLOCK`
- `targetImplementationClass`: `LOCAL_EXACT`
## 目标
让同一个 Library fixture 在 Blender desktop 和 WASM/Main 中得到一致的最小可观察数据,并在 save/reopen 后保持一致。只改变 `datablock:Library` 这一条 gap不扩大到其他 data-block 或编辑器行为。
## 输入与范围
- Fixture`tests/files/web/generated/M16-GAP-00011-datablock-Library.blend`
- 生成入口:`tools/web/generated/M16-GAP-00011.py`
- 生产入口:`blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- 检查器:`tools/web/check-generated-gap.mjs`
-Library 字段读取、desktop/WASM 对标、save/reopen 和结构化报告。
- 不做:其他 data-block、UI 编辑器、Firefox/WebKit 或完整 Library 管理器。
## 验收
```bash
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00011.py -- tests/files/web/generated/M16-GAP-00011-datablock-Library.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00011
node tools/web/check-generated-gap.mjs --task M16-GAP-00011
```
必须覆盖 malformed/unsupported 输入或取消路径;失败不得改变 Main revision 或推进 `nextTask`。命令未实际退出 0、fixture 不可重开或任一 hash 漂移时保持 `in_progress`,不得发布晚到的成功结果。
## 交付与回滚
- 报告:`tests/golden/M16-GAP-00011/`
- 状态:`docs/status/M16-GAP-00011.md`
- manifest`tests/golden/M16-GAP-00011/manifest.json`
- 交接:`node tools/web/check-task-context.mjs --task M16-GAP-00011 --write`
- 回滚删除本任务新增的生产入口、fixture、测试、报告、manifest、status 和 context恢复 `M16-GAP-00010` 作为队列尾,不改写其成功证据。

View File

@@ -0,0 +1,37 @@
# M16-GAP-00012: datablock:Light LOCAL_EXACT slice
- task: M16-GAP-00012
- parent: M16-GAP-00011
- status: in_progress
- gap: datablock:Light
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Light data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00012-datablock-Light.blend`
- Generator: `tools/web/generated/M16-GAP-00012.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00012.py -- tests/files/web/generated/M16-GAP-00012-datablock-Light.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00012
node tools/web/check-generated-gap.mjs --task M16-GAP-00012
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00012/`
- Status: `docs/status/M16-GAP-00012.md`
- Manifest: `tests/golden/M16-GAP-00012/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00012 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00013: datablock:Material LOCAL_EXACT slice
- task: M16-GAP-00013
- parent: M16-GAP-00012
- status: in_progress
- gap: datablock:Material
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Material data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00013-datablock-Material.blend`
- Generator: `tools/web/generated/M16-GAP-00013.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00013.py -- tests/files/web/generated/M16-GAP-00013-datablock-Material.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00013
node tools/web/check-generated-gap.mjs --task M16-GAP-00013
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00013/`
- Status: `docs/status/M16-GAP-00013.md`
- Manifest: `tests/golden/M16-GAP-00013/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00013 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00014: datablock:Mesh LOCAL_EXACT slice
- task: M16-GAP-00014
- parent: M16-GAP-00013
- status: in_progress
- gap: datablock:Mesh
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Mesh data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00014-datablock-Mesh.blend`
- Generator: `tools/web/generated/M16-GAP-00014.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00014.py -- tests/files/web/generated/M16-GAP-00014-datablock-Mesh.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00014
node tools/web/check-generated-gap.mjs --task M16-GAP-00014
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00014/`
- Status: `docs/status/M16-GAP-00014.md`
- Manifest: `tests/golden/M16-GAP-00014/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00014 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00015: datablock:MetaBall LOCAL_EXACT slice
- task: M16-GAP-00015
- parent: M16-GAP-00014
- status: in_progress
- gap: datablock:MetaBall
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:MetaBall data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00015-datablock-MetaBall.blend`
- Generator: `tools/web/generated/M16-GAP-00015.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00015.py -- tests/files/web/generated/M16-GAP-00015-datablock-MetaBall.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00015
node tools/web/check-generated-gap.mjs --task M16-GAP-00015
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00015/`
- Status: `docs/status/M16-GAP-00015.md`
- Manifest: `tests/golden/M16-GAP-00015/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00015 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00016: datablock:NodeTree LOCAL_EXACT slice
- task: M16-GAP-00016
- parent: M16-GAP-00015
- status: in_progress
- gap: datablock:NodeTree
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:NodeTree data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00016-datablock-NodeTree.blend`
- Generator: `tools/web/generated/M16-GAP-00016.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00016.py -- tests/files/web/generated/M16-GAP-00016-datablock-NodeTree.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00016
node tools/web/check-generated-gap.mjs --task M16-GAP-00016
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00016/`
- Status: `docs/status/M16-GAP-00016.md`
- Manifest: `tests/golden/M16-GAP-00016/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00016 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00017: datablock:Object LOCAL_EXACT slice
- task: M16-GAP-00017
- parent: M16-GAP-00016
- status: in_progress
- gap: datablock:Object
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Object data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00017-datablock-Object.blend`
- Generator: `tools/web/generated/M16-GAP-00017.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00017.py -- tests/files/web/generated/M16-GAP-00017-datablock-Object.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00017
node tools/web/check-generated-gap.mjs --task M16-GAP-00017
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00017/`
- Status: `docs/status/M16-GAP-00017.md`
- Manifest: `tests/golden/M16-GAP-00017/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00017 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00018: datablock:ParticleSettings LOCAL_EXACT slice
- task: M16-GAP-00018
- parent: M16-GAP-00017
- status: in_progress
- gap: datablock:ParticleSettings
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:ParticleSettings data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00018-datablock-ParticleSettings.blend`
- Generator: `tools/web/generated/M16-GAP-00018.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00018.py -- tests/files/web/generated/M16-GAP-00018-datablock-ParticleSettings.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00018
node tools/web/check-generated-gap.mjs --task M16-GAP-00018
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00018/`
- Status: `docs/status/M16-GAP-00018.md`
- Manifest: `tests/golden/M16-GAP-00018/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00018 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00019: datablock:PointCloud LOCAL_EXACT slice
- task: M16-GAP-00019
- parent: M16-GAP-00018
- status: in_progress
- gap: datablock:PointCloud
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:PointCloud data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00019-datablock-PointCloud.blend`
- Generator: `tools/web/generated/M16-GAP-00019.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00019.py -- tests/files/web/generated/M16-GAP-00019-datablock-PointCloud.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00019
node tools/web/check-generated-gap.mjs --task M16-GAP-00019
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00019/`
- Status: `docs/status/M16-GAP-00019.md`
- Manifest: `tests/golden/M16-GAP-00019/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00019 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00020: datablock:Scene LOCAL_EXACT slice
- task: M16-GAP-00020
- parent: M16-GAP-00019
- status: in_progress
- gap: datablock:Scene
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Scene data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00020-datablock-Scene.blend`
- Generator: `tools/web/generated/M16-GAP-00020.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00020.py -- tests/files/web/generated/M16-GAP-00020-datablock-Scene.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00020
node tools/web/check-generated-gap.mjs --task M16-GAP-00020
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00020/`
- Status: `docs/status/M16-GAP-00020.md`
- Manifest: `tests/golden/M16-GAP-00020/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00020 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00021: datablock:Screen LOCAL_EXACT slice
- task: M16-GAP-00021
- parent: M16-GAP-00020
- status: in_progress
- gap: datablock:Screen
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Screen data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00021-datablock-Screen.blend`
- Generator: `tools/web/generated/M16-GAP-00021.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00021.py -- tests/files/web/generated/M16-GAP-00021-datablock-Screen.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00021
node tools/web/check-generated-gap.mjs --task M16-GAP-00021
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00021/`
- Status: `docs/status/M16-GAP-00021.md`
- Manifest: `tests/golden/M16-GAP-00021/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00021 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00022: datablock:Sound LOCAL_EXACT slice
- task: M16-GAP-00022
- parent: M16-GAP-00021
- status: in_progress
- gap: datablock:Sound
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Sound data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00022-datablock-Sound.blend`
- Generator: `tools/web/generated/M16-GAP-00022.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00022.py -- tests/files/web/generated/M16-GAP-00022-datablock-Sound.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00022
node tools/web/check-generated-gap.mjs --task M16-GAP-00022
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00022/`
- Status: `docs/status/M16-GAP-00022.md`
- Manifest: `tests/golden/M16-GAP-00022/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00022 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00023: datablock:Speaker LOCAL_EXACT slice
- task: M16-GAP-00023
- parent: M16-GAP-00022
- status: in_progress
- gap: datablock:Speaker
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Speaker data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00023-datablock-Speaker.blend`
- Generator: `tools/web/generated/M16-GAP-00023.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00023.py -- tests/files/web/generated/M16-GAP-00023-datablock-Speaker.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00023
node tools/web/check-generated-gap.mjs --task M16-GAP-00023
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00023/`
- Status: `docs/status/M16-GAP-00023.md`
- Manifest: `tests/golden/M16-GAP-00023/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00023 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00024: datablock:Text LOCAL_EXACT slice
- task: M16-GAP-00024
- parent: M16-GAP-00023
- status: in_progress
- gap: datablock:Text
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Text data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00024-datablock-Text.blend`
- Generator: `tools/web/generated/M16-GAP-00024.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00024.py -- tests/files/web/generated/M16-GAP-00024-datablock-Text.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00024
node tools/web/check-generated-gap.mjs --task M16-GAP-00024
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00024/`
- Status: `docs/status/M16-GAP-00024.md`
- Manifest: `tests/golden/M16-GAP-00024/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00024 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00025: datablock:Texture LOCAL_EXACT slice
- task: M16-GAP-00025
- parent: M16-GAP-00024
- status: in_progress
- gap: datablock:Texture
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Texture data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00025-datablock-Texture.blend`
- Generator: `tools/web/generated/M16-GAP-00025.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00025.py -- tests/files/web/generated/M16-GAP-00025-datablock-Texture.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00025
node tools/web/check-generated-gap.mjs --task M16-GAP-00025
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00025/`
- Status: `docs/status/M16-GAP-00025.md`
- Manifest: `tests/golden/M16-GAP-00025/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00025 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00026: datablock:Volume LOCAL_EXACT slice
- task: M16-GAP-00026
- parent: M16-GAP-00025
- status: in_progress
- gap: datablock:Volume
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:Volume data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00026-datablock-Volume.blend`
- Generator: `tools/web/generated/M16-GAP-00026.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00026.py -- tests/files/web/generated/M16-GAP-00026-datablock-Volume.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00026
node tools/web/check-generated-gap.mjs --task M16-GAP-00026
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00026/`
- Status: `docs/status/M16-GAP-00026.md`
- Manifest: `tests/golden/M16-GAP-00026/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00026 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00027: datablock:WindowManager LOCAL_EXACT slice
- task: M16-GAP-00027
- parent: M16-GAP-00026
- status: in_progress
- gap: datablock:WindowManager
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:WindowManager data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00027-datablock-WindowManager.blend`
- Generator: `tools/web/generated/M16-GAP-00027.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00027.py -- tests/files/web/generated/M16-GAP-00027-datablock-WindowManager.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00027
node tools/web/check-generated-gap.mjs --task M16-GAP-00027
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00027/`
- Status: `docs/status/M16-GAP-00027.md`
- Manifest: `tests/golden/M16-GAP-00027/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00027 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00028: datablock:WorkSpace LOCAL_EXACT slice
- task: M16-GAP-00028
- parent: M16-GAP-00027
- status: in_progress
- gap: datablock:WorkSpace
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:WorkSpace data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00028-datablock-WorkSpace.blend`
- Generator: `tools/web/generated/M16-GAP-00028.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00028.py -- tests/files/web/generated/M16-GAP-00028-datablock-WorkSpace.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00028
node tools/web/check-generated-gap.mjs --task M16-GAP-00028
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00028/`
- Status: `docs/status/M16-GAP-00028.md`
- Manifest: `tests/golden/M16-GAP-00028/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00028 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00029: datablock:World LOCAL_EXACT slice
- task: M16-GAP-00029
- parent: M16-GAP-00028
- status: in_progress
- gap: datablock:World
- ownerFamily: RNA_DATABLOCK
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable datablock:World data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00029-datablock-World.blend`
- Generator: `tools/web/generated/M16-GAP-00029.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00029.py -- tests/files/web/generated/M16-GAP-00029-datablock-World.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00029
node tools/web/check-generated-gap.mjs --task M16-GAP-00029
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00029/`
- Status: `docs/status/M16-GAP-00029.md`
- Manifest: `tests/golden/M16-GAP-00029/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00029 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00030: modifier:ARMATURE LOCAL_EXACT slice
- task: M16-GAP-00030
- parent: M16-GAP-00029
- status: in_progress
- gap: modifier:ARMATURE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:ARMATURE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00030-modifier-ARMATURE.blend`
- Generator: `tools/web/generated/M16-GAP-00030.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00030.py -- tests/files/web/generated/M16-GAP-00030-modifier-ARMATURE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00030
node tools/web/check-generated-gap.mjs --task M16-GAP-00030
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00030/`
- Status: `docs/status/M16-GAP-00030.md`
- Manifest: `tests/golden/M16-GAP-00030/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00030 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00031: modifier:ARRAY LOCAL_EXACT slice
- task: M16-GAP-00031
- parent: M16-GAP-00030
- status: in_progress
- gap: modifier:ARRAY
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:ARRAY data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00031-modifier-ARRAY.blend`
- Generator: `tools/web/generated/M16-GAP-00031.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00031.py -- tests/files/web/generated/M16-GAP-00031-modifier-ARRAY.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00031
node tools/web/check-generated-gap.mjs --task M16-GAP-00031
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00031/`
- Status: `docs/status/M16-GAP-00031.md`
- Manifest: `tests/golden/M16-GAP-00031/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00031 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00032: modifier:BEVEL LOCAL_EXACT slice
- task: M16-GAP-00032
- parent: M16-GAP-00031
- status: in_progress
- gap: modifier:BEVEL
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:BEVEL data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00032-modifier-BEVEL.blend`
- Generator: `tools/web/generated/M16-GAP-00032.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00032.py -- tests/files/web/generated/M16-GAP-00032-modifier-BEVEL.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00032
node tools/web/check-generated-gap.mjs --task M16-GAP-00032
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00032/`
- Status: `docs/status/M16-GAP-00032.md`
- Manifest: `tests/golden/M16-GAP-00032/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00032 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00033: modifier:BOOLEAN LOCAL_EXACT slice
- task: M16-GAP-00033
- parent: M16-GAP-00032
- status: in_progress
- gap: modifier:BOOLEAN
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:BOOLEAN data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00033-modifier-BOOLEAN.blend`
- Generator: `tools/web/generated/M16-GAP-00033.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00033.py -- tests/files/web/generated/M16-GAP-00033-modifier-BOOLEAN.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00033
node tools/web/check-generated-gap.mjs --task M16-GAP-00033
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00033/`
- Status: `docs/status/M16-GAP-00033.md`
- Manifest: `tests/golden/M16-GAP-00033/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00033 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00034: modifier:BUILD LOCAL_EXACT slice
- task: M16-GAP-00034
- parent: M16-GAP-00033
- status: in_progress
- gap: modifier:BUILD
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:BUILD data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00034-modifier-BUILD.blend`
- Generator: `tools/web/generated/M16-GAP-00034.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00034.py -- tests/files/web/generated/M16-GAP-00034-modifier-BUILD.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00034
node tools/web/check-generated-gap.mjs --task M16-GAP-00034
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00034/`
- Status: `docs/status/M16-GAP-00034.md`
- Manifest: `tests/golden/M16-GAP-00034/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00034 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00035: modifier:CAST LOCAL_EXACT slice
- task: M16-GAP-00035
- parent: M16-GAP-00034
- status: in_progress
- gap: modifier:CAST
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:CAST data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00035-modifier-CAST.blend`
- Generator: `tools/web/generated/M16-GAP-00035.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00035.py -- tests/files/web/generated/M16-GAP-00035-modifier-CAST.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00035
node tools/web/check-generated-gap.mjs --task M16-GAP-00035
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00035/`
- Status: `docs/status/M16-GAP-00035.md`
- Manifest: `tests/golden/M16-GAP-00035/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00035 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00036: modifier:CLOTH LOCAL_EXACT slice
- task: M16-GAP-00036
- parent: M16-GAP-00035
- status: in_progress
- gap: modifier:CLOTH
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:CLOTH data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00036-modifier-CLOTH.blend`
- Generator: `tools/web/generated/M16-GAP-00036.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00036.py -- tests/files/web/generated/M16-GAP-00036-modifier-CLOTH.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00036
node tools/web/check-generated-gap.mjs --task M16-GAP-00036
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00036/`
- Status: `docs/status/M16-GAP-00036.md`
- Manifest: `tests/golden/M16-GAP-00036/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00036 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00037: modifier:COLLISION LOCAL_EXACT slice
- task: M16-GAP-00037
- parent: M16-GAP-00036
- status: in_progress
- gap: modifier:COLLISION
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:COLLISION data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00037-modifier-COLLISION.blend`
- Generator: `tools/web/generated/M16-GAP-00037.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00037.py -- tests/files/web/generated/M16-GAP-00037-modifier-COLLISION.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00037
node tools/web/check-generated-gap.mjs --task M16-GAP-00037
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00037/`
- Status: `docs/status/M16-GAP-00037.md`
- Manifest: `tests/golden/M16-GAP-00037/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00037 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00038: modifier:CORRECTIVE_SMOOTH LOCAL_EXACT slice
- task: M16-GAP-00038
- parent: M16-GAP-00037
- status: in_progress
- gap: modifier:CORRECTIVE_SMOOTH
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:CORRECTIVE_SMOOTH data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00038-modifier-CORRECTIVE_SMOOTH.blend`
- Generator: `tools/web/generated/M16-GAP-00038.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00038.py -- tests/files/web/generated/M16-GAP-00038-modifier-CORRECTIVE_SMOOTH.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00038
node tools/web/check-generated-gap.mjs --task M16-GAP-00038
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00038/`
- Status: `docs/status/M16-GAP-00038.md`
- Manifest: `tests/golden/M16-GAP-00038/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00038 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00039: modifier:CURVE LOCAL_EXACT slice
- task: M16-GAP-00039
- parent: M16-GAP-00038
- status: in_progress
- gap: modifier:CURVE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:CURVE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00039-modifier-CURVE.blend`
- Generator: `tools/web/generated/M16-GAP-00039.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00039.py -- tests/files/web/generated/M16-GAP-00039-modifier-CURVE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00039
node tools/web/check-generated-gap.mjs --task M16-GAP-00039
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00039/`
- Status: `docs/status/M16-GAP-00039.md`
- Manifest: `tests/golden/M16-GAP-00039/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00039 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00040: modifier:DATA_TRANSFER LOCAL_EXACT slice
- task: M16-GAP-00040
- parent: M16-GAP-00039
- status: in_progress
- gap: modifier:DATA_TRANSFER
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:DATA_TRANSFER data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00040-modifier-DATA_TRANSFER.blend`
- Generator: `tools/web/generated/M16-GAP-00040.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00040.py -- tests/files/web/generated/M16-GAP-00040-modifier-DATA_TRANSFER.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00040
node tools/web/check-generated-gap.mjs --task M16-GAP-00040
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00040/`
- Status: `docs/status/M16-GAP-00040.md`
- Manifest: `tests/golden/M16-GAP-00040/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00040 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00041: modifier:DECIMATE LOCAL_EXACT slice
- task: M16-GAP-00041
- parent: M16-GAP-00040
- status: in_progress
- gap: modifier:DECIMATE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:DECIMATE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00041-modifier-DECIMATE.blend`
- Generator: `tools/web/generated/M16-GAP-00041.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00041.py -- tests/files/web/generated/M16-GAP-00041-modifier-DECIMATE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00041
node tools/web/check-generated-gap.mjs --task M16-GAP-00041
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00041/`
- Status: `docs/status/M16-GAP-00041.md`
- Manifest: `tests/golden/M16-GAP-00041/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00041 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00042: modifier:DISPLACE LOCAL_EXACT slice
- task: M16-GAP-00042
- parent: M16-GAP-00041
- status: in_progress
- gap: modifier:DISPLACE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:DISPLACE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00042-modifier-DISPLACE.blend`
- Generator: `tools/web/generated/M16-GAP-00042.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00042.py -- tests/files/web/generated/M16-GAP-00042-modifier-DISPLACE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00042
node tools/web/check-generated-gap.mjs --task M16-GAP-00042
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00042/`
- Status: `docs/status/M16-GAP-00042.md`
- Manifest: `tests/golden/M16-GAP-00042/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00042 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00043: modifier:DYNAMIC_PAINT LOCAL_EXACT slice
- task: M16-GAP-00043
- parent: M16-GAP-00042
- status: in_progress
- gap: modifier:DYNAMIC_PAINT
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:DYNAMIC_PAINT data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00043-modifier-DYNAMIC_PAINT.blend`
- Generator: `tools/web/generated/M16-GAP-00043.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00043.py -- tests/files/web/generated/M16-GAP-00043-modifier-DYNAMIC_PAINT.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00043
node tools/web/check-generated-gap.mjs --task M16-GAP-00043
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00043/`
- Status: `docs/status/M16-GAP-00043.md`
- Manifest: `tests/golden/M16-GAP-00043/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00043 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00044: modifier:EDGE_SPLIT LOCAL_EXACT slice
- task: M16-GAP-00044
- parent: M16-GAP-00043
- status: in_progress
- gap: modifier:EDGE_SPLIT
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:EDGE_SPLIT data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00044-modifier-EDGE_SPLIT.blend`
- Generator: `tools/web/generated/M16-GAP-00044.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00044.py -- tests/files/web/generated/M16-GAP-00044-modifier-EDGE_SPLIT.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00044
node tools/web/check-generated-gap.mjs --task M16-GAP-00044
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00044/`
- Status: `docs/status/M16-GAP-00044.md`
- Manifest: `tests/golden/M16-GAP-00044/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00044 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00045: modifier:EXPLODE LOCAL_EXACT slice
- task: M16-GAP-00045
- parent: M16-GAP-00044
- status: in_progress
- gap: modifier:EXPLODE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:EXPLODE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00045-modifier-EXPLODE.blend`
- Generator: `tools/web/generated/M16-GAP-00045.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00045.py -- tests/files/web/generated/M16-GAP-00045-modifier-EXPLODE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00045
node tools/web/check-generated-gap.mjs --task M16-GAP-00045
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00045/`
- Status: `docs/status/M16-GAP-00045.md`
- Manifest: `tests/golden/M16-GAP-00045/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00045 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00046: modifier:FLUID LOCAL_EXACT slice
- task: M16-GAP-00046
- parent: M16-GAP-00045
- status: in_progress
- gap: modifier:FLUID
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:FLUID data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00046-modifier-FLUID.blend`
- Generator: `tools/web/generated/M16-GAP-00046.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00046.py -- tests/files/web/generated/M16-GAP-00046-modifier-FLUID.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00046
node tools/web/check-generated-gap.mjs --task M16-GAP-00046
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00046/`
- Status: `docs/status/M16-GAP-00046.md`
- Manifest: `tests/golden/M16-GAP-00046/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00046 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00047: modifier:GREASE_PENCIL_ARMATURE LOCAL_EXACT slice
- task: M16-GAP-00047
- parent: M16-GAP-00046
- status: in_progress
- gap: modifier:GREASE_PENCIL_ARMATURE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_ARMATURE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00047-modifier-GREASE_PENCIL_ARMATURE.blend`
- Generator: `tools/web/generated/M16-GAP-00047.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00047.py -- tests/files/web/generated/M16-GAP-00047-modifier-GREASE_PENCIL_ARMATURE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00047
node tools/web/check-generated-gap.mjs --task M16-GAP-00047
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00047/`
- Status: `docs/status/M16-GAP-00047.md`
- Manifest: `tests/golden/M16-GAP-00047/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00047 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00048: modifier:GREASE_PENCIL_ARRAY LOCAL_EXACT slice
- task: M16-GAP-00048
- parent: M16-GAP-00047
- status: in_progress
- gap: modifier:GREASE_PENCIL_ARRAY
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_ARRAY data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00048-modifier-GREASE_PENCIL_ARRAY.blend`
- Generator: `tools/web/generated/M16-GAP-00048.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00048.py -- tests/files/web/generated/M16-GAP-00048-modifier-GREASE_PENCIL_ARRAY.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00048
node tools/web/check-generated-gap.mjs --task M16-GAP-00048
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00048/`
- Status: `docs/status/M16-GAP-00048.md`
- Manifest: `tests/golden/M16-GAP-00048/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00048 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00049: modifier:GREASE_PENCIL_BUILD LOCAL_EXACT slice
- task: M16-GAP-00049
- parent: M16-GAP-00048
- status: in_progress
- gap: modifier:GREASE_PENCIL_BUILD
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_BUILD data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00049-modifier-GREASE_PENCIL_BUILD.blend`
- Generator: `tools/web/generated/M16-GAP-00049.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00049.py -- tests/files/web/generated/M16-GAP-00049-modifier-GREASE_PENCIL_BUILD.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00049
node tools/web/check-generated-gap.mjs --task M16-GAP-00049
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00049/`
- Status: `docs/status/M16-GAP-00049.md`
- Manifest: `tests/golden/M16-GAP-00049/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00049 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00050: modifier:GREASE_PENCIL_COLOR LOCAL_EXACT slice
- task: M16-GAP-00050
- parent: M16-GAP-00049
- status: in_progress
- gap: modifier:GREASE_PENCIL_COLOR
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_COLOR data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00050-modifier-GREASE_PENCIL_COLOR.blend`
- Generator: `tools/web/generated/M16-GAP-00050.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00050.py -- tests/files/web/generated/M16-GAP-00050-modifier-GREASE_PENCIL_COLOR.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00050
node tools/web/check-generated-gap.mjs --task M16-GAP-00050
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00050/`
- Status: `docs/status/M16-GAP-00050.md`
- Manifest: `tests/golden/M16-GAP-00050/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00050 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00051: modifier:GREASE_PENCIL_DASH LOCAL_EXACT slice
- task: M16-GAP-00051
- parent: M16-GAP-00050
- status: in_progress
- gap: modifier:GREASE_PENCIL_DASH
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_DASH data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00051-modifier-GREASE_PENCIL_DASH.blend`
- Generator: `tools/web/generated/M16-GAP-00051.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00051.py -- tests/files/web/generated/M16-GAP-00051-modifier-GREASE_PENCIL_DASH.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00051
node tools/web/check-generated-gap.mjs --task M16-GAP-00051
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00051/`
- Status: `docs/status/M16-GAP-00051.md`
- Manifest: `tests/golden/M16-GAP-00051/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00051 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00052: modifier:GREASE_PENCIL_ENVELOPE LOCAL_EXACT slice
- task: M16-GAP-00052
- parent: M16-GAP-00051
- status: in_progress
- gap: modifier:GREASE_PENCIL_ENVELOPE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_ENVELOPE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00052-modifier-GREASE_PENCIL_ENVELOPE.blend`
- Generator: `tools/web/generated/M16-GAP-00052.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00052.py -- tests/files/web/generated/M16-GAP-00052-modifier-GREASE_PENCIL_ENVELOPE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00052
node tools/web/check-generated-gap.mjs --task M16-GAP-00052
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00052/`
- Status: `docs/status/M16-GAP-00052.md`
- Manifest: `tests/golden/M16-GAP-00052/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00052 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00053: modifier:GREASE_PENCIL_HOOK LOCAL_EXACT slice
- task: M16-GAP-00053
- parent: M16-GAP-00052
- status: in_progress
- gap: modifier:GREASE_PENCIL_HOOK
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_HOOK data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00053-modifier-GREASE_PENCIL_HOOK.blend`
- Generator: `tools/web/generated/M16-GAP-00053.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00053.py -- tests/files/web/generated/M16-GAP-00053-modifier-GREASE_PENCIL_HOOK.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00053
node tools/web/check-generated-gap.mjs --task M16-GAP-00053
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00053/`
- Status: `docs/status/M16-GAP-00053.md`
- Manifest: `tests/golden/M16-GAP-00053/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00053 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00054: modifier:GREASE_PENCIL_LATTICE LOCAL_EXACT slice
- task: M16-GAP-00054
- parent: M16-GAP-00053
- status: in_progress
- gap: modifier:GREASE_PENCIL_LATTICE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_LATTICE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00054-modifier-GREASE_PENCIL_LATTICE.blend`
- Generator: `tools/web/generated/M16-GAP-00054.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00054.py -- tests/files/web/generated/M16-GAP-00054-modifier-GREASE_PENCIL_LATTICE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00054
node tools/web/check-generated-gap.mjs --task M16-GAP-00054
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00054/`
- Status: `docs/status/M16-GAP-00054.md`
- Manifest: `tests/golden/M16-GAP-00054/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00054 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00055: modifier:GREASE_PENCIL_LENGTH LOCAL_EXACT slice
- task: M16-GAP-00055
- parent: M16-GAP-00054
- status: in_progress
- gap: modifier:GREASE_PENCIL_LENGTH
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_LENGTH data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00055-modifier-GREASE_PENCIL_LENGTH.blend`
- Generator: `tools/web/generated/M16-GAP-00055.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00055.py -- tests/files/web/generated/M16-GAP-00055-modifier-GREASE_PENCIL_LENGTH.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00055
node tools/web/check-generated-gap.mjs --task M16-GAP-00055
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00055/`
- Status: `docs/status/M16-GAP-00055.md`
- Manifest: `tests/golden/M16-GAP-00055/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00055 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00056: modifier:GREASE_PENCIL_MIRROR LOCAL_EXACT slice
- task: M16-GAP-00056
- parent: M16-GAP-00055
- status: in_progress
- gap: modifier:GREASE_PENCIL_MIRROR
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_MIRROR data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00056-modifier-GREASE_PENCIL_MIRROR.blend`
- Generator: `tools/web/generated/M16-GAP-00056.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00056.py -- tests/files/web/generated/M16-GAP-00056-modifier-GREASE_PENCIL_MIRROR.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00056
node tools/web/check-generated-gap.mjs --task M16-GAP-00056
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00056/`
- Status: `docs/status/M16-GAP-00056.md`
- Manifest: `tests/golden/M16-GAP-00056/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00056 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00057: modifier:GREASE_PENCIL_MULTIPLY LOCAL_EXACT slice
- task: M16-GAP-00057
- parent: M16-GAP-00056
- status: in_progress
- gap: modifier:GREASE_PENCIL_MULTIPLY
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_MULTIPLY data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00057-modifier-GREASE_PENCIL_MULTIPLY.blend`
- Generator: `tools/web/generated/M16-GAP-00057.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00057.py -- tests/files/web/generated/M16-GAP-00057-modifier-GREASE_PENCIL_MULTIPLY.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00057
node tools/web/check-generated-gap.mjs --task M16-GAP-00057
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00057/`
- Status: `docs/status/M16-GAP-00057.md`
- Manifest: `tests/golden/M16-GAP-00057/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00057 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00058: modifier:GREASE_PENCIL_NOISE LOCAL_EXACT slice
- task: M16-GAP-00058
- parent: M16-GAP-00057
- status: in_progress
- gap: modifier:GREASE_PENCIL_NOISE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_NOISE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00058-modifier-GREASE_PENCIL_NOISE.blend`
- Generator: `tools/web/generated/M16-GAP-00058.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00058.py -- tests/files/web/generated/M16-GAP-00058-modifier-GREASE_PENCIL_NOISE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00058
node tools/web/check-generated-gap.mjs --task M16-GAP-00058
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00058/`
- Status: `docs/status/M16-GAP-00058.md`
- Manifest: `tests/golden/M16-GAP-00058/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00058 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00059: modifier:GREASE_PENCIL_OFFSET LOCAL_EXACT slice
- task: M16-GAP-00059
- parent: M16-GAP-00058
- status: in_progress
- gap: modifier:GREASE_PENCIL_OFFSET
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_OFFSET data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00059-modifier-GREASE_PENCIL_OFFSET.blend`
- Generator: `tools/web/generated/M16-GAP-00059.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00059.py -- tests/files/web/generated/M16-GAP-00059-modifier-GREASE_PENCIL_OFFSET.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00059
node tools/web/check-generated-gap.mjs --task M16-GAP-00059
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00059/`
- Status: `docs/status/M16-GAP-00059.md`
- Manifest: `tests/golden/M16-GAP-00059/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00059 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00060: modifier:GREASE_PENCIL_OPACITY LOCAL_EXACT slice
- task: M16-GAP-00060
- parent: M16-GAP-00059
- status: in_progress
- gap: modifier:GREASE_PENCIL_OPACITY
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_OPACITY data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00060-modifier-GREASE_PENCIL_OPACITY.blend`
- Generator: `tools/web/generated/M16-GAP-00060.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00060.py -- tests/files/web/generated/M16-GAP-00060-modifier-GREASE_PENCIL_OPACITY.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00060
node tools/web/check-generated-gap.mjs --task M16-GAP-00060
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00060/`
- Status: `docs/status/M16-GAP-00060.md`
- Manifest: `tests/golden/M16-GAP-00060/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00060 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00061: modifier:GREASE_PENCIL_OUTLINE LOCAL_EXACT slice
- task: M16-GAP-00061
- parent: M16-GAP-00060
- status: in_progress
- gap: modifier:GREASE_PENCIL_OUTLINE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_OUTLINE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00061-modifier-GREASE_PENCIL_OUTLINE.blend`
- Generator: `tools/web/generated/M16-GAP-00061.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00061.py -- tests/files/web/generated/M16-GAP-00061-modifier-GREASE_PENCIL_OUTLINE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00061
node tools/web/check-generated-gap.mjs --task M16-GAP-00061
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00061/`
- Status: `docs/status/M16-GAP-00061.md`
- Manifest: `tests/golden/M16-GAP-00061/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00061 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00062: modifier:GREASE_PENCIL_SHRINKWRAP LOCAL_EXACT slice
- task: M16-GAP-00062
- parent: M16-GAP-00061
- status: in_progress
- gap: modifier:GREASE_PENCIL_SHRINKWRAP
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_SHRINKWRAP data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00062-modifier-GREASE_PENCIL_SHRINKWRAP.blend`
- Generator: `tools/web/generated/M16-GAP-00062.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00062.py -- tests/files/web/generated/M16-GAP-00062-modifier-GREASE_PENCIL_SHRINKWRAP.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00062
node tools/web/check-generated-gap.mjs --task M16-GAP-00062
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00062/`
- Status: `docs/status/M16-GAP-00062.md`
- Manifest: `tests/golden/M16-GAP-00062/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00062 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00063: modifier:GREASE_PENCIL_SIMPLIFY LOCAL_EXACT slice
- task: M16-GAP-00063
- parent: M16-GAP-00062
- status: in_progress
- gap: modifier:GREASE_PENCIL_SIMPLIFY
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_SIMPLIFY data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00063-modifier-GREASE_PENCIL_SIMPLIFY.blend`
- Generator: `tools/web/generated/M16-GAP-00063.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00063.py -- tests/files/web/generated/M16-GAP-00063-modifier-GREASE_PENCIL_SIMPLIFY.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00063
node tools/web/check-generated-gap.mjs --task M16-GAP-00063
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00063/`
- Status: `docs/status/M16-GAP-00063.md`
- Manifest: `tests/golden/M16-GAP-00063/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00063 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00064: modifier:GREASE_PENCIL_SMOOTH LOCAL_EXACT slice
- task: M16-GAP-00064
- parent: M16-GAP-00063
- status: in_progress
- gap: modifier:GREASE_PENCIL_SMOOTH
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_SMOOTH data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00064-modifier-GREASE_PENCIL_SMOOTH.blend`
- Generator: `tools/web/generated/M16-GAP-00064.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00064.py -- tests/files/web/generated/M16-GAP-00064-modifier-GREASE_PENCIL_SMOOTH.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00064
node tools/web/check-generated-gap.mjs --task M16-GAP-00064
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00064/`
- Status: `docs/status/M16-GAP-00064.md`
- Manifest: `tests/golden/M16-GAP-00064/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00064 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00065: modifier:GREASE_PENCIL_SUBDIV LOCAL_EXACT slice
- task: M16-GAP-00065
- parent: M16-GAP-00064
- status: in_progress
- gap: modifier:GREASE_PENCIL_SUBDIV
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_SUBDIV data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00065-modifier-GREASE_PENCIL_SUBDIV.blend`
- Generator: `tools/web/generated/M16-GAP-00065.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00065.py -- tests/files/web/generated/M16-GAP-00065-modifier-GREASE_PENCIL_SUBDIV.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00065
node tools/web/check-generated-gap.mjs --task M16-GAP-00065
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00065/`
- Status: `docs/status/M16-GAP-00065.md`
- Manifest: `tests/golden/M16-GAP-00065/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00065 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00066: modifier:GREASE_PENCIL_TEXTURE LOCAL_EXACT slice
- task: M16-GAP-00066
- parent: M16-GAP-00065
- status: in_progress
- gap: modifier:GREASE_PENCIL_TEXTURE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_TEXTURE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00066-modifier-GREASE_PENCIL_TEXTURE.blend`
- Generator: `tools/web/generated/M16-GAP-00066.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00066.py -- tests/files/web/generated/M16-GAP-00066-modifier-GREASE_PENCIL_TEXTURE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00066
node tools/web/check-generated-gap.mjs --task M16-GAP-00066
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00066/`
- Status: `docs/status/M16-GAP-00066.md`
- Manifest: `tests/golden/M16-GAP-00066/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00066 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00067: modifier:GREASE_PENCIL_THICKNESS LOCAL_EXACT slice
- task: M16-GAP-00067
- parent: M16-GAP-00066
- status: in_progress
- gap: modifier:GREASE_PENCIL_THICKNESS
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_THICKNESS data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00067-modifier-GREASE_PENCIL_THICKNESS.blend`
- Generator: `tools/web/generated/M16-GAP-00067.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00067.py -- tests/files/web/generated/M16-GAP-00067-modifier-GREASE_PENCIL_THICKNESS.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00067
node tools/web/check-generated-gap.mjs --task M16-GAP-00067
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00067/`
- Status: `docs/status/M16-GAP-00067.md`
- Manifest: `tests/golden/M16-GAP-00067/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00067 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00068: modifier:GREASE_PENCIL_TIME LOCAL_EXACT slice
- task: M16-GAP-00068
- parent: M16-GAP-00067
- status: in_progress
- gap: modifier:GREASE_PENCIL_TIME
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_TIME data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00068-modifier-GREASE_PENCIL_TIME.blend`
- Generator: `tools/web/generated/M16-GAP-00068.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00068.py -- tests/files/web/generated/M16-GAP-00068-modifier-GREASE_PENCIL_TIME.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00068
node tools/web/check-generated-gap.mjs --task M16-GAP-00068
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00068/`
- Status: `docs/status/M16-GAP-00068.md`
- Manifest: `tests/golden/M16-GAP-00068/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00068 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00069: modifier:GREASE_PENCIL_TINT LOCAL_EXACT slice
- task: M16-GAP-00069
- parent: M16-GAP-00068
- status: in_progress
- gap: modifier:GREASE_PENCIL_TINT
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_TINT data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00069-modifier-GREASE_PENCIL_TINT.blend`
- Generator: `tools/web/generated/M16-GAP-00069.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00069.py -- tests/files/web/generated/M16-GAP-00069-modifier-GREASE_PENCIL_TINT.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00069
node tools/web/check-generated-gap.mjs --task M16-GAP-00069
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00069/`
- Status: `docs/status/M16-GAP-00069.md`
- Manifest: `tests/golden/M16-GAP-00069/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00069 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00070: modifier:GREASE_PENCIL_VERTEX_WEIGHT_ANGLE LOCAL_EXACT slice
- task: M16-GAP-00070
- parent: M16-GAP-00069
- status: in_progress
- gap: modifier:GREASE_PENCIL_VERTEX_WEIGHT_ANGLE
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_VERTEX_WEIGHT_ANGLE data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00070-modifier-GREASE_PENCIL_VERTEX_WEIGHT_ANGLE.blend`
- Generator: `tools/web/generated/M16-GAP-00070.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00070.py -- tests/files/web/generated/M16-GAP-00070-modifier-GREASE_PENCIL_VERTEX_WEIGHT_ANGLE.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00070
node tools/web/check-generated-gap.mjs --task M16-GAP-00070
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00070/`
- Status: `docs/status/M16-GAP-00070.md`
- Manifest: `tests/golden/M16-GAP-00070/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00070 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.

View File

@@ -0,0 +1,37 @@
# M16-GAP-00071: modifier:GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY LOCAL_EXACT slice
- task: M16-GAP-00071
- parent: M16-GAP-00070
- status: in_progress
- gap: modifier:GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY
- ownerFamily: MODIFIER
- targetImplementationClass: LOCAL_EXACT
## 目标
Make the same minimal fixture produce observable modifier:GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers.
## 输入与范围
- Fixture: `tests/files/web/generated/M16-GAP-00071-modifier-GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY.blend`
- Generator: `tools/web/generated/M16-GAP-00071.py`
- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
- Checker: `tools/web/check-generated-gap.mjs`
- Do: field read, desktop/WASM comparison, save/reopen, structured report.
- Do not: other gaps, Firefox/WebKit, or full editor behavior.
## 验收
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00071.py -- tests/files/web/generated/M16-GAP-00071-modifier-GREASE_PENCIL_VERTEX_WEIGHT_PROXIMITY.blend
npm --prefix web run test:generated-gap -- --task M16-GAP-00071
node tools/web/check-generated-gap.mjs --task M16-GAP-00071
Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask.
## 交付与回滚
- Reports: `tests/golden/M16-GAP-00071/`
- Status: `docs/status/M16-GAP-00071.md`
- Manifest: `tests/golden/M16-GAP-00071/manifest.json`
- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00071 --write`
- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence.