Skip to content

Upgrade to Node.js 24 and improve telemetry and completions - #671

Open
satyakigh wants to merge 8 commits into
mainfrom
fix/telemetry-faults-completion-latency
Open

Upgrade to Node.js 24 and improve telemetry and completions#671
satyakigh wants to merge 8 commits into
mainfrom
fix/telemetry-faults-completion-latency

Conversation

@satyakigh

@satyakigh satyakigh commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

This change prepares CloudFormation Language Server v1.11.0 by updating dependencies, adopting Node.js 24, and improving telemetry, feature-flag refreshes, and completion performance.

Changes

Runtime and tooling

  • Adopt Node.js 24.x
  • Add Node 24 to the existing Node 18/20/22 long-running compatibility matrix.
  • Migrate Vitest configuration files from TypeScript to ESM.
  • Update the jscpd v5 duplication threshold to 1.4.

Telemetry and error handling

  • Suppress expected pino stream and console EPIPE shutdown errors.
  • Ensure telemetry shutdown runs even when metric flushing fails.
  • Avoid reporting expected client-side failures as service faults.

Feature flags

  • Preserve the active configuration when remote refreshes fail.
  • Validate remote configurations before updating memory or local storage.
  • Keep fetch, parse, and persistence failures as distinct telemetry outcomes.

Completion performance and Bound fuzzy-search

  • Derive top-level completion queries from the token at the cursor.
  • Bound fuzzy-search queries from malformed parser contexts.
  • Skip top-level completions inside YAML comments.
  • Record query and candidate-list lengths through dedicated metrics.

Incomplete or malformed templates can produce parser contexts containing an entire syntax node instead of the token at the cursor. Passing that text to Fuse creates unnecessary latency and can also propagate oversized values into completion filterText.

A two-week sample of 1.95M fuzzy searches showed the following latency distribution:

Query length Searches Average latency
≤4,096 1,905,000 ≤25.8 ms
4,097–10,000 30,254 48.4 ms
10,001–100,000 14,769 179.7 ms
Above 100,000 1,075 3.4 s

@satyakigh
satyakigh requested a review from a team as a code owner August 24, 2026 22:40
@satyakigh satyakigh changed the title Update lsp version, dependencies and fix other misc bugs Adopt Node.js 24 and improve telemetry and completions Aug 25, 2026
@github-code-quality

github-code-quality Bot commented Aug 25, 2026

Copy link
Copy Markdown

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/vitest

The overall line coverage in commit 2b8e3c8 in the fix/telemetry-faults... branch remains at 90%, unchanged from commit 8921369 in the main branch.

Show a line coverage summary of the most impacted files.
File main 8921369 fix/telemetry-faults... 2b8e3c8 +/-
src/schema/GetS...aTaskManager.ts 100% 100% 0%
src/utils/FuzzySearchUtil.ts 100% 100% 0%
src/telemetry/LoggerFactory.ts 57% 58% +1%
src/autocomplet...tionProvider.ts 95% 96% +1%
src/featureFlag...FlagProvider.ts 77% 88% +11%
src/utils/errors/ErrorLogs.ts 0% 83% +83%

Updated August 25, 2026 18:10 UTC

@satyakigh satyakigh changed the title Adopt Node.js 24 and improve telemetry and completions Upgrade to Node.js 24 and improve telemetry and completions Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant