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

karellen / karellen-lsp-mcp / 23788025273 / 6
72%
master: 72%

Build:
DEFAULT BRANCH: master
Ran 31 Mar 2026 08:32AM UTC
Files 10
Run time 1s
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: 71.224% (-3.5%) from 74.761%
23788025273.6

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)

761 of 1214 branches covered (62.69%)

Branch coverage included in aggregate %.

2370 of 3182 relevant lines covered (74.48%)

0.74 hits per line

Source Files on job 23788025273.6
  • Tree
  • List 10
  • Changed 8
  • Source Changed 0
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 23788025273
  • 50ea703e on github
  • Prev Job for on master (#23716839866.3)
  • Next Job for on master (#24054729137.9)
  • 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