* test: add race test for Options.clone() vs initConn MaintNotificationsConfig write
Demonstrates a data race where Options.clone() reads MaintNotificationsConfig
without acquiring optLock while initConn writes to it concurrently.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
* fix: data race in Options.clone() vs initConn MaintNotificationsConfig write
Add baseClient.cloneOpt() that acquires optLock.RLock before cloning options,
preventing a race with initConn which writes MaintNotificationsConfig.Mode
under the same lock. Update withTimeout and newTx to use cloneOpt().
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
---------
Co-authored-by: Ruben de Vries <[email protected]>
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Update module path from github.com/redis/go-redis/v9 to
github.com/hanzoai/kv-go/v9 for use as the Hanzo KV Go SDK.
- Update go.mod module declaration
- Update all Go imports across 260 files
- Update all submodule go.mod files (extra/*, example/*, internal/customvet)
- Adds support for handling push notifications with RESP3.
- Using this support adds handlers for hitless upgrades.
---------
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Hristo Temelski <[email protected]>
* wip
* update documentation
* add streamingcredentialsprovider in options
* fix: put back option in pool creation
* add package level comment
* Initial re authentication implementation
Introduces the StreamingCredentialsProvider as the CredentialsProvider
with the highest priority.
TODO: needs to be tested
* Change function type name
Change CancelProviderFunc to UnsubscribeFunc
* add tests
* fix race in tests
* fix example tests
* wip, hooks refactor
* fix build
* update README.md
* update wordlist
* update README.md
* refactor(auth): early returns in cred listener
* fix(doctest): simulate some delay
* feat(conn): add close hook on conn
* fix(tests): simulate start/stop in mock credentials provider
* fix(auth): don't double close the conn
* docs(README): mark streaming credentials provider as experimental
* fix(auth): streamline auth err proccess
* fix(auth): check err on close conn
* chore(entraid): use the repo under redis org