-
Filament slot metadata now persists across restarts and reconnects on AD5X IFS, Snapmaker U1, ACE, and CFS — brand, spool name, Spoolman link, and weights survive Klipper reloads and printer reboots.
-
OrcaSlicer 2.3.2+ automatic filament sync: HelixScreen writes the AFC-originated
lane_dataMoonraker DB convention, so Orca's filament panel picks up your slot metadata with zero configuration. -
"Clear Spool" entry in the AMS slot context menu — clears user overrides and falls the slot back to firmware-reported state.
Spool InfoandClear Spoolare now separate menu actions. -
Empty-but-overridden slots now ghost-render (20% opacity) across all backends, matching the previous AFC-only behavior.
-
Automatic override clearing on detected physical spool swap: color change for IFS, RFID UID change for Snapmaker, material+color fingerprint change for CFS, status transition (empty→loaded) for ACE.
-
Per-backend material whitelist and alias normalization for AMS (e.g.,
PLA-BASIC→PLA). -
Public specification at
docs/specs/filament_slots.mdfor the sharedlane_dataconvention. -
Crash diagnostics: breadcrumbs for wizard step transitions, language changes, and the previous queue-callback tag.
-
ARM32 frame-pointer unwinding fallback so Pi32 and SonicPad crashes produce usable backtraces when
backtrace()fails. -
Translation strings for camera, QR code, and print stats labels.
-
Snapmaker U1:
set_slot_infohonors thepersistparameter — user edits were previously discarded on the next Klipper status poll. -
Snapmaker U1: RFID
SUB_TYPEis now mapped to the spool name and shown in the edit modal. -
Wizard: freeze
UpdateQueuearound step transitions to prevent async-callback races on quick advance (#827). -
Crash handler: reorder so
backtrace()runs last, with FP-walk fallback (#827). -
Crash reporter: filter post-crash lines out of the log tail (#827).
-
Crash:
std::terminateexit encodes128 + SIGABRTso the watchdog surfaces the recovery dialog. -
Brother QL label print: route network send through HttpExecutor — Test Print no longer crashes from unbounded thread spawns.
-
Spoolman:
Connectprobe runs on HttpExecutor and the button is disabled in-flight. -
Home/widget/tool/temp rebuilds use
safe_clean_childrento escape the UpdateQueue batch (#834, #776). -
AMS pre-print filament runout warning suppressed for auto-unload backends (IFS).
-
AMS edit modal: skip Spoolman save when Spoolman is unavailable so local overrides still persist.
-
AMS panel:
remaining_weight_g=-1displays as "unknown" rather than empty; bypass label escapes the canvas; MICRO/TINY layouts no longer clip spool cards or temp graph. -
Moonraker API:
database.get_item/database.get_namespacenow unwrap theresponse["result"]envelope. -
AD5X IFS: defer initial
GET_ZCOLORuntil Klippy reports ready. -
AD5X IFS: latch the
_IFS_VARSmacro-missing check sosave_variablesnotifications can't re-enable the broken path. -
Color picker: selected-preset outline, segmented tab fill, MICRO/TINY polish.
-
Dropdown: honor theme
border_radiusas local style; narrow backup dropdown at MICRO/TINY. -
Filament panel: temperature graph fills and spool card sizes to content so the whole card stays on-screen at MICRO/TINY.
-
Network widget: re-detect Wi-Fi when backend reports READY so "Disconnected" unsticks after async init (#819).
-
IFS: pre-update baseline color in
set_slot_infoto avoid self-wiping the override it just set. -
Moonraker: tighten
delete_itemmissing-key detection (prefer HTTP 404). -
ACE: user override fields merge with firmware-reported data field-by-field (empty override fields fall through to firmware). Previously the override replaced the entire slot record.
-
Pre-existing
helix-screen:ace_slot_overrides/helix-screen:cfs_slot_overridesDB entries auto-migrate tolane_dataon first launch; legacy JSON caches are removed after migration.