Skip to content

BRANCH_dev

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Jun 20:45
· 12 commits to 298a7a5bb568c400d9e8302c7ab8824f676e5d70 since this release
0214f08
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>