Changelog
Legend:
- - macOS
- ⊞ - Windows
- 🐧 - Linux
/*— All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Addedfor new features.Changedfor changes in existing functionality.Deprecatedfor soon-to-be removed features.Removedfor now removed features.Fixedfor any bug fixes.Securityin case of vulnerabilities.
*/
/*
** PLEASE DO NOT UPDATE THIS FILE **
Updates should be added to v3/UNRELEASED_CHANGELOG.md
Thank you!
*/
[Unreleased]
Section titled “[Unreleased]”- Add Frontend Routing entry to the sidebar navigation in PR by @leaanthony
- Add frontend routing guide with framework-specific recommendations in PR by @leaanthony
- Add support for modal sheets (macOS)
- Bumped ghw version for better Apple device support by @leaanthony (#4977)
- Add
GetBadgemethod to the dock service - Add
-tagsflag towails3 buildcommand for passing custom Go build tags (e.g.,wails3 build -tags gtk4) (#4957) - Add documentation for automatic enum generation in binding generator, including dedicated Enums page and sidebar navigation (#4972)
- Add
-tagsflag towails3 buildcommand for passing custom Go build tags (e.g.,wails3 build -tags gtk4) (#4957) - Add Web API examples in
v3/examples/web-apis/demonstrating 41 browser APIs including Storage (localStorage, sessionStorage, IndexedDB, Cache API), Network (Fetch, WebSocket, XMLHttpRequest, EventSource, Beacon), Media (Canvas, WebGL, Web Audio, MediaDevices, MediaRecorder, Speech Synthesis), Device (Geolocation, Clipboard, Fullscreen, Device Orientation, Vibration, Gamepad), Performance (Performance API, Mutation Observer, Intersection/Resize Observer), UI (Web Components, Pointer Events, Selection, Dialog, Drag and Drop), and more - Add WebView API compatibility checker example (
v3/examples/webview-api-check/) that tests 200+ browser APIs across platforms - Add
internal/libpathpackage for finding native library paths on Linux with parallel search, caching, and support for Flatpak/Snap/Nix - WIP: Add experimental WebKitGTK 6.0 / GTK4 support for Linux, available via
-tags gtk4(GTK3/WebKit2GTK 4.1 remains the default) - Note: On tiling window managers (e.g., Hyprland, Sway), Minimize/Maximize operations may not work as expected since the WM controls window geometry
- Added how to do
One Time Handlersin the docs forListening to Events in JavaScriptby @AbdelhadiSeddar - Add
UseApplicationMenuoption toWebviewWindowOptionsallowing windows on Windows/Linux to inherit the application menu set viaapp.Menu.Set()by @leaanthony - Add support for using
.iconfiles (Apple Icon Composer format) for generating Liquid Glass icons and asset catalogs (macOS) (#4934) by @wimaha - Add experimental server mode for headless/web deployments (
-tags server). Enables running Wails apps as HTTP servers without native GUI dependencies. Build withwails3 task build:server. Seeexamples/serverfor details. - Add
internal/libpathpackage for finding native library paths on Linux with parallel search, caching, and support for Flatpak/Snap/Nix - Add
CollectionBehavioroption toMacWindowfor controlling window behavior across macOS Spaces and fullscreen (#4756) by @leaanthony - Add unit tests for pkg/application by @leaanthony
- Add custom protocol support to MSIX packaging by @leaanthony
- Add desktop environment detection on linux PR #4797
- Add
Window.Print()method to JavaScript runtime for triggering print dialog from frontend (#4290) by @leaanthony - Add
XDG_SESSION_TYPEtowails3 doctoroutput on Linux by @leaanthony - Add additional WebKit2 load-change events for Linux:
WindowLoadStarted,WindowLoadRedirected,WindowLoadCommitted,WindowLoadFinished(#3896) by @leaanthony - Add
XDG_SESSION_TYPEtowails3 doctoroutput on Linux by @leaanthony - Generate
.desktopfile during Linux build, not just packaging (#4575) - Add Linux runtime dependencies documentation with distro-specific package names and nfpm packaging examples (#4339) by @leaanthony
- Add NVIDIA driver version info to
wails3 doctoroutput on Linux by @leaanthony - Add origin to raw message handler by @APshenkin in PR
- Add universal link support for macOS by @APshenkin in PR
- Refactor binding transport layer by @APshenkin in PR
- Add aria-label identifiers to the helloworld templates so that the example app can be easily tested by Appium test clients by @chinenual in PR
- Add origin to raw message handler by @APshenkin in PR
- Add universal link support for macOS by @APshenkin in PR
- Refactor binding transport layer by @APshenkin in PR
- Typed Events by @fbbdev and @ianvs in #4633
- Add
systray-clockexample showing a headless tray with live tooltip updates (#4653). - Added NSIS Protocol template for Windows by @Tolfx in #4510
- Added tests for build-assets by @Tolfx in #4510
- macOS: Shows native window controls in the menu bar in #4588 by @nidib
- Add macOS Dock service to hide/show app icon in the dock @popaprozac in PR
- Add macOS Dock service to hide/show app icon in the dock @popaprozac in PR
- Add native Liquid Glass effect support for macOS with NSGlassEffectView (macOS 15.0+) and NSVisualEffectView fallback, including comprehensive material customization options by @leaanthony in #4534
- Browser URL Sanitisation by @leaanthony in #4500. Based on #4484 by @APShenkin.
- Add Content Protection on Windows/Mac by @leaanthony based on the original work of @Taiterbase in this PR
- Add support for passing CLI variables to Task commands through
wails3 buildandwails3 packagealiases (#4422) by @leaanthony in PR - Support for dropzones with event sourcing dropped element data @atterpac in #4318
- Added
AdditionalLaunchArgstoWindowsWindowoptions to allow for additional command line arguments to be passed to the WebView2 browser. in PR - Added Run go mod tidy automatically after wails init @triadmoko in PR
- Windows Snapassist feature by @leaanthony in PR
- Added
AdditionalLaunchArgstoWindowsWindowoptions to allow for additional command line arguments to be passed to the WebView2 browser. in PR - Added Run go mod tidy automatically after wails init @triadmoko in PR
- Windows Snapassist feature by @leaanthony in PR
- Add Windows
getAccentColorimplementation by @almas-x in PR - Add Windows
getAccentColorimplementation by @almas-x in PR - Windows dark theme menus + menubar. By @leaanthony in a29b4f0861b1d0a700e9eb213c6f1076ec40efd5
- Rename built-in services for clearer JS/TS bindings by @popaprozac in PR
app.Env.GetAccentColorto get the accent color of a user’s system. Works on MacOS. by @etesam913- Add
window.ToggleFrameless()api by @atterpac in #4137 - Add distribution-specific build dependencies for Linux by @leaanthony in PR
- Added bindings guide by @atterpac in PR
- Organized Testing Infrastructure: Moved Docker test files to dedicated
test/docker/directory with optimized images and enhanced build reliability by @leaanthony in #4359 - Improved Resource Management Patterns: Added proper event handler cleanup and context-aware goroutine management in examples by @leaanthony in #4359
- Support aarch64 AppImage builds by @AkshayKalose in #3981
- Add diagnostics section to
wails doctorby @leaanthony - Add window to context when calling a service method by @leaanthony
- Add
window-callexample to demonstrate how to know which window is calling a service by @leaanthony - New Menu guide by @leaanthony
- Better panic handling by @leaanthony
- New Menu guide by @leaanthony
- Add doc comments for Service API by @fbbdev in #4024
- Add function
application.NewServiceWithOptionsto initialise services with additional configuration by @leaanthony in #4024 - Improved menu control by @FalcoG and @leaanthony in #4031
- More documentation by @leaanthony
- Support cancellation of events in standard event listeners by @leaanthony
- Systray
Hide,ShowandDestroysupport by @leaanthony - Systray
SetTooltipsupport by @leaanthony. Original idea by @lujihong - Report package path in binding generator warnings about unsupported types by @fbbdev in #4045
- Add binding generator support for generic aliases by @fbbdev in #4045
- Add binding generator support for
omitzeroJSON flag by @fbbdev in #4045 - Add
//wails:ignoredirective to prevent binding generation for chosen service methods by @fbbdev in #4045 - Add
//wails:internaldirective on services and models to allow for types that are exported in Go but not in JS/TS by @fbbdev in #4045 - Add binding generator support for constants of alias type to allow for weakly typed enums by @fbbdev in #4045
- Add binding generator tests for Go 1.24 features by @fbbdev in #4068
- Add support for macOS 15 “Sequoia” to
OSInfo.Brandingfor improved OS version detection in #4065 - Add
PostShutdownhook for running custom code after the shutdown process completes by @fbbdev in #4066 - Add
FatalErrorstruct to support detection of fatal errors in custom error handlers by @fbbdev in #4066 - Standardise and document service startup and shutdown order by @fbbdev in #4066
- Add test harness for application startup/shutdown sequence and service startup/shutdown tests by @fbbdev in #4066
- Add
RegisterServicemethod for registering services after the application has been created by @fbbdev in #4066 - Add
MarshalErrorfield in application and service options for custom error handling in binding calls by @fbbdev in #4066 - Add cancellable promise wrapper that propagates cancellation requests through promise chains by @fbbdev in #4100
- Add the ability to tie binding call cancellation to an
AbortSignalby @fbbdev in #4100 - Support
data-wml-*attributes for WML alongside the usualwml-*attributes by @leaanthony - Add
Configuremethod on all services for late configuration/dynamic reconfiguration by @fbbdev in #4067 fileserverservice sends a 503 Service Unavailable response when unconfigured by @fbbdev in #4067kvstoreservice provides an in-memory key-value store by default when unconfigured by @fbbdev in #4067- Add
Loadmethod onkvstoreservice to reload data from file after config changes by @fbbdev in #4067 - Add
Clearmethod onkvstoreservice to delete all keys by @fbbdev in #4067 - Add type
Levelinlogservice to provide JS-side log-level constants by @fbbdev in #4067 - Add
Logmethod onlogservice to specify log-level dynamically by @fbbdev in #4067 sqliteservice provides an in-memory DB by default when unconfigured by @fbbdev in #4067- Add method
Closeonsqliteservice to close the DB manually by @fbbdev in #4067 - Add cancellation support for query methods on
sqliteservice by @fbbdev in #4067 - Add prepared statement support to
sqliteservice with JS bindings by @fbbdev in #4067 - Gin support by Lea Anthony in PR based on the original work of @AnalogJ in this PR
- Fix auto save and password auto save always enabled by @oSethoum in #4134
- Add
SetMenu()on window to allow for setting a menu on a window by @leaanthony - Add Notification support by @popaprozac in #4098
- Add File Association support for mac by @wimaha in #4177
- Add
wails3 tool versionfor semantic version bumping by @leaanthony - Add badging support for macOS and Windows by @popaprozac in #
- Add support for registered/strictly-typed events by @fbbdev and @IanVS in #4161
- Add the ability to register hooks for custom events by @fbbdev and @IanVS in #4161
app.OpenFileManager(path string, selectFile bool)to open the system file manager to the pathpathwith optional highlighting viaselectFileby @Krzysztofz01 @rcalixte- New
-gitflag forwails3 initcommand by @leaanthony - New
wails3 generate webview2bootstrappercommand by @leaanthony - Added
init()method in runtime to allow manual initialisation of the runtime by @leaanthony - Added
WindowDidMoveDebounceMSoption to Window’s WindowOptions by @leaanthony - Added Single Instance feature by @leaanthony. Based on the v2 PR by @APshenkin.
wails3 generate templatecommand by @leaanthonywails3 releasenotescommand by @leaanthonywails3 update clicommand by @leaanthony-cleanoption forwails3 generate bindingscommand by @leaanthony- Allow for aarch64 (arm64) AppImage Linux builds by @AkshayKalose in #3981
- Added hyperlink for sponsor by @ansxuman in #3958
- Support of linux packaging of deb,rpm, and arch linux packager builds by
- Added Support for darwin universal builds and packages by
- Events documentation to the website by
- Templates for sveltekit and sveltekit-ts that are set for non-SSR development
- Update build assets using new
wails3 update build-assetscommand by - Example to test the HTML Drag and Drop API by
- File Association support by leaanthony in
- New
wails3 generate runtimecommand by - New
InitialPositionoption to specify if the window should be centered or - Add
Path&Pathsmethods toapplicationpackage by - Added
GeneralAutofillEnabledandPasswordAutosaveEnabledWindows options - Added the ability to retrieve the window calling a service method by
- Added
EnabledFeaturesandDisabledFeaturesoptions for Webview2 by - ⊞ New DIP system for Enhanced High DPI Monitor Support by
- ⊞ Window class name option by windom in
- Services have been expanded to provide plugin functionality. By
- 🐧 WindowDidMove / WindowDidResize events in
- ⊞ WindowDidResize event in
- add Event ApplicationShouldHandleReopen to be able to handle dock
- add getPrimaryScreen/getScreens to impl by @tmclane in
- add option for showing the toolbar in fullscreen mode on macOS by
- 🐧 add onKeyPress logic to convert linux keypress into an accelerator
- 🐧 add task
run:linuxby - Export
SetIconmethod by @almas-x in - Improve
OnShutdownby @almas-x in - Restore
ToggleMaximisemethod inWindowinterface by - Added more information to
Environment(). By @leaanthony in - Expose the
WebviewWindow.IsFocusedmethod on theWindowinterface by - Support multiple space-separated trigger events in the WML system by
- Add ESM exports from the bundled JS runtime script by
- Add binding generator flag for using the bundled JS runtime script instead of
- Implement
setIconon linux by @abichinger - Add flag
-portto dev command and support environment variable - Add tests for bound method calls by
- ⊞ add
SetIgnoreMouseEventsfor already created window by - Add ability to set a window’s stacking level (order) by
- Fix halved
Screen.Bounds,WorkArea, andSizeon Retina Macs by converting NSScreen point values to device pixels in thePhysical*fields, and populate top-levelScreen.X/Yso multi-monitor touching detection and work-area placement are correct in PR by @wayneforrest - Fix data race in ScreenManager that causes WebKit DisplayLink deadlock on display configuration change (e.g. external monitor hot-plug during sleep/wake)
- Directly sets CFBundleIconName to appicon when Assets.car exists in PR by @symball
- Fix
wails3 doctorreporting incorrect WebKitGTK packages on Fedora, openSUSE, Arch, and NixOS — 4.0 fallback entries have been removed since v3 requires the 4.1 API at compile time (#5071) - Fix openSUSE webkit2gtk doctor package name (
webkit2gtk4_1-devel→webkit2gtk3-devel, the correct openSUSE package name) (#5071) - Fix
Unexpected token '<'error when/wails/custom.jsis missing in desktop dev mode. Added explicit 404 handler for/wails/custom.jsand case-insensitiveContent-Typevalidation inloadOptionalScriptto prevent HTML SPA fallbacks from being injected as JavaScript. (#5068) - Fix system tray menu highlight state on macOS - icon now shows selected state when menu is open (#4910)
- Fix system tray attached window appearing behind other windows on macOS - now uses proper popup window level (#4910)
- Fix incorrect
@wailsio/runtimeimport examples across documentation (#4989) - Fix frameless window cannot be minimized on darwin (#4294)
- Fix 20-30 minute hangs during
wails3 buildandwails3 devby excludingnode_modules/from go-task’s up-to-date checking. Previously, thesources: "**/*"glob caused go-task to enumerate and checksum every file innode_modules/(50-100k+ files with heavy dependencies like MUI), especially slow on Windows/NTFS (#4939) - Fix GTK4 build failure caused by C
Screentypedef colliding with X11 Xlib.h (#4957) - Fix dock badge methods consistency on macOS
- Fix
InvisibleTitleBarHeightbeing applied to all macOS windows instead of only frameless or transparent title bar windows (#4960) - Fix window shaking/jitter when resizing from top corners with
InvisibleTitleBarHeightenabled, by skipping drag initiation near window edges (#4960) - Fix generation of mapped types with enum keys in JS/TS bindings (#4437) by @fbbdev
- Fix file drag-and-drop on Windows not working at non-100% display scaling
- Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Windows
- Fix file drop coordinates being in wrong pixel space on Windows (physical vs CSS pixels)
- Fix file drag-and-drop on Linux not working reliably with hover effects
- Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Linux
- Fix window show/hide on Linux/GTK4 sometimes restoring to minimized state by using
gtk_window_present()(#4957) - Fix window position get/set on Linux/GTK4 always returning 0,0 by adding X11-conditional support via
XTranslateCoordinates/XMoveWindow(#4957) - Fix max window size not being enforced on Linux/GTK4 by adding signal-based size clamping to replace removed
gtk_window_set_geometry_hints(#4957) - Fix DPI scaling on Linux/GTK4 by implementing proper PhysicalBounds calculation and fractional scaling support via
gdk_monitor_get_scale(GTK 4.14+) - Fix menu items duplicating when creating new windows on Linux/GTK4
- Fix generation of mapped types with enum keys in JS/TS bindings (#4437) by @fbbdev
- Fix file drag-and-drop on Windows not working at non-100% display scaling
- Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Windows
- Fix file drop coordinates being in wrong pixel space on Windows (physical vs CSS pixels)
- Fix file drag-and-drop on Linux not working reliably with hover effects
- Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Linux
- Fix DPI scaling on Linux/GTK4 by implementing proper PhysicalBounds calculation and fractional scaling support via
gdk_monitor_get_scale(GTK 4.14+) - Fix menu items duplicating when creating new windows on Linux/GTK4
- Fix generation of mapped types with enum keys in JS/TS bindings (#4437) by @fbbdev
- Fix “ghost windows” issue on macOS caused by not accessing AppKit APIs from the Main Thread in App.Window.Current() (#4947) by @wimaha
- Fix HTML
<input type="file">not working on macOS by implementing WKUIDelegate runOpenPanelWithParameters (#4862) - Fix native file drag-and-drop not working when using
@wailsio/runtimenpm module on macOS/Linux (#4953) by @leaanthony - Fix binding generation for cross-package type aliases (#4578) by @fbbdev
- Fix OpenFileDialog crash on Linux due to GTK thread safety violation (#3683) by @ddmoney420
- Fix SIGSEGV crash when calling
Focus()on a hidden or destroyed window (#4890) by @ddmoney420 - Fix potential panic when setting empty icon or bitmap on Linux (#4923) by @ddmoney420
- Fix ErrorDialog crash when called from service binding on macOS (#3631) by @leaanthony
- Make menus to be displayed on Windows OS in
v3\examples\dialogsby @ndianabasi - Fix race condition causing TypeError during page reload (#4872) by @ddmoney420
- Fix incorrect output from binding generator tests by removing global state in the
Collector.IsVoidAlias()method (#4941) by @fbbdev - Fix
<input type="file">file picker not working on macOS (#4862) by @leaanthony - Fix
Position()andSetPosition()using inconsistent coordinate systems on macOS, causing window position drift when saving/restoring state (#4816) by @leaanthony - Fix SetProcessDpiAwarenessContext “Access is denied” error when DPI awareness is already set via application manifest (#4803)
- Update the docs page for keyboard shortcuts and corrects the type of the callback parameter for
KeyBinding.Addby @ndianabasi - Fix documentation regarding generating custom binding, must use
-d Stringinstead of-o String - Fix menu not clearing children on
menu.Update() - Fix outdated Manager API references in documentation (31 files updated to use new pattern like
app.Window.New(),app.Event.Emit(), etc.) by @leaanthony - Fix Linux crash on panic in JS-bound Go methods due to WebKit overriding signal handlers (#3965) by @leaanthony
- Fix SaveFileDialog.SetFilename() having no effect on Linux (#4841) by @samstanier
- Fix drop coordinates showing as undefined in drag-n-drop example
- Fix macOS app bundle creation failing when APP_NAME contains spaces (brace expansion issue)
- Fix index out of bounds panic on Windows when calling service methods (revert goccy/go-json)
- Fix file drag-and-drop on Windows not working at non-100% display scaling
- Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Windows
- Fix file drop coordinates being in wrong pixel space on Windows (physical vs CSS pixels)
- Fix file drag-and-drop on Linux not working reliably with hover effects
- Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Linux
- Update all commands in Taskfile.yml files for all operating systems to accommodate spaces in variables such as
APP_NAMEby @ndianabasi - Fix command argument error when executing ‘build:universal:lipo:go’ task on Linux by @wux1an
- Fix Docker error “undefined symbol: ___ubsan_handle_xxxxxxx” when running ‘wails3 build GOOS=darwin GOARCH=arm64’ on Linux by @wux1an
- Consolidate custom protocol documentation and add Universal Links sections by @leaanthony
- Fix Windows systray menu crash when clicking icon repeatedly by adding guard against concurrent TrackPopupMenuEx calls (#4151) by @leaanthony
- Prevent app crashing when calling systray.Run() before app.Run() by @leaanthony
- Fix crash on macOS when toggling window visibility via Hide()/Show() with ApplicationShouldTerminateAfterLastWindowClosed enabled (#4389) by @leaanthony
- Fix memory leak in context menus on macOS and Windows when repeatedly opening menus (#4012) by @leaanthony
- Fix context menu native resources not being reused on macOS, causing fresh menu creation on each display (#4012) by @leaanthony
- Fix macOS dock icon click not showing hidden windows when app started with
Hidden: true(#4583) by @leaanthony - Fix macOS print dialog not opening due to incorrect window pointer type in CGO call (#4290) by @leaanthony
- Fix window menu crash on Wayland caused by appmenu-gtk-module accessing unrealized window (#4769) by @leaanthony
- Fix GTK application crash when app name contains invalid characters (spaces, parentheses, etc.) by @leaanthony
- Fix “not enough memory” error when initializing drag and drop on Windows (#4701) by @overlordtm
- Fix file explorer opening wrong directory on Linux due to incorrect URI escaping (#4397) by @leaanthony
- Fix AppImage build failure on modern Linux distributions (Arch, Fedora 39+, Ubuntu 24.04+) by auto-detecting
.relr.dynELF sections and disabling stripping (#4642) by @leaanthony - Fix
wails doctorfalsely reporting webkit packages as installed on Fedora/DNF-based systems (#4457) by @leaanthony - Fix default
config.ymlwould runwails3 devwith a production build by @mbaklor - Fix iOS service stubs causing build failures due to non-existent package import by @leaanthony
- Fix structured logging in debug/info methods causing “no formatting directives” errors by @leaanthony
- Remove temporary debug print statements accidentally included from mobile platform merge by @leaanthony
- Fix WebKitGTK crash on Wayland with NVIDIA GPUs (Error 71 Protocol error) by auto-disabling DMA-BUF renderer by @leaanthony
- Resolve alpha value being ignored in
application.WebviewWindowOptions.BackgroundColouron Linux (#4722, @BradHacker) - Fix Windows systray icon not defaulting to application icon when no custom icon is provided (#4704)
- Track
HICONownership so only user-created handles are destroyed, preventing Explorer recycling crashes (#4653). - Release the Windows system-theme listener and retained tray icons during destroy to stop leaking goroutines and device contexts (#4653).
- Truncate tray tooltips at 127 UTF-16 units to avoid corrupting surrogate pairs and multi-byte glyphs (#4653).
- Fix Windows package task failure (#4667)
- Fix Linux appimage appicon variable in Linux taskfile PR #4644
- Fix Windows build error caused by go-webview2 v1.0.22 signature change (#4513, #4645)
- Fix Linux appimage appicon variable in Linux taskfile PR #4644
- Fixed linux desktop.tmpl protocol range, by removing
<.Info.Protocol>to<.Protocol>by @Tolfx in #4510 - Fixed redefinition error for liquid glass demo in #4542 by @Etesam913
- Fixed systray menu updates on Linux #4604 by @JackDoan
- Fix the white window appearing on Windows when creating a hidden window by @leaanthony in #4612
- Fix notifications package import path in documentation by @rxliuli in #4617
- Fix drag-and-drop not working when using npm package @wailsio/runtime (#4489) by @leaanthony in #4616
- Windows: Flicker of window at start and hidden windows being shown incorrectly in PR by @leaanthony.
- Fixed Wayland window size maximising issues (https://github.com/wailsapp/wails/issues/4429) by @samstanier
- Fixed Wayland window size maximising issues (https://github.com/wailsapp/wails/issues/4429) by @samstanier
- Fixed redefinition error for liquid glass demo in #4542 by @Etesam913
- Fixed issue where AssetServer can crash on MacOS in #4576 by @jghiloni
- Fixed compilation issue when building with NextJs. Fixed in #4585 by @rev42
- Fixed pipelines for nightly release in #4597 by @riadafridishibly
- Fixed redefinition error for liquid glass demo in #4542 by @Etesam913
- Fixed issue where AssetServer can crash on MacOS in #4576 by @jghiloni
- Fixed compilation issue when building with NextJs. Fixed in #4585 by @rev42
- Fixed pipelines for nightly release in #4597 by @riadafridishibly
- Fixed redefinition error for liquid glass demo in #4542 by @Etesam913
- Fix SetBackgroundColour on Windows by @PPTGamer in PR
- Update docs to reflect changes from Manager API Refactoring by @yulesxoxo in PR #4476
- Fix Linux .desktop file appicon variable in Linux taskfile PR #4477
- Update docs to reflect changes from Manager API Refactoring by @yulesxoxo in PR #4476
- Fix Windows nil pointer dereference bug reported in #4456 by @leaanthony in #4460
- Add support for
allowsBackForwardNavigationGesturesin macOS WKWebView to enable two-finger swipe navigation gestures (#1857) - Fixes issue where onClick didn’t work for menu items initially set as disabled by @leaanthony in PR #4469. Thanks to @IanVS for the initial investigation.
- Fix Vite server not being cleaned up when build fails (#4403)
- Fixed panic when closing or cancelling a
SaveFileDialogon windows. Fixed in PR by @hkhere - Fixed HTML level drag and drop on Windows by @mbaklor in #4259
- Add support for
allowsBackForwardNavigationGesturesin macOS WKWebView to enable two-finger swipe navigation gestures (#1857) - Fixes issue where onClick didn’t work for menu items initially set as disabled by @leaanthony in PR #4469. Thanks to @IanVS for the initial investigation.
- Fix Vite server not being cleaned up when build fails (#4403)
- Fixed notification parsing on Windows @popaprozac in PR
- Fixed doctor command to check for Windows SDK dependencies by @kodumulo in #4390
- Fixed nil pointer dereference in processURLRequest for Mac by @etesam913 in #4366
- Fixed a linux bug preventing filtered dialogs by @bh90210 in #4287
- Fixed Windows+Linux Edit Menu issues by @leaanthony in #3f78a3a
- Updated the minimum system version in macOS .plist files from 10.13.0 to 10.15.0 by @AkshayKalose in #3981
- Window ID skip issue by @leaanthony
- Fix nil menu issue when calling RegisterContextMenu by @leaanthony
- Fixed dependency cycles in binding generator output by @fbbdev in #4001
- Fixed use-before-define errors in binding generator output by @fbbdev in #4001
- Pass build flags to binding generator by @fbbdev in #4023
- Change paths in windows Taskfile to forward slashes to ensure it works on non-Windows platforms by @leaanthony
- Mac + Mac JS events now fixed by @leaanthony
- Fixed event deadlock for macOS by @leaanthony
- Fixed a
Parameter incorrecterror in Window initialisation on Windows when HTML provided but no JS by @leaanthony - Fixed size of response prefix used for content type sniffing in asset server by @fbbdev in #4049
- Fixed handling of non-404 responses on root index path in asset server by @fbbdev in #4049
- Fixed undefined behaviour in binding generator when testing properties of generic types by @fbbdev in #4045
- Fixed binding generator output for models when underlying type has not the same properties as named wrapper by @fbbdev in #4045
- Fixed binding generator output for map key types and preprocessing by @fbbdev in #4045
- Fixed binding generator output for structs that implement marshaler interfaces by @fbbdev in #4045
- Fixed detection of type cycles involving generic types in binding generator by @fbbdev in #4045
- Fixed invalid references to unexported models in binding generator output by @fbbdev in #4045
- Moved injected code to the end of service files by @fbbdev in #4045
- Fixed handling of errors from file close operations in binding generator by @fbbdev in #4045
- Suppressed warnings for services that define lifecycle or http methods but no other bound methods by @fbbdev in #4045
- Fixed non-React templates failing to display Hello World footer when using light system colour scheme by @marcus-crane in #4056
- Fixed hidden menu items on macOS by @leaanthony
- Fixed handling and formatting of errors in message processors by @fbbdev in #4066
- Fixed skipped service shutdown when quitting application by @fbbdev in #4066
- Ensure menu updates occur on the main thread by @leaanthony
- The dragging and resizing mechanism is now more robust and matches expected platform behaviour more closely by @fbbdev in #4100
- Fixed #4097 Webpack/angular discards runtime init code by @fbbdev in #4100
- Fixed initially-hidden menu items by @IanVS in #4116
- Fixed assetFileServer not serving
.htmlfiles when non-extension request when[request]doesn’t exist but[request].htmldoes - Fixed icon generation paths by @robin-samuel in #4125
- Fixed
fullscreen,unfullscreen,unminimiseandunmaximiseevents not being emitted by @oSethoum in #4130 - Fixed NSIS Error because of incorrect prefix on default version in config by @robin-samuel in #4126
- Fixed Dialogs runtime function returning escaped paths on Windows by TheGB0077 in #4188
- Fixed Webview2 detection path in HKCU by @leaanthony.
- Fixed input issue with macOS by @leaanthony.
- Fixed Windows icon generation task file name by @yulesxoxo in #4219.
- Fixed transparency issue for frameless windows by @leaanthony based on work by @kron.
- Fixed focus calls when window is disabled or minimised by @leaanthony based on work by @kron.
- Fixed system trays not showing after taskbar restarts by @leaanthony based on work by @kron.
- Fixed fallbackResponseWriter not implementing Flush() in #4245
- Fixed fallbackResponseWriter not implementing Flush() by [@superDingda] in #4236
- Fixed macOS window close with pending async Go-bound function call crashes by @joshhardy in #4354
- Fixed Windows Efficiency mode startup race condition by @leaanthony
- Fixed Windows icon handle cleanup by @leaanthony.
- Fixed
OpenFileManageron Windows by @PPTGamer in #4375. - Fixed min/max width options for linux by @atterpac in #3979
- Typescript templates types definitions via npm version bump by @atterpac in #3966
- Fix Sveltekit template CSS referance by @atterpac in #3945
- Ensure key callbacks in window run() are called on the main thread by @leaanthony
- Fix dialog directory chooser examples by @leaanthony
- Created new Chinese error page when index.html is missing by @leaanthony
- Ensure
windowDidBecomeKeycallback is running on main thread by @leaanthony - Support fullscreen for frameless windows by @leaanthony
- Improved window destroying logic by @leaanthony
- Fix window position logic when attached to system trays by @leaanthony
- Support fullscreen for frameless windows by @leaanthony
- Fix event handling by @leaanthony
- Fixed window shutdown logic by @leaanthony
- Common taskfile now defaults to generating Typescript bindings for Typescript templates by @leaanthony
- Fix Close application on WM_CLOSE message when no windows are open/systray only by @mmalcek in #3990
- Fixed garble build by @5aaee9 in #3192
- Fixed windows nsis builds by @leaanthony
- Fixed deadlock in Linux dialog for multiple selections caused by unclosed
- Fixed cross-platform cleanup for .syso files during Windows build by
- Fixed amd64 appimage compile by @atterpac in
- Fixed build assets update by @ansxuman in
- Fixed Linux systray
OnClickandOnRightClickimplementation by @atterpac - Fixed
AlwaysOnTopnot working on Mac by - Fixed
application.NewEditMenuincluding a duplicate - 🐧 Fixed aarch64 compilation
- ⊞ Fixed radio group menu items by
- Fix error on building runnable .app on MacOS when ‘name’ and ‘outputfilename’
- Fixed bug with usage of customEventProcessor in drag-n-drop example by
- 🐧 Fixed linux compile error introduced by IgnoreMouseEvents addition by
- ⊞ Fixed syso icon file generation bug by
- 🐧 Fix to run natively in wayland incorporated from
- Do not bind internal service methods in
- ⊞ Fixed system tray startup panic in
- Do not bind internal service methods in
- ⊞ Fixed system tray startup panic in
- Major menu item refactor and event handling. Mainly improves macOS for now. By
- Fix tests after plugins and event refactor in
- ⊞ Fixed
Failed to unregister class Chrome_WidgetWin_0warning. By - Module issues
- Fixed resize event messaging by atterpac in
- 🐧Fixed theme handling error on NixOS by
- Fixed cross volume project install for windows by
- Fixed react template css to show footer by
- Fixed zombie processes when working in devmode by updating to latest refresh
- Fixed appimage webkit file sourcing by Atterpac
- Fixed Doctor apt package verify by Atterpac in
- Fixed application frozen when quit (Darwin) by @5aaee9 in
- Fixed background colours of examples on Windows by
- Fixed default context menus by mmghv in
- Fixed hex values for arrow keys on Darwin by
- Set drag-n-drop for windows to working. Added by
- Fixed bug for linux in doctor in the event user doesn’t have proper drivers
- Fix dpi scaling on start up (windows). Changed by @almas-x in
- Fix replace line in
go.modto use relative paths. Fixes Windows paths with - Fix MacOS systray click handling when no attached window by
- Fix failing Windows build due to unknown option by
- Fix crash on windows left clicking the systray icon when not having an
- Fix wrong baseURL when open window twice by @5aaee9 in PR
- Fix ordering of if branches in
WebviewWindow.Restoremethod by - Correctly compute
startURLacross multipleGetStartURLinvocations when - Fix the JS type of the
Screenstruct to match its Go counterpart by - Fix the
WML.Reloadmethod to ensure proper cleanup of registered event - Fix custom context menu closing immediately on linux by
- Fix the output path and extension of model files produced by the binding
- Fix the import paths of model files in JS code produced by the binding
- Fix drag-n-drop on some linux distros by
- Fix missing task for macOS when using
wails3 task devby - Fix registering events causing a nil map assignment by
- Fix unmarshaling of bound method parameters by
- Fix handling of multiple return values from bound methods by
- Fix doctor detection of npm that is not installed with system package manager
- Fix missing MicrosoftEdgeWebview2Setup.exe. Thanks to
- Fix random crash on linux due to window ID handling by @leaanthony. Based on
- Fix systemTray.setIcon crashing on Linux by
- Fix Ensure Window Frame is Applied on First Call in
setFramelessFunction on
Changed
Section titled “Changed”- BREAKING: Map keys in generated JS/TS bindings are now marked optional to accurately reflect Go map semantics. Map value access in Typescript now returns
T | undefinedinstead ofT, requiring null checks or assertions (#4943) by@fbbdev - Changed the use of
EventintoEventsaccording to changes in@wailsio/runtimeand appropriate function calls in the docs inFeatures/Events/Event Systemby @AbdelhadiSeddar - Move
EnabledFeatures,DisabledFeatures, andAdditionalBrowserArgsfrom per-window options to application-levelOptions.Windows(#4559) by @leaanthony - Update the README for the
Drag N Dropexample and highlights thatInternal Drag and Dropis demonstrated with the example @ndianabasi - Replace various debug logs from Info to Debug (by @mbaklor)
- BREAKING: Rename
EnableDragAndDroptoEnableFileDropin window options - BREAKING: Rename
DropZoneDetailstoDropTargetDetailsin event context - BREAKING: Rename
DropZoneDetails()method toDropTargetDetails()onWindowEventContext - BREAKING: Remove
WindowDropZoneFilesDroppedevent, useWindowFilesDroppedinstead - BREAKING: Change HTML attribute from
data-wails-dropzonetodata-file-drop-target - BREAKING: Change CSS hover class from
wails-dropzone-hovertofile-drop-target-active - BREAKING: Remove
DragEffect,OnEnterEffect,OnOverEffectoptions from Windows (were part of removed IDropTarget) - Switch to goccy/go-json for all runtime JSON processing (method bindings, events, webview requests, notifications, kvstore), improving performance by 21-63% and reducing memory allocations by 40-60%
- Optimize BoundMethod struct layout and cache isVariadic flag to reduce per-call overhead
- Use stack-allocated argument buffer for methods with
<=8arguments to avoid heap allocations - Optimize result collection in method calls to avoid slice allocation for single return values
- Use sync.Map for MIME type cache to improve concurrent performance
- Use buffer pool for HTTP transport request body reading
- Lazily allocate CloseNotify channel in content type sniffer to reduce per-request allocations
- Remove debug CSS logging from asset server
- Expand MIME type extension map to cover 50+ common web formats (fonts, audio, video, etc.)
- Update the documentation for Window
X/Yoptions @ruhuang2001 - Update the
Frontend Runtimedocumentation by adding more options for generating frontend bindings by @ndianabasi - Update the documentation page for Wails v3 Asset Server by @ndianabasi
- BREAKING: Remove package-level dialog functions (
application.InfoDialog(),application.QuestionDialog(), etc.). Use theapp.Dialogmanager instead:app.Dialog.Info(),app.Dialog.Question(),app.Dialog.Warning(),app.Dialog.Error(),app.Dialog.OpenFile(),app.Dialog.SaveFile() - Update dialogs documentation to match actual API: use
app.Dialog.*,AddButton()with callbacks (notSetButtons()),SetDefaultButton(*Button)(not string),AddFilter()(notSetFilters()),SetFilename()(notSetDefaultFilename()), andapp.Dialog.OpenFile().CanChooseDirectories(true)for folder selection - BREAKING: Production builds are now the default. To create dev builds, set
DEV=truein your Taskfiles. Generate a new project for examples by @leaanthony - When emitting a custom event with zero or one data argument, the data value will be assigned directly to the Data field without wrapping it in a slice by @fbbdev in #4633
- Windows trays now honor
SystemTray.Show()/Hide()by togglingNIS_HIDDEN, so apps can truly disappear and return (#4653). - Tray registration reuses resolved icons, sets
NOTIFYICON_VERSION_4once, and enablesNIF_SHOWTIPso tooltips recover after Explorer restarts (#4653). - macOS: Use
visibleFrameinstead offramefor window centering to exclude menu bar and dock areas - macOS: Use
visibleFrameinstead offramefor window centering to exclude menu bar and dock areas - When running
wails3 update build-assetswith the-configparameter, values set via the-product*parameters are window.NativeWindowHandle()->window.NativeWindow()by @leaanthony in #4471- Refactor internal window handling by @leaanthony in #4471
- Removed
application.WindowIDKeyandapplication.WindowNameKey(replaced byapplication.WindowKey) by @leaanthony - ContextMenuData now returns a string instead of any by @leaanthony
- In JS/TS bindings, class fields of fixed-length array types are now initialized with their expected length instead of being empty by @fbbdev in #4001
- ContextMenuData now returns a string instead of any by @leaanthony
application.NewServicedoes not accept options as an optional parameter anymore (useapplication.NewServiceWithOptionsinstead) by @leaanthony in #4024- Removed
nanoiddependency by @leaanthony - Updated Window example for mica/acrylic/tabbed window styles by @leaanthony
- In JS/TS bindings,
internal.js/tsmodel files have been removed; all models can now be found inmodels.js/tsby @fbbdev in #4045 - In JS/TS bindings, named types are never rendered as aliases for other named types; the old behaviour is now restricted to aliases by @fbbdev in #4045
- In JS/TS bindings, in class mode, struct fields whose type is a type parameter are marked optional and never initialised automatically by @fbbdev in #4045
- Remove ESLint from templates by by @IanVS in #4059
- Update copyright date to 2025 by @IanVS in #4037
- Add docs for event.Sender by @IanVS in #4075
- Go 1.24 support by @leaanthony
ServiceStartuphooks are now invoked whenApp.Runis called, not inapplication.Newby @fbbdev in #4066ServiceStartuperrors are now returned fromApp.Runinstead of terminating the process by @fbbdev in #4066- Binding and dialog calls from JS now reject with error objects instead of strings by @fbbdev in #4066
- Improved systray menu positioning on Windows by @leaanthony
- The JS runtime has been ported to TypeScript by @fbbdev in #4100
- The runtime initialises as soon as it is imported, no need to wait for the window to load by @fbbdev in #4100
- The runtime does not export an init method anymore. A side effects import can be used to initialise it by @fbbdev in #4100
- Bound methods now return a
CancellablePromisethat rejects with aCancelErrorif cancelled. The actual result of the call is discarded by @fbbdev in #4100 - Built-in service types are now consistently called
Serviceby @fbbdev in #4067 - Built-in service creation functions with options are now consistently called
NewWithConfigby @fbbdev in #4067 Selectmethod onsqliteservice is now namedQueryfor consistency with Go APIs by @fbbdev in #4067- Templates: moved runtime to “dependencies”, organized package.json files by @IanVS in #4133
- Creates and ad-hoc signs app bundles in dev to enable certain macOS APIs by @popaprozac in #4171
- Moved build assets to platform specific directories by @leaanthony
- Moved and renamed Taskfiles to platform specific directories by @leaanthony
- Created a much better experience when
index.htmlis missing by @leaanthony - [Windows] Improved performance of minimise and restore by @leaanthony. Based on original PR by 562589540
- Removed
ShouldCloseoption (Register a hook for events.Common.WindowClosing instead) by @leaanthony - [Windows] Reduced flicker when opening a window by @leaanthony
- Removed
Window.Destroyas this was intended to be an internal function by @leaanthony - Renamed
WindowCloseevents toWindowClosingby @leaanthony - Frontend builds now use vite environment “development” or “production” depending on build type by @leaanthony
- Update to go-webview2 v1.19 by @leaanthony
- Ensure fork of taskfile is used by @leaanthony
- Update fork of Taskfile to fix version issues when installing using
- Using fork of Taskfile to fix version issues when installing using
service.OnStartupnow shutdowns the application on error and runs- Refactored systray click messaging to better align with user interactions by
- Asset embed to include
all:frontend/distto support frameworks that generate - Taskfile refactor by leaanthony in
- Upgrade to
go-webview2v1.0.16 by - Fixed
Screentype to includeIDnotIdby - Update
go.mod.tmplwails version to supportapplication.ServiceOptionsby - Fixed service name determination by windom in
- mkdocs serve now uses docker by leaanthony
- Consolidated dev config into
config.ymlby - Systray dialog now defaults to the application icon if available (Windows) by
- Better reporting of GPU + Memory for macOS by
- Removed
WebviewGpuIsDisabledandEnableFraudulentWebsiteWarnings - Events API change:
On/Emit-> user events,OnApplicationEvent-> - Fix for Events API on Linux by TheGB0077 in
- [CI] improvements to actions & enable to run actions also in forks and
- Renamed
AbsolutePosition()toPosition()by - Update linux webkit dependency to webkit2gtk-4.1 over webkitgtk2-4.0 to
- The bundled JS runtime script is now an ESM module: script tags importing it
- The
@wailsio/runtimepackage does not publish its API on thewindow.wails - The Window API module
@wailsio/runtime/src/windownow exposes the containing - The JS window API has been updated to match the current Go
WebviewWindow - The binding generator now uses calls by ID by default. The
-idCLI option - New binding code layout: output files were previously organised in folders
- The struct field
application.Options.Bindhas been renamed to - New syntax for binding services: service instances must now be wrapped in a
- Disable spinner on Non-Terminal or CI Environment by
Removed
Section titled “Removed”- BREAKING: Remove
EnabledFeatures,DisabledFeatures, andAdditionalLaunchArgsfrom per-windowWindowsWindowoptions. Use application-levelOptions.Windows.EnabledFeatures,Options.Windows.DisabledFeatures, andOptions.Windows.AdditionalBrowserArgsinstead. These flags apply globally to the shared WebView2 environment (#4559) by @leaanthony - Remove native
IDropTargetimplementation on Windows in favor of JavaScript-based approach (matches v2 behavior) - Remove github.com/wailsapp/mimetype dependency in favor of expanded extension map + stdlib http.DetectContentType, reducing binary size by ~1.2MB
- Remove gopkg.in/ini.v1 dependency by implementing minimal .desktop file parser for Linux file explorer, saving ~45KB
- Remove samber/lo from runtime code by using Go 1.21+ stdlib slices package and minimal internal helpers, saving ~310KB
- Remove debug printf statements from Darwin URL scheme handler (#4834)
- BREAKING: Remove
linux:WindowLoadChangedevent - uselinux:WindowLoadFinishedinstead for detecting when WebView has finished loading (#3896) by @leaanthony
Breaking Changes
Section titled “Breaking Changes”- Manager API Refactoring: Reorganized application API from flat structure to organized managers for better code organization and discoverability by @leaanthony in #4359
app.NewWebviewWindow()→app.Window.New()app.CurrentWindow()→app.Window.Current()app.GetAllWindows()→app.Window.GetAll()app.WindowByName()→app.Window.GetByName()app.EmitEvent()→app.Event.Emit()app.OnApplicationEvent()→app.Event.OnApplicationEvent()app.OnWindowEvent()→app.Event.OnWindowEvent()app.SetApplicationMenu()→app.Menu.SetApplicationMenu()app.OpenFileDialog()→app.Dialog.OpenFile()app.SaveFileDialog()→app.Dialog.SaveFile()app.MessageDialog()→app.Dialog.Message()app.InfoDialog()→app.Dialog.Info()app.WarningDialog()→app.Dialog.Warning()app.ErrorDialog()→app.Dialog.Error()app.QuestionDialog()→app.Dialog.Question()app.NewSystemTray()→app.SystemTray.New()app.GetSystemTray()→app.SystemTray.Get()app.ShowContextMenu()→app.ContextMenu.Show()app.RegisterKeybinding()→app.KeyBinding.Register()app.UnregisterKeybinding()→app.KeyBinding.Unregister()app.GetPrimaryScreen()→app.Screen.GetPrimary()app.GetAllScreens()→app.Screen.GetAll()app.BrowserOpenURL()→app.Browser.OpenURL()app.Environment()→app.Env.GetAll()app.ClipboardGetText()→app.Clipboard.Text()app.ClipboardSetText()→app.Clipboard.SetText()- Renamed Service methods:
Name->ServiceName,OnStartup->ServiceStartup,OnShutdown->ServiceShutdownby @leaanthony - Moved
PathandPathsmethods toapplicationpackage by @leaanthony - The application menu is now macOS only by @leaanthony
v3.0.0-alpha.78 - 2026-04-21
Section titled “v3.0.0-alpha.78 - 2026-04-21”v3.0.0-alpha.77 - 2026-04-18
Section titled “v3.0.0-alpha.77 - 2026-04-18”v3.0.0-alpha.76 - 2026-04-17
Section titled “v3.0.0-alpha.76 - 2026-04-17”v3.0.0-alpha.75 - 2026-04-16
Section titled “v3.0.0-alpha.75 - 2026-04-16”v3.0.0-alpha.74 - 2026-03-01
Section titled “v3.0.0-alpha.74 - 2026-03-01”v3.0.0-alpha.73 - 2026-02-27
Section titled “v3.0.0-alpha.73 - 2026-02-27”v3.0.0-alpha.72 - 2026-02-16
Section titled “v3.0.0-alpha.72 - 2026-02-16”v3.0.0-alpha.71 - 2026-02-10
Section titled “v3.0.0-alpha.71 - 2026-02-10”v3.0.0-alpha.70 - 2026-02-09
Section titled “v3.0.0-alpha.70 - 2026-02-09”v3.0.0-alpha.69 - 2026-02-08
Section titled “v3.0.0-alpha.69 - 2026-02-08”v3.0.0-alpha.68 - 2026-02-07
Section titled “v3.0.0-alpha.68 - 2026-02-07”Changed
Section titled “Changed”v3.0.0-alpha.67 - 2026-02-04
Section titled “v3.0.0-alpha.67 - 2026-02-04”Changed
Section titled “Changed”v3.0.0-alpha.66 - 2026-02-03
Section titled “v3.0.0-alpha.66 - 2026-02-03”Changed
Section titled “Changed”Removed
Section titled “Removed”v3.0.0-alpha.65 - 2026-02-01
Section titled “v3.0.0-alpha.65 - 2026-02-01”v3.0.0-alpha.64 - 2026-01-26
Section titled “v3.0.0-alpha.64 - 2026-01-26”v3.0.0-alpha.63 - 2026-01-25
Section titled “v3.0.0-alpha.63 - 2026-01-25”v3.0.0-alpha.62 - 2026-01-22
Section titled “v3.0.0-alpha.62 - 2026-01-22”v3.0.0-alpha.61 - 2026-01-20
Section titled “v3.0.0-alpha.61 - 2026-01-20”v3.0.0-alpha.60 - 2026-01-14
Section titled “v3.0.0-alpha.60 - 2026-01-14”v3.0.0-alpha.59 - 2026-01-11
Section titled “v3.0.0-alpha.59 - 2026-01-11”Changed
Section titled “Changed”v3.0.0-alpha.58 - 2026-01-09
Section titled “v3.0.0-alpha.58 - 2026-01-09”v3.0.0-alpha.57 - 2026-01-05
Section titled “v3.0.0-alpha.57 - 2026-01-05”Changed
Section titled “Changed”v3.0.0-alpha.56 - 2026-01-04
Section titled “v3.0.0-alpha.56 - 2026-01-04”Changed
Section titled “Changed”Removed
Section titled “Removed”v3.0.0-alpha.55 - 2026-01-02
Section titled “v3.0.0-alpha.55 - 2026-01-02”Changed
Section titled “Changed”Removed
Section titled “Removed”v3.0.0-alpha.54 - 2025-12-29
Section titled “v3.0.0-alpha.54 - 2025-12-29”Removed
Section titled “Removed”v3.0.0-alpha.53 - 2025-12-27
Section titled “v3.0.0-alpha.53 - 2025-12-27”v3.0.0-alpha.52 - 2025-12-26
Section titled “v3.0.0-alpha.52 - 2025-12-26”v3.0.0-alpha.51 - 2025-12-23
Section titled “v3.0.0-alpha.51 - 2025-12-23”v3.0.0-alpha.50 - 2025-12-21
Section titled “v3.0.0-alpha.50 - 2025-12-21”Changed
Section titled “Changed”v3.0.0-alpha.49 - 2025-12-18
Section titled “v3.0.0-alpha.49 - 2025-12-18”Changed
Section titled “Changed”v3.0.0-alpha.48 - 2025-12-16
Section titled “v3.0.0-alpha.48 - 2025-12-16”Changed
Section titled “Changed”v3.0.0-alpha.47 - 2025-12-15
Section titled “v3.0.0-alpha.47 - 2025-12-15”v3.0.0-alpha.46 - 2025-12-14
Section titled “v3.0.0-alpha.46 - 2025-12-14”Removed
Section titled “Removed”v3.0.0-alpha.45 - 2025-12-13
Section titled “v3.0.0-alpha.45 - 2025-12-13”v3.0.0-alpha.44 - 2025-12-12
Section titled “v3.0.0-alpha.44 - 2025-12-12”Changed
Section titled “Changed”v3.0.0-alpha.43 - 2025-12-11
Section titled “v3.0.0-alpha.43 - 2025-12-11”v3.0.0-alpha.42 - 2025-12-10
Section titled “v3.0.0-alpha.42 - 2025-12-10”v3.0.0-alpha.41 - 2025-11-23
Section titled “v3.0.0-alpha.41 - 2025-11-23”v3.0.0-alpha.40 - 2025-11-13
Section titled “v3.0.0-alpha.40 - 2025-11-13”v3.0.0-alpha.39 - 2025-11-12
Section titled “v3.0.0-alpha.39 - 2025-11-12”Changed
Section titled “Changed”v3.0.0-alpha.38 - 2025-11-04
Section titled “v3.0.0-alpha.38 - 2025-11-04”Changed
Section titled “Changed”v3.0.0-alpha.37 - 2025-11-02
Section titled “v3.0.0-alpha.37 - 2025-11-02”v3.0.0-alpha.36 - 2025-10-15
Section titled “v3.0.0-alpha.36 - 2025-10-15”v3.0.0-alpha.35 - 2025-10-14
Section titled “v3.0.0-alpha.35 - 2025-10-14”v3.0.0-alpha.34 - 2025-10-06
Section titled “v3.0.0-alpha.34 - 2025-10-06”v3.0.0-alpha.33 - 2025-10-04
Section titled “v3.0.0-alpha.33 - 2025-10-04”v3.0.0-alpha.32 - 2025-10-02
Section titled “v3.0.0-alpha.32 - 2025-10-02”v3.0.0-alpha.31 - 2025-09-27
Section titled “v3.0.0-alpha.31 - 2025-09-27”v3.0.0-alpha.30 - 2025-09-26
Section titled “v3.0.0-alpha.30 - 2025-09-26”v3.0.0-alpha.29 - 2025-09-25
Section titled “v3.0.0-alpha.29 - 2025-09-25”Changed
Section titled “Changed”v3.0.0-alpha.29 - 2025-09-25
Section titled “v3.0.0-alpha.29 - 2025-09-25”Changed
Section titled “Changed”v3.0.0-alpha.27 - 2025-09-07
Section titled “v3.0.0-alpha.27 - 2025-09-07”v3.0.0-alpha.26 - 2025-08-24
Section titled “v3.0.0-alpha.26 - 2025-08-24”v3.0.0-alpha.25 - 2025-08-16
Section titled “v3.0.0-alpha.25 - 2025-08-16”Changed
Section titled “Changed”no longer ignored, and override the config value.
v3.0.0-alpha.24 - 2025-08-13
Section titled “v3.0.0-alpha.24 - 2025-08-13”v3.0.0-alpha.23 - 2025-08-11
Section titled “v3.0.0-alpha.23 - 2025-08-11”v3.0.0-alpha.22 - 2025-08-10
Section titled “v3.0.0-alpha.22 - 2025-08-10”Changed
Section titled “Changed”- Fix extra-broad Linux package dependencies, fix outdated RPM dependencies.
v3.0.0-alpha.21 - 2025-08-07
Section titled “v3.0.0-alpha.21 - 2025-08-07”v3.0.0-alpha.20 - 2025-08-06
Section titled “v3.0.0-alpha.20 - 2025-08-06”v3.0.0-alpha.19 - 2025-08-05
Section titled “v3.0.0-alpha.19 - 2025-08-05”v3.0.0-alpha.18 - 2025-08-03
Section titled “v3.0.0-alpha.18 - 2025-08-03”v3.0.0-alpha.17 - 2025-07-31
Section titled “v3.0.0-alpha.17 - 2025-07-31”v3.0.0-alpha.16 - 2025-07-25
Section titled “v3.0.0-alpha.16 - 2025-07-25”v3.0.0-alpha.15 - 2025-07-25
Section titled “v3.0.0-alpha.15 - 2025-07-25”v3.0.0-alpha.14 - 2025-07-25
Section titled “v3.0.0-alpha.14 - 2025-07-25”v3.0.0-alpha.12 - 2025-07-15
Section titled “v3.0.0-alpha.12 - 2025-07-15”v3.0.0-alpha.11 - 2025-07-12
Section titled “v3.0.0-alpha.11 - 2025-07-12”v3.0.0-alpha.10 - 2025-07-06
Section titled “v3.0.0-alpha.10 - 2025-07-06”Breaking Changes
Section titled “Breaking Changes”Changed
Section titled “Changed”v3.0.0-alpha.9 - 2025-01-13
Section titled “v3.0.0-alpha.9 - 2025-01-13”Changed
Section titled “Changed”v3.0.0-alpha.8.3 - 2024-12-07
Section titled “v3.0.0-alpha.8.3 - 2024-12-07”Changed
Section titled “Changed”v3.0.0-alpha.8.2 - 2024-12-07
Section titled “v3.0.0-alpha.8.2 - 2024-12-07”Changed
Section titled “Changed”go install by @leaanthony
v3.0.0-alpha.8.1 - 2024-12-07
Section titled “v3.0.0-alpha.8.1 - 2024-12-07”Changed
Section titled “Changed”go install by @leaanthony
v3.0.0-alpha.8 - 2024-12-06
Section titled “v3.0.0-alpha.8 - 2024-12-06”@atterpac in #3909 ansxuman in #3902 atterpac in #3867 by atterpac in #3829 leaanthony FerroO2000 in #3856 #3873 leaanthony positioned at the given X/Y location by leaanthony in #3885 ansxuman and leaanthony in #3823 by leaanthony in #3766 leaanthony in #3888 leaanthony.
Section titled “@atterpac in #3909 ansxuman in #3902 atterpac in #3867 by atterpac in #3829 leaanthony FerroO2000 in #3856 #3873 leaanthony positioned at the given X/Y location by leaanthony in #3885 ansxuman and leaanthony in #3823 by leaanthony in #3766 leaanthony in #3888 leaanthony.”Changed
Section titled “Changed”service.OnShutdownfor any prior services that started by @atterpac in
#3920
@atterpac in #3907
subfolders by @atterpac in
#3887
#3748
leaanthony
etesam913 in
#3778
northes in
#3836
#3827
leaanthony
@leaanthony
@leaanthony
(superseded by EnabledFeatures and DisabledFeatures options) by
leaanthony
channel variable by @michael-freling in
#3925
ansxuman in
#3924
#3898
#3901
in #3886
leaanthony in
#3841
PasteAndMatchStyle role in the edit menu on Darwin by
johnmccabe in
#3839
#3840 in
#3854 by
kodflow
@leaanthony
are different. by @nickisworking in
#3789
v3.0.0-alpha.7 - 2024-09-18
Section titled “v3.0.0-alpha.7 - 2024-09-18”mmghv in #3665 #3682 atterpac and leaanthony in #3570
Changed
Section titled “Changed”Application Events OnWindowEvent -> Window Events, by
leaanthony
#3734
branches prefixed with v3/ or v3- by
stendler in
#3747
etesam913 in #3742 atterpac in #3721 atterpac in #3675 #1811 in #3614 by @stendler #3720 by leaanthony #3693 by @DeltaLaboratory #3720 by leaanthony #3693 by @DeltaLaboratory leaanthony #3746 by @stendler leaanthony
v3.0.0-alpha.6 - 2024-07-30
Section titled “v3.0.0-alpha.6 - 2024-07-30”v3.0.0-alpha.5 - 2024-07-30
Section titled “v3.0.0-alpha.5 - 2024-07-30”#3580
#3580
icon click by @5aaee9 in #2991
#2618
@fbbdev in
#3282
@Atterpac
in#3022
@marcus-crane in
#3146
PR
PR
@fbbdev in
#3281
aba82cc
based on PR by @Mai-Lapyst
@fbbdev in
#3295
@fbbdev in
#3295
@fbbdev in
#3295
the npm package by @fbbdev in
#3334
in #3354
WAILS_VITE_PORT by @abichinger in
#3429
@abichinger in
#3431
@bruxaodev in
#3667
@OlegGulevskyy in
#3674
#3606
tmclane in
#3515
atterpac in
#3512
atterpac in
#3477
by Atterpac in
#3320.
in #3306.
#2972.
#2982
mmghv in
#2750.
#2753.
jaybeecave in
#3052.
@pylotlight in
PR
installed. Added by @pylotlight in
PR
PR
spaces - @leaanthony.
thomas-senechal in PR
#3207
thomas-senechal in PR
#3208
attached window tw1nk in PR
#3271
#3273
@fbbdev in
#3279
FRONTEND_DEVSERVER_URL is present.
#3299
@fbbdev in
#3295
listeners by @fbbdev in
#3295
@abichinger in
#3330
generator by @fbbdev in
#3334
generator by @fbbdev in
#3334
@abichinger in
#3346
@hfoxy in
#3417
@hfoxy in
#3426
@fbbdev in
#3431
@fbbdev in
#3431
by @pekim in
#3458
@robin-samuel.
PR #3466 by
@5aaee9.
@windom in
#3636.
Windows by @bruxaodev in
#3691.
Changed
Section titled “Changed”mmghv in
#3611
support Ubuntu 24.04 LTS by atterpac in
#3461
must have the type="module" attribute. By
@fbbdev in
#3295
object, and does not start the WML system. This has been done to improve
encapsulation. The WML system can be started manually if desired by calling
the new WML.Enable method. The bundled JS runtime script still performs both
operations automatically. By @fbbdev in
#3295
window object as a default export. It is not possible anymore to import
individual methods through ESM named or namespace import syntax.
API. Some methods have changed name or prototype, specifically: Screen
becomes GetScreen; GetZoomLevel/SetZoomLevel become GetZoom/SetZoom;
GetZoom, Width and Height now return values directly instead of wrapping
them within objects. By @fbbdev in
#3295
has been removed. Use the -names CLI option to switch back to calls by name.
By @fbbdev in
#3468
named after their containing package; now full Go import paths are used,
including the module path. By @fbbdev in
#3468
application.Options.Services. By @fbbdev in
#3468
call to application.NewService. By @fbbdev in
#3468
@DeltaLaboratory in
#3574