v0.3.0 — glass dashboard + structured status
SpoolTap 0.3.0 — the glass dashboard + a status pipeline that tells you what happened
The dashboard, redesigned
The shipped dashboard is now a dark "glass cockpit": frosted cards on a navy gradient, one cyan accent, and semantic color everywhere. Phone-first; widens to two columns on a PC.
- Hero status banner — every action outcome shows as a color-coded badge (green DONE · amber ARMED/CHECK · red FAILED · cyan WORKING, pulsing while something's in flight) with the full message and context chips: the tag in your hand, the armed slot, and how old the message is.
- Live AMS slot strip (Assign) — one chip per slot in the spool's actual filament color, the armed slot glows amber, a cyan dot marks slots with an NFC tag bound. Auto-derived from Bambuddy; adapts to any AMS count.
- Inventory, visual (Spools) — color swatches + remaining-filament bars (green/amber/red by fill) replace the markdown tables, with an up-front warning card listing spools that have no slicer profile linked.
- Mode pills, bind-mode glow, slot-tag list — all restyled to match.
Dependency change: the dashboard now uses button-card + card-mod (HACS → Frontend). Mushroom is no longer required.
Status messages, properly structured
- BREAKING:
sensor.spooltap_status's state is now the level — one ofIdle / Ready / Armed / Working / Success / Warning / Error / Info(a proper enum you can trigger automations on, e.g.to: "Error"). The human message moved to themessageattribute, joined byupdated_at(freshness) andbusy. Previously the state was the message string itself; if you templated on it, readstate_attr('sensor.spooltap_status','message'). - Friendly errors — a failed Bambuddy call now reports Bambuddy's own detail (or a clean "unreachable / timed out" line) instead of a raw exception dump.
- Working states + double-press guard — Assign/Bind/Save/Archive now show "…ing" feedback the moment you press, and a second press while a write is in flight is ignored.
- Consistent tag naming — success messages use the HA tag's friendly name (the label you read off the spool), matching the bind preview.
Upgrading
- Install button-card (HACS → Frontend) if you don't have it.
- HACS → update SpoolTap → restart HA.
- Run
spooltap.install_dashboardwithforce: trueonce — the auto-install never overwrites an existing dashboard.
See DEPLOY.md → "Upgrading to 0.3.0" for the full notes.