Add support for Free Pascal/Lazarus projects using pasls.
Features:
- Auto-download pasls binary for Linux, macOS, and Windows
- Platform detection for x64 and arm64 architectures
- Support for FPC environment variables (PP, FPCDIR)
CI: Add FPC compiler installation (fpc-ootb for Windows)
Includes test repository and unit tests.
- Convert relative ELM_HOME to absolute path based on repository root,
fixing package discovery when devbox uses relative paths like '.elm'
- Wait for textDocument/publishDiagnostics before marking server ready,
ensuring workspace is fully scanned before accepting LSP requests
- Use shutil.which() for elm tool paths in initialization options
Fixes 'No Elm workspace contains' errors when elm-language-server
starts before workspace indexing completes.
Co-authored-by: Jordan Munch O'Hare <git@jordan.munchohare.com>
The get_platform_id() function was generating "linux-arm64-musl" but the
PlatformId enum expects "linux-musl-arm64". This caused a ValueError on
musl-based Linux systems (e.g., Alpine Linux on arm64).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: mhaynie <mhaynie@pazer.us>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Mark the tool as optional (disabled by default)
* Enable the tool if the dashboard is enabled, not opened and the GUI is off
* Improve factorisation and return value/error handling
This provides an alternative for users who want to disable automatic
browser opening (web_dashboard_open_on_launch: False) but still have
easy access to the dashboard through AI assistance.
Changes:
- Add OpenDashboardTool in config_tools.py
- Add open_dashboard() and get_dashboard_url() methods to SerenaAgent
- Store dashboard URL in _dashboard_url field
- Update documentation with new tool and configuration option
- Update config template comment to mention the tool
Closes#875
The test was using SerenaMCPFactorySingleProcess and _instantiate_agent()
which were removed when process isolation was removed from the codebase.
Updated to use SerenaMCPFactory and _create_serena_agent() instead.
This fixes the CI pipeline which was failing on all test runs.
This reverts commit 7ad44edd18.
Listen address 0.0.0.0 is necessary for docker, because port forwarding for Docker
is just NAT, so port forwarding alone is not sufficient
Fixes#879
Compact version and support for depth>0 and filtering out imports.
Backwards compatible (previous plugin versions won't crash),
but users have to update to 2023.2.3 to benefit from the change
Add readOnlyHint, destructiveHint, and title annotations to all tools
to help LLMs better understand tool behavior and make safer decisions.
Changes:
- Added destructiveHint: true to tools that modify data
- Added title annotations for human-readable display (e.g., "Find Symbol")
- Fixed memory tools (WriteMemoryTool, DeleteMemoryTool, EditMemoryTool)
to correctly inherit ToolMarkerCanEdit, ensuring they get destructiveHint: true
This improves tool safety metadata for MCP clients by:
- Helping LLMs distinguish read-only from destructive operations
- Providing human-readable titles for tool display
- Correctly categorizing all memory-modifying tools as destructive
Co-Authored-By: Claude <noreply@anthropic.com>
The grouping by type and the removing of the per-symbol-repeated name_path leads to a huge reduction in output size while the same information is retained!
From
{"symbols": [{"name_path": "collections", "type": "Py:IMPORT_ELEMENT"}, ...
To
{"symbols": {"Py:IMPORT_ELEMENT": ["collections", ...