Wails v3 Weekly Release - v3.1.0
Added
- add experimental CGO-free macOS and Linux backends in PR by @taliesin-ai
- native YAML builds, portable packaging and signing in PR by @taliesin-ai
Changed
- avoid copying discarded desktop metadata in PR by @taliesin-ai
- format content lengths without fmt in PR by @taliesin-ai
- select index roots without collecting candidates in PR by @taliesin-ai
- reuse non-seekable file copy buffers in PR by @taliesin-ai
- avoid allocating a reader for sniffing prefixes in PR by @taliesin-ai
- skip MIME sniff reads for known extensions in PR by @taliesin-ai
- prevent queue growth and shrink oscillation in PR by @taliesin-ai
- avoid allocating discarded request contexts in PR by @taliesin-ai
- skip disabled debug log preparation in PR by @taliesin-ai
- allocate MIME sniff buffers lazily in PR by @taliesin-ai
- reduce hyperlink formatting allocations in PR by @taliesin-ai
- remove temporary bullet formatting allocations in PR by @taliesin-ai
- reduce UUID string conversion to one allocation in PR by @taliesin-ai
- reduce statement-handle formatting allocations in PR by @taliesin-ai
- eliminate temporary name-based UUID digest allocation in PR by @taliesin-ai
- avoid copying unfinished command-output lines in PR by @taliesin-ai
- stream executable copies during package staging in PR by @taliesin-ai
- avoid rescanning unfinished output lines in PR by @taliesin-ai
- reuse compiled command routing patterns in PR by @taliesin-ai
- avoid metadata lookups during runtime discovery in PR by @taliesin-ai
- reduce localized fallback page allocations in PR by @taliesin-ai
- avoid recompiling patterns for each processor in PR by @taliesin-ai
Fixed
- implement SetTooltip for the system tray in PR by @fan711
- read dark mode from the settings portal in PR by @TechHutTV
- let Window.SetZoom go below 1.0 in PR by @APshenkin
- deliver to each Go listener in emit order in PR by @DevLumuz
- read event hooks under hookLock in Emit in PR by @DevLumuz
- always advertise the tray Menu property so a tray created after Run is not dropped in PR by @AlbinoGeek
- hold main-thread work sent before Run until Run starts in PR by @AlbinoGeek
- use correct asset url in github updater provider in PR by @gavidroselj
- keep request body when WebView2 omits Content-Length in PR by @strraaa
- report macOS and GTK screens in DIP space (mixed-DPI bounds) in PR by @julianstorer
- don't report a dismissed notification as a click in PR by @bercedev
- stop dev processes when the terminal closes in PR by @xmasdev
- map changelog runs to squash-merge commits in the evidence check in PR by @taliesin-ai
- hold the taskbar-restart debounce for a second in PR by @taliesin-ai
- keep size constraints through a fullscreen that starts there in PR by @taliesin-ai
- do not resize a fullscreen or maximised window to fit a new constraint in PR by @taliesin-ai
- do not raise a dialog before Run in the liquid-glass example in PR by @taliesin-ai
- a dialog asked for before Run does nothing instead of waiting forever in PR by @taliesin-ai
- fall back when desktop entry has no command in PR by @taliesin-ai
- sniff current content without retaining filenames in PR by @taliesin-ai
- recognize mixed-case asset extensions in PR by @taliesin-ai
- release consumed content-sniffer buffers in PR by @taliesin-ai
- release removed ringqueue references in PR by @taliesin-ai
- honor header deletions before fallback selection in PR by @taliesin-ai
- commit fallback response headers before flush in PR by @taliesin-ai
- discover only exact index files in PR by @taliesin-ai
- avoid bodies and full reads for non-seekable HEAD in PR by @taliesin-ai
- fill MIME sniffing prefix across short reads in PR by @taliesin-ai
- commit successful empty non-seekable responses in PR by @taliesin-ai
- avoid duplicating expanded URI targets in PR by @taliesin-ai
- preserve paths during field expansion in PR by @taliesin-ai
- respect XDG desktop-file search directories in PR by @taliesin-ai
- commit sniffer headers on empty flush in PR by @taliesin-ai
- skip directories shadowing desktop entries in PR by @taliesin-ai
- preserve targets found inside executable paths in PR by @taliesin-ai
- release callback captures after timer fires in PR by @taliesin-ai
- avoid false ldconfig library matches in PR by @taliesin-ai
- constrain filesystem library fallback matches in PR by @taliesin-ai
- remove cache invalidation data race in PR by @taliesin-ai
- honor the optional logger configuration in PR by @taliesin-ai
- avoid shared start URL mutation and stale ports in PR by @taliesin-ai
- stop dev proxy retries on request cancellation in PR by @taliesin-ai
- return 404 for missing bundled assets in PR by @taliesin-ai
- handle bundled runtime HEAD requests in PR by @taliesin-ai
- preserve escaped paths when routing services in PR by @taliesin-ai
- order oversized numeric prerelease identifiers correctly in PR by @taliesin-ai
- reject HTTP errors before saving tooling downloads in PR by @taliesin-ai
- honor the launch deadline during desktop discovery in PR by @taliesin-ai
- preserve request bodies across development proxy retries in PR by @taliesin-ai
- close HTTP response bodies on every return path in PR by @taliesin-ai
- preserve cancellation errors in parallel library searches in PR by @taliesin-ai
- reject failed GitHub tag responses before decoding in PR by @taliesin-ai
- preserve literal bracketed template paths in PR by @taliesin-ai
- install wails3 once and preserve installer errors in PR by @taliesin-ai
- ignore hidden entries and headers in comment blocks in PR by @taliesin-ai
- surface stable release lookup errors in PR by @taliesin-ai
- print plain messages without format interpretation in PR by @taliesin-ai
- avoid write panics after loading JSON null in PR by @taliesin-ai
- return snapshots for whole-store reads in PR by @taliesin-ai
- propagate errors after partial row iteration in PR by @taliesin-ai
- keep extraction destination paths literal in PR by @taliesin-ai
- release prepared-statement handles on close and reopen in PR by @taliesin-ai
- handle preparation racing with close or reopen in PR by @taliesin-ai
- honor HEAD requests for the fallback index page in PR by @taliesin-ai
- require complete hexadecimal statement handles in PR by @taliesin-ai
- preserve the default in-memory database under concurrency in PR by @taliesin-ai
- separate stderr from parsed HEAD output in PR by @taliesin-ai
- generate runtime assets from embedded bundles in PR by @taliesin-ai
- detect TODO, FIXME and TBD placeholders in PR by @taliesin-ai
- validate release notes API responses in PR by @taliesin-ai
- respect task directories in status checks in PR by @taliesin-ai
- prevent same-file copy data loss in PR by @taliesin-ai
- include the task directory in cache identity in PR by @taliesin-ai
- probe ports once per check in PR by @taliesin-ai
- avoid a panic when cache entries decode as null in PR by @taliesin-ai
- increment numeric prereleases without integer limits in PR by @taliesin-ai
- prevent legacy checks from hiding cache misses in PR by @taliesin-ai
- run default tasks in the executor base directory in PR by @taliesin-ai
- preserve literal percent signs in explorer commands in PR by @taliesin-ai
- align precondition and task command directories in PR by @taliesin-ai
- replace symlinks with generated regular files in PR by @taliesin-ai
- preserve existing DMGs when builds fail in PR by @taliesin-ai
- preserve quoted regex and path backslashes in PR by @taliesin-ai
- validate generated icon sizes before image allocation in PR by @taliesin-ai
- route command chains and redirections through the shell in PR by @taliesin-ai
- preserve previous Linux packages on build failure in PR by @taliesin-ai
- use platform-specific shell fallback execution in PR by @taliesin-ai
- serve assets with repeated leading path slashes in PR by @taliesin-ai
- recognize stable versions with build metadata in PR by @taliesin-ai
- report resource-generation failures accurately in PR by @taliesin-ai
- prevent races when replacing the active reporter in PR by @taliesin-ai
- serialize concurrent cache-file saves in PR by @taliesin-ai
- support multiple template equality candidates in PR by @taliesin-ai
- normalize null saved category maps in PR by @taliesin-ai
- show diagnostics from failed variable shell commands in PR by @taliesin-ai
- keep shell chains out of the implicit Go cache in PR by @taliesin-ai
- serialize Linux category persistence in PR by @taliesin-ai
- cache Go outputs with quoted or escaped spaces in PR by @taliesin-ai
- preserve Mac icons when encoding fails in PR by @taliesin-ai
- stop discarding invalid Go test count flags in PR by @taliesin-ai
- retain source permissions for new file copies in PR by @taliesin-ai
- Fix assorted v3 nightly build issues and clean up dependencies in PR by @taliesin-ai
- repair v3 release validation and fixture classification in PR by @taliesin-ai
- resolve cross-platform release validation failures in PR by @taliesin-ai
🗓️ This is a weekly release. Minor version numbers advance with time, not with features: a new minor is not a feature milestone. Nightly previews are published between weekly releases as -nightly pre-releases.
Installation:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.1.0Tip: always pin an exact version (e.g. @v3.1.0) in go.mod and CI rather than @latest.