1 hours ago
wails

webview2 v1.0.26

webview2 v1.0.26

Fixes

  • Recover from transient runtime COM errors instead of exiting (#5658, #5580). Chromium.errorCallback previously called os.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 in MessageReceived is 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

1 days ago
go-micro

v6.2.1

What's Changed

Full Changelog: https://github.com/micro/go-micro/compare/v6.2.0...v6.2.1

2 days ago
go-micro

v6.2.0

What's Changed

Full Changelog: https://github.com/micro/go-micro/compare/v6.1.0...v6.2.0

2 days ago
go-redis

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.

🚀 Highlights

Zero-copy GetToBuffer / SetFromBuffer

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.

(#3834) by @ndyakov

Explicit LIMIT 0 for stream trimming

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

✨ New Features

  • Zero-copy buffer string commands: new GetToBuffer / SetFromBuffer on StringCmdable and the ZeroCopyStringCmd result type, reading/writing string values into caller-owned buffers without per-call payload allocation (#3834) by @ndyakov
  • XTrimLimitDisabled sentinel: XTRIM/XADD approximate trimming can now send an explicit LIMIT 0 to disable the trim effort cap, via the new XTrimLimitDisabled = -1 sentinel (#3848) by @TheRealMal
  • PubSub health-check timeouts: channel.initHealthCheck now bounds the Ping it issues with a fresh per-check timeout context (the exported pingTimeout / reconnectTimeout) instead of context.TODO(), so a stuck health-check Ping can no longer block indefinitely (#3819) by @abdellani
  • Skip redundant UNWATCH in Tx.Close: a transaction now tracks whether a WATCH is still active (watchArmed) and only issues UNWATCH on Close when it is, removing an extra round trip on the common WATCH/.../EXEC and no-key Watch paths while never returning a connection to the pool with an active watch (#3854) by @fcostaoliveira

🐛 Bug Fixes

  • maintnotifications ModeAuto fail-open: ModeAuto now 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

👥 Contributors

We'd like to thank all the contributors who worked on this release!

@abdellani, @fcostaoliveira, @ndyakov, @terrorobe, @TheRealMal

2 days ago
redis

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.

🚀 Highlights

Zero-copy GetToBuffer / SetFromBuffer

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.

(#3834) by @ndyakov

Explicit LIMIT 0 for stream trimming

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

✨ New Features

  • Zero-copy buffer string commands: new GetToBuffer / SetFromBuffer on StringCmdable and the ZeroCopyStringCmd result type, reading/writing string values into caller-owned buffers without per-call payload allocation (#3834) by @ndyakov
  • XTrimLimitDisabled sentinel: XTRIM/XADD approximate trimming can now send an explicit LIMIT 0 to disable the trim effort cap, via the new XTrimLimitDisabled = -1 sentinel (#3848) by @TheRealMal
  • PubSub health-check timeouts: channel.initHealthCheck now bounds the Ping it issues with a fresh per-check timeout context (the exported pingTimeout / reconnectTimeout) instead of context.TODO(), so a stuck health-check Ping can no longer block indefinitely (#3819) by @abdellani
  • Skip redundant UNWATCH in Tx.Close: a transaction now tracks whether a WATCH is still active (watchArmed) and only issues UNWATCH on Close when it is, removing an extra round trip on the common WATCH/.../EXEC and no-key Watch paths while never returning a connection to the pool with an active watch (#3854) by @fcostaoliveira

🐛 Bug Fixes

  • maintnotifications ModeAuto fail-open: ModeAuto now 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

👥 Contributors

We'd like to thank all the contributors who worked on this release!

@abdellani, @fcostaoliveira, @ndyakov, @terrorobe, @TheRealMal

2 days ago
wails

Wails v3.0.0-alpha2.105

Wails v3 Alpha Release - v3.0.0-alpha2.105

Added

  • Add application.System for runtime platform detection from shared code: System.IsMobile() (iOS/Android), System.IsDesktop() (macOS/Windows/Linux), System.IsServer() (the server build tag), and System.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 setup wizard 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/.npmrc setting a 7-day minimum-release-age to reduce exposure to freshly published (potentially compromised) packages (honoured by pnpm and bun; harmlessly ignored by npm)

Changed

  • 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 vue and -t svelte are TypeScript, with JavaScript variants at -t vanilla-js, -t react-js, -t vue-js and -t svelte-js. Built-in templates declare their language with typescript: in template.yaml; community templates using the -ts suffix continue to work as a fallback
  • Redesign the wails3 setup wizard with the neon "digital Wails" theme (frosted-glass vibrancy over a mountain backdrop)

Fixed

  • 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/SIGSEGV crashes (typically inside g_object_unref during the GTK main loop) on long-running Linux apps under frequent asset/media loads. The asset server completed WebKitURISchemeRequests 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 stack in setupSignalHandlers on Linux/GTK3. Window IDs passed as signal user_data were held in a Go unsafe.Pointer local, 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 to uintptr_t to clear -race/checkptr errors) (#5631)

Removed

  • Remove the react-swc, preact, lit, solid, qwik and sveltekit starter templates (and their -ts variants). The supported built-in set is now vanilla, react, vue and svelte — each TypeScript by default, with -js JavaScript 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

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

5 days ago
go-micro

v6.1.0

What's Changed

Full Changelog: https://github.com/micro/go-micro/compare/v6.0.0...v6.1.0

5 days ago
wails

Wails v3.0.0-alpha2.104

Wails v3 Alpha Release - v3.0.0-alpha2.104

Fixed

  • 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 != nil instead 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

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

6 days ago
go-micro

v6.0.0

Go Micro is evolving into a framework for Agent and Service development.

6 days ago
go-micro

v5.30.0

What's Changed

Full Changelog: https://github.com/micro/go-micro/compare/v5.29.0...v5.30.0