v3.0.0
- break: update kratos modules to v3 (#3822)
- feat(errors): add standard library errors wrappers (#3844)
- feat(transport/http): add read/write deadline control to ServerStream (#3843)
- feat(protoc-gen-go-http): support google.api.HttpBody response (#3839)
- feat(config): add generic config Get support (#3778)
- feat(middleware/auth/jwt): add WithParserOptions to allow configuring… (#3803)
- feat: support pre condition failed code mapping (#3795)
- feat(cmd): add --repo flag to kratos new command (#3789)
- feat(errors): add TooManyRequests error type (#3787)
- feat(transport/http): support redirect errors in default error encoder (#3783)
- feat(validate): add custom validator support and improve flexibility (#3780)
- fix(transport/http): bind named body field for websocket client streaming (#3837)
- fix(transport/http): clone transport before applying TLSClientConfig to avoid mutating http.DefaultTransport (#3808)
- fix: JSON parsing error during hot reload caused by duplicate file write events
- fix(config/apollo): prevent panic on nil NewValue in watcher onChange (#3806)
- fix(metrics): remove redundant _bucket suffix from default histogram name (#3794)
- fix: trim service suffix of service name (#3785)
- fix(cmd): assign filepath.Join result to base in findCMD loop (#3798)
- fix(middleware/metrics): remove redundant _bucket suffix from default histogram names (#3797)
- fix(contrib/registry/discovery): replace context.TODO() with context.Background() (#3786)
- fix(contrib/registry/eureka): use shared http.Transport (#3772)
- chore(cmd): update dependencies and enhance project creation (#3779)
- contrib/registry/nacos: upgrade nacos-sdk-go from v1 to v2 (#3804)
- refactor(contrib/registry/discovery): remove dead code (#3801)
- Acc/reg (#3800)
- build(deps): bump actions/cache from 4 to 5 (#3788)
- refactor(contrib/opensergo): replace golang.org/x/net/context with standard context (#3782)
- perf(encoding/form): replace fmt.Sprintf with string concatenation for map key encoding (#3777)
- @codeErrorSleep made their first contribution in https://github.com/go-kratos/kratos/pull/3777
- @lhlyu made their first contribution in https://github.com/go-kratos/kratos/pull/3789
- @hj24 made their first contribution in https://github.com/go-kratos/kratos/pull/3795
- @edwinhuish made their first contribution in https://github.com/go-kratos/kratos/pull/3785
- @mahendrarathore1742 made their first contribution in https://github.com/go-kratos/kratos/pull/3803
- @shcw made their first contribution in https://github.com/go-kratos/kratos/pull/3794
- @agermel made their first contribution in https://github.com/go-kratos/kratos/pull/3778
- @flytutu-susu made their first contribution in https://github.com/go-kratos/kratos/pull/3431
- @shenqidebaozi with @Copilot made their first contribution in https://github.com/go-kratos/kratos/pull/3808
Full Changelog: https://github.com/go-kratos/kratos/compare/v2.9.2...v3.0.0
v6.3.0
- Trim landing tagline to one-liner by @asim in https://github.com/micro/go-micro/pull/2997
- website: trim landing tagline to the one-liner by @asim in https://github.com/micro/go-micro/pull/2998
- website: add Support to top nav (landing + docs layout) by @asim in https://github.com/micro/go-micro/pull/2999
- website: deduplicate header/footer via Jekyll includes by @asim in https://github.com/micro/go-micro/pull/3000
- flow: add Loop — agentic loops as a flow step by @asim in https://github.com/micro/go-micro/pull/3001
- sponsors: add OpenAI (Codex for Open Source) by @asim in https://github.com/micro/go-micro/pull/3002
- blog: announce OpenAI Codex for Open Source grant by @asim in https://github.com/micro/go-micro/pull/3003
- Add CODEX.md codex maintainer playbook by @asim in https://github.com/micro/go-micro/pull/3004
- Add CODEX maintainer playbook and update examples/docs to include context and refreshed console output by @asim in https://github.com/micro/go-micro/pull/3005
- Add provider-conformance harness, contract test, and reframe docs to 'agent harness' by @asim in https://github.com/micro/go-micro/pull/3006
- harness/new: honest conformance timeout + cheaper contract test (re-land of #3007) by @asim in https://github.com/micro/go-micro/pull/3008
- docs/blog: anchor the agent-harness positioning by @asim in https://github.com/micro/go-micro/pull/3015
- docs: cross-agent coordination rules (CLAUDE.md + CODEX.md) by @asim in https://github.com/micro/go-micro/pull/3016
- website: new hero image + reframe landing (harness AND service framework) by @asim in https://github.com/micro/go-micro/pull/3018
- Add agent model retry and timeout resilience by @asim in https://github.com/micro/go-micro/pull/3017
- website: tighten hero (drop "in Go", simpler tagline, in-hero image) by @asim in https://github.com/micro/go-micro/pull/3019
- website: size hero image to 600px by @asim in https://github.com/micro/go-micro/pull/3020
- agent: make model retries opt-in + harden retry backoff by @asim in https://github.com/micro/go-micro/pull/3021
- loop: continuous-improvement charter + scheduled backbone by @asim in https://github.com/micro/go-micro/pull/3022
- docs: mark harness Resilience as shipped by @asim in https://github.com/micro/go-micro/pull/3023
- loop: drive scheduled backbone via Codex (no Anthropic key needed) by @asim in https://github.com/micro/go-micro/pull/3025
- loop: hourly Codex dispatch + auto-merge green Codex PRs by @asim in https://github.com/micro/go-micro/pull/3026
- Add agent OpenTelemetry run observability by @asim in https://github.com/micro/go-micro/pull/3027
- loop: thesis / North Star + align the loop to it by @asim in https://github.com/micro/go-micro/pull/3028
- website: text-only "Go Micro" brand (remove nav logo) by @asim in https://github.com/micro/go-micro/pull/3029
- docs: burger (☰) sidebar toggle on the left on mobile by @asim in https://github.com/micro/go-micro/pull/3030
- website: fix mobile horizontal overflow on the landing page by @asim in https://github.com/micro/go-micro/pull/3031
- thesis: complementary to LangChain, not competing by @asim in https://github.com/micro/go-micro/pull/3032
- ci: gate Codex dispatch on CODEX_TRIGGER_TOKEN secret by @asim in https://github.com/micro/go-micro/pull/3033
Full Changelog: https://github.com/micro/go-micro/compare/v6.2.1...v6.3.0
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
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
Release v1.31.2
- Fix potential rows leak on panic by deferring rows.Close() @omer-cengel (#7798)
- perf: replace fmt.Sprintf with strconv in ExplainSQL numeric formatting @alpardfm (#7796)
- Document NowFunc timezone behavior @morning-verlu (#7799)
- correct typo and rename fileType to fieldType in AlterColumn @cragone (#7748)
- fix: panic when using clause.Returning with CreateInBatches @Truongquangkhang (#7768)
- fix(migrator): add nil guards to ColumnType methods to prevent panic @lihan3238 (#7767)
- ci: switch tests Go matrix to stable/oldstable and update setup-go @smf-h (#7726)
- chore(ci): bump actions/stale to v9 @Olexandr88 (#7696)
- fix(migrator): don't clear alterColumn when defaults match @qqxhb (#7728)
- Add package comments to fix ST1000 warnings @twocs (#7708)
- generics: populate WithResult error @qqxhb (#7723)
- fix(utils): restore FileWithLineNum caller depth and add regression test @smf-h (#7717)
- tests: skip customized foreign key many2many on MySQL 8.4+ @smf-h (#7727)
- fix tiny typo in error message @snelg (#7738)
- Add unit test verifying chainable query methods mutate statement @miladev95 (#7684)
- fix: Close connection after ping failure to prevent goroutine leak @liang09255 (#7689)
- fix: Row() and Rows() functions should automaticaly apply the generic type as model @hakanakyurek (#7664)
- internal/lru: improve concurrency with RWMutex @miladev95 (#7668)
- Fix nil pointer panic in serializer for nil any-type fields @doraemonkeys (#7634)
- staticcheck QF1001 @miladev95 (#7648)
- Support array/slice expansion for named SQL parameters in parentheses @bafflingbug (#7614)