Repository navigation
client: prepare etcd3 2.0 for Node.js 24 and ESM - #222
Merged
Connor Peet (connor4312) merged 15 commits intoOct 10, 2026
Merged
Conversation
Replace the legacy test and dependency toolchain, use native bigint revisions, enable strict TypeScript, and prepare the unreleased 2.0.0 line. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adopt NodeNext module semantics, ESM package exports, explicit runtime specifiers, and ESM-compatible maintenance tooling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Regenerate RPC definitions from current upstream etcd, expose range responses as async iterables, and correct grpc-js server-stream argument ordering. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace Lodash usage in build scripts with native helpers while preserving generated output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Regenerate the API documentation with the current TypeDoc theme and remove the obsolete HTML post-processing step. Preserve exact-case generated paths so links work on case-sensitive GitHub Pages hosts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Re-enable reconnect and historical replay scenarios while making the TLS proxy lifecycle deterministic and leak-free. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add regression coverage and correct watch queue recovery, election and lock lifecycle handling, STM conflict and write semantics, namespace root ranges, and role and lease error behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Make watch and election lifecycle transitions terminal and race-safe, preserve cleanup call semantics, and correct transaction and range state handling. Add regressions for each failure across coordination, STM, namespacing, authentication, and transport behavior.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve watch and election lifecycle state across races, make lease and STM operations internally consistent, and handle authentication per etcd member. Add bounded token refresh, safe stream cancellation, awaitable transaction builders, and regressions for each corrected call flow.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Return logical keys from namespaced raw and previous-value reads without mutating STM caches, and make transaction thenables handle zero-argument assimilation safely.\n\nAllow authentication retries to progress across members, classify iterator aborts as local stream cancellation, and deduplicate watch error/end termination.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow endpoint lists to be replaced at runtime and synchronized from voting cluster members. Support configurable automatic synchronization, mutable intervals, warning events, and safe pool reconciliation across auth and TLS settings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 22302cc3-f672-4b8b-829d-aea289a49011
Add FIFO lease-backed mutex acquisition with async-disposable guards, cancellation, fencing tokens, and atomic ownership checks. Preserve the existing immediate Lock API and owner-key protocol for rolling-upgrade compatibility. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d3c3a109-a377-48db-bb6f-7cbb8294426b
Support using for clients and low-level streams, and await using for watchers, leases, legacy locks, campaigns, and election observers. Delegate disposal to the existing lifecycle methods so explicit cleanup remains compatible. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: e09b36b9-47d1-4e7a-9e66-5dd01a1572a0
Keep the npm v3 lockfile format and include all optional platform dependencies while retaining upstream dependency fixes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Older etcd servers stop receiving watch requests after a denied creation. Reopen the stream so existing and queued watchers can recover, with protocol and integration regression coverage. Skip unsupported ignore_value tests on etcd 3.1, document the etcd 3.2 minimum for touch, and avoid empty version-dependent test suites. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Connor Peet (connor4312)
marked this pull request as ready for review
October 10, 2026 00:04
Connor Peet (connor4312)
enabled auto-merge
October 10, 2026 00:04
Raymond Zhao (rzhao271)
approved these changes
Oct 10, 2026
Connor Peet (connor4312)
deleted the
connor4312/2.0-improvements-rebased
branch
October 10, 2026 00:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Review notes
Verified CI compatibility fixes
Validation
Marked ready for review after CI passed.