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
v6.2.1
- support: advertise commercial support, consulting, and sponsorship by @asim in https://github.com/micro/go-micro/pull/2989
- website: add commercial support to the landing page by @asim in https://github.com/micro/go-micro/pull/2990
- docs: install the CLI with @v6 instead of @latest by @asim in https://github.com/micro/go-micro/pull/2991
- Enhance comparison guide for Go Micro and Google ADK by @asim in https://github.com/micro/go-micro/pull/2993
- Enhance ADK vs Go Micro comparison and apply lint fixes by @asim in https://github.com/micro/go-micro/pull/2994
- lint: clear the golangci-lint backlog and enforce a blocking lint in CI by @asim in https://github.com/micro/go-micro/pull/2995
- Enforce blocking golangci-lint in CI and clear lint backlog by @asim in https://github.com/micro/go-micro/pull/2996
Full Changelog: https://github.com/micro/go-micro/compare/v6.2.0...v6.2.1
v6.2.0
- docs: consolidate to a single agentic/DX roadmap by @asim in https://github.com/micro/go-micro/pull/2982
- examples: support desk agent + blog walkthrough by @asim in https://github.com/micro/go-micro/pull/2983
- Enhance support agent example and fix protoless service scaffolding by @asim in https://github.com/micro/go-micro/pull/2986
Full Changelog: https://github.com/micro/go-micro/compare/v6.1.0...v6.2.0
9.21.0
This is a minor release adding new features and bug fixes. There are no breaking changes; upgrading from 9.20.x is a drop-in replacement.
Two new StringCmdable methods let callers read and write Redis string values directly into and from pre-allocated byte buffers, eliminating the per-call payload allocation that Get/Set incur:
GetToBuffer(ctx, key, buf) *ZeroCopyStringCmd // reads into buf; ZeroCopyStringCmd { Val() int; Bytes() []byte; Result() (int, error) }
SetFromBuffer(ctx, key, buf) *StatusCmd
GetToBuffer decodes the bulk reply straight into the caller-owned buf (no intermediate allocation); a buffer that is too small returns an error after draining the payload, so the connection stays aligned for the next reply. SetFromBuffer is provided for API symmetry — it dispatches to the same []byte writer path as Set(ctx, key, buf, 0) and produces byte-identical output on the wire. Available on *Client, *ClusterClient, *Ring, *Conn and Pipeliner.
Redis treats XTRIM/XADD approximate-trim (~) LIMIT 0 as "disable the trimming effort cap entirely", which differs from omitting LIMIT (the implicit 100 * stream-node-max-entries default). The command builders previously only emitted LIMIT when limit > 0, so callers could never send an explicit LIMIT 0. Following the KeepTTL = -1 precedent, the new XTrimLimitDisabled = -1 sentinel now emits an explicit LIMIT 0; limit == 0 keeps the historical no-LIMIT behavior, so existing callers produce byte-identical commands.
(#3848) by @TheRealMal
- Zero-copy buffer string commands: new
GetToBuffer/SetFromBufferonStringCmdableand theZeroCopyStringCmdresult type, reading/writing string values into caller-owned buffers without per-call payload allocation (#3834) by @ndyakov XTrimLimitDisabledsentinel:XTRIM/XADDapproximate trimming can now send an explicitLIMIT 0to disable the trim effort cap, via the newXTrimLimitDisabled = -1sentinel (#3848) by @TheRealMal- PubSub health-check timeouts:
channel.initHealthChecknow bounds thePingit issues with a fresh per-check timeout context (the exportedpingTimeout/reconnectTimeout) instead ofcontext.TODO(), so a stuck health-check Ping can no longer block indefinitely (#3819) by @abdellani - Skip redundant
UNWATCHinTx.Close: a transaction now tracks whether aWATCHis still active (watchArmed) and only issuesUNWATCHonClosewhen it is, removing an extra round trip on the commonWATCH/.../EXECand no-keyWatchpaths while never returning a connection to the pool with an active watch (#3854) by @fcostaoliveira
maintnotificationsModeAutofail-open:ModeAutonow stays fail-open when the server does not support maintenance notifications — connections are retired and tracking is guarded during downgrade so the client keeps working instead of erroring (#3853) by @terrorobe
We'd like to thank all the contributors who worked on this release!
@abdellani, @fcostaoliveira, @ndyakov, @terrorobe, @TheRealMal
9.21.0
This is a minor release adding new features and bug fixes. There are no breaking changes; upgrading from 9.20.x is a drop-in replacement.
Two new StringCmdable methods let callers read and write Redis string values directly into and from pre-allocated byte buffers, eliminating the per-call payload allocation that Get/Set incur:
GetToBuffer(ctx, key, buf) *ZeroCopyStringCmd // reads into buf; ZeroCopyStringCmd { Val() int; Bytes() []byte; Result() (int, error) }
SetFromBuffer(ctx, key, buf) *StatusCmd
GetToBuffer decodes the bulk reply straight into the caller-owned buf (no intermediate allocation); a buffer that is too small returns an error after draining the payload, so the connection stays aligned for the next reply. SetFromBuffer is provided for API symmetry — it dispatches to the same []byte writer path as Set(ctx, key, buf, 0) and produces byte-identical output on the wire. Available on *Client, *ClusterClient, *Ring, *Conn and Pipeliner.
Redis treats XTRIM/XADD approximate-trim (~) LIMIT 0 as "disable the trimming effort cap entirely", which differs from omitting LIMIT (the implicit 100 * stream-node-max-entries default). The command builders previously only emitted LIMIT when limit > 0, so callers could never send an explicit LIMIT 0. Following the KeepTTL = -1 precedent, the new XTrimLimitDisabled = -1 sentinel now emits an explicit LIMIT 0; limit == 0 keeps the historical no-LIMIT behavior, so existing callers produce byte-identical commands.
(#3848) by @TheRealMal
- Zero-copy buffer string commands: new
GetToBuffer/SetFromBufferonStringCmdableand theZeroCopyStringCmdresult type, reading/writing string values into caller-owned buffers without per-call payload allocation (#3834) by @ndyakov XTrimLimitDisabledsentinel:XTRIM/XADDapproximate trimming can now send an explicitLIMIT 0to disable the trim effort cap, via the newXTrimLimitDisabled = -1sentinel (#3848) by @TheRealMal- PubSub health-check timeouts:
channel.initHealthChecknow bounds thePingit issues with a fresh per-check timeout context (the exportedpingTimeout/reconnectTimeout) instead ofcontext.TODO(), so a stuck health-check Ping can no longer block indefinitely (#3819) by @abdellani - Skip redundant
UNWATCHinTx.Close: a transaction now tracks whether aWATCHis still active (watchArmed) and only issuesUNWATCHonClosewhen it is, removing an extra round trip on the commonWATCH/.../EXECand no-keyWatchpaths while never returning a connection to the pool with an active watch (#3854) by @fcostaoliveira
maintnotificationsModeAutofail-open:ModeAutonow stays fail-open when the server does not support maintenance notifications — connections are retired and tracking is guarded during downgrade so the client keeps working instead of erroring (#3853) by @terrorobe
We'd like to thank all the contributors who worked on this release!
@abdellani, @fcostaoliveira, @ndyakov, @terrorobe, @TheRealMal
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
v6.1.0
- test(natsjs): fix flaky TempDir cleanup race + vet-unsafe Fatalf by @asim in https://github.com/micro/go-micro/pull/2978
- blog: Bringing an Open Source Project Back from the Dead (#27) by @asim in https://github.com/micro/go-micro/pull/2979
- feat(agent): expose run metadata + structured guardrail reasons to to… by @asim in https://github.com/micro/go-micro/pull/2981
Full Changelog: https://github.com/micro/go-micro/compare/v6.0.0...v6.1.0
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
v6.0.0
Go Micro is evolving into a framework for Agent and Service development.
v5.30.0
- Add payment requirements to tool catalog and implement x402 client by @asim in https://github.com/micro/go-micro/pull/2966
- feat(agent): loop detection guardrail + document/blog agent guardrails by @asim in https://github.com/micro/go-micro/pull/2968
- feat(agent): tool-execution wrappers via WrapTool by @asim in https://github.com/micro/go-micro/pull/2969
- Implement tool-execution wrappers and restructure ToolHandler by @asim in https://github.com/micro/go-micro/pull/2970
- Implement tool-execution wrappers and update documentation by @asim in https://github.com/micro/go-micro/pull/2971
- Implement durable execution and scoped state management for flows by @asim in https://github.com/micro/go-micro/pull/2972
- Update changelog and enhance retrospective blog on agentic features by @asim in https://github.com/micro/go-micro/pull/2973
- Implement A2A protocol gateway and update documentation by @asim in https://github.com/micro/go-micro/pull/2974
Full Changelog: https://github.com/micro/go-micro/compare/v5.29.0...v5.30.0