Changelog
[0.6.0.0-beta] - 2026-03-06
📅 6th March, 2026
Added
- Integrated QuickJS for ECMAScript 2020 (ES11) support.
- Added new modules: novadesk, system, and fs.
Changed
- UI scripts now require the .ui.js suffix at the end of the script filename.
- Renamed the win object to the ui object (alias updated accordingly).
- Replaced the IPC method with a new implementation.
Removed
- Removed include() and require() methods.
- Removed all previous system and app objects.
[0.5.0.0-beta] - 2026-02-19
📅 19th February, 2026
Added
JSON API
- Added fixture for comment preservation.
- Booleans now persist as
true/falseinstead of1/0. - Suppresses merge-failure warnings for empty or whitespace-only files while keeping warnings for real merge failures.
App Object API
- Added
app.isPortable(). - Added
app.isFirstRun().
Engine & Module System
- Implemented module-aware path resolution by propagating module directory context into exported function calls.
Element & Widget System
- Added element grouping with dedicated
groupproperty. - Added
win.removeElementsByGroup(). - Added
win.setElementPropertyByGroup().
Cursor System
- Added
CursorManagerfor element mouse cursors. - Added
mouseEventCursor,mouseEventCursorName, andcursorsDiroptions. - Added support for built-in and custom
.curand.anicursors.
System APIs
- Added
system.nowPlayingAPI. - Added
setWallpaperAPI to change desktop wallpaper. - Added brightness control API for Windows.
- Added application volume control and mute APIs.
File & Icon APIs
- Added file icon extraction.
- Added ICO export functionality.
Global Variables
- Added
__widgetsDir - Added
__offsetX - Added
__offsetY - Added
__offsetXPercent - Added
__offsetYPercent - Added
__clientX - Added
__clientY - Added
__screenX - Added
__screenY
Widget Events
- Added widget mouse events:
mouseDownmouseUpmouseMovemouseOvermouseLeave
Installer
- Installer now includes Standard/Portable mode page, blocks Portable installs in system-protected paths, and skips uninstaller/registry/PATH changes when Portable is selected.
Fixed
Module System
- Fixed
js_requirecache writeback so modules that replacemodule.exportsare cached correctly.
Text Rendering
- Fixed
TextElementpartial update state loss. - Preserved
fontGradientand related text style fields inPreFillTextOptions. - Prevented gradient text from resetting to black on
setElementProperties.
Widget Lifecycle
- Fixed widget recreation crash.
- Removed old widget from global widget list before deletion.
- Prevented double-erase invalid iterator during
WM_DESTROY.
Input & Interaction
- Fixed mouse routing for non-interactive overlays.
- Text or overlays no longer steal hover, click, cursor, wheel, or tooltip events from underlying interactive elements.
Engine & JS API
- Fixed engine event callback context restoration to prevent win/Duktape stack corruption.
Installer Stub
- Fixed installer stub uninstall cleanup now removes all child folders/files in install directory (including unknown generated system API caches) before final root deletion, with existing cmd fallback retained.
[0.4.0.0-beta] - 2026-02-11
📅 11th February, 2026
Added
Window & Lifecycle
- Added new
.oncallbacks forwidgetWindowfocus and unfocus events. - Added new
widgetWindowmethods:setFocus()andunFocus(). - Added new
widgetWindowmethods:getHandle(),getInternalPointer(), andgetTitle(). - Added support for gradient backgrounds in
widgetWindow.
Elements
- Added new element type
roundLine. - Added new element type
shapeswith multiple shape variants. - Added gradient color support for elements.
- Added automatic width and height calculation for
barelement. - Added new element property
showto control element visibility.
System & Runtime
- Added new system monitor for
audioLevel. - Added system to detect and verify portable environment support.
- Added
requiremethod for loading modules.
Performance & Updates
- Added
win.startUpdate()andwin.endUpdate()methods for batch updating element properties.
Installation
- Added self-installation support for widgets using the new tool
installer_stub.
Fixed
- Fixed issue where images were not displayed when width or height was not explicitly set.
Removed
- Removed deprecated element properties like
solidColor2andgradientAngle, replaced by the new gradient support system.
[0.3.0.0-beta] - 2026-02-05
📅 5th February, 2026
Added
Extended fontWeight support with string and numeric values.
- String values: thin, extralight or ultralight, light, regular, medium, semibold or semi-bold, bold, extrabold or ultrabold, black
- Numeric values: 100, 200, 300, 400, 500, 600, 700, 800, 900
Added fontPath property for loading custom fonts in the text element
Added inline style tag support for the text element
Added fontColor support for gradient colors
Added fontShadow support for text
Added letterSpacing property for the text element
Added case property for the text element
Added underline property for the text element
Added strikethrough property for the text element
Supported Inline Tags
<b>: Bold text<i>: Italic text<u>: Underlined text<s>: Strikethrough text<color=value>: Changes text color or applies a gradient
Example:<color=#f00>Red Text</color>
Example:<color=linearGradient(0,#f00,#0f0)>Gradient Text</color><size=value>: Changes font size in pixels
Example:<size=24>Large Text</size><font=name>: Changes font face
Example:<font=Consolas>Monospaced Text</font><case=value>: Changes text case
Valid values:normal: Maintains original casingupper: Converts all text to uppercaselower: Converts all text to lowercasecapitalize: Capitalizes the first letter of each wordsentence: Capitalizes the first letter of the first word
Example:<case=upper>this will be uppercase</case>
[0.2.0.0-beta] - 2026-01-30
📅 30th January, 2026
Added
- New JavaScript APIs on the
appobject:getAppDataPath(),getSettingsFilePath(), andgetLogPath(). - Dynamic product name retrieval from executable resources for consistent directory naming.
Fixed
- Single Instance Enforcement: Resolved an issue where multiple instances could run if one was started as Administrator (by the installer) and another as a Standard User.
- Changelog Sorting: Standardized versioning to 3-part Semver to ensure "Latest" version labeling works correctly.
Changed
- Branding Consistency: Refactored
GetAppTitle()to usePathUtils::GetProductName(), ensuring the product name is consistently pulled from executable resources across the entire application (including the tray menu). - Redirected
settings.json,config.json, andlogs.logto the user's%APPDATA%directory. - Updated the installer and uninstaller to handle user data cleanup in AppData.
- Consolidated resource extraction logic across the codebase for improved performance (caching).
[0.1.0.0-beta] - 2026-01-30
📅 30th January, 2026
Added
- Initial beta release...