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
- 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 - Better panic handling by @leaanthony
- New Menu guide by @leaanthony
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
andapplication.WindowNameKey
(replaced byapplication.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 pathpath
with optional highlighting viaselectFile
by @Krzysztofz01 @rcalixte- New
-git
flag forwails3 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 @leaanthonywails3 releasenotes
command by @leaanthonywails3 update cli
command by @leaanthony-clean
option forwails3 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 toWindowClosing
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 toapplication
package by ansxuman and leaanthony in #3823 - Added
GeneralAutofillEnabled
andPasswordAutosaveEnabled
Windows options by leaanthony in #3766 - Added the ability to retrieve the window calling a service method by leaanthony in #3888
- Added
EnabledFeatures
andDisabledFeatures
options for Webview2 by leaanthony.
Changed
service.OnStartup
now shutdowns the application on error and runsservice.OnShutdown
for 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 includeID
notId
by etesam913 in #3778 - Update
go.mod.tmpl
wails version to supportapplication.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
andEnableFraudulentWebsiteWarnings
(superseded byEnabledFeatures
andDisabledFeatures
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
andOnRightClick
implementation by @atterpac in #3886 - Fixed
AlwaysOnTop
not working on Mac by leaanthony in #3841 - Fixed
application.NewEditMenu
including a duplicatePasteAndMatchStyle
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 EventsOnWindowEvent
-> 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/
orv3-
by stendler in #3747
Fixed
- Fixed bug with usage of customEventProcessor in drag-n-drop example by etesam913 in #3742
- 🐧 Fixed linux compile error introduced by IgnoreMouseEvents addition by atterpac in #3721
- ⊞ Fixed syso icon file generation bug by atterpac in #3675
- 🐧 Fix to run natively in wayland incorporated from #1811 in #3614 by @stendler
- Do not bind internal service methods in #3720 by leaanthony
- ⊞ Fixed system tray startup panic in #3693 by @DeltaLaboratory
- Do not bind internal service methods in #3720 by leaanthony
- ⊞ Fixed system tray startup panic in #3693 by @DeltaLaboratory
- Major menu item refactor and event handling. Mainly improves macOS for now. By leaanthony
- Fix tests after plugins and event refactor in #3746 by @stendler
- ⊞ Fixed
Failed to unregister class Chrome_WidgetWin_0
warning. By leaanthony
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 inWindow
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 theWindow
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 variableWAILS_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 multipleGetStartURL
invocations whenFRONTEND_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()
toPosition()
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 thewindow.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 newWML.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
becomesGetScreen
;GetZoomLevel
/SetZoomLevel
becomeGetZoom
/SetZoom
;GetZoom
,Width
andHeight
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 toapplication.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