# M16-GAP-00239 Status status: done task: armature.extrude operator LOCAL_EXACT slice updated: 2026-08-22 America/New_York scope: - The minimal fixture contains one source bone with its tail selected and one independent unselected bone. - Desktop runs `ARMATURE_OT_extrude` in edit mode with `poll=true` and `FINISHED`, creating `WebGapArmatureExtrudeSource.001` connected to the source and extending it to `(0, 2, 0)` while preserving the independent bone through save/reopen. - Main exposes the extruded bone name, parent ID, selection state, connected flag, and parent-relative head/tail coordinates; the comparator normalizes desktop armature-space coordinates against the source tail without expanding other data-blocks, editors, or browsers. evidence: - The generator, desktop checker, npm comparator, direct comparator, malformed-input negative, save/reopen check, and task-context checks passed. - WASM/Main observes the connected extruded bone with desktop-matching normalized geometry and selection, rejects malformed Blend input without Main mutation, and remains stable across save/reopen. - Repeated checker runs recognize the already-extruded state and remain idempotent; Chromium-only policy was preserved and no Firefox/WebKit run was made. nextTask: `M16-GAP-00240`