github maziggy/bambuddy v0.2.1b3

4 hours ago

v0.2.1b3

Highlights

  • Filament Override for Model-Based Queue — When scheduling prints to "Any [Model]", you can now swap the 3MF's original filament choices for any compatible filament loaded across printers of that model
  • Fill Level Display Overhaul — Fixed three related bugs: missing external spool fill levels, misleading gray "full" bars for unknown fill, and inverted priority preferring low-resolution AMS data over accurate tracking data
  • External Spool Stability — Fixed assignments being silently deleted on restart and active spool indicator being inverted on H2C

New Features

  • Filament Override for Model-Based Queue (#486) — When scheduling a print to "Any [Model]", a new section in the print modal shows the filaments required by the sliced file and lets you swap each slot to any compatible filament loaded across printers of the selected model. The scheduler matches against overridden type and color, preferring exact color matches. On dual-nozzle printers (H2D), the override dropdown only shows filaments on the correct extruder. New GET /printers/available-filaments endpoint aggregates loaded filaments across all active printers of a given model.

Bug Fixes

  • Bed Cooled Notification Never Triggers (#497) — The bed cooldown monitor was placed after an early return that exits when no archive exists. Prints from BambuStudio or the touchscreen have no archive, so the notification never fired. Moved to before the early return. Also hardened the temperature dict check from truthiness to isinstance().
  • Filament Fill Level Wrong in Hover Card / Missing for External Spools (#496) — Three fixes: (1) external spool slots were missing the AMS remain% fallback entirely, (2) unknown fill levels showed a misleading full-width gray bar instead of an empty track, (3) fill priority was inverted — now prefers Spoolman → Inventory → AMS remain instead of AMS-first. Also fixed fillSource always reporting 'ams' regardless of actual source.
  • External Spool Assignments Lost on Restart (#493) — Ext-L/Ext-R spool assignments were silently deleted on every AMS data change because the stale-assignment cleanup only searched AMS unit data, not vt_tray. Also preserves assignments when vt_tray data hasn't arrived yet.
  • External Spool Mapping Inverted on H2C (#492) — On dual-nozzle H2C, tray_now=254 matched Ext-L for both external spools. Now uses active_extruder to determine which external spool is active.
  • Wrong Documentation Link for "Lubricate Carbon Rods" on P2S (#490) — Linked to belt tension wiki instead of XYZ axis lubrication page.
  • Finish Photo Not Captured When Archive Has No Source 3MF (#484) — Archives without a downloaded 3MF file skipped photo capture. Now falls back to archive/{id}/ directory.
  • File Manager Rename Doesn't Update Displayed Name (#460) — Renaming updated the filename but not print_name (used as the primary display name). The rename endpoint now updates both.
  • Developer Mode Detection Always Reports Null — The MQTT fun field is an integer but the parser used int(value, 16) which requires a string, raising TypeError on every message. Now handles both formats.
  • "Unknown stage (74)" on H2D During Print Preparation — Added missing stage names: 74 → "Preparing", 77 → "Preparing AMS".
  • IP Addresses Not Redacted From Support Bundle Logs — Added IPv4 regex replacement (preserving firmware version strings) and known printer IPs to the sensitive string list.

Improved

  • Clear Plate Dot Indicator on Sidebar — Yellow dot appears on the Printers sidebar icon when a printer needs its build plate cleared for the next queued print.
  • Inventory Sidebar Always Visible — No longer hidden when Spoolman is enabled; embeds the Spoolman web UI via iframe instead.
  • Filament Override Test Coverage — 11 backend unit tests and 12 frontend tests covering color matching, type filtering, nozzle filtering, and interaction.

Don't miss a new bambuddy release

NewReleases is sending notifications on new releases.