# M16-GAP-00197 Status status: done task: anim.keyingset_button_remove operator LOCAL_EXACT slice updated: 2026-08-22 America/New_York scope: - The minimal fixture contains one selected/active object with a three-key Action and one active `ButtonKeyingSet` path. A real `PROPERTIES` RNA button invokes `ANIM_OT_keyingset_button_remove()` (`poll=true`, `FINISHED`), removing the active property path without changing the Action. evidence: - Desktop evidence records path count `1→0`, the unchanged active Keying Set, exact pre-existing path fields, unchanged `[1, 3, 5]` Action data, and exact save/reopen. - WASM/Main reads the same post-operation fixture with the visible Action unchanged and save/reopen exact. The current scene snapshot does not expose Keying Set metadata, so the report records `keyingSetMetadata: NOT_EXPOSED_BY_SCENE_SNAPSHOT`; malformed Blend input is rejected without Main mutation. - Fixture generation, foreground desktop UI checker, npm comparator, direct idempotent comparator, and artifact hashing passed. No production reader or protocol change was made. nextTask: `M16-GAP-00198`