Skip to content

BamDude v0.6.0.1

Choose a tag to compare

@kainpl kainpl released this 20 Sep 20:06
· 1170 commits to main since this release

A fix-only release, out the day after 0.6.0 because the defect it carries can stop a farm printing altogether.

A plate sliced with a custom filament profile was refused by every printer that had the right material loaded. «Allow base material match» exists so that a plate sliced for ABS prints on any ABS, whatever profile sits on either side — and on exactly those files it did the opposite. Whether the option applied was decided not by your checkbox but by whether BamDude could name the filament in its catalogue. A custom slicer preset resolves to no family there, so the option read as switched off — and off does not merely stop relaxing: it re-arms the strict profile-id comparison the option exists to suppress. That comparison can never succeed between a preset id from somebody's slicer and the id a spool reports, so the refusal was permanent, and it blamed the filament type, which was the one thing that did match. On a 24-printer farm this left twelve machines with ABS in their AMS refusing an ABS plate for weeks.

This is not an edge case on a working farm. BamDude ships the base catalogue — every Bambu and Orca id, every generic — so those always resolve offline. The second tier fills through one operator's cloud link, while plates arrive from several people's slicers, and everybody else's presets are ids your install has never seen and never will. The option now follows the checkbox alone: with it on, the base material is compared on both sides and no profile id may veto. Leave it off for the job that needs one exact profile — and note the other half of that rule: with it on, PLA Matte routes onto PLA Basic, both being PLA, as it already did for every profile the catalogue does know.

Two limits while the rest of the path catches up, neither of which touches the Auto queue this was reported from. Switching the option on for a job already queued to a printer is not saved by the edit form — re-queue such a job rather than editing it. And a row queued to one printer records the tray it was mapped to, so if that tray's own profile changes afterwards the job asks to be reviewed instead of re-routing itself.

A filament refusal now tells you what to do about it. «The filament variant does not match», repeated once per printer, was the entire message — twenty-four identical sentences naming neither the channel nor what either side was holding. Now: Channel 1 needs ABS (Pa240002); loaded: PETG (GFG99), ABS (GFB99), ABS (GFB00). It shows up in the auto-queue's waiting reason, in the log, and on a queue row that was deferred at dispatch.

The API schema no longer gives two operations the same name. Six endpoints answered two HTTP methods from one declaration, so both were published under one operationId — and which method it was named after changed between server starts. Anyone generating a client from /openapi.json got six colliding names, and two clients built from the same version could disagree. All twelve operations carry their own stable name now; paths, methods and answers are unchanged.

Image: ghcr.io/kainpl/bamdude:0.6.0.1 / kainpl/bamdude:0.6.0.1 (:latest tracks this).

Full changelog: https://github.com/kainpl/bamdude/blob/v0.6.0.1/CHANGELOG.md