Skip to content

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.

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

*/

/* ** PLEASE DO NOT UPDATE THIS FILE ** Updates should be added to v3/UNRELEASED_CHANGELOG.md Thank you! */

  • 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 GetBadge method to the dock service
  • Add -tags flag to wails3 build command 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 -tags flag to wails3 build command 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/libpath package 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 Handlers in the docs for Listening to Events in JavaScript by @AbdelhadiSeddar
  • Add UseApplicationMenu option to WebviewWindowOptions allowing windows on Windows/Linux to inherit the application menu set via app.Menu.Set() by @leaanthony
  • Add support for using .icon files (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 with wails3 task build:server. See examples/server for details.
  • Add internal/libpath package for finding native library paths on Linux with parallel search, caching, and support for Flatpak/Snap/Nix
  • Add CollectionBehavior option to MacWindow for 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_TYPE to wails3 doctor output on Linux by @leaanthony
  • Add additional WebKit2 load-change events for Linux: WindowLoadStarted, WindowLoadRedirected, WindowLoadCommitted, WindowLoadFinished (#3896) by @leaanthony
  • Add XDG_SESSION_TYPE to wails3 doctor output on Linux by @leaanthony
  • Generate .desktop file 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 doctor output 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-clock example 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 build and wails3 package aliases (#4422) by @leaanthony in PR
  • Support for dropzones with event sourcing dropped element data @atterpac in #4318
  • Added AdditionalLaunchArgs to WindowsWindow options 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 AdditionalLaunchArgs to WindowsWindow options 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 getAccentColor implementation by @almas-x in PR
  • Add Windows getAccentColor implementation 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.GetAccentColor to 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 doctor by @leaanthony
  • Add window to context when calling a service method by @leaanthony
  • Add window-call example 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.NewServiceWithOptions to 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, Show and Destroy support by @leaanthony
  • Systray SetTooltip support 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 omitzero JSON flag by @fbbdev in #4045
  • Add //wails:ignore directive to prevent binding generation for chosen service methods by @fbbdev in #4045
  • Add //wails:internal directive 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.Branding for improved OS version detection in #4065
  • Add PostShutdown hook for running custom code after the shutdown process completes by @fbbdev in #4066
  • Add FatalError struct 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 RegisterService method for registering services after the application has been created by @fbbdev in #4066
  • Add MarshalError field 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 AbortSignal by @fbbdev in #4100
  • Support data-wml-* attributes for WML alongside the usual wml-* attributes by @leaanthony
  • Add Configure method on all services for late configuration/dynamic reconfiguration by @fbbdev in #4067
  • fileserver service sends a 503 Service Unavailable response when unconfigured by @fbbdev in #4067
  • kvstore service provides an in-memory key-value store by default when unconfigured by @fbbdev in #4067
  • Add Load method on kvstore service to reload data from file after config changes by @fbbdev in #4067
  • Add Clear method on kvstore service to delete all keys by @fbbdev in #4067
  • Add type Level in log service to provide JS-side log-level constants by @fbbdev in #4067
  • Add Log method on log service to specify log-level dynamically by @fbbdev in #4067
  • sqlite service provides an in-memory DB by default when unconfigured by @fbbdev in #4067
  • Add method Close on sqlite service to close the DB manually by @fbbdev in #4067
  • Add cancellation support for query methods on sqlite service by @fbbdev in #4067
  • Add prepared statement support to sqlite service 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 version for 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 path path with optional highlighting via selectFile by @Krzysztofz01 @rcalixte
  • New -git flag for wails3 init command by @leaanthony
  • New wails3 generate webview2bootstrapper command by @leaanthony
  • Added init() method in runtime to allow manual initialisation of the runtime by @leaanthony
  • Added WindowDidMoveDebounceMS option to Window’s WindowOptions by @leaanthony
  • Added Single Instance feature by @leaanthony. Based on the v2 PR by @APshenkin.
  • wails3 generate template command by @leaanthony
  • wails3 releasenotes command by @leaanthony
  • wails3 update cli command by @leaanthony
  • -clean option for wails3 generate bindings command 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-assets command by
  • Example to test the HTML Drag and Drop API by
  • File Association support by leaanthony in
  • New wails3 generate runtime command by
  • New InitialPosition option to specify if the window should be centered or
  • Add Path & Paths methods to application package by
  • Added GeneralAutofillEnabled and PasswordAutosaveEnabled Windows options
  • Added the ability to retrieve the window calling a service method by
  • Added EnabledFeatures and DisabledFeatures options 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:linux by
  • Export SetIcon method by @almas-x in
  • Improve OnShutdown by @almas-x in
  • Restore ToggleMaximise method in Window interface by
  • Added more information to Environment(). By @leaanthony in
  • Expose the WebviewWindow.IsFocused method on the Window interface 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 setIcon on linux by @abichinger
  • Add flag -port to dev command and support environment variable
  • Add tests for bound method calls by
  • ⊞ add SetIgnoreMouseEvents for already created window by
  •  Add ability to set a window’s stacking level (order) by
  • Fix halved Screen.Bounds, WorkArea, and Size on Retina Macs by converting NSScreen point values to device pixels in the Physical* fields, and populate top-level Screen.X/Y so 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 doctor reporting 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-develwebkit2gtk3-devel, the correct openSUSE package name) (#5071)
  • Fix Unexpected token '<' error when /wails/custom.js is missing in desktop dev mode. Added explicit 404 handler for /wails/custom.js and case-insensitive Content-Type validation in loadOptionalScript to 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/runtime import examples across documentation (#4989)
  • Fix frameless window cannot be minimized on darwin (#4294)
  • Fix 20-30 minute hangs during wails3 build and wails3 dev by excluding node_modules/ from go-task’s up-to-date checking. Previously, the sources: "**/*" glob caused go-task to enumerate and checksum every file in node_modules/ (50-100k+ files with heavy dependencies like MUI), especially slow on Windows/NTFS (#4939)
  • Fix GTK4 build failure caused by C Screen typedef colliding with X11 Xlib.h (#4957)
  • Fix dock badge methods consistency on macOS
  • Fix InvisibleTitleBarHeight being 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 InvisibleTitleBarHeight enabled, 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/runtime npm 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\dialogs by @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() and SetPosition() 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.Add by @ndianabasi
  • Fix documentation regarding generating custom binding, must use -d String instead 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_NAME by @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.dyn ELF sections and disabling stripping (#4642) by @leaanthony
  • Fix wails doctor falsely reporting webkit packages as installed on Fedora/DNF-based systems (#4457) by @leaanthony
  • Fix default config.yml would run wails3 dev with 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.BackgroundColour on Linux (#4722, @BradHacker)
  • Fix Windows systray icon not defaulting to application icon when no custom icon is provided (#4704)
  • Track HICON ownership 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 allowsBackForwardNavigationGestures in 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 SaveFileDialog on windows. Fixed in PR by @hkhere
  • Fixed HTML level drag and drop on Windows by @mbaklor in #4259
  • Add support for allowsBackForwardNavigationGestures in 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 incorrect error 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 .html files when non-extension request when [request] doesn’t exist but [request].html does
  • Fixed icon generation paths by @robin-samuel in #4125
  • Fixed fullscreen, unfullscreen, unminimise and unmaximise events 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 OpenFileManager on 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 windowDidBecomeKey callback 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 OnClick and OnRightClick implementation by @atterpac
  • Fixed AlwaysOnTop not working on Mac by
  •  Fixed application.NewEditMenu including 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_0 warning. 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.mod to 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.Restore method by
  • Correctly compute startURL across multiple GetStartURL invocations when
  • Fix the JS type of the Screen struct to match its Go counterpart by
  • Fix the WML.Reload method 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 dev by
  • 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 setFrameless Function on
  • 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 | undefined instead of T, requiring null checks or assertions (#4943) by @fbbdev
  • Changed the use of Event into Events according to changes in @wailsio/runtime and appropriate function calls in the docs in Features/Events/Event System by @AbdelhadiSeddar
  • Move EnabledFeatures, DisabledFeatures, and AdditionalBrowserArgs from per-window options to application-level Options.Windows (#4559) by @leaanthony
  • Update the README for the Drag N Drop example and highlights that Internal Drag and Drop is demonstrated with the example @ndianabasi
  • Replace various debug logs from Info to Debug (by @mbaklor)
  • BREAKING: Rename EnableDragAndDrop to EnableFileDrop in window options
  • BREAKING: Rename DropZoneDetails to DropTargetDetails in event context
  • BREAKING: Rename DropZoneDetails() method to DropTargetDetails() on WindowEventContext
  • BREAKING: Remove WindowDropZoneFilesDropped event, use WindowFilesDropped instead
  • BREAKING: Change HTML attribute from data-wails-dropzone to data-file-drop-target
  • BREAKING: Change CSS hover class from wails-dropzone-hover to file-drop-target-active
  • BREAKING: Remove DragEffect, OnEnterEffect, OnOverEffect options 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 <=8 arguments 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/Y options @ruhuang2001
  • Update the Frontend Runtime documentation 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 the app.Dialog manager 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 (not SetButtons()), SetDefaultButton(*Button) (not string), AddFilter() (not SetFilters()), SetFilename() (not SetDefaultFilename()), and app.Dialog.OpenFile().CanChooseDirectories(true) for folder selection
  • BREAKING: Production builds are now the default. To create dev builds, set DEV=true in 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 toggling NIS_HIDDEN, so apps can truly disappear and return (#4653).
  • Tray registration reuses resolved icons, sets NOTIFYICON_VERSION_4 once, and enables NIF_SHOWTIP so tooltips recover after Explorer restarts (#4653).
  • macOS: Use visibleFrame instead of frame for window centering to exclude menu bar and dock areas
  • macOS: Use visibleFrame instead of frame for window centering to exclude menu bar and dock areas
  • When running wails3 update build-assets with the -config parameter, 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.WindowIDKey and application.WindowNameKey (replaced by application.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.NewService does not accept options as an optional parameter anymore (use application.NewServiceWithOptions instead) by @leaanthony in #4024
  • Removed nanoid dependency by @leaanthony
  • Updated Window example for mica/acrylic/tabbed window styles by @leaanthony
  • In JS/TS bindings, internal.js/ts model files have been removed; all models can now be found in models.js/ts by @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
  • ServiceStartup hooks are now invoked when App.Run is called, not in application.New by @fbbdev in #4066
  • ServiceStartup errors are now returned from App.Run instead 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 CancellablePromise that rejects with a CancelError if cancelled. The actual result of the call is discarded by @fbbdev in #4100
  • Built-in service types are now consistently called Service by @fbbdev in #4067
  • Built-in service creation functions with options are now consistently called NewWithConfig by @fbbdev in #4067
  • Select method on sqlite service is now named Query for 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.html is missing by @leaanthony
  • [Windows] Improved performance of minimise and restore by @leaanthony. Based on original PR by 562589540
  • Removed ShouldClose option (Register a hook for events.Common.WindowClosing instead) by @leaanthony
  • [Windows] Reduced flicker when opening a window by @leaanthony
  • Removed Window.Destroy as this was intended to be an internal function by @leaanthony
  • Renamed WindowClose events to WindowClosing by @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.OnStartup now shutdowns the application on error and runs
  • Refactored systray click messaging to better align with user interactions by
  • Asset embed to include all:frontend/dist to support frameworks that generate
  • Taskfile refactor by leaanthony in
  • Upgrade to go-webview2 v1.0.16 by
  • Fixed Screen type to include ID not Id by
  • Update go.mod.tmpl wails version to support application.ServiceOptions by
  • Fixed service name determination by windom in
  • mkdocs serve now uses docker by leaanthony
  • Consolidated dev config into config.yml by
  • Systray dialog now defaults to the application icon if available (Windows) by
  • Better reporting of GPU + Memory for macOS by
  • Removed WebviewGpuIsDisabled and EnableFraudulentWebsiteWarnings
  • 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() to Position() 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/runtime package does not publish its API on the window.wails
  • The Window API module @wailsio/runtime/src/window now 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 -id CLI option
  • New binding code layout: output files were previously organised in folders
  • The struct field application.Options.Bind has 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
  • BREAKING: Remove EnabledFeatures, DisabledFeatures, and AdditionalLaunchArgs from per-window WindowsWindow options. Use application-level Options.Windows.EnabledFeatures, Options.Windows.DisabledFeatures, and Options.Windows.AdditionalBrowserArgs instead. These flags apply globally to the shared WebView2 environment (#4559) by @leaanthony
  • Remove native IDropTarget implementation 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:WindowLoadChanged event - use linux:WindowLoadFinished instead for detecting when WebView has finished loading (#3896) by @leaanthony
  • 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 -> ServiceShutdown by @leaanthony
  • Moved Path and Paths methods to application package by @leaanthony
  • The application menu is now macOS only by @leaanthony

no longer ignored, and override the config value.

  • Fix extra-broad Linux package dependencies, fix outdated RPM dependencies.

go install by @leaanthony

go install by @leaanthony

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

mmghv in #3665 #3682 atterpac and leaanthony in #3570

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

#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.

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