c8d25c2383
Bulk-approve filtered status=='pending', so a device already approved onto another canvas (status is global, canvas membership is per-design) — or whose node was later deleted — was silently skipped. Selecting 64 devices on an empty canvas produced only the ~28 still pending. Approve now places a node on the target design for any selected, non-hidden device that isn't already on that design (deduped by ip/ieee_address, including within the batch). Returned device_ids/node_ids stay index-aligned so the client places them all. ha-relevant: yes