feat(cdk-explorer): advertise LSP feature and protocol manifest#1750
Merged
Conversation
The CDK Language Server now advertises a capability manifest on initialize: a protocol version, a named feature list, and the supported commands, exposed via serverInfo and capabilities.experimental.cdk. A new 'cdk lsp --features' flag prints the same manifest as JSON and exits, so a client can probe LSP presence and capabilities without opening a session. This lets clients gate features by name rather than inferring them from the CDK CLI version. A test guards the advertised feature list against drift from the real server capabilities.
megha-narayanan
temporarily deployed
to
automation
July 22, 2026 16:18 — with
GitHub Actions
Inactive
megha-narayanan
had a problem deploying
to
automation
July 22, 2026 16:18 — with
GitHub Actions
Failure
megha-narayanan
had a problem deploying
to
no-approval
July 22, 2026 16:19 — with
GitHub Actions
Failure
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
…ng an import cycle Sourcing the manifest version by importing VERSION from the package barrel created an index -> lsp/features import cycle that node-backpack rejects at bundle time. The CDK CLI now injects its own versionNumber() into startLspServer and cdk lsp --features, and the manifest takes version as a parameter. This removes the cycle and reports the real CLI version rather than the library's placeholder.
megha-narayanan
temporarily deployed
to
no-approval
July 22, 2026 16:38 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
temporarily deployed
to
run-tests
July 22, 2026 16:42 — with
GitHub Actions
Inactive
megha-narayanan
marked this pull request as ready for review
July 22, 2026 16:53
rix0rrr
approved these changes
Jul 22, 2026
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.
The CDK Language Server now advertises a capability manifest on initialize: a protocol version, a named feature list, and the supported commands, exposed via serverInfo and capabilities.experimental.cdk. A new 'cdk lsp --features' flag prints the same manifest as JSON and exits, so a client can probe LSP presence and capabilities without opening a session.
This lets clients gate features by name rather than inferring them from the CDK CLI version. A test guards the advertised feature list against drift from the real server capabilities.
Fixes #
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license