• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

karellen / karellen-lsp-mcp / 23788025273
72%

Build:
DEFAULT BRANCH: master
Ran 31 Mar 2026 08:32AM UTC
Jobs 9
Files 10
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Mar 2026 08:30AM UTC coverage: 72.083% (-2.8%) from 74.836%
23788025273

push

github

web-flow
[release] Add LSP proxy frontend for native Claude Code integration (#29)

## Summary

- Add `karellen-lsp` as a native LSP server for Claude Code —
transparent code intelligence with no permission prompts and no manual
project registration
- Both MCP (`karellen-lsp-mcp`) and LSP (`karellen-lsp`) interfaces
share the same daemon, backend LSP servers, adapters, normalizers, and
readiness tracking via refcounted project registry
- **Daemon-side routing**: `ProjectRegistry.find_project_for_file()`
matches file paths against all registered projects (longest-prefix,
extension disambiguation for polyglot). MCP-registered projects are
visible to native LSP queries and vice versa
- **Normalizer owns URI lifecycle**: `normalize_response()` normalizes
URIs in both structured fields and string values (e.g., `jdt://` in
hover markdown), `denormalize_params()` reverse-maps for hierarchy item
roundtripping — per-normalizer-instance reverse cache, no state in
frontend
- **LSP proxy is thin**: JSON-RPC framing + initialize/shutdown, all
routing and normalization in daemon
- Add `regenerate` parameter to `register_project` (clean managed data +
force restart in one call)
- Add `LSP_MCP_LOG_LEVEL` env var for configurable log verbosity (daemon
+ LSP proxy)
- Add `.lsp.json` for Claude Code native LSP plugin discovery
- Add marketplace notification workflow
- Reuse managed `compile_commands.json` if fresh — skip cmake/meson
re-run on re-registration
- Freeze `elapsed_seconds` in indexing status once server becomes ready
- Redirect LSP server stderr to `server.log` in managed directory
- Detect dead LSP server process before attempting graceful shutdown

## Test plan

- [x] 320 unit tests pass (routing in `ProjectRegistry`, normalizer
`normalize_response`/`denormalize_params` roundtrip, URI string
scanning, polyglot disambiguation, nested project path matching)
- [x] Flake8 clean
- [x] Verified all 9 native LSP operations on MariaDB C codebase
(clangd) and Kotlin/Java co... (continued)

768 of 1214 branches covered (63.26%)

Branch coverage included in aggregate %.

172 of 350 new or added lines in 5 files covered. (49.14%)

1 existing line in 1 file now uncovered.

2444 of 3242 relevant lines covered (75.39%)

6.67 hits per line

Uncovered Changes

Lines Coverage ∆ File
133
57.19
-8.65% src/main/python/karellen_lsp_mcp/daemon.py
19
63.6
-1.51% src/main/python/karellen_lsp_mcp/lsp_client.py
17
83.16
-0.89% src/main/python/karellen_lsp_mcp/lsp_normalizer.py
8
67.22
-2.05% src/main/python/karellen_lsp_mcp/lsp_adapter.py
1
87.16
1.81% src/main/python/karellen_lsp_mcp/project_registry.py

Coverage Regressions

Lines Coverage ∆ File
1
57.19
-8.65% src/main/python/karellen_lsp_mcp/daemon.py
Jobs
ID Job ID Ran Files Coverage
1 23788025273.1 31 Mar 2026 08:32AM UTC 10
71.99
GitHub Action Run
2 23788025273.2 31 Mar 2026 08:32AM UTC 10
71.72
GitHub Action Run
3 23788025273.3 31 Mar 2026 08:32AM UTC 10
71.99
GitHub Action Run
4 23788025273.4 31 Mar 2026 08:32AM UTC 10
71.36
GitHub Action Run
5 23788025273.5 31 Mar 2026 08:32AM UTC 10
71.34
GitHub Action Run
6 23788025273.6 31 Mar 2026 08:32AM UTC 10
71.22
GitHub Action Run
7 23788025273.7 31 Mar 2026 08:32AM UTC 10
71.34
GitHub Action Run
8 23788025273.8 31 Mar 2026 08:32AM UTC 10
71.75
GitHub Action Run
9 23788025273.9 31 Mar 2026 08:32AM UTC 10
71.22
GitHub Action Run
Source Files on build 23788025273
  • Tree
  • List 10
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 50ea703e on github
  • Prev Build on master (#23716839866)
  • Next Build on master (#24054729137)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc