Capture M16 gap execution artifacts
This commit is contained in:
17
docs/status/M16-GAP-00139.md
Normal file
17
docs/status/M16-GAP-00139.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00139 Status
|
||||
|
||||
status: done
|
||||
task: action.select_leftright operator LOCAL_EXACT slice
|
||||
updated: 2026-08-20 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor left-side selection on `object:WebGapSelectLeftRightObject`, using `mode=LEFT` at frame 3.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose matching three location channels with frames 1 and 3 selected.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00140`
|
||||
17
docs/status/M16-GAP-00140.md
Normal file
17
docs/status/M16-GAP-00140.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00140 Status
|
||||
|
||||
status: done
|
||||
task: action.select_less operator LOCAL_EXACT slice
|
||||
updated: 2026-08-20 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor selection-island shrinking on `object:WebGapSelectLessObject`.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose matching three location channels with only frame 3 selected after `select_less`.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00141`
|
||||
17
docs/status/M16-GAP-00141.md
Normal file
17
docs/status/M16-GAP-00141.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00141 Status
|
||||
|
||||
status: done
|
||||
task: action.select_linked operator LOCAL_EXACT slice
|
||||
updated: 2026-08-20 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor linked selection on `object:WebGapSelectLinkedObject`, starting from `location[0]` frame 3.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose matching three location channels with frames 1, 3 and 5 selected after `select_linked`.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00142`
|
||||
17
docs/status/M16-GAP-00142.md
Normal file
17
docs/status/M16-GAP-00142.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00142 Status
|
||||
|
||||
status: done
|
||||
task: action.select_more operator LOCAL_EXACT slice
|
||||
updated: 2026-08-20 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor neighboring-key selection on `object:WebGapSelectMoreObject`, starting from `location[0]` frame 3.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose matching three location channels with frames 1, 3 and 5 selected after `select_more`.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00143`
|
||||
17
docs/status/M16-GAP-00143.md
Normal file
17
docs/status/M16-GAP-00143.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00143 Status
|
||||
|
||||
status: done
|
||||
task: action.snap operator LOCAL_EXACT slice
|
||||
updated: 2026-08-20 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor current-frame snapping on `object:WebGapSnapObject`, using `type=CFRA` at frame 4.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose matching location channels with keyframes `[1,4,5]` and frame 4 selected.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00144`
|
||||
17
docs/status/M16-GAP-00144.md
Normal file
17
docs/status/M16-GAP-00144.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00144 Status
|
||||
|
||||
status: done
|
||||
task: action.stash operator LOCAL_EXACT slice
|
||||
updated: 2026-08-20 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor Action stashing on `object:WebGapStashObject`.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose no active Action plus one NLA track containing one strip for the stashed Action.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00145`
|
||||
17
docs/status/M16-GAP-00145.md
Normal file
17
docs/status/M16-GAP-00145.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00145 Status
|
||||
|
||||
status: done
|
||||
task: action.stash_and_create operator LOCAL_EXACT slice
|
||||
updated: 2026-08-20 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor stash-and-create on `object:WebGapStashCreateObject`.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose one NLA track/strip containing the stashed Action while active Action is empty.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00146`
|
||||
18
docs/status/M16-GAP-00146.md
Normal file
18
docs/status/M16-GAP-00146.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00146 Status
|
||||
|
||||
status: done
|
||||
task: action.unlink operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor unlink on `WebGapActionUnlinkObject`.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop reports no active Action while retaining the fake-user `WebGapActionUnlinkObjectAction` with three location channels.
|
||||
- WASM/Main exposes the same retained Action as an `animations` record with `unlinked: true` and target `unlinked`.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Reader rebuild, fixture generation, desktop checker, npm comparator, direct comparator and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00147`
|
||||
17
docs/status/M16-GAP-00147.md
Normal file
17
docs/status/M16-GAP-00147.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00147 Status
|
||||
|
||||
status: done
|
||||
task: action.view_all operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `action.view_all` view state on the Animation workspace main region.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same Action Editor `view2d.cur` and mask after `action.view_all`.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Reader rebuild, fixture generation, desktop checker, npm comparator, direct comparator and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00148`
|
||||
17
docs/status/M16-GAP-00148.md
Normal file
17
docs/status/M16-GAP-00148.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00148 Status
|
||||
|
||||
status: done
|
||||
task: action.view_frame operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `action.view_frame` centering around current frame 3.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same Action Editor `view2d.cur` and mask around current frame 3.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Existing reader `view2d` support, fixture generation, desktop checker, npm comparator, direct comparator and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00149`
|
||||
17
docs/status/M16-GAP-00149.md
Normal file
17
docs/status/M16-GAP-00149.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00149 Status
|
||||
|
||||
status: done
|
||||
task: action.view_selected operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `action.view_selected` selection and view state around selected frame 3.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same Action Editor selection on frame 3 for all three location channels and the same `view2d.cur` and mask.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00150`
|
||||
17
docs/status/M16-GAP-00150.md
Normal file
17
docs/status/M16-GAP-00150.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00150 Status
|
||||
|
||||
status: done
|
||||
task: anim.change_frame operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Animation Editor `anim.change_frame` moves the current frame to 4 for a minimal animated object.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same current frame 4 and three Action channels with frames 1, 3, and 5.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00151`
|
||||
17
docs/status/M16-GAP-00151.md
Normal file
17
docs/status/M16-GAP-00151.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00151 Status
|
||||
|
||||
status: done
|
||||
task: anim.channel_select_keys operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channel_select_keys` selects all keys on the first location channel.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same selection: location index 0 at frames 1, 3, and 5; the other channels remain unselected.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00152`
|
||||
17
docs/status/M16-GAP-00152.md
Normal file
17
docs/status/M16-GAP-00152.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00152 Status
|
||||
|
||||
status: done
|
||||
task: anim.channel_view_pick operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channel_view_pick` frames the shared location-channel range.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same Action Editor `view2d.cur` and mask around frames 1 through 5.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00153`
|
||||
17
docs/status/M16-GAP-00153.md
Normal file
17
docs/status/M16-GAP-00153.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00153 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_bake operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_bake` bakes selected location channels over scene frames 1 through 5 at step 1.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose identical 1, 2, 3, 4, 5 keyframes on all three location channels.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00154`
|
||||
17
docs/status/M16-GAP-00154.md
Normal file
17
docs/status/M16-GAP-00154.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00154 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_clean_empty operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_clean_empty` removes an empty AnimData container while preserving a populated Action.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main show the empty object's AnimData removed and the keep object's three location channels at frames 1, 3, and 5.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00155`
|
||||
17
docs/status/M16-GAP-00155.md
Normal file
17
docs/status/M16-GAP-00155.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00155 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_click operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_click` selects the first location channel.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same selected location index 0 keys at frames 1, 3, and 5; other channels remain unselected.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00156`
|
||||
17
docs/status/M16-GAP-00156.md
Normal file
17
docs/status/M16-GAP-00156.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00156 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_collapse operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_collapse` collapses all channels.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main preserve the same three location channels at frames 1, 3, and 5 after `all=true` collapse.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00157`
|
||||
17
docs/status/M16-GAP-00157.md
Normal file
17
docs/status/M16-GAP-00157.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00157 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_delete operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_delete` deletes the selected location[0] FCurve.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main show the Action emptied after deleting the only location channel; the WASM snapshot correctly omits the empty animation.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00158`
|
||||
17
docs/status/M16-GAP-00158.md
Normal file
17
docs/status/M16-GAP-00158.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00158 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_editable_toggle operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_editable_toggle` toggles the selected location channels to non-editable.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose all three location FCurves with `editable: false`.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00159`
|
||||
17
docs/status/M16-GAP-00159.md
Normal file
17
docs/status/M16-GAP-00159.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00159 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_expand operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_expand(all=true)` expands the `Object Transforms` channel group.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the group as `Object Transforms` with `expanded: true` on all three location channels.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00160`
|
||||
17
docs/status/M16-GAP-00160.md
Normal file
17
docs/status/M16-GAP-00160.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00160 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_fcurves_enable operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_fcurves_enable` preserves three location F-Curves and exposes their enabled state.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose all three `location_missing` channels with `enabled: true` after the operator path.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00161`
|
||||
17
docs/status/M16-GAP-00161.md
Normal file
17
docs/status/M16-GAP-00161.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00161 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_group operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_group` assigns the three selected location F-Curves to `WebGapTransforms`.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose all three channels with the exact `WebGapTransforms` group.
|
||||
- Save/reopen is exact; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00162`
|
||||
17
docs/status/M16-GAP-00162.md
Normal file
17
docs/status/M16-GAP-00162.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00162 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_move operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_move` moves the first location F-Curve down.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three location channels in order `[1, 0, 2]`.
|
||||
- Save/reopen preserves the channel order exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00163`
|
||||
17
docs/status/M16-GAP-00163.md
Normal file
17
docs/status/M16-GAP-00163.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00163 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_rename operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_rename` renames the first disabled F-Curve RNA path to `rotation_euler`.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three channels: `rotation_euler[0]`, `location_missing[1]`, and `location_missing[2]` with identical keyframes.
|
||||
- WASM preserves the disabled flags for the two invalid control paths; save/reopen preserves the animation snapshot exactly.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, malformed Blend rejection, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00164`
|
||||
18
docs/status/M16-GAP-00164.md
Normal file
18
docs/status/M16-GAP-00164.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00164 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_select_all operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_select_all` selects all three F-Curve channels without selecting keyframes.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three `location` channels with `selected: true` and unchanged keyframe selection.
|
||||
- The reader exposes the persisted `FCURVE_SELECTED` flag through the optional SceneIR channel field `selected`.
|
||||
- Save/reopen preserves the animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, WebEngine rebuild, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00165`
|
||||
18
docs/status/M16-GAP-00165.md
Normal file
18
docs/status/M16-GAP-00165.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00165 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_select_box operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_select_box` selects all three F-Curve channels without selecting keyframes.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three `location` channels with `selected: true` and unchanged keyframe selection.
|
||||
- The reader reuses the persisted `FCURVE_SELECTED` flag through the optional SceneIR channel field `selected`.
|
||||
- Save/reopen preserves the animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00166`
|
||||
18
docs/status/M16-GAP-00166.md
Normal file
18
docs/status/M16-GAP-00166.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00166 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_select_filter operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_select_filter` persists the `Location` channel filter in the Dope Sheet editor workflow.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same Action Editor `filterText: "Location"` and the same three animation channels.
|
||||
- The reader maps persisted `SpaceAction.ads.searchstr` to the optional editor area `filterText` field; protocol validation bounds the string to 64 bytes.
|
||||
- Save/reopen preserves the editor workflow and animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, WebEngine rebuild, npm comparator, direct comparator, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00167`
|
||||
18
docs/status/M16-GAP-00167.md
Normal file
18
docs/status/M16-GAP-00167.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00167 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_setting_disable operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_setting_disable(type=PROTECT)` disables editability on all three selected F-Curve channels.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three animation channels with `editable: false`.
|
||||
- The existing reader mapping of the persisted F-Curve protection flag is sufficient for this setting.
|
||||
- Save/reopen preserves the animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, context governance, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00168`
|
||||
18
docs/status/M16-GAP-00168.md
Normal file
18
docs/status/M16-GAP-00168.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00168 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_setting_enable operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_setting_enable(type=PROTECT)` protects all three selected F-Curve channels.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three animation channels with `editable: false`.
|
||||
- The existing reader mapping of the persisted F-Curve protection flag is sufficient for this setting.
|
||||
- Save/reopen preserves the animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00169`
|
||||
18
docs/status/M16-GAP-00169.md
Normal file
18
docs/status/M16-GAP-00169.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00169 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_setting_toggle operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_setting_toggle(type=PROTECT)` toggles protection on all three selected F-Curve channels.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three animation channels with `editable: false` after the toggle.
|
||||
- The existing reader mapping of the persisted F-Curve protection flag is sufficient for this setting.
|
||||
- Save/reopen preserves the animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00170`
|
||||
18
docs/status/M16-GAP-00170.md
Normal file
18
docs/status/M16-GAP-00170.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00170 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_ungroup operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_ungroup` removes all selected F-Curves from their Action Group.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three animation channels with no group after ungrouping.
|
||||
- The existing reader mapping of F-Curve group pointers is sufficient for the grouped and ungrouped states.
|
||||
- Save/reopen preserves the animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00171`
|
||||
17
docs/status/M16-GAP-00171.md
Normal file
17
docs/status/M16-GAP-00171.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00171 Status
|
||||
|
||||
status: done
|
||||
task: anim.channels_view_selected operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- Action Editor `anim.channels_view_selected` preserves the three selected F-Curves and exposes the resulting `view2d` state.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same three selected animation channels and the same six-decimal normalized Action Editor `view2d` bounds.
|
||||
- Save/reopen preserves both the animation snapshot and editor workflow exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00172`
|
||||
17
docs/status/M16-GAP-00172.md
Normal file
17
docs/status/M16-GAP-00172.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# M16-GAP-00172 Status
|
||||
|
||||
status: done
|
||||
task: anim.clear_useless_actions operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- `anim.clear_useless_actions` removes the fake-user-only Action with no F-Curves while preserving the used Action and the fake-user Action library with F-Curves.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same two preserved Actions, each with three location channels and frames 1, 3, and 5; the empty Action is absent.
|
||||
- Save/reopen preserves the animation snapshot exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00173`
|
||||
18
docs/status/M16-GAP-00173.md
Normal file
18
docs/status/M16-GAP-00173.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00173 Status
|
||||
|
||||
status: done
|
||||
task: anim.copy_driver_button operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- The minimal fixture exposes one scripted driver on `drive_target`; the reader exports its path, expression, type, flags, and variables for WASM/Main.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop and WASM/Main expose the same driver (`["drive_target"]`, expression `frame * 2.0 + 1.0`, type `SCRIPTED`), with value `3.0`.
|
||||
- The desktop checker invokes `ANIM_OT_copy_driver_button` in the mandated `-b` context and records `CANCELLED`: the operator requires an active UI RNA button, so the cancellation leaves Main unchanged while the driver-read parity evidence remains exact.
|
||||
- Save/reopen preserves the driver exactly; malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
|
||||
nextTask: `M16-GAP-00174`
|
||||
18
docs/status/M16-GAP-00174.md
Normal file
18
docs/status/M16-GAP-00174.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# M16-GAP-00174 Status
|
||||
|
||||
status: in_progress
|
||||
task: anim.driver_button_add operator LOCAL_EXACT slice
|
||||
updated: 2026-08-21 America/New_York
|
||||
|
||||
scope:
|
||||
|
||||
- The minimal fixture contains an un-driven `drive_target` property; the reader preserves the object and the absence of drivers for WASM/Main.
|
||||
|
||||
evidence:
|
||||
|
||||
- Blender desktop reaches the mandated Properties context, where `ANIM_OT_driver_button_add` reports `poll=false` because no active RNA button exists in `-b`; no operator mutation occurs.
|
||||
- Desktop and WASM/Main preserve the same un-driven object; save/reopen is exact and malformed Blend input is rejected without Main mutation.
|
||||
- Fixture generation, desktop checker, npm comparator, direct comparator, and artifact hashing passed.
|
||||
- Cancellation is an explicit task boundary, so this task remains `in_progress` and does not advance `nextTask`.
|
||||
|
||||
nextTask: `M16-GAP-00174`
|
||||
Reference in New Issue
Block a user