Tags: bambuman/BambuMan.App
Tags
Fix ObservableCollection threading crashes and mitigate Android lifec… …ycle bugs Dispatch ObservableCollection mutations to the main thread in LogService and InventoryService to prevent reentrancy, ArrayIndexOutOfBounds, and NullReferenceException crashes when SpoolmanManager fires events from background threads. Cap logs at 200 to prevent unbounded BindableLayout growth. Clear stale fragment state in OnCreate and catch IllegalStateException in OnRestart to mitigate known MAUI Shell and DialogFragment lifecycle bugs. Add delay before showing popups to ensure the activity is fully resumed.
Remove Polly circuit breaker, add network-aware health checks and res… …ilient init - Remove circuit breaker policy that blocked API calls for 30s after failures, causing unrecoverable state for single-user self-hosted Spoolman instances - Add HasNetworkAccess delegate to skip API calls when device has no network, wired via MAUI Connectivity (mobile) and NetworkInterface (desktop) - Make Init() resilient: extract CheckDefaultValues, LoadLocalFilaments, and LoadLocations into isolated TryXxx methods with individual error handling so partial failures don't block initialization - Add adaptive health check timer: 1s when unhealthy for fast recovery, 5s when healthy; use Timer.Change() instead of dispose/recreate - PerformHealthCheck now detects network loss, updates UI status, and completes incomplete initialization on recovery - Extract OnAppearing into isolated methods (SetupEventSubscriptions, InitializeSpoolman, SetupNfc) so failures don't cascade - Fix SpoolmanOk indicator staying green on error states by using == Ready instead of >= Ready, and setting it before early returns in Validate - Replace cryptic exception messages with user-friendly text - Add async void try/catch rule to CLAUDE.md
Add override location on read toggle for inventory mode Runtime-only toggle (defaults off, not persisted) on Main and Settings pages. When enabled, scanned spools get their location updated to the default location from Settings. State synced via SpoolmanManager singleton.
PreviousNext