Skip to content

refactor: move LSP plugin contracts to owner crates - #1359

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/core-pr-d-extension-host
Jun 30, 2026
Merged

refactor: move LSP plugin contracts to owner crates#1359
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/core-pr-d-extension-host

Conversation

@limityan

@limityan limityan commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Move shared LSP protocol DTOs and plugin manifest contracts from bitfun-core to bitfun-core-types, while preserving the legacy bitfun_core::service::lsp::types import path.
  • Move LSP plugin registry, language/extension lookup, supported-extension summary, and command placeholder target mapping to bitfun-services-core; keep plugin package IO and process lifecycle in the core compatibility adapter.
  • Fix registry index ownership for overlapping plugins so unregistering an older overwritten plugin does not clear the newer plugin's active language/extension mappings.
  • Add focused contract tests and boundary rules to prevent LSP DTO/registry ownership and overlapping-plugin unregister behavior from drifting.
  • Update the core decomposition plan and layer guides to reflect the new LSP contract/service ownership.

Risk and compatibility

  • Existing desktop LSP command response shape is unchanged.
  • Existing Rust import paths through bitfun_core::service::lsp remain available via compatibility re-exports.
  • Plugin loading, server path validation, process spawning, permission, ACP, and UI behavior are not intentionally changed.
  • The registry fix only affects overlapping plugin mappings: the active newer plugin remains discoverable when an older overwritten plugin is unregistered.

Validation

  • cargo test -p bitfun-core-types
  • cargo test -p bitfun-services-core
  • cargo test -p bitfun-services-core --test lsp_plugin_registry_contracts
  • cargo check -p bitfun-core --no-default-features
  • cargo check -p bitfun-core --features product-full
  • cargo check -p bitfun-desktop
  • cargo check --workspace
  • cargo metadata --no-deps --format-version 1
  • node scripts/check-core-boundaries.mjs
  • node --test scripts/check-core-boundaries.test.mjs
  • pnpm run check:repo-hygiene
  • git diff --check

Known warning: Rust checks still show existing rmcp deprecation warnings in services-integrations/src/mcp/protocol/client_info.rs.

@limityan
limityan force-pushed the yanzhn/core-pr-d-extension-host branch from e68006d to a14a844 Compare June 30, 2026 09:44
@limityan
limityan merged commit ccd7461 into GCWing:main Jun 30, 2026
4 checks passed
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