Relocates the solution file to test/resources/repos/csharp/
to organize C# test assets and keep the root directory clean.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add required --stdio flag for Microsoft.CodeAnalysis.LanguageServer
- Add required --extensionLogDirectory parameter to avoid startup failure
- Fix test fixture to properly start/stop language server
- Remove skip markers from C# tests to enable testing
- Return cache_dir from setup_runtime_dependencies for log directory creation
The language server now starts successfully and the first test passes.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Delete obj/ and bin/ directories from test project
- Add .gitignore for C# test project to exclude build artifacts
- Prevents committing build files, temporary files, and NuGet packages
- Implemented new CSharpLanguageServer class using Microsoft's official C# language server
- Downloads Microsoft.CodeAnalysis.LanguageServer NuGet package (requires .NET 9)
- Supports direct download from NuGet API with fallback to package managers
- Uses platform-specific runtime packages (linux-x64, win-x64, osx-x64, etc.)
- Caches downloaded language server in ~/.cache/serena/language-servers/csharp/
- Added basic tests for C# language server functionality
- Updated SolidLanguageServer.create to use new implementation
- Removed old OmniSharp implementation
Note: Full language server tests are skipped as they require .NET 9 runtime
- Change from solidlsp.exceptions to solidlsp.ls_exceptions
- Change from solidlsp.logger to solidlsp.ls_logger
These modules follow the ls_ prefix convention used throughout the solidlsp package.
make_tool previously depended on tool instances in the main process, but the tool instances are no longer available there
To solve this, the tool interface was adjusted to provide static information which is used in the ProcessIsolatedTool wrapper.
I also tried another approach before, where ProcessIsolatedTool would accept tool metadata at init, but this lead to serialization issues that couldn't be easily solved (mcp's FuncMetadata is not serializable, despite being a BaseModel...).
Tests for checking that the wrapped tool instance has the same metadata as the wrapper have been added.
- Update Eclipse JDTLS to vscode-java v1.42.0 with Java 21.0.7 JRE
- Update Kotlin language server dependencies to use Java 21
- Update test Maven project to use Java 21 compiler settings
- Update runtime configuration from JavaSE-17 to JavaSE-21
- Update dependency versions: lombok 1.18.36, launcher 1.7.0
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Moved symbol-reading related prompt to system prompt (from planning) since it's always need
- Use relative_path as kwarg in all tools (models get confused by different kwarg names)
- Identify and list memories without .md extension appearing
Also:
1. find_references now cannot return bodies, instead content around the reference is included
2. find_reference_snippets tool removed since it's no longer necessary