- Introduced a new `quarantine_socket` function to centralize error handling for socket operations, improving code clarity and maintainability.
- Updated error handling in `UdpSocket` methods to utilize `quarantine_socket`, ensuring consistent logging and socket management across setup, send, and receive operations.
- Added a `cancel` method to `UdpSocket` to safely cancel socket operations when the socket is not usable, enhancing robustness in error scenarios.
- Introduced a `m_socket_usable` flag to track socket state, preventing operations on unusable sockets and improving overall stability.
- Revised the tooltip description to explain the use of variable layer heights for color blending, enhancing clarity on how blended color zones are managed.
- Emphasized the impact of this setting on color blending smoothness and provided examples for better user understanding.
- Simplified the tool change process for local-Z phases by directly switching extruders, avoiding unnecessary template replays that could degrade wipe tower quality.
- Introduced a new function to determine the starting component for local-Z alternating layers, improving the logic for height adjustments based on pass sequences.
- Updated related GCode processing to ensure consistent behavior during local-Z operations, enhancing overall print quality and efficiency.
Hopefully this fixes the issues with local z dithering and the prime tower becoming mush
- Introduced a mapping mechanism for appended filament IDs to ensure correct assignment during color updates.
- Enhanced the update_filament_ids function to streamline filament ID resolution and improve handling of new filament additions.
- Updated the deal_approximate_match_btn and deal_default_strategy methods to accommodate changes in filament management logic, ensuring better integration with the UI.
- Improved overall clarity and maintainability of the filament handling code.
- Introduced functions to calculate the physical filament count and maximum supported filament ID from project configuration, enhancing mixed filament management.
- Updated GUI components to reflect total filament counts, including mixed filaments, ensuring accurate display and interaction.
- Refactored filament initialization logic to streamline color assignment and naming for both physical and mixed filaments.
- Enhanced the sidebar update mechanism to refresh model canvas colors when mixed filaments are modified, improving visual feedback in the UI.
- Updated `custom_tool_changes` function to use filament IDs instead of extruder IDs, ensuring better compatibility with mixed filament configurations.
- Enhanced `MixedFilament` structure to include a `stable_id` for persistent identity across mixed filament entries, improving remapping during updates.
- Introduced new methods for stable ID allocation and normalization in `MixedFilamentManager`.
- Updated serialization and loading functions to maintain stable IDs, ensuring consistent behavior when mixed filament entries are modified.
- Added tests to verify the correct handling of tool changes and stable ID remapping in mixed filament scenarios.
- Introduced a new `RELEASE_NOTES_v0.92.md` file detailing highlights such as gradual gradient behavior, mixed filament indexing fixes, and editable automatic mixed filaments.
- Refactored `compute_gradient_ratios` to remove the cycle layers parameter, implementing a new gradual integer cadence for gradient transitions.
- Updated `MixedFilament` structure to include an `origin_auto` flag for better management of auto-generated entries.
- Adjusted related parsing, serialization, and UI handling to reflect these changes, ensuring improved user experience and color fidelity in mixed filament rendering.