Skip to main content

Changelog

v0.4.0-alpha

Breaking Changes

  • Script Engine Layered Architecture Refactoring: Introduced Script Program Manager (SPM) as an intermediate layer between the core engine and upper frameworks, separating program lifecycle from JS execution.
  • Activity Root Mode: Adopted Root Activity pattern to replace the original watchface-activity singleton, using lifecycle struct instead of pointer for management.
  • Service Module Refactoring: Removed eos_misc module, replaced with eos_service_* series services.
  • Project Layered Architecture Restructuring: Refactored project layout into kernel, services, framework, ui, apps layered structure.

Changed

  • Script Engine:

    • Refactored lifecycle management, supporting context save/restore (SUSPEND → IDLE, added SUSPENDED state)
    • Added per-program realm isolation helper
    • Improved error backtrace extraction from exception objects
    • Unified SNI handle types, using single managed resource scope instead of LC_EXTERNAL/LC_REALM separation
  • Overlay Architecture:

    • Implemented unified overlay manager, separating Z-order management and Crown scrollable targets via get_foreground_obj() interface
    • Fixed Z-order bug: Control Center blocking message list after closing
    • Removed hard-coded crown dependency, using interface queries
  • Radio Component: Replaced eos_radio_list with eos_radio_page, improving radio selection functionality

  • Code Standards:

    • Renamed global variables with underscore prefix for better encapsulation
    • Updated script engine core comments for improved clarity and consistency

Added

  • Added eos_chrome_manager: Centralized overlay manager
  • Added generic script error handling and eos_fault_panel fault panel
  • Added eos_accordion accordion component for error backtrace display
  • Added script execution timeout and state-aware function calls
  • Added error location and backtrace handling
  • Added container delete callback (eos_container_delete_cb_t) for automatic memory management
  • Added eos_input_page input page functionality
  • Added attach() and center_style() functions for clock_hand component
  • Added listener-based logging system (eos_log) with standard output support
  • Added enhanced boot message logging showing build time and mode details
  • Added internationalization default language configuration
  • Added FIFO ring buffer implementation
  • Added critical section management (eos_critical)
  • Added sensor service (eos_service_sensor) with state management
  • Added time service and device (eos_service_time)
  • Added double-linked list implementation (eos_dlist)
  • Added event registration functionality and user event scope definition
  • Added test application support (eos_test) with audio playback capability

Fixed

  • Cleaned up Activity snapshot and teardown leaks
  • Fixed animation not stopping when uninstalling apps
  • Fixed LVGL event callback signature issue (WASM function signature mismatch)
  • Resolved typedef warning in eos_virtual_display
  • Added EOS_WEAK attribute to critical section functions for correct linking
  • Fixed redundant slide_change toggle in slide_widget_move conflicting with chrome manager

v0.3.0-alpha.1

Added

  • Added Chinese documentation (README.zh-CN) to improve consistency between Chinese and English documentation.
  • Added application list bubble grid capability (bubble_grid) and related component APIs.
  • Added application management and script hot-reload related functions to enhance runtime management capabilities.
  • Added some resource materials (such as application icons and design resources) for interface and sample improvement.
  • Added online simulator entry in documentation to improve experience and verification efficiency.

Changed

  • Unified project naming from ElenaOS to ElenixOS, and completed large-scale naming and path migration (including core modules, interfaces, header files and scripts).
  • Refactored build system: Optimized CMake source/header file collection logic, standardized CMakeLists.txt naming and platform root directory handling.
  • Adjusted core initialization process: Renamed eos_run to eos_init, and updated related prototypes and calling semantics.
  • Streamlined core logic: Removed logo animation processing path, simplified processing flow and state switching logic in lifecycle.
  • Continued organizing README and documentation structure, unified format and added demonstration instructions.

Fixed

  • Fixed target view briefly flashing issue in Activity lifecycle (transient display anomaly when entering/switching).
  • Fixed quick start and documentation link errors in README.
  • Fixed mkdir compatibility issue in Windows environment.
  • Fixed uthash header file include path error in CMake.
  • Fixed .gitignore missing build directory configuration to prevent build artifacts from entering version control.

v0.2.0-alpha.1

Changed

  • Refactored script interface architecture, lv_bindings was refactored into SNI layer.
  • Refactored page management architecture, nav, screen_mgr, scene were integrated into Activity concept.
  • Optimized CardPager and SlideWidget.
  • Refactored language interface, current_lang was privatized to avoid out-of-bounds access.
  • Optimized list transition animations.
  • Optimized panel retraction logic for control center and message list during activity switching.
  • Optimized flashlight display logic.
  • Optimized application list animation parameters.
  • Optimized null pointer checking and display logic in clock update callback.
  • Optimized activity switching and animation handling.
  • Optimized callback removal logic for scrollable objects.
  • Optimized timer automatic deletion feature.
  • Optimized debug bar position management, added global position synchronization and restoration functions.
  • Optimized scroll object lookup logic.
  • Optimized scroll bar show/hide logic.
  • Optimized script path parsing and image source setting.
  • Optimized generic handle parsing capability.
  • Optimized property setting.
  • Optimized animation variable management.
  • Optimized memory cleanup and color type bridge support.
  • Optimized file directory structure.
  • Optimized animation property configuration, custom callbacks and JS animation path integration.
  • Optimized dynamic update of source files and header files.
  • Optimized script engine initialization and exit callbacks.
  • Optimized parameter checking and type conversion for LVGL object creation functions.

Added

  • Added Activity lifecycle management functionality, supporting Activity creation, destruction, pause, resume and other operations.
  • Added page management module, pages are managed using stack uniformly, and Activity concept is introduced.
  • Added SNI module, providing clearer script interface definition and supporting object-oriented LVGL operations.
  • Added SNI encapsulation for LVGL components, including:
    • image component
    • dropdown component
    • checkbox component
    • canvas component
    • button matrix component
    • calendar component
  • Added Activity page switching animation support, including start and end callbacks.
  • Added application header logic and title change animation support.
  • Added OPEN sliding panel state and improved state flow.
  • Added built-in backup watchface support.
  • Added module import functionality, supporting JS module import.
  • Added interface to get previous Activity.
  • Added system initialization error handling and watchface activity acquisition functionality.
  • Added theme primary color definition.
  • Added LOGO display in device information view.
  • Added Toast prompt function with character icon color.
  • Added encoder target setting as Activity View, added sliding component open and close events.
  • Added sliding component state management and animation transition functionality.
  • Added chart component and related APIs.
  • Added image button support.
  • Added script application Debug page.
  • Added float type bridge support.
  • Added global constant export functionality.
  • Added new color types and related methods.
  • Added snake_case to camelCase conversion function.
  • Added alias fallback functionality to support type mapping.
  • Added console logging functionality, added support for different log levels.
  • Added ElenixOS API initialization and mounting functionality.

Fixed

  • Fixed watchface list unable to touch watchface image to slide issue.
  • Fixed memory leak issues.
  • Fixed script engine issues to prevent entering error state during normal operation.
  • Fixed scrollable object callback management, optimized scroll bar show/hide logic, resolved scroll bar flickering issue.
  • Fixed null pointer checking in clock update callback.
  • Prevented showing application title bar in watchface activity.
  • Fixed scroll object loss issue when control center bounces back automatically.
  • Fixed unable to get scrollable object when returning to Activity issue.
  • Fixed root screen null handling logic during activity creation.
  • Fixed constructor parameter type checking to ensure only objects or null are accepted.
  • Fixed scroll object validity checking.
  • Fixed method name possibly empty issue.

v0.1.0-alpha.1

Added

  • Provides basic functional framework for smartwatch systems.
  • Provides JavaScript script running and lifecycle management capabilities.
  • Provides JavaScript API support, including:
    • Partial LVGL Widget functionality;
    • LVGL event system registration and deletion;
    • LVGL animation creation and running;
    • LVGL timer related functionality.
  • Provides virtual display for PC-side simulation running and debugging.
  • Provides preliminary hardware abstraction and portable interface design for supporting multi-platform adaptation.
  • Establishes basic structure for engineering and development documentation.
  • Provides developer tool scripts for quickly generating project structure.
  • Provides modular system architecture, supporting core functions to be combined and extended by modules.
  • Provides isolation mechanism between scripts and system core, improving system stability and security.
  • Provides basic debugging and development support capabilities, improving desktop-side development and debugging efficiency.