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_miscmodule, replaced witheos_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
- Implemented unified overlay manager, separating Z-order management and Crown scrollable targets via
-
Radio Component: Replaced
eos_radio_listwitheos_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_panelfault panel - Added
eos_accordionaccordion 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_pageinput page functionality - Added
attach()andcenter_style()functions forclock_handcomponent - 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_WEAKattribute to critical section functions for correct linking - Fixed redundant slide_change toggle in
slide_widget_moveconflicting 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_runtoeos_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
mkdircompatibility issue in Windows environment. - Fixed
uthashheader 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_bindingswas refactored into SNI layer. - Refactored page management architecture,
nav,screen_mgr,scenewere integrated into Activity concept. - Optimized CardPager and SlideWidget.
- Refactored language interface,
current_langwas 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.