Changelog
v0.5.1-alpha
Fixed
- SNI Lifecycle Export Boundary: Exempted
SPECIAL_METHOD_WRAPPERSfrom lifecycle export boundary checks to prevent special method wrappers from being incorrectly rejected. - SNI GC Safety: Clear native pointers before JS reference release during GC sweep phase to prevent use-after-free.
- SNI Null Pointer Protection: Ensure event descriptors are zeroed out after deallocation to prevent potential wild pointer dereference.
- Script Engine Diagnostics: Always enable error messages and backtrace, added diagnostic output for improved troubleshooting.
v0.5.0-alpha
Added
- Audio Subsystem: Added complete audio subsystem with speaker/microphone support, audio effects, and decoder pipeline for playback and recording.
- LVGL Image Cache Module: Introduced generic LVGL image cache module with PSRAM support for optimized image loading performance.
- Bubble Grid Enhancement: Added
eos_bubble_set_icon_colorAPI and support for color-only bubbles without image source. - Kconfig Configuration System: Introduced Kconfig-based system configuration framework, replacing choice booleans with companion integer configs for more flexible configuration management.
- TTF Font Mode: Switched to TTF font mode with subsetted Chinese font support.
- Sensor Service Enhancement: Added operating modes, per-mode sampling policy, and typed subscriber callback system.
- Lock Screen System: Added lock screen functionality, settings app, SHA256 encryption library, and scroll-focus fixes.
- Permission System: Added permission system and 4-layer UI overlay architecture for enhanced app isolation and security.
- Script Engine Recovery: Added support for engine restart after fatal JerryScript errors, improving fault tolerance.
- Watchface List Auto-Positioning: Auto-scroll to the current watchface in list view.
- SDK Versioning: Introduced
minApiLevel/targetApiLevelSDK versioning system for app compatibility management. - Code Quality Framework: Added unified code quality check framework with formatting rules and CI validation workflow.
- Build System Enhancement: Enabled
JERRY_ERROR_MESSAGESfor detailed JS error information. - Snapshot Performance Benchmark: Added snapshot performance and animation benchmark test suite.
Changed
- LVGL Version Upgrade: Replaced all LVGL v8 API usages with v9 equivalents, completing the full LVGL upgrade.
- Error Code Unification: Unified error codes across kernel, script engine, and file system port layers.
- Cache Module Rename: Renamed
eos_cachetoeos_service_cache, cleaned up configuration and naming conventions. - Audio System Refactoring: Removed VAR audio effects, fixed TTF font system, consolidated audio path prefixes, and replaced audio-specific test framework with generic test framework.
- Test Framework Unification: Replaced audio-specific test framework with generic test framework, unifying test infrastructure.
- Code Comment Translation: Translated Chinese comments to English for improved international maintainability.
- Code Formatting Standardization: Adopted unified code formatting rules, formatted all sources per
.clang-format, and migrated toeos_malloc/eos_freeunified memory interface. - CI Workflow Simplified: Simplified code quality workflow to a single Linux job.
- Memory Optimization: Replaced unnecessary heap-allocated paths with stack buffers to reduce memory fragmentation.
- App Icon Sizes Updated.
Fixed
- Fixed boot logo not displaying due to file system driver not being registered.
- App List Transition Optimization: Used RGB565 snapshot format with image-based snapshot scaling instead of widget transform scaling, reducing animation duration to 350ms for significantly improved transition performance.
- Fixed app header title animation not syncing with activity transition.
- Allocated large draw/canvas buffers via dedicated cache allocator.
- Swapped include order so platform override configurations take priority.
- MinGW platform compatibility fixes:
__GNUC__branch matching andEOS_WEAKweak symbol linking failures. - Fixed overlay z-order, touch visibility, and side-button close logic.
- Side button and digital crown no longer incorrectly dismiss permission dialogs.
- Lock screen dismissal now respects activity header visibility.
- Reordered SNI unregister sequence to prevent use-after-free during GC.
- Moved title change animation out of snapshot window to prevent animation conflicts.
- Permission callbacks now run in the correct program context via
spm_call. - Fixed V-001 security vulnerability (memcpy bounds check error).
- Enforced lifecycle-based SNI export boundary rules, fixed integer width mismatches, and added sub-resource cascade destroy support.
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.