# M16-GAP-00196 Status status: done task: anim.keyingset_button_add 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 no scene Keying Set. A real `PROPERTIES` RNA button invokes `ANIM_OT_keyingset_button_add()` (`poll=true`, `FINISHED`), creating `ButtonKeyingSet` and adding the active `button_target` path. evidence: - Desktop evidence records Keying Set count `0→1`, path count `0→1`, exact 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 Chromium-scope desktop UI checker, npm comparator, direct idempotent comparator, and artifact hashing passed. No production reader or protocol change was made. nextTask: `M16-GAP-00197`