Wails v3.0.0-alpha2.109
- Add code samples to EventsEmit documentation in PR by @iamhabbeboy
- Add Windows WebView2 visual hosting option in PR by @MerIijn
- Add Klustr to community showcase documentation in PR by @SametKUM
- Add Kira to community showcase with new pages and changelog entry in PR by @thiennguyen93
- Add feedback section to MCP service guide in PR by @taliesin-ai
- Server mode now has a first-class production build, consistent with the desktop build tasks (#5693).
task build:serverbuilds a production binary by default (-tags server,production,-trimpath, stripped), and acceptsDEV=true(development server),OBFUSCATED=true(garble) andEXTRA_TAGS.task run:serverruns a development server.Dockerfile.server/task build:dockerbuild the production server (-tags server,production) and the production frontend first; the image defaults to a pure-Go static build on distroless/static, withCGO_ENABLED,GO_IMAGEandRUNTIME_IMAGEexposed as overridable build args for CGO apps.
- Prevent crash when closing window with pending async calls in PR by @leaanthony
- Prevent window activation when opening hidden apps on Windows in PR by @leaanthony
- Ensure WebKit request metadata, response completion, and body stream handling run on the GTK main thread in PR by @taliesin-ai
- Fix
Menu.Update()not rebuilding the native menu on GTK4 Linux (#5659, independently diagnosed and fixed by @puneetdixit200 in #5539) - Fix crash enumerating macOS screens on display change by copying screen id/name strings and snapshotting the count (#5565, independently diagnosed and fixed by @x-haose in #5584)
- Fix WebView2 content shrinking then disappearing after dragging a window across mixed-DPI monitors on Windows by re-asserting the controller bounds in the
WM_DPICHANGEDhandler, mirroring the un-minimise DPI resync (#5677)
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.109
Wails v3.0.0-alpha2.108
- Add global (system-wide) keyboard shortcuts via
app.GlobalShortcut(Register,Unregister,UnregisterAll,IsRegistered,GetAll). Shortcuts fire even when the application is not focused. Implemented natively per platform with no third party dependencies: Carbon hot keys on macOS,RegisterHotKeyon Windows,XGrabKeyon X11, and the XDG Desktop Portal global shortcuts interface on Wayland. - Add built-in MCP server: a Model Context Protocol server that starts automatically when the application is built with the
mcptag, letting LLM agents test and control a running Wails application — window control, DOM inspection, JavaScript evaluation, bound method calls, events and simulated mouse/keyboard input rendered with an animated on-screen cursor. No user code required: themcptag is added automatically bywails3 build/wails3 devwhenWAILS_MCP=1is set. Configured entirely via environment variables (WAILS_MCP_HOST,WAILS_MCP_PORT,WAILS_MCP_TIMEOUT,WAILS_MCP_HIDE_CURSOR).
- Fix
Menu.Update()not rebuilding the native menu on GTK4 Linux (#5659, independently diagnosed and fixed by @puneetdixit200 in #5539) - Fix crash enumerating macOS screens on display change by copying screen id/name strings and snapshotting the count (#5565, independently diagnosed and fixed by @x-haose in #5584)
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.108
Wails v3.0.0-alpha2.107
- Add experimental Wake documentation with sidebar navigation in PR by @leaanthony
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.107
Wails v3.0.0-alpha2.106
- Bump
webview2to v1.0.27.- ci(webview2): fix release build (cross-compile Windows + complete go.sum) (#5671) Full diff: https://github.com/wailsapp/wails/compare/webview2/v1.0.26...webview2/v1.0.27
- Remove go vet from webview2 release workflow cross-compilation in PR by @taliesin-ai
- Update auto-changelog OpenRouter model to google/gemini-2.5-flash-lite in PR by @taliesin-ai
- Bump
webview2to v1.0.26.
- Recover from transient runtime COM errors instead of exiting (#5658, #5580).
Chromium.errorCallbackpreviously calledos.Exit(1)for any COM error, so a recoverable hiccup after startup killed the whole application. Runtime paths (Resize/GetClientRect,Navigate/NavigateToString,Init,MessageReceived,PutZoomFactor,OpenDevToolsWindow) now log and recover. In particular, a malformed/untrusted web message inMessageReceivedis now dropped rather than taking the process down. This addresses the mixed-DPI monitor-crossing crash class (#5544, #5650). Environment/controller-creation paths remain fatal. Full diff: https://github.com/wailsapp/wails/compare/webview2/v1.0.25...webview2/v1.0.26
- Fix release-webview2 workflow to correctly handle go.sum files in PR by @taliesin-ai
- Fix Linux GTK4 menu updates by clearing and rebuilding the native menu in PR by @taliesin-ai
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.106
webview2 v1.0.27
- ci(webview2): fix release build (cross-compile Windows + complete go.sum) (#5671)
Full diff: https://github.com/wailsapp/wails/compare/webview2/v1.0.26...webview2/v1.0.27
webview2 v1.0.26
- Recover from transient runtime COM errors instead of exiting (#5658, #5580).
Chromium.errorCallbackpreviously calledos.Exit(1)for any COM error, so a recoverable hiccup after startup killed the whole application. Runtime paths (Resize/GetClientRect,Navigate/NavigateToString,Init,MessageReceived,PutZoomFactor,OpenDevToolsWindow) now log and recover. In particular, a malformed/untrusted web message inMessageReceivedis now dropped rather than taking the process down. This addresses the mixed-DPI monitor-crossing crash class (#5544, #5650). Environment/controller-creation paths remain fatal.
Full diff: https://github.com/wailsapp/wails/compare/webview2/v1.0.25...webview2/v1.0.26
Wails v3.0.0-alpha2.105
- Add
application.Systemfor runtime platform detection from shared code:System.IsMobile()(iOS/Android),System.IsDesktop()(macOS/Windows/Linux),System.IsServer()(theserverbuild tag), andSystem.IsPlatform(application.PlatformMacOS|PlatformWindows|PlatformLinux|PlatformIOS|PlatformAndroid|PlatformServer)to test a single target directly. It compiles on every target so you can branch without build tags. Matching frontend helpers (System.IsMobile/IsDesktop/IsIOS/IsAndroid/...) are available in@wailsio/runtime - Add a "Using Other Frontend Frameworks" guide showing how to drop your own Vite project into
frontend/(covers Solid, Preact, Lit, SvelteKit, Qwik, Angular, etc.) - The
wails3 setupwizard now checks the mobile (iOS/Android) toolchain — Xcode and the iOS Simulator runtime, JDK, Android SDK/NDK and emulator — with one-click install and copyable shell-config fixes where applicable - Generated projects ship a
frontend/.npmrcsetting a 7-dayminimum-release-ageto reduce exposure to freshly published (potentially compromised) packages (honoured by pnpm and bun; harmlessly ignored by npm)
- Redesign all built-in starter templates with a new neon-mountain hero look (web, iOS and Android)
- TypeScript is now the default for starter templates and owns the bare template name.
wails3 init(no-t) scaffolds a TypeScript project;-t vanilla,-t react,-t vueand-t svelteare TypeScript, with JavaScript variants at-t vanilla-js,-t react-js,-t vue-jsand-t svelte-js. Built-in templates declare their language withtypescript:intemplate.yaml; community templates using the-tssuffix continue to work as a fallback - Redesign the
wails3 setupwizard with the neon "digital Wails" theme (frosted-glass vibrancy over a mountain backdrop)
- Fix crash on Windows when restoring an app that was minimised long enough for WebView2 to suspend or its render/GPU process to be recycled. The minimise/restore DPI resync (#5544) now only touches the WebView2 controller when the window's DPI actually changed, avoiding fatal COM calls into a suspended controller on the common same-DPI restore (#5605)
- Fix repeated native
SIGABRT/SIGSEGVcrashes (typically insideg_object_unrefduring the GTK main loop) on long-running Linux apps under frequent asset/media loads. The asset server completedWebKitURISchemeRequests from worker goroutines, calling thread-unsafe WebKit2GTK functions off the GTK main thread; completion (webkit_uri_scheme_request_finish_with_response/finish_error) now runs on the main thread. Completes the partial fix in #5566. Affects both the GTK3 and GTK4/WebKitGTK 6.0 builds (#5631, #5557) - Fix intermittent
fatal error: invalid pointer found on stackinsetupSignalHandlerson Linux/GTK3. Window IDs passed as signaluser_datawere held in a Gounsafe.Pointerlocal, so the garbage collector aborted when it scanned the (non-pointer) value during a stack copy. The ID is now kept integer-typed (uintptr_t) on the Go side, back-porting to the legacy GTK3 path the same fix #4958 applied to the GTK4 path (which switched the C signal functions touintptr_tto clear-race/checkptr errors) (#5631)
- Remove the
react-swc,preact,lit,solid,qwikandsveltekitstarter templates (and their-tsvariants). The supported built-in set is nowvanilla,react,vueandsvelte— each TypeScript by default, with-jsJavaScript variants. Any other framework can still be used by bringing your own frontend or via a custom template
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.105
Wails v3.0.0-alpha2.104
- Fix an iOS crash (SIGABRT) when a bound Go service method returns an empty string. The iOS asset response writer guarded the body pointer with
buf != nilinstead of its length, so a zero-length body made&buf[0]panic; it now guards on length, matching the desktop writers
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.104
Wails v3.0.0-alpha2.103
- Move iOS and Android native features onto platform managers: call them via
application.IOS.*andapplication.Android.*(e.g.application.IOS.Haptic("medium"),application.Android.Share(payload)) instead of the oldapplication.IOS*/application.Android*free functions (#5602) - Rename mobile bridge events: cross-platform events now use the
common:*prefix (e.g.common:haptic,common:location) and platform-exclusive events useios:*/android:*(e.g.ios:backgroundTask,android:foregroundService); thenative:*prefix is no longer used (#5602)
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.103
Wails v3.0.0-alpha.102
- Add experimental
wails3 setupwizard for interactive project setup and dependency checking - Add
--jsonflag towails3 doctorfor machine-readable output - Add signing status section to
wails3 doctorcommand
- Fix npm detection on Linux to check PATH in addition to package manager
🤖 This is an automated nightly release generated from the latest changes on master.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.102