Version 3.0.1 Bug Fix Release
One very unfortunate bug with key handling (capital letters not working) was found just after we released 3.0.0.
This release also adds some accessors which should have been in 3.0.0 but weren't. Technically this probably should have been a minor release, but we don't think anyone is likely to have started using 3.0.0 for real (particularly with the nasty bug we fixed), so we decided not to make it a minor release.
With this direct Attributes use is no longer recommended. Use the accessors on Style instead.
- Add style accessors by @gdamore in https://github.com/gdamore/tcell/pull/880
- fix: Shift+letter A-Z treated as Ctrl+letter by @tihirvon in https://github.com/gdamore/tcell/pull/882
- fix: report control space properly in legacy by @gdamore in https://github.com/gdamore/tcell/pull/883
- CodeRabbit Generated Unit Tests: Add comprehensive unit tests for input.go null-byte handling by @coderabbitai[bot] in https://github.com/gdamore/tcell/pull/884
- @coderabbitai[bot] made their first contribution in https://github.com/gdamore/tcell/pull/884
Full Changelog: https://github.com/gdamore/tcell/compare/v3.0.0...v3.0.1
9.18.0-beta.1
This beta release introduces comprehensive support for Redis COMMAND-based request and response policy routing for cluster clients. This feature enables intelligent command routing and response aggregation based on Redis command metadata.
Key Features:
- Command Policy Loader: Automatically parses and caches COMMAND metadata with routing/aggregation hints
- Enhanced Routing Engine: Supports all request policies including:
default(keyless)- Commands without keysdefault(hashslot)- Commands with hash slot routingall_shards- Commands that need to run on all shardsall_nodes- Commands that need to run on all nodesmulti_shard- Commands that span multiple shardsspecial- Commands with custom routing logic
- Response Aggregator: Intelligently combines multi-shard replies based on response policies:
all_succeeded- All shards must succeedone_succeeded- At least one shard must succeedagg_sum- Aggregate numeric responsesspecial- Custom aggregation logic (e.g., FT.CURSOR)
- Raw Command Support: Policies are enforced on
Client.Do(ctx, args...)
This feature is particularly useful for Redis Stack commands like RediSearch that need to operate across multiple shards in a cluster.
Fixed a critical defect in the connection pool's turn management mechanism that could lead to connection leaks under certain conditions. The fix ensures proper 1:1 correspondence between turns and connections.
- Request and Response Policy Based Routing in Cluster Mode (#3422) by @ofekshenawa
- Fixed connection pool turn management to prevent connection leaks (#3626) by @cyningsun
- chore(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 (#3627)
We'd like to thank all the contributors who worked on this release!
9.18.0-beta.1
This beta release introduces comprehensive support for Redis COMMAND-based request and response policy routing for cluster clients. This feature enables intelligent command routing and response aggregation based on Redis command metadata.
Key Features:
- Command Policy Loader: Automatically parses and caches COMMAND metadata with routing/aggregation hints
- Enhanced Routing Engine: Supports all request policies including:
default(keyless)- Commands without keysdefault(hashslot)- Commands with hash slot routingall_shards- Commands that need to run on all shardsall_nodes- Commands that need to run on all nodesmulti_shard- Commands that span multiple shardsspecial- Commands with custom routing logic
- Response Aggregator: Intelligently combines multi-shard replies based on response policies:
all_succeeded- All shards must succeedone_succeeded- At least one shard must succeedagg_sum- Aggregate numeric responsesspecial- Custom aggregation logic (e.g., FT.CURSOR)
- Raw Command Support: Policies are enforced on
Client.Do(ctx, args...)
This feature is particularly useful for Redis Stack commands like RediSearch that need to operate across multiple shards in a cluster.
Fixed a critical defect in the connection pool's turn management mechanism that could lead to connection leaks under certain conditions. The fix ensures proper 1:1 correspondence between turns and connections.
- Request and Response Policy Based Routing in Cluster Mode (#3422) by @ofekshenawa
- Fixed connection pool turn management to prevent connection leaks (#3626) by @cyningsun
- chore(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 (#3627)
We'd like to thank all the contributors who worked on this release!
9.17.2
- Connection Pool: Fixed critical race condition in turn management that could cause connection leaks when dial goroutines complete after request timeout (#3626) by @cyningsun
- Context Timeout: Improved context timeout calculation to use minimum of remaining time and DialTimeout, preventing goroutines from waiting longer than necessary (#3626) by @cyningsun
- chore(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 (#3627)
We'd like to thank all the contributors who worked on this release!
@cyningsun and @ndyakov
9.17.2
- Connection Pool: Fixed critical race condition in turn management that could cause connection leaks when dial goroutines complete after request timeout (#3626) by @cyningsun
- Context Timeout: Improved context timeout calculation to use minimum of remaining time and DialTimeout, preventing goroutines from waiting longer than necessary (#3626) by @cyningsun
- chore(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 (#3627)
We'd like to thank all the contributors who worked on this release!
@cyningsun and @ndyakov
Version 3.0.0 Major Release
Version 3 is a major new release. It introduces improvements in the event handling, richer support for more keys and modifier reports, more functionality out of the box, desktop notification support, simpler APIs for emitting strings directly to the screen, and numerous bug fixes.
Every Tcell version 2 application will need some modifications to work with Tcell version 3. See the CHANGESv3.md document for more information.
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.0...v3.0.0
Version 2.13.1 Bug Fix Release
This fixes a bug decoding certain control keys ([, ], )
Version 3.0.0 Release Candidate 1
- Bring V3 changes to main branch by @gdamore in https://github.com/gdamore/tcell/pull/871
- fix: rxvt key handling enhancments by @gdamore in https://github.com/gdamore/tcell/pull/872
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.0...v3.0.0-rc.1
Version 3.0.0 Beta 2 Prelease
- feat: Desktop notifications (fixes #499) by @gdamore in https://github.com/gdamore/tcell/pull/868
Full Changelog: https://github.com/gdamore/tcell/compare/v3.0.0-beta.1...v3.0.0-beta.2
Version 3.0.0 Beta 1 Prelease
- Remove extra semicolon from setFgBgRgb by @tihirvon in https://github.com/gdamore/tcell/pull/865
- EventQ refactor by @gdamore in https://github.com/gdamore/tcell/pull/867
Full Changelog: https://github.com/gdamore/tcell/compare/v3.0.0-alpha.2...v3.0.0-beta.1