1.2 KiB
1.2 KiB
M16-GAP-00198 Status
status: done task: anim.merge_animation operator LOCAL_EXACT slice updated: 2026-08-22 America/New_York
scope:
- The minimal fixture contains two selected mesh objects. The active object owns
WebGapAnimMergeActiveAction; the source object ownsWebGapAnimMergeSourceAction, each with one three-key custom-property channel. - Blender invokes
ANIM_OT_merge_animationwithpoll=trueandFINISHED, moving the source slot into the active action. Both objects then observeWebGapAnimMergeActiveActionwith both channels; the source action has no remaining users.
evidence:
- Desktop evidence records the exact pre/post action channels, operator status, active/selected state, and save/reopen stability.
- WASM/Main reads the post-operation fixture with two
WebGapAnimMergeActiveActionanimation entries (one per object), both carrying the merged channels; save/reopen is exact and malformed Blend input is rejected without Main mutation. - Fixture generation, background desktop operator checker, npm comparator, direct idempotent comparator, Python syntax checks, and artifact hashing passed. No production reader or protocol change was made.
nextTask: M16-GAP-00199