bambuddy/backend/app
maziggy 41ad1d65c7 feat(skip-objects): select items directly on the build plate
Pairs the top-down plate preview with the slicer's per-object pick mask
(Metadata/pick_N.png), whose pixel colours encode the same identify_id the
firmware's skip command takes, so a click resolves to a real object rather
than an inferred bounding box. Several objects can be selected before one
confirmation; selected and already-skipped items are highlighted on the
plate; the checklist stays available when no mask exists.

view=pick serves only the active plate's mask and 404s otherwise, unlike
every other view. A render returned in a mask's place would be decoded as
object IDs — dark pixels yield small integers that collide with real ones —
and a click would then skip an arbitrary object, mid-print, irreversibly.
The 404 is what tells the UI to fall back to the checklist.

Click mapping goes through the contained rect, since the canvas paints at
mask resolution under object-contain; clicks on a letterbox bar are rejected
rather than clamped onto whichever object touches the border. Confirming
names the object when one is selected and counts them when several are,
which is what plates of identically-named clones need.

No printer-control command path was added or changed; the layer, permission
and existing skip-command guards are untouched.
2026-07-22 12:32:14 +02:00
..
api feat(skip-objects): select items directly on the build plate 2026-07-22 12:32:14 +02:00
core fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
data [Feature]: HMS Actions (#1743) 2026-06-26 14:40:25 +02:00
i18n - Add interactive API Browser to Settings > API Keys 2026-01-02 15:00:21 +01:00
models fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
schemas fix(smart-plugs): don't blank printer state when an accessory plug switches off (#2629) 2026-07-22 09:57:27 +02:00
services fix(slicer): classify filament profiles by their real printer scope, not just their name (#2628 follow-up) 2026-07-22 10:44:05 +02:00
utils follow-up(queue): cache per-plate 3MF metadata so queue polling stops re-parsing every row (#2573) 2026-07-17 08:26:23 +02:00
__init__.py Added screenshots 2025-11-28 10:23:59 +01:00
cli.py fix(auth): let API keys manage projects via new can_manage_projects scope (#1893) 2026-07-05 09:58:16 +02:00
main.py feat(ams): confirm spool assignments landed instead of fire-and-forget (#2582) 2026-07-21 08:46:02 +02:00