Wails v3.0.0-beta.34
- Fix Windows webview not regaining focus on window activation, and Tab being trapped inside the webview instead of moving to the native window and back (#3783)
- Fix
internal/webview2/pkg/webview2COM vtable structs (ICoreWebView2_2.._27and other derived interfaces) omitting the inherited method chain, which made calls land on the wrong vtable slot (#6129) - Fix Windows question dialogs ignoring custom button labels and never firing button callbacks; custom buttons are now shown with a TaskDialog (falling back to MessageBox with positional callback mapping when comctl32 v6 is unavailable) (#5794)
- Fix
wails3 devhanging for 60s against Vite: the automatic frontend readiness gate now uses a TCP probe instead of an HTTP GET that sent noAcceptheader and received a 404 (#6209) - Keep systray menus working when updated while open in PR by @taliesin-ai
- Handle transient WebView2 COM errors gracefully in runtime operations 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-beta.34
v5.2.0
This release contains new features, improvements and bug fixes.
- US-1563 US-1566 US-1567 US-1568 Complete shading rendering support: function-based (Type 1), Gouraud triangle mesh (Types 4 and 5) and Coons / tensor-product patch mesh (Types 6 and 7) shadings, plus
Creator.NewFunctionBasedGradientfor authoring function-based gradients - US-1564 US-1565
PdfFunctionType3.Evaluatefor stitching functions and a generic shading color sampler for all function types and colorspaces - US-1569 Rendering of Type 1 tiling patterns
- US-1614 Rendering of the separable blend modes and non-isolated transparency group compositing
- US-1773 Rendering of
ExtGStatesoft masks, fixing axial ICCBased Multiply shadings rendering too dark, withmodel.NewPdfFunctionFromPdfObjectnow exported - US-1907 US-1908 Reading documents encrypted with the public-key security handler (
Adobe.PubSec) viaReaderOpts.Certificate/PrivateKey,PdfReader.DecryptWithCertificateandPdfReader.CheckAccessRightsWithCertificate - US-1909 US-1910 Encrypting documents for recipient certificates via
PdfWriter.EncryptForRecipients - US-1769 Template engine:
creator.ParseTemplatereturning a reusableParsedTemplate, rendered or validated withCreator.RenderTemplate/ValidateTemplate, plus named styles (<style>and theclassattribute) and typography inheritance - US-1772
Block.SetBackgroundandChapter.SetBackground, and page breaks inside aDivision, also available in templates - US-1779
SignatureValidationResult.CertificatesandSignatureValidationResult.SignerCertificatefor accessing certificate details - US-1814 FDF export of form field data from a PDF with
fdf.NewFromReader,fdf.NewFromFormandData.Write/WriteToFile, plusPdfAcroForm.AllFieldValues - US-1722 Form-field appearance generation for push buttons and signature fields with explicit clipping, and
PdfAppender.SignWithAppearance
- US-1613 The
shoperator shading fill now covers the clip region and honours axial/radialExtend - US-1717 The renderer honour the transparency group colorspace, isolation and knockout, so groups with a DeviceCMYK group colorspace no longer render nothing
- US-1718 Replaced the Multiply blend mode alpha hack with real per-primitive compositing, adding the non-separable blend modes (Hue, Saturation, Color, Luminosity)
- US-1807 Template strict mode reports a missing data key by name
- US-1929 Upgraded
github.com/unidoc/pkcs7to v0.4.1, hardening BER-to-DER conversion against malformed and truncated input - US-1945 Upgraded
golang.org/x/image,x/text,x/cryptoandx/netto fix reachable advisories
- US-1774 Fixed
GetPreviousRevisionand DocMDP revision sectioning disagreeing withRevisionEndOffsets - US-1775 Fixed the redactor refusing page-specific edits for forms nested inside other forms
- US-1777 Fixed redaction
Tjoffsets under anisotropic scaling, now computed from text-space glyph advances, withTextMark.Tfsadded for theTffont size - US-1778 Fixed the auto-repair xref health check running before authentication on encrypted files;
PdfWriternow encrypts object streams - US-1780 Fixed lazy stream encryption and reuse,
Image.Cropalpha loss andDecoderescaling - US-1795 Fixed a panic when loading a nested trailer with a non-integer
/Prev - US-1803 Fixed the
ExtractPageTextregression in v5.1.0 where form XObject text ignored the caller's color state - US-1805 Fixed template text on a component that cannot take text being silently dropped
- US-1806 Fixed multiple children in a template
table-cellorlist-itemsilently keeping only the last one - US-1811 Fixed the user password never authenticating when
EncryptOptions.Permissionsis zero, and addedsecurity.Permissions.Normalized - US-1815 Fixed AES-256 (R6) passwords not being SASLprep-normalised before hashing
- US-1827 Fixed template strict mode missing malformed gradients and a lone
header-start-row, and a panic on a nil template reader - US-1833 Fixed a fatal stack overflow when rendering a self-referential form XObject
- US-1837 Fixed table cell content overflow, so nested tables in table cells split across page breaks
- US-1840 Fixed image extraction and grayscale conversion crashing on a self-referential form XObject
- US-1843 Fixed signature validation reporting
IsVerifiedfor untrusted certificates (GHSA-h4pv-x6fp-rh2w): certificate trust and revocation are now checked withPdfReader.ValidateSignaturesWithOptsand reported throughIsTrusted,TrustChain,TrustErrorsandRevocationStatus - US-1844 Fixed stream decoding materializing unbounded decoded output (GHSA-2x38-rm6v-5hcj): decoding is now limited to 256 MiB per stream by default, configurable via
ReaderOpts.MaxDecodedStreamSize,ReaderOpts.MaxDecodedTotalSizeandcore.SetDefaultMaxDecodedStreamSize - US-1855 Fixed the R5/R6 empty-user-password fallback deriving the file key from the wrong password
- US-1860 Fixed a partial CRL revocation bypass in signature validation, with further trust and revocation fixes
- US-1862 Fixed nested tables in
Gridcells,Listitems andDivisions dropping content or hanging at page breaks - US-1885 Fixed AES-256 encryption with an empty owner password producing a file that opens without a password
- US-1938 Fixed
ResolveReferencesDeepoverflowing the stack inNewPdfReaderon deeply nested PDFs - US-1953 Fixed PubSec decryption revealing whether a recipient's RSA PKCS#1 v1.5 padding was valid (Bleichenbacher oracle)
v0.16.3
This is a security update fixing configured decoded-byte limit bypasses and restricting local image access in create and form input.
Applications handling untrusted PDFs or create/form input should upgrade.
Decoded-byte limits — GHSA-jp42-qm45-2x6g:
Honor Limits.MaxDecodeBytes across stream decoding and combined page content, and stop cross-reference repair after limit failures. Strengthen Flate predictor, DCT and cached-content checks, with regression coverage for strict/relaxed validation and eager/deferred decoding.
The limit bounds individual decoded streams and combined page content, not total process memory.
Additive Go API change: Add StreamDict.DecodeWithLimit and StreamDict.DecodeLengthWithLimit to supply the configured decode limit explicitly.
Local image access — GHSA-44h9-p34h-2w4p:
Confine local images referenced by create, form fill, and JSON/CSV form multifill input to an allowed directory. Reject absolute paths, parent-directory components, symlink escapes and non-regular files, and report access denials as errors.
Compatibility change: API callers must set conf.LocalImageRoot to enable local images; an empty value disables them. The CLI defaults to its working directory; set localImageRoot in config.yml to select another root. Update image paths to be relative to that root. Confined local images are unavailable on js/wasm. See local image access for migration guidance and limitations.
Documentation: Updated security policy clarifies vulnerability scope, supported releases and guidance for AI-assisted reports and multiple findings. Updated pull request template clarifies contribution requirements. Added local image configuration and migration guidance to README and website.
Requires Go 1.26 or later, unchanged from v0.16.2.
-
- 35ea259eb27d5a607f797edd41fd8a9e50a1f818 bump version
-
- 8befe54db401e8ed0ecb9d52aec700fa67b2972f confine local images in create and form input
-
- c1db2d55c0826689a129012fbac5a25d5fd3a39f honor configured decode limits across stream consumers
Wails v3.0.0-beta.33
- Binding generator now emits a
bindings/eventsmodule exporting a typed name constant for every discoverable event registered withapplication.RegisterEventusing a compile-time constant name (e.g.UserLoginforuser:login), usable withEvents.On/Emitwithout the Vite plugin (#5645)
- Fix Windows question dialogs ignoring custom button labels and never firing button callbacks; custom buttons are now shown with a TaskDialog (falling back to MessageBox with positional callback mapping when comctl32 v6 is unavailable) (#5794)
- Fix
wails3 devhanging for 60s against Vite: the automatic frontend readiness gate now uses a TCP probe instead of an HTTP GET that sent noAcceptheader and received a 404 (#6209) - Keep systray menus working when updated while open in PR by @taliesin-ai
- Handle transient WebView2 COM errors gracefully in runtime operations 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-beta.33
v1.6.0
- fix: accept Unicode minus in NewFromString by @Archiit19 in https://github.com/shopspring/decimal/pull/428
- chore: turn off the strings.ReplaceAll lint check, it needs Go 1.12 by @mwoss in https://github.com/shopspring/decimal/pull/458
- feat: BSON Decimal128 support for the MongoDB Go driver v2 by @mwoss in https://github.com/shopspring/decimal/pull/460
- feat: implement fmt.Formatter by @mwoss in https://github.com/shopspring/decimal/pull/463
- feat: add Normalize method by @mwoss in https://github.com/shopspring/decimal/pull/464
- feat: add Sqrt and SqrtRound by @mwoss in https://github.com/shopspring/decimal/pull/465
- docs: warn that global settings aren't goroutine-safe, list them in the README by @mwoss in https://github.com/shopspring/decimal/pull/466
- perf: use Sign() instead of Cmp(zeroInt) in IsInteger and Ceil by @cdpzyafk in https://github.com/shopspring/decimal/pull/299
- test: fix benchmarks that measured setup or the wrong function by @mwoss in https://github.com/shopspring/decimal/pull/467
- docs: fix doc examples that were wrong or didn't compile by @mwoss in https://github.com/shopspring/decimal/pull/468
- feat: Scan accepts Decimal, big.Int and all integer sizes by @mwoss in https://github.com/shopspring/decimal/pull/469
- fix: ExpHullAbrham drops significant figures for results below 1 by @binggao1230 in https://github.com/shopspring/decimal/pull/429
- fix: ExpHullAbrham returns the requested number of significant figures for large inputs by @mwoss in https://github.com/shopspring/decimal/pull/470
- perf: NewFromFloat uses strconv, drop the vendored strconv copy by @omegaatt36 in https://github.com/shopspring/decimal/pull/431
- feat: add NewFromBigFloat constructor by @AdamMagued in https://github.com/shopspring/decimal/pull/457
- fix: Ln rounds correctly, computed with error bounds like Pow by @mwoss in https://github.com/shopspring/decimal/pull/471
- feat: add Root and RootRound by @mwoss in https://github.com/shopspring/decimal/pull/473
- README: Fix URLs of the official Go org pages by @sryoya in https://github.com/shopspring/decimal/pull/264
- fix: clearer error when scanning NULL into a Decimal by @mwoss in https://github.com/shopspring/decimal/pull/474
- docs: show how to control the JSON format of one field by @mwoss in https://github.com/shopspring/decimal/pull/475
- docs: add udecimal to the alternative libraries by @mwoss in https://github.com/shopspring/decimal/pull/476
- fix: reject overflowing division precision by @yuefdev in https://github.com/shopspring/decimal/pull/472
- docs: changelog for v1.6.0 by @mwoss in https://github.com/shopspring/decimal/pull/477
- @Archiit19 made their first contribution in https://github.com/shopspring/decimal/pull/428
- @cdpzyafk made their first contribution in https://github.com/shopspring/decimal/pull/299
- @binggao1230 made their first contribution in https://github.com/shopspring/decimal/pull/429
- @omegaatt36 made their first contribution in https://github.com/shopspring/decimal/pull/431
- @AdamMagued made their first contribution in https://github.com/shopspring/decimal/pull/457
- @sryoya made their first contribution in https://github.com/shopspring/decimal/pull/264
- @yuefdev made their first contribution in https://github.com/shopspring/decimal/pull/472
Full Changelog: https://github.com/shopspring/decimal/compare/v1.5.0...v1.6.0
Wails v3.0.0-beta.32
- Add native macOS menu section headers for macOS 14+ — see the documentation site (20 pages updated) in PR by @leaanthony
- Make SetRelativePosition relative to screen work area on macOS in PR by @leaanthony
- Updater helper relaunches unchanged target after parent timeout or failed replacement in PR by @taliesin-ai
- Pin pnpm to version 10 for versioned docs 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-beta.32
v6.15.1
- Clarify the framework and its first project experience by @asim in https://github.com/micro/go-micro/pull/4990
- Simplify the README around the framework by @asim in https://github.com/micro/go-micro/pull/4991
- Add model.Decider with a TypeSafe implementation by @asim in https://github.com/micro/go-micro/pull/4992
- Remove community section from README by @asim in https://github.com/micro/go-micro/pull/4993
- Update copyright from 2026 to 2015 by @asim in https://github.com/micro/go-micro/pull/4994
- Update documentation links in README.md by @asim in https://github.com/micro/go-micro/pull/4995
- Simplify documentation into five focused guides by @asim in https://github.com/micro/go-micro/pull/4996
- Refactor feature list in README.md by @asim in https://github.com/micro/go-micro/pull/4998
- Fix documentation test failures and vulnerable Goldmark dependency by @asim in https://github.com/micro/go-micro/pull/4997
- Add framework blog update and remove the right sidebar by @asim in https://github.com/micro/go-micro/pull/4999
- Align provider setup and verify the service, agent and workflow journey by @asim in https://github.com/micro/go-micro/pull/5000
- Blog: Pull request #5000 by @asim in https://github.com/micro/go-micro/pull/5001
- Update _index.md by @asim in https://github.com/micro/go-micro/pull/5003
- Add OpenRouter model provider by @asim in https://github.com/micro/go-micro/pull/5004
- Clean up internal test, script and HTTP utility locations by @asim in https://github.com/micro/go-micro/pull/5005
- Make the service-to-agent journey work through chat and MCP by @asim in https://github.com/micro/go-micro/pull/5006
Full Changelog: https://github.com/micro/go-micro/compare/v6.15.0...v6.15.1
v1.76.0
v1.76.0 strengthens HTTP message framing, static-file isolation, and server connection handling. It also improves HTTP compatibility, avoids quadratic work when parsing large trailer sets, and adds configurable TCP keep-alives to TCPDialer.
- Multipart parsing consumes the entire declared body. Bytes after the closing multipart boundary are drained before the connection is reused, preventing a multipart epilogue from being interpreted as another request. #2336
- Outgoing messages preserve framing. Raw
Content-Lengthheaders are synchronized with the outgoing body, duplicate or conflicting framing headers are rejected, and fixed-length request and response streams cannot write beyond their declared size.FSandSendFilealso stop at the advertisedContent-Lengthwhen a file grows during serving. #2470, #2462 - Requests with both
Content-LengthandTransfer-Encodingclose the connection. The connection is no longer reused after a request containing both framing headers. #2476 - Virtual-host file serving preserves directory isolation.
NewVHostPathRewriteravoids decoding the host and path twice and handles invalid hosts safely, preventing crafted requests from escaping the virtual-host directory and accessing files directly underFS.Root. This affectsFShandlers usingNewVHostPathRewriter. #2487 - Rejected TLS connections no longer block the accept loop. Connections rejected by
MaxConnsPerIPorConcurrencyare closed without attempting an HTTP error response, which could otherwise trigger a TLS handshake and stall while waiting for aClientHello. IPv6 clients are now also counted againstMaxConnsPerIP. #2486, #2468
- Trailer parsing avoids quadratic work. Large sets of trailer names use indexed membership checks instead of repeatedly scanning all previously recorded names. This reduces CPU amplification from crafted
Trailerheaders and chunked trailer sections while preserving trailer order. #2465
- Static files handle range and conditional requests more accurately. Unsupported range units and multiple ranges are ignored instead of returning
416; invalid single byte ranges still return416.Rangeis also ignored whenIf-Rangedoes not match, and bothRangeandIf-Modified-Sinceare ignored for methods other than GET and HEAD. #2467, #2473, #2474, #2475 - Pipeline clients handle HEAD responses without reading a body.
PipelineClientskips the response body for HEAD requests. #2469 - HTTP parsing accepts valid legacy formats and matches tokens correctly.
ParseHTTPDateaccepts obsolete HTTP-date formats, cookies with an invalidExpiresattribute remain parseable,Expect: 100-continueis matched case-insensitively, andAccept-Encodingmatches complete tokens. Asterisk-form request targets are rejected for methods other than OPTIONS. #2466, #2481, #2482, #2479, #2463 - TCP keep-alives are configurable. The new
TCPDialer.KeepAlivefield sets the keep-alive period for connections created by the dialer; a negative value disables keep-alives. #2484
- consume the rest of the declared body in readMultipartForm by @alhudz in https://github.com/valyala/fasthttp/pull/2336
- fix: validate outgoing request framing by @erikdubbelboer in https://github.com/valyala/fasthttp/pull/2470
- stop FS and SendFile at Content-Length when the file has grown by @alhudz in https://github.com/valyala/fasthttp/pull/2462
- fix: close the connection after a request with both Content-Length and Transfer-Encoding by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2476
- fix(fs): preserve vhost isolation during path rewriting by @koyokr in https://github.com/valyala/fasthttp/pull/2487
- Fix TLS connection rejection blocking the accept loop by @erikdubbelboer in https://github.com/valyala/fasthttp/pull/2486
- count IPv6 clients against MaxConnsPerIP by @alhudz in https://github.com/valyala/fasthttp/pull/2468
- make addTrailerKey linear in the size of the trailer set by @alhudz in https://github.com/valyala/fasthttp/pull/2465
- feat: add KeepAlive option to TCPDialer by @littfed in https://github.com/valyala/fasthttp/pull/2484
- fix(header): reject asterisk-form request-target for non-OPTIONS methods by @aadieng100 in https://github.com/valyala/fasthttp/pull/2463
- fix: accept the obsolete HTTP-date formats in ParseHTTPDate by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2466
- fix(fs): ignore Range headers FS can't serve instead of replying 416 by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2467
- skip the response body for HEAD requests in PipelineClient by @alhudz in https://github.com/valyala/fasthttp/pull/2469
- fix(fs): ignore If-Modified-Since for methods other than GET and HEAD by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2474
- fix(fs): ignore Range when the If-Range validator doesn't match by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2473
- fix(fs): ignore Range for methods other than GET and HEAD by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2475
- fix(cookie): ignore an invalid Expires attribute instead of failing to parse by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2481
- fix: match the Expect: 100-continue value case-insensitively by @LuisFigueroaG in https://github.com/valyala/fasthttp/pull/2482
- fix: match complete Accept-Encoding tokens by @jabrailkhalil in https://github.com/valyala/fasthttp/pull/2479
- docs: clarify RequestURI host behavior by @oozan in https://github.com/valyala/fasthttp/pull/2355
- chore(deps): bump github.com/molecule-man/go-brrr from 1.1.1 to 1.2.0 by @dependabot[bot] in https://github.com/valyala/fasthttp/pull/2464
- chore(deps): bump github.com/molecule-man/go-brrr from 1.2.0 to 1.3.0 by @dependabot[bot] in https://github.com/valyala/fasthttp/pull/2483
- chore(deps): bump golang.org/x/sys from 0.48.0 to 0.49.0 by @dependabot[bot] in https://github.com/valyala/fasthttp/pull/2477
- chore(deps): bump golang.org/x/net from 0.59.0 to 0.61.0 by @dependabot[bot] in https://github.com/valyala/fasthttp/pull/2478
- chore(deps): bump github.com/klauspost/compress from 1.20.1 to 1.20.3 by @dependabot[bot] in https://github.com/valyala/fasthttp/pull/2485
- @aadieng100 made their first contribution in https://github.com/valyala/fasthttp/pull/2463
- @LuisFigueroaG made their first contribution in https://github.com/valyala/fasthttp/pull/2466
- @oozan made their first contribution in https://github.com/valyala/fasthttp/pull/2355
- @jabrailkhalil made their first contribution in https://github.com/valyala/fasthttp/pull/2479
- @koyokr made their first contribution in https://github.com/valyala/fasthttp/pull/2487
Full Changelog: https://github.com/valyala/fasthttp/compare/v1.75.0...v1.76.0
Wails v2.17.0
go install github.com/wailsapp/wails/v2/cmd/wails@v2.17.0
- Windows notifications no longer fall back to PowerShell when the WinRT toast API fails; the error is returned instead
wails initnow warns that remote templates are code: thefrontend:*commands inwails.jsonand the scripts they call run duringwails buildandwails dev. The warning lists the commands found in the generatedwails.jsonand is also shown with-q. The template docs now describe this trust boundary.- Hardened the
wails devserver against cross-origin and DNS-rebinding attacks on the IPC WebSocket. It previously accepted any origin and forwarded straight to the bound-method dispatcher, so a malicious page in the developer's browser could connect tows://localhost:34115/wails/ipcand invoke the entire bound Go API. Every request'sHostheader is now checked against an allowlist (localhost, IP literals, the configured bind address, plus any hosts named inWAILS_DEV_ALLOWED_HOSTS), the IPC upgrade requires a same-originOriginheader, and a per-launch capability cookie (HttpOnly, SameSite=Strict) is required on the upgrade as defense in depth; the cookie is named per dev server port and refreshed before each reconnect, so open browser tabs reconnect afterwails devrestarts the app. This protects against browser-based attacks; other processes running as the developer's own user are outside the dev server's threat model by @nft
- Replaced the
github.com/wailsapp/mimetypefork with upstreamgithub.com/gabriel-vasile/mimetypev1.4.16 for asset MIME type detection
The wails dev hardening comes from #6036 by @nft, merged as part of #6288.
v2.15.0 and v2.16.0 were tagged without GitHub releases. Their changes are part of this release:
- Fixed a memory leak in the macOS and Linux frontends where
Callocnever freed the C strings it allocated for dialogs, menus and window setup by @4RH1T3CT0R7
- Added
EnableAutoplayWithoutUserActionmacOS webview preference to allow HTML5 media to autoplay without a user gesture #5512 by @Eyalm321
- fix: security hardening for v2 and v3 by @taliesin-ai in https://github.com/wailsapp/wails/pull/6288
- fix(v2/release): pin pnpm 10 for the versioned docs step by @taliesin-ai in https://github.com/wailsapp/wails/pull/6293 Full Changelog: https://github.com/wailsapp/wails/compare/v2.14.0...v2.17.0
Wails v3.0.0-beta.31
- Expose the
@wailsio/runtime/cancellablesubpath export soCancellablePromisecan be imported without evaluating the root runtime entry (#6153)
- Require Go 1.26 or later: the v3 module now declares
go 1.26.0, and projects generated bywails3 initandwails3 service initdeclare the same minimum
- Fix binding generator output changing when building with Go 1.27, where
encoding/jsontypes such asMarshaler,UnmarshalerandRawMessagebecame aliases ofencoding/json/v2andencoding/json/jsontexttypes: they are rendered asanyagain and no models are emitted forencoding/json/v2(#6292) - Validate remote template URLs passed to
wails3 init -tbefore cloning: onlyhttps://,http://,ssh://,git://anduser@host:pathURLs are accepted, values are passed to git after--, and git is restricted to those transports during the clone - Reject out-of-range
x-wails-window-idheader values in the HTTP runtime transport instead of silently truncating them to another window's ID - Harden the updater's archive extraction against zip-slip: entry paths are now checked with
filepath.IsLocalplus a containment check on the joined path, with tests for nested.., backslash, absolute-path and symlink write-through entries in zip and tar.gz archives - Fix AppImages from
wails3 generate appimagecrashing on start outside Debian and Ubuntu with "Unable to spawn a new child process: … WebKitNetworkProcess". The bundled WebKit now runs the helper processes shipped in the AppImage. WebKit's bubblewrap sandbox stays on - Fix
-tags serverbuilds failing to compile for Android and iOS, fixing #6271 - Fix the updater failing to swap on Linux when the temp dir is on another filesystem (such as a tmpfs
/tmp) by staging beside the installed binary and copying across filesystems - Fix the updater trying to replace the read-only mount of an AppImage instead of the
.AppImagefile - Fix reserved
wails:window control messages being accepted from iframes on macOS and iOS. They are now only accepted from the window's main frame; other messages from iframes still reachRawMessageHandlerwith their origin info - Stop posting
WindowDidUpdateandWindowWillUpdateon macOS:NSWindowDidUpdateNotificationfires on every run-loop pass, so the page received ~120 emptyevaluateJavaScript:calls per second, and on macOS 27.0 each of them consumed the transient activation of the user's click —navigator.clipboard.writeText()and other activation-gated APIs rejected withNotAllowedErrorfrom real clicks (#6170) by @APshenkin - Fix default Windows info.json language to en-US (0409) so Explorer shows version details (#6210)
- Fix the Linux DMA-BUF renderer being turned off on laptops with an NVIDIA dGPU beside an AMD or Intel iGPU: on Wayland it is now turned off only when WebKit renders on NVIDIA (the app was offloaded to the dGPU, or the compositor runs on it), not whenever the nvidia module is loaded, which slowed rendering to a crawl on the iGPU; X11 sessions keep the old behaviour, since Xorg's render GPU is set by its configuration
- Handle cross-device rename failures in Linux updater with staged copy fallback in PR by @john-okeefe
- Fix
WebviewWindow.SetMenuon Windows not redrawing the menu bar unless a menubar theme was configured, fixing #6103 - Fix
WebviewWindow.SetMenu(nil)panicking on Windows instead of being a no-op like on macOS, fixing #6104 - Preserve changelog entries across competing pushes with retries in PR by @leaanthony
- Fix
go mod vendorfailing withpattern arm64/WebView2Loader.dll: no matching files foundon every platform, by removing the embeds that referenced binaries never shipped in the module, fixing #5782 and #5376, in PR by @Grantmartin2002 - Prevent duplicate window teardown on macOS in PR by @charlesbalderson
- Handle WM_CONTEXTMENU for systray menu to open on right-click in PR by @wzk2025
- Fix all five
InvokeSync*variants blocking their caller forever when the dispatched callback panics, fixing #6107, in PR by @RALIST - Rebuilds destroyed GTK3 submenus safely in PR by @leaanthony
- Implement Windows worker forwarding shim for nested workers in PR by @taliesin-ai
- Fix
OpenFile()on Windows ignoringPromptForMultipleSelection()whenCanChooseDirectories(true): users can now pick several folders at once, as on macOS and Linux (#6263) - Fix by-value
doublearguments to WebView2 COM methods on windows/arm64 —ZoomFactor,RasterizationScale, cookieExpires, and the print settings scale, page size and margins were affected there (the print-settings setters previously returnedErrDoubleArgUnsupported): affected calls now goes through aruntime.cgocalltrampoline that loadsd0, which Go's syscall path cannot (golang.org/issue/62583) by @APshenkin
- Server mode (
-tags server) now accepts/wails/runtimecalls only asPOSTrequests from the server's own origin or an origin listed inServerOptions.WebSocketOriginPatterns; other methods receive HTTP 405 and other browser origins HTTP 403. Deployments behind a reverse proxy that rewrites theHostheader should add their public origin toWebSocketOriginPatterns - Server mode (
-tags server) bound to a loopback address (the defaultlocalhost,127.0.0.0/8or::1) now rejects requests with HTTP 403 unless theHostheader islocalhost, an IP literal, the bind host, or a host matchingServerOptions.WebSocketOriginPatterns, blocking DNS rebinding attacks against/wails/runtimeand the WebSocket endpoints - Windows notifications no longer fall back to PowerShell when the WinRT toast API fails; the error is returned instead
🤖 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-beta.31