BRANCH_dev
Pre-release
Pre-release
·
12 commits
to 298a7a5bb568c400d9e8302c7ab8824f676e5d70
since this release
feat: Athena Public Beta (#49) * feat(status): enhance polling mechanism with backoff timer and conditional refresh * feat(resins): add user-visible resin filtering and recommended resin logic - use doubles for higher precision in curing times - properly resolve profile ID from meta data * feat(system_status): enhance error handling for providers and improve widget resilience * fix(connection_error_watcher): suppress error dialog during startup if no prior connection - Fixes issue with the connection error dialog showing during startup. * feat(about_screen): replace Flutter logo with Open Resin Alliance logo in about and license screens * feat(status_screen): add detection for calibration prints and update return label accordingly * refactor(about_dialog): increase icon size and adjust legal text font size for better readability * feat(materials_screen): make initialIndex settable - Allows for returning from the Post-Calibration Overlay back to the Calibration Screen. * feat(heater_screen): improve backend temperature handling and user interaction management - Slider is way easier to drag now - User-set temperatures won't be overriden by backend-set temperature * feat(main): enable eager loading of calibration models for faster thumbnail display * feat(calibration): implement unified pre-calibration overlay with checklist and model selection - Update profile ID logic * feat(edit_resin_screen): change time parameters to double for improved precision - Implement nicer update dialog. * feat(post_calibration_overlay): enhance user experience with step navigation and fine-tuning options - Allow not showing QR code again next time. (you're welcome matt3o!) - Unified dialog - Updated design * feat(install_script): update Orion URL and add vendor logo configurations for heaters & materials branch * fix(wifi_provider): don't test link speed on wifi * fix(calibration_screen): refresh resin data on init and show loading state for model selection - backend might not be ready for initial data caching, causing empty lists. * feat(calibration_screen, edit_resin_screen): add descriptions to exposure settings for improved user guidance * fix(athena): use correct preheat and mix endpoint to prevent errors. * feat(nano_status, status_models): add prevLayerTime and prevLayerSeconds fields for improved status tracking * feat(nanodlp_mappers): add previous-layer timing fields for enhanced status reporting * feat(status_provider): enhance layer timing tracking with CPU temperature and previous layer duration * feat(status_screen): add analytics view and force sensor data visualization * feat(glass_card): enhance accent color handling for non-glass themes with improved border integration * feat(backed): StatusProvider: remove redundant logging for PrevLayerTime parsing * feat(athena): add Athena IoT client, feature flags, and printer data models * feat(update): implement AthenaUpdateProvider for checking printer updates * feat(update): add updateBackend method to BackendClient and its implementations * feat(config): enhance configuration handling with user feature flags and nested key support * feat(update): improve progress indicator handling for negative progress values * feat(settings): add Machine Settings screen and integrate into General Config Screen * feat(update): integrate AthenaFeatureManager for periodic polling in main app * feat(status): add polling control methods in StatusProvider * feat(update): implement AthenaOS updates. - Redesigns UpdateScreen. * fix(startup): remove unnecessary null checks for logo asset paths * feat(fake-client): add preheatAndMixStandalone and updateBackend methods * refactor(post_calibration_overlay): simplify profile JSON handling by removing null checks * fix(orion_config): remove redundant merged config reads for feature flags * refactor(update_screen): improve UI styling and text sizes for better readability * refactor(update_screen): enhance text sizes and colors for improved readability * chore(pubspec): bump version to 0.4.0 - Athena temporary release. * fix(install_script): update Orion URL and branch references for Athena public beta * fix(athena_feature_manager): remove incorrect mapping for enablePowerControl feature flag * fix(install_orion_athena2): correct syntax error in JSON configuration * feat(onboarding): fetch and apply printer data during onboarding - include hostname and serial * fix(update_screen): update icon to use filled info icon for better clarity * feat(status_screen): add 'Force Stop' button to trigger emergency stop * fix(edit_resin_screen): adjust step and decimals for time input fields - fix burn-in layer readout * feat(orion_config): apply vendor theme preferences during config merge and initial write * refactor(install_script): remove hardware serial detection and hostname configuration * feat(materials_screen): dynamically show heaters tab based on available hardware * feat(theme): update background color based on glass theme in overlays * feat,refactor: Robuster Configuration Localization (#44) * fix(orion_config): improve config path detection for orion.cfg and vendor.cfg * fix(orion_config): cache detected config path to reduce filesystem probes and logging * feat(install_locator): add engine directory detection logic and integrate with OrionConfig and OrionUpdateProvider * fix(onboarding_utils): enhance timezone mapping and logging in setSystemTimezone method * fix(orion_config): add missing curly closing brace * fix(orion_update_provider): enhance engine directory detection logic for config files * fix(orion_update_provider): add alternative service restart for nanodlp-dsi * chore(calibration_screen): remove duplicate import of provider package * chore(widget_test): remove unused import of material package * feat(logging): implement dynamic log file resolution for better accessibility * fix(nano_status): adjust progress calculation to exclude in-progress layer * feat(app_bar): implement OrionAppBar for consistent app header across screens * fix(status_model): enhance progress calculation to handle finished and idle states * feat(details_screen): enhance AppBar with OrionAppBar and clean material name display * feat(status_screen): integrate OrionAppBar and enhance status display with dynamic wait time and lift height * fix(thumbnail_cache): improve disk cache directory handling for robustness across platforms * feat(move_z_screen): update step values and add temporary Set Z=0 button * feat(resins_screen): enhance edit button with larger hit area and tooltip for locked profiles * feat(thumbnail_cache): add method to expose disk cache directory path and improve cache migration logic * feat(thumbnail_cache): add methods for cache directory resolution and legacy migration * feat(assets): add initial (placeholder) assets for the new assisted leveling feature. - reorganize assets * feat(backend): implement kinematic status fetching and model integration * feat(materials_screen): update calibration tab icons to hourglass - better fits the time calibration * feat(startup_screen): update logo asset paths to reflect new directory structure * feat(tools): implement initial framework for the new Z leveling wizard - Features C3D Athena 2 as the possible option for now. * assets: replace C3D A2 build arm SVGs * feat(main): initialize VideoPlayerMediaKit for macOS and Linux support * feat(glass_floating_action_button): enable interactive surface for glassmorphic effect * fix(build): add libasound2-dev to apt packages for build process * fix(build): add mpv and libmpv-dev to apt packages for build process * fix(dependencies): update media_kit_video and video_player_media_kit versions * fix(build): add libblas-dev to apt packages for build process * fix(dependencies): remove media_kit and related video packages, add fvp * fix(status): prevent concurrent kinematic status fetches * feat(manual_leveling): add manual leveling screen implementation * fix(dependencies): comment out video_player dependency * feat(backend): add methods to set and reset Z offset * feat(leveling): implement optimistic UI for manual leveling and continuous kinematic polling * TEMP(tools): change leveling wizard to Coming Soon * refactor(manual_leveling): remove optimistic UI implementation and streamline status updates * feat(manual_leveling): implement optimistic UI for Z offset adjustments * feat(status_provider): enhance kinematic status handling with retry logic and clear homed status method * feat(gitattributes): add LFS tracking for font and video assets to optimize repository size * feat(fonts): add Noto CJK fallback fonts to pubspec.yaml and include license files * feat(glass_floating_action_button): add doForceBlur property to control interactive surface behavior * feat(onboarding): enhance bubble interactions with proximity effects and exit animation * refactor(available_languages): comment out Chinese language entries - We currently do not have viable translations and therefore cannot offer the Chinese language * feat(fonts): add NotoSansCJK fallback to text styles for better CJK support * feat(general_screen): add Danger Zone section for critical actions with reset and prepare options * feat(general_screen): increase font size for critical action warnings and buttons * feat(startup_gate): implement Athena IoT detection and readiness checks * feat(update_screen): differentiate beta version updates with distinct labeling and styling * feat(connection_error_watcher): suppress connection error dialog for initial flaky network attempts * feat(layer_preview_cache): enhance key generation to include optional filePath for layer caching * feat(status_screen): enhance status updates handling and layer preview caching with file path support * feat(status_screen): add actions for finished prints with 'Raise Plate' and 'Finalize Calibration' options * feat(version_comparison): add VersionComparison widget to display current and new version details * feat(update_provider): implement persisted state loading for Athena and Orion update providers * feat(update_notification): add UpdateNotificationWatcher to manage update alerts and dialogs * feat(update_manager): implement UpdateManager to handle update checks and notifications * feat(update): integrate UpdateManager and UpdateNotificationWatcher for enhanced update handling and notifications * feat(update): implement UpdateAvailableScreen for update notifications and actions during startup * feat(update): implement retry logic for update checks with exponential backoff * feat(update): preserve update state on network errors in Athena and Orion update providers * feat(update): always show update notification on startup if an update is available * refactor(update): remove unused imports from UpdateAvailableScreen * feat(config): optimize setFlag and setString methods to prevent unnecessary writes * feat(update): add config change listener to trigger update checks with debounce * feat(status_screen): update manual movement to use moveDelta for improved positioning - moving to the top at all circumstances can cause splattering * feat(onboarding_screen): skip Machine Name page if custom name is disabled and refactor page change handling * refactor(onboarding_screen): remove unused imports for cleaner code * feat(system_status_widget): implement debounced WiFi status handling for improved performance * feat(status_screen): optimize image handling by resizing on the fly and reduce preloading count * Revert "feat(status_screen): update manual movement to use moveDelta for improved positioning" This reverts commit 5e463f6749f40b97736c621dec60f4498a06f294. * fix(update): change default release channel from 'BRANCH_dev' to 'main' * feat(update): enhance update flow by adding ignore updates option and updating navigation paths - Add toggle to hide. - Fixed the back button requiring a second tap to return from Settings to Home when opening the Updates menu. * fix(update_available_screen): update text for update notification preference * feat(calibration_screen): reduce exposure increment step from 0.2 to 0.1 seconds for finer adjustments * fix(athena_update_provider): refine update availability logic for pre-release channels * fix(startup_gate): prevent startup-gate from showing after we've already booted * feat(status_screen): manage visibility state to block notifications while status screen is open * fix(update_available_screen): conditionally display 'Don't show update notifications' option based on update availability - Prevents overflowing the screen * fix(athena_update_provider): preserve update state on temporary failure to retrieve printer data * fix(athena_update_provider): update availability logic to check for newer version and preserve current state * fix(athena_update_provider): update logic to set latestVersion only if a new version is available * fix(home_screen): clear status screen flag on Home screen initialization to prevent suppressed update dialog * fix(calibration_context_provider): implement context loading and saving logic for calibration data * fix(status_screen): refactor calibration context handling and navigation logic * feat(calibration_screen): enhance value editing dialog with zoom functionality and adjust slider parameters * fix(startup_gate): add simulation flag handling to differentiate between real and simulated Athena devices * feat(calibration_screen): integrate ZoomValueEditorDialog for enhanced value editing - now a separate module - visual enhancements to improve intuitive feeling * feat(edit_resin_screen): replace custom slider dialog with ZoomValueEditorDialog for improved value editing * chore(system): implement SystemStatusWidget to all missing screens * fix(glass_theme_selector): update default padding to zero for improved layout * fix(about_screen): update logo path for consistency with asset structure * fix(general_screen): update dialog title and button styles for consistency * feat(numeric_keyboard): add Orion numeric input field with custom keyboard * feat(orion_keyboard_modal): add floating overlay support and adjust keyboard height calculation * feat(orion_keyboard_expander): enhance keyboard expander with optional notifiers and dynamic height calculation * feat(zoom_value_editor_dialog): enhance numeric editing with dynamic keyboard support and improved value display * chore: update widgets to use AtkinsonHyperlegible * chore(orion_kb): replace unicode icons with PhosphorIcons * feat(orion_numeric_field): simplify decimal handling by removing allowDecimal parameter * feat(orion_numeric_field): update button layout to conditionally display negative sign * fix(zoom_value_editor_dialog): remove allowDecimal parameter * fix(system_status_widget): adjust reserved width calculation for layout * fix(system_status_widget): adjust font size and reserved width calculation for layout * fix(zoom_value_editor_dialog): reset temporary edit value on numeric keyboard open * fix(zoom_value_editor_dialog): add maxIntegerDigits calculation based on range * fix(update_manager): acknowledge update prompt to prevent multiple dialogs in session * refactor(general_cfg_screen): adjust self-destruct option to appear with a 0.1% chance - caused too much user confusion * feat(update_manager): add clearPendingUpdates method to manage update flags * feat(update_screen): implement pulsing dialog and multi-confirmation for development firmware updates * refactor(thumbnail_cache): optimize cache retrieval logic for thumbnails * feat(general_cfg_screen): add button to clear thumbnail cache with confirmation dialog * feat(update_manager): update notification logic to exclude athenaos master branch updates * feat(nanodlp_http_client): filter out calibration plate from file entries * feat(fonts): add Atkinson Hyperlegible Next font and update theme configurations * fix(post_calibration_overlay): adjust child aspect ratio for layout consistency * feat(standby_overlay): implement fullscreen standby overlay for inactivity * feat(themes): implement platform-specific font family for better compatibility on Linux * feat(thumbnail_cache): add support for extracting thumbnails from NanoDLP zip files * fix(themes): correct font family to AtkinsonHyperlegible for consistency * feat(import): add import screen with progress overlay for file imports * feat(import): implement file import functionality for NanoDLP backend feat(local_files): add LocalFilesProvider for USB/media file access fix(files_provider): add cache invalidation for backend file listings * feat(local_files): add LocalFilesProvider to manage local file state * feat(grid_files): integrate LocalFilesProvider for USB file management and enhance loading logic * feat(nanodlp_http_client): implement deleteFile functionality with error handling * feat(details_screen): enhance delete confirmation dialog * refactor(grid_files_screen): clean up whitespace and improve code readability * feat(local_files_provider): add ignored directory handling to filter out system directories * feat(import_progress_overlay): update icon and add animated slicing block for enhanced visual feedback * feat(glass_floating_action_button): simplify background color assignment and adjust interactive surface behavior * feat(thumbnail_util): add temporary file staging for Linux to handle NanoDLP files * feat(orion_api_file): add plateId field and update fromJson method for compatibility * feat(grid_files_screen): implement bulk file selection and deletion functionality * feat(grid_files_screen): implement thumbnail future caching and cleanup for improved performance * fix(calibration_context): ensure context is loaded from config when null and improve logging for context loss * feat(onboarding_utils): implement setWifiRegion method to configure WiFi regulatory region based on country code * feat(country_regions): add country-to-region mapping and grouping functionality for improved country selection UI * refactor(update_notification_watcher): streamline listener management and context usage for improved clarity * feat(standby_settings): implement StandbySettingsProvider and integrate with UI for managing standby screen settings * fix(update_notification_watcher): handle provider availability in constructor and improve error handling * fix(main): update UpdateNotificationWatcher to use builder context for provider access * feat(ui_screen): add HoldToAccelerateButton for improved increment control * refactor(update_notification_watcher): simplify provider access and improve error handling during updates * feat(calibration_settings): add option to reuse calibration plate in developer settings * fix(status_screen): improve calibration print detection and handling of context * feat(resins_provider): add caching to calibration models * feat(ui_screen): enforce minimum standby duration and update UI warnings * fix(status_screen): refine calibration print detection logic * fix(standby_overlay): optimize inactivity timer reset logic and track previous settings * Revert "feat(resins_provider): add caching to calibration models" This reverts commit bd9fb1c1550821d3016722c125a602dccdcb8465. * refactor(keyboard): de-glassify Orion Keyboard for better readability * feat(import_screen): fetch resin profiles on screen open and add retry button * fix(calibration_screen): retain user's resin selection when updating calibration model * feat(main): restore full screen brightness on startup for Linux * feat(stl_thumbnail): add STL thumbnail extraction utility * feat(thumbnail_cache): enhance thumbnail caching with STL support and theme color options * feat(grid_files_screen): add STL thumbnails * fix(orion_update_provider): improve version comparison logic with error handling * feat(standby_settings_provider): add standby mode configuration and setter * feat(standby_overlay): enhance standby overlay with logo bouncing feature and dynamic logo asset resolution * feat(ui_screen): add standby mode selection dialog and UI integration * feat(status_provider): implement bypass cache logic for thumbnail retrieval based on plate metadata - hack for NanoDLP * performance(notification_provider): increase poll interval from 1 to 2 seconds. * performance(status_provider): increase polling interval from 1 to 2 seconds * refactor(grid_files_screen): reduce max concurrent thumbnails and enhance image caching * calibration(status_screen): throttle layer prefetching to reduce CPU load during printing * feat(standby_overlay): implement throttling for background status polling during standby * style(grid_files_screen): update footer styling to use lightweight gradient for glass theme * feat(status_provider): implement standby mode with slow polling interval * feat(status_screen): add timeout to file metadata retrieval to improve responsiveness * feat(standby_overlay): enhance celebration and cancellation animations with fireworks and cancel layers * feat(standby_overlay): implement dynamic animations for cancel actions with blood drips and brick wall effects * fix(standby_overlay): restore brightness immediately on standby deactivation * fix(force_sensor): make graph more interesting :) * feat(manual_leveling_screen): implement safe hold button for reset and Z offset actions * feat(orion_update_provider): disable Force Update override at the start of the update sequence * feat(glass_button): add cold accent with blue emphasis for GlassButton and Floating Action Button * feat(heater_screen): add pulsing animation and glow effect for heater buttons * feat(manual_leveling_screen): add confirmation dialogs for resetting and setting Z offset * feat(wifi): Support for Legacy Networking (#52) * feat(wifi_backends): implement legacy and modern WiFi backends with dynamic selection * feat(wifi_provider): enhance backend initialization with async checks for modern and legacy availability * feat: remove fvp plugin references from various files * feat(nanodlp_http_client): enhance thumbnail cache key generation for uniqueness * feat(wifi_provider): add platform-specific handling for WiFi status fetching * feat(thumbnail_cache): improve cache entry fallback logic for thumbnail retrieval * feat(status_screen): refactor 2D layer preview handling and improve image caching * feat(standby): enhance logging and add wake scheduling for print start * feat(build): update Flutter version and pin flutterpi_tool for compatibility * feat(details_screen, status_screen): add thumbnail caching logic and improve image rendering performance * feat(status_screen): optimize thumbnail rendering with memory images and improve cache handling * feat(standby_overlay): optimize logo bounce rendering and reduce unnecessary redraws * feat(grid_files_screen): improve USB and directory navigation handling with loading state management * feat(nano_profiles): refactor denormalizeForBackend to improve null handling and readability * feat(videos): update athena2_regular_step1.mp4 --------- Co-authored-by: Ada Phillips <ragwafire99@gmail.com>