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.

*/

[Unreleased]

Breaking Changes

  • Renamed Service methods: Name -> ServiceName, OnStartup -> ServiceStartup, OnShutdown -> ServiceShutdown by @leaanthony

Added

Fixed

  • 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

Changed

  • Removed application.WindowIDKey and application.WindowNameKey (replaced by application.WindowKey) 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

v3.0.0-alpha.9 - 2025-01-13

Added

  • 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

Fixed

  • 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

Changed

  • 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

v3.0.0-alpha.8.3 - 2024-12-07

Changed

  • Ensure fork of taskfile is used by @leaanthony

v3.0.0-alpha.8.2 - 2024-12-07

Changed

  • Update fork of Taskfile to fix version issues when installing using go install by @leaanthony

v3.0.0-alpha.8.1 - 2024-12-07

Changed

  • Using fork of Taskfile to fix version issues when installing using go install by @leaanthony

v3.0.0-alpha.8 - 2024-12-06

Added

  • Added hyperlink for sponsor by @ansxuman in #3958
  • Support of linux packaging of deb,rpm, and arch linux packager builds by @atterpac in #3909
  • Added Support for darwin universal builds and packages by ansxuman in #3902
  • Events documentation to the website by atterpac in #3867
  • Templates for sveltekit and sveltekit-ts that are set for non-SSR development by atterpac in #3829
  • Update build assets using new wails3 update build-assets command by leaanthony
  • Example to test the HTML Drag and Drop API by FerroO2000 in #3856
  • File Association support by leaanthony in #3873
  • New wails3 generate runtime command by leaanthony
  • New InitialPosition option to specify if the window should be centered or positioned at the given X/Y location by leaanthony in #3885
  • Add Path & Paths methods to application package by ansxuman and leaanthony in #3823
  • Added GeneralAutofillEnabled and PasswordAutosaveEnabled Windows options by leaanthony in #3766
  • Added the ability to retrieve the window calling a service method by leaanthony in #3888
  • Added EnabledFeatures and DisabledFeatures options for Webview2 by leaanthony.

Changed

  • service.OnStartup now shutdowns the application on error and runs service.OnShutdownfor any prior services that started by @atterpac in #3920
  • Refactored systray click messaging to better align with user interactions by @atterpac in #3907
  • Asset embed to include all:frontend/dist to support frameworks that generate subfolders by @atterpac in #3887
  • Taskfile refactor by leaanthony in #3748
  • Upgrade to go-webview2 v1.0.16 by leaanthony
  • Fixed Screen type to include ID not Id by etesam913 in #3778
  • Update go.mod.tmpl wails version to support application.ServiceOptions by northes in #3836
  • Fixed service name determination by windom in #3827
  • mkdocs serve now uses docker by leaanthony
  • Consolidated dev config into config.yml by leaanthony
  • Systray dialog now defaults to the application icon if available (Windows) by @leaanthony
  • Better reporting of GPU + Memory for macOS by @leaanthony
  • Removed WebviewGpuIsDisabled and EnableFraudulentWebsiteWarnings (superseded by EnabledFeatures and DisabledFeatures options) by leaanthony

Fixed

  • Fixed deadlock in Linux dialog for multiple selections caused by unclosed channel variable by @michael-freling in #3925
  • Fixed cross-platform cleanup for .syso files during Windows build by ansxuman in #3924
  • Fixed amd64 appimage compile by @atterpac in #3898
  • Fixed build assets update by @ansxuman in #3901
  • Fixed Linux systray OnClick and OnRightClick implementation by @atterpac in #3886
  • Fixed AlwaysOnTop not working on Mac by leaanthony in #3841
  •  Fixed application.NewEditMenu including a duplicate PasteAndMatchStyle role in the edit menu on Darwin by johnmccabe in #3839
  • 🐧 Fixed aarch64 compilation #3840 in #3854 by kodflow
  • ⊞ Fixed radio group menu items by @leaanthony
  • Fix error on building runnable .app on MacOS when ‘name’ and ‘outputfilename’ are different. by @nickisworking in #3789

v3.0.0-alpha.7 - 2024-09-18

Added

  • ⊞ New DIP system for Enhanced High DPI Monitor Support by mmghv in #3665
  • ⊞ Window class name option by windom in #3682
  • Services have been expanded to provide plugin functionality. By atterpac and leaanthony in #3570

Changed

  • Events API change: On/Emit -> user events, OnApplicationEvent -> Application Events OnWindowEvent -> Window Events, by leaanthony
  • Fix for Events API on Linux by TheGB0077 in #3734
  • [CI] improvements to actions & enable to run actions also in forks and branches prefixed with v3/ or v3- by stendler in #3747

Fixed

v3.0.0-alpha.6 - 2024-07-30

Fixed

  • Module issues

v3.0.0-alpha.5 - 2024-07-30

Added

  • 🐧 WindowDidMove / WindowDidResize events in #3580
  • ⊞ WindowDidResize event in #3580
  •  add Event ApplicationShouldHandleReopen to be able to handle dock icon click by @5aaee9 in #2991
  •  add getPrimaryScreen/getScreens to impl by @tmclane in #2618
  •  add option for showing the toolbar in fullscreen mode on macOS by @fbbdev in #3282
  • 🐧 add onKeyPress logic to convert linux keypress into an accelerator @Atterpac in#3022
  • 🐧 add task run:linux by @marcus-crane in #3146
  • Export SetIcon method by @almas1992 in PR
  • Improve OnShutdown by @almas1992 in PR
  • Restore ToggleMaximise method in Window interface by @fbbdev in #3281
  • Added more information to Environment(). By @leaanthony in aba82cc based on PR by @Mai-Lapyst
  • Expose the WebviewWindow.IsFocused method on the Window interface by @fbbdev in #3295
  • Support multiple space-separated trigger events in the WML system by @fbbdev in #3295
  • Add ESM exports from the bundled JS runtime script by @fbbdev in #3295
  • Add binding generator flag for using the bundled JS runtime script instead of the npm package by @fbbdev in #3334
  • Implement setIcon on linux by @abichinger in #3354
  • Add flag -port to dev command and support environment variable WAILS_VITE_PORT by @abichinger in #3429
  • Add tests for bound method calls by @abichinger in #3431
  • ⊞ add SetIgnoreMouseEvents for already created window by @bruxaodev in #3667
  •  Add ability to set a window’s stacking level (order) by @OlegGulevskyy in #3674

Fixed

  • Fixed resize event messaging by atterpac in #3606
  • 🐧Fixed theme handling error on NixOS by tmclane in #3515
  • Fixed cross volume project install for windows by atterpac in #3512
  • Fixed react template css to show footer by atterpac in #3477
  • Fixed zombie processes when working in devmode by updating to latest refresh by Atterpac in #3320.
  • Fixed appimage webkit file sourcing by Atterpac in #3306.
  • Fixed Doctor apt package verify by Atterpac in #2972.
  • Fixed application frozen when quit (Darwin) by @5aaee9 in #2982
  • Fixed background colours of examples on Windows by mmghv in #2750.
  • Fixed default context menus by mmghv in #2753.
  • Fixed hex values for arrow keys on Darwin by jaybeecave in #3052.
  • Set drag-n-drop for windows to working. Added by @pylotlight in PR
  • Fixed bug for linux in doctor in the event user doesn’t have proper drivers installed. Added by @pylotlight in PR
  • Fix dpi scaling on start up (windows). Changed by @almas1992 in PR
  • Fix replace line in go.mod to use relative paths. Fixes Windows paths with spaces - @leaanthony.
  • Fix MacOS systray click handling when no attached window by thomas-senechal in PR #3207
  • Fix failing Windows build due to unknown option by thomas-senechal in PR #3208
  • Fix crash on windows left clicking the systray icon when not having an attached window tw1nk in PR #3271
  • Fix wrong baseURL when open window twice by @5aaee9 in PR #3273
  • Fix ordering of if branches in WebviewWindow.Restore method by @fbbdev in #3279
  • Correctly compute startURL across multiple GetStartURL invocations when FRONTEND_DEVSERVER_URL is present. #3299
  • Fix the JS type of the Screen struct to match its Go counterpart by @fbbdev in #3295
  • Fix the WML.Reload method to ensure proper cleanup of registered event listeners by @fbbdev in #3295
  • Fix custom context menu closing immediately on linux by @abichinger in #3330
  • Fix the output path and extension of model files produced by the binding generator by @fbbdev in #3334
  • Fix the import paths of model files in JS code produced by the binding generator by @fbbdev in #3334
  • Fix drag-n-drop on some linux distros by @abichinger in #3346
  • Fix missing task for macOS when using wails3 task dev by @hfoxy in #3417
  • Fix registering events causing a nil map assignment by @hfoxy in #3426
  • Fix unmarshaling of bound method parameters by @fbbdev in #3431
  • Fix handling of multiple return values from bound methods by @fbbdev in #3431
  • Fix doctor detection of npm that is not installed with system package manager by @pekim in #3458
  • Fix missing MicrosoftEdgeWebview2Setup.exe. Thanks to @robin-samuel.
  • Fix random crash on linux due to window ID handling by @leaanthony. Based on PR #3466 by @5aaee9.
  • Fix systemTray.setIcon crashing on Linux by @windom in #3636.
  • Fix Ensure Window Frame is Applied on First Call in setFrameless Function on Windows by @bruxaodev in #3691.

Changed

  • Renamed AbsolutePosition() to Position() by mmghv in #3611
  • Update linux webkit dependency to webkit2gtk-4.1 over webkitgtk2-4.0 to support Ubuntu 24.04 LTS by atterpac in #3461
  • The bundled JS runtime script is now an ESM module: script tags importing it must have the type="module" attribute. By @fbbdev in #3295
  • The @wailsio/runtime package does not publish its API on the window.wails 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
  • The Window API module @wailsio/runtime/src/window now exposes the containing window object as a default export. It is not possible anymore to import individual methods through ESM named or namespace import syntax.
  • The JS window API has been updated to match the current Go WebviewWindow 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
  • The binding generator now uses calls by ID by default. The -id CLI option has been removed. Use the -names CLI option to switch back to calls by name. By @fbbdev in #3468
  • New binding code layout: output files were previously organised in folders named after their containing package; now full Go import paths are used, including the module path. By @fbbdev in #3468
  • The struct field application.Options.Bind has been renamed to application.Options.Services. By @fbbdev in #3468
  • New syntax for binding services: service instances must now be wrapped in a call to application.NewService. By @fbbdev in #3468
  • Disable spinner on Non-Terminal or CI Environment by @DeltaLaboratory in #3574