Skip to content

refactor(lsp): remove standalone lsp plugins and lsp hooks from me plugin#583

Merged
baleen37 merged 2 commits intomainfrom
refactor/remove-lsp-plugins
Mar 28, 2026
Merged

refactor(lsp): remove standalone lsp plugins and lsp hooks from me plugin#583
baleen37 merged 2 commits intomainfrom
refactor/remove-lsp-plugins

Conversation

@baleen37
Copy link
Copy Markdown
Owner

@baleen37 baleen37 commented Mar 28, 2026

Summary

Remove 5 standalone LSP plugins (clangd, gopls, lua, pyright, typescript) and associated LSP-related hooks from the me plugin.

Changes

  • Deleted plugins/lsp-clangd, lsp-gopls, lsp-lua, lsp-pyright, lsp-typescript plugin directories
  • Removed LSP check-install hooks and handoff-session-start.sh from plugins/me/hooks/
  • Cleaned up marketplace.json: removed 5 lsp plugin entries, removed lsp tag and description reference from me
  • Cleaned up plugins/me/plugin.json: removed lspServers section, lsp-related keywords and description reference

Tests

Verified marketplace.json and plugins/me/plugin.json reflect the deletions correctly.

Summary by CodeRabbit

Release Notes

  • Chores
    • Removed language server plugins for Go, TypeScript, C/C++, Lua, and Python from the marketplace.
    • Updated the core plugin to remove language server functionality and associated configuration.
    • Removed installation scripts and test validations for language server setup.

@baleen37 baleen37 enabled auto-merge (squash) March 28, 2026 12:11
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 28, 2026

📝 Walkthrough

Walkthrough

The PR removes LSP (Language Server Protocol) plugin support by eliminating five standalone LSP plugins (lsp-gopls, lsp-typescript, lsp-clangd, lsp-lua, lsp-pyright), deleting LSP-related hooks and configurations from the me plugin, and updating the marketplace listing to exclude LSP servers.

Changes

Cohort / File(s) Summary
Marketplace Configuration
.claude-plugin/marketplace.json
Removed five LSP plugin entries (lsp-gopls, lsp-typescript, lsp-clangd, lsp-lua, lsp-pyright) from the published plugins array and updated the me plugin entry by removing the "lsp" tag and LSP server references from its description.
LSP Plugin Directories
plugins/lsp-clangd/..., plugins/lsp-gopls/..., plugins/lsp-lua/..., plugins/lsp-pyright/..., plugins/lsp-typescript/...
Removed five complete LSP plugin directories, each containing .claude-plugin/plugin.json manifest and .lsp.json configuration files for C/C++, Go, Lua, Python, and TypeScript language servers respectively.
Me Plugin LSP Configuration
plugins/me/.claude-plugin/plugin.json
Removed the lspServers export and LSP-related keywords from the plugin manifest; updated description to exclude LSP server references.
Me Plugin LSP Check Hooks
plugins/me/hooks/lsp-*-check-install.sh
Removed ten LSP language server installation check hook scripts: lsp-bash-check-install.sh, lsp-go-check-install.sh, lsp-kotlin-check-install.sh, lsp-lua-check-install.sh, lsp-nix-check-install.sh, lsp-python-check-install.sh, lsp-terraform-check-install.sh, lsp-typescript-check-install.sh, and handoff-session-start.sh.
Me Plugin Handoff Hook
plugins/me/hooks/handoff-session-start.sh
Removed the session start hook that auto-loaded recent handoff JSON files from the user's handoff directory.
Test Coverage
tests/me/me-specific.bats
Removed test case verifying that LSP install hooks use bun instead of npm for package installation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 Five LSP plugins hopped away today,
No more language servers in our array,
Hooks and configs swept clean with care,
The marketplace is lighter now, we swear!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately describes the main change: removing LSP plugins and LSP-related hooks from the codebase.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/remove-lsp-plugins

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

auto-merge was automatically disabled March 28, 2026 12:13

Repository rule violations found

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
plugins/me/.claude-plugin/plugin.json (1)

4-20: ⚠️ Potential issue | 🟠 Major

LSP removal is incomplete: SessionStart still invokes deleted hook scripts.

plugins/me/hooks/hooks.json (Line 1-50) still calls handoff-session-start.sh plus multiple lsp-*-check-install.sh commands that were removed. This will produce command failures during session start.

Proposed follow-up diff (`plugins/me/hooks/hooks.json`)
   "hooks": {
     "SessionStart": [
       {
         "matcher": "*",
         "hooks": [
-          {
-            "type": "command",
-            "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/handoff-session-start.sh",
-            "timeout": 10
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-bash-check-install.sh &>/dev/null &"
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-typescript-check-install.sh &>/dev/null &"
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-python-check-install.sh &>/dev/null &"
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-go-check-install.sh &>/dev/null &"
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-kotlin-check-install.sh &>/dev/null &"
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-lua-check-install.sh &>/dev/null &"
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-terraform-check-install.sh &>/dev/null &"
-          },
-          {
-            "type": "command",
-            "command": "${CLAUDE_PLUGIN_ROOT}/hooks/lsp-nix-check-install.sh &>/dev/null &"
-          }
+          // keep only non-LSP startup hooks that still exist
         ]
       }
     ],
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plugins/me/.claude-plugin/plugin.json` around lines 4 - 20, SessionStart in
plugins/me/hooks/hooks.json is still invoking removed scripts
(handoff-session-start.sh and several lsp-*-check-install.sh commands), causing
failures; edit the SessionStart hook to remove any calls to
"handoff-session-start.sh" and all "lsp-*-check-install.sh" entries and replace
them with the new, valid startup actions or leave the hook empty if no startup
script is required, ensuring the JSON array only references existing scripts;
search for the exact symbol "SessionStart" and filenames
"handoff-session-start.sh" and patterns "lsp-*-check-install.sh" to locate and
remove/update the stale entries.
🧹 Nitpick comments (1)
plugins/me/.claude-plugin/plugin.json (1)

19-20: Please update manifest validation to stop allowing lspServers.

tests/helpers/bats_helper.bash (Line 124-151) still treats lspServers as an allowed field, which weakens enforcement of this cleanup in future manifests.

Proposed follow-up diff (`tests/helpers/bats_helper.bash`)
-    local allowed_fields="name description author version license homepage repository keywords lspServers"
+    local allowed_fields="name description author version license homepage repository keywords"
...
-            echo "Allowed fields: name, description, author, version, license, homepage, repository, keywords, lspServers"
+            echo "Allowed fields: name, description, author, version, license, homepage, repository, keywords"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plugins/me/.claude-plugin/plugin.json` around lines 19 - 20, The manifest
validation in the test helper still treats the deprecated key `lspServers` as
allowed; update tests/helpers/bats_helper.bash to remove `lspServers` from the
allowed manifest fields list (the array or variable that enumerates permitted
manifest keys, e.g., the allowed_fields/ALLOWED_MANIFEST_KEYS constant used in
the validation function), and update any assertions that expect `lspServers` to
be permitted so the helper will fail when manifests include that key.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@plugins/me/.claude-plugin/plugin.json`:
- Around line 4-20: SessionStart in plugins/me/hooks/hooks.json is still
invoking removed scripts (handoff-session-start.sh and several
lsp-*-check-install.sh commands), causing failures; edit the SessionStart hook
to remove any calls to "handoff-session-start.sh" and all
"lsp-*-check-install.sh" entries and replace them with the new, valid startup
actions or leave the hook empty if no startup script is required, ensuring the
JSON array only references existing scripts; search for the exact symbol
"SessionStart" and filenames "handoff-session-start.sh" and patterns
"lsp-*-check-install.sh" to locate and remove/update the stale entries.

---

Nitpick comments:
In `@plugins/me/.claude-plugin/plugin.json`:
- Around line 19-20: The manifest validation in the test helper still treats the
deprecated key `lspServers` as allowed; update tests/helpers/bats_helper.bash to
remove `lspServers` from the allowed manifest fields list (the array or variable
that enumerates permitted manifest keys, e.g., the
allowed_fields/ALLOWED_MANIFEST_KEYS constant used in the validation function),
and update any assertions that expect `lspServers` to be permitted so the helper
will fail when manifests include that key.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: db0713c5-55f7-4859-86c6-13353847239c

📥 Commits

Reviewing files that changed from the base of the PR and between 2fe00b5 and 238587a.

📒 Files selected for processing (22)
  • .claude-plugin/marketplace.json
  • plugins/lsp-clangd/.claude-plugin/plugin.json
  • plugins/lsp-clangd/.lsp.json
  • plugins/lsp-gopls/.claude-plugin/plugin.json
  • plugins/lsp-gopls/.lsp.json
  • plugins/lsp-lua/.claude-plugin/plugin.json
  • plugins/lsp-lua/.lsp.json
  • plugins/lsp-pyright/.claude-plugin/plugin.json
  • plugins/lsp-pyright/.lsp.json
  • plugins/lsp-typescript/.claude-plugin/plugin.json
  • plugins/lsp-typescript/.lsp.json
  • plugins/me/.claude-plugin/plugin.json
  • plugins/me/hooks/handoff-session-start.sh
  • plugins/me/hooks/lsp-bash-check-install.sh
  • plugins/me/hooks/lsp-go-check-install.sh
  • plugins/me/hooks/lsp-kotlin-check-install.sh
  • plugins/me/hooks/lsp-lua-check-install.sh
  • plugins/me/hooks/lsp-nix-check-install.sh
  • plugins/me/hooks/lsp-python-check-install.sh
  • plugins/me/hooks/lsp-terraform-check-install.sh
  • plugins/me/hooks/lsp-typescript-check-install.sh
  • tests/me/me-specific.bats
💤 Files with no reviewable changes (20)
  • plugins/lsp-pyright/.lsp.json
  • plugins/lsp-gopls/.lsp.json
  • plugins/me/hooks/lsp-typescript-check-install.sh
  • plugins/lsp-clangd/.lsp.json
  • plugins/me/hooks/lsp-bash-check-install.sh
  • plugins/lsp-lua/.lsp.json
  • plugins/me/hooks/lsp-go-check-install.sh
  • plugins/lsp-pyright/.claude-plugin/plugin.json
  • plugins/me/hooks/lsp-terraform-check-install.sh
  • plugins/me/hooks/lsp-python-check-install.sh
  • plugins/lsp-typescript/.lsp.json
  • plugins/lsp-clangd/.claude-plugin/plugin.json
  • plugins/lsp-typescript/.claude-plugin/plugin.json
  • plugins/me/hooks/lsp-kotlin-check-install.sh
  • plugins/me/hooks/lsp-nix-check-install.sh
  • plugins/me/hooks/lsp-lua-check-install.sh
  • plugins/lsp-gopls/.claude-plugin/plugin.json
  • tests/me/me-specific.bats
  • plugins/me/hooks/handoff-session-start.sh
  • plugins/lsp-lua/.claude-plugin/plugin.json

@baleen37 baleen37 merged commit 0863bee into main Mar 28, 2026
5 checks passed
@baleen37 baleen37 deleted the refactor/remove-lsp-plugins branch March 28, 2026 14:06
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