Docker build fails when local .venv directory exists because:
1. COPY . /workspaces/serena/ copies .venv into container
2. RUN uv venv fails with 'virtual environment already exists'
This change prevents the issue by excluding Python development artifacts:
- .venv (virtual environment)
- __pycache__ (Python bytecode cache)
- *.pyc (compiled Python files)
- .pytest_cache (test cache)
These files are not needed for Docker builds as the container creates
its own clean environment.
Co-authored-by: Cursor <cursoragent@cursor.com>
set_modes() applied requested modes directly to self._active_modes,
then called _update_active_modes_and_tools() which recreates
_active_modes from scratch (global config -> project config -> CLI
overrides), discarding the change.
Fix: store the requested modes into self._mode_overrides so they
survive the rebuild and take highest priority, matching the behavior
of CLI --mode flags.
Also adds test coverage for set_modes() which was previously untested.
Bug was introduced in commit 40a3075 on Jan 26, 2026.
Consolidate TestPhpLanguageServer and TestPhpPhpactorLanguageServer
into a single TestPhpLanguageServers class. Both Language.PHP and
Language.PHP_PHPACTOR are now parametrized together, with conditional
branching where the two language servers differ in behavior.
Addresses review comment on PR #1002.
Remove the unnecessary php_phpactor -> php symlink. Instead, add a
_LANGUAGE_REPO_ALIASES mapping in conftest.py so that variant language
servers (PHP_PHPACTOR, PYTHON_JEDI, RUBY_SOLARGRAPH) resolve to their
base language's test repository without needing filesystem symlinks.
Addresses review comment on PR #1002.
Check that the installed PHP version is >= 8.1 before proceeding with
Phpactor setup. Raises RuntimeError with a clear message if the version
is too old, and logs a warning if the version string cannot be parsed.
Addresses review comment on PR #1002.
- Introduce PHP_PHPACTOR enum and integration in ls_config
- Implement PhpactorServer for PHP with dependency management
- Update docs and changelog for Phpactor support and usage
- Add project template entry for php_phpactor
- Provide tests for Phpactor LSP definition and reference features
Fixes longstanding clangd issues (wrong selectionRange, failure to take compile_commands.json into account) and enhances documentation about C/C++ support
Filter out DotNetRuntime overrides from runtime_dependencies and
log a warning informing users that .NET is now installed via
Microsoft's official scripts.
Assert on actual hover content (type names and symbol names) instead
of just checking for non-empty content. This verifies hover returns
meaningful type information from Roslyn.
- Replace get_all_symbols_and_roots() with iter_symbols() to avoid
redundant tuple unpacking
- Make hover tests assert that hover_info is not None instead of
defensive conditionals
The test was mocking platform.system() but not the full platform detection
chain. On non-Linux CI platforms, platform.libc_ver() returns empty string,
causing "linux--x64" (double dash) instead of "linux-x64" in the platform ID.
Fix by mocking PlatformUtils.get_platform_id() directly to return proper
PlatformId values, following the pattern used in other tests.
Fixes both Linux bash script and Windows PowerShell script tests.
Following ALLanguageServer pattern, inject cached original symbol names
(with type annotations) into hover responses. This ensures type information
is available via hover operation as per SolidLSP convention.
- Override request_hover() to prepend original names to hover content
- Add comprehensive hover test verifying both property and method hovers
- Test covers Name property and IsAdult method
Addresses reviewer feedback about delivering type info via hover.
Test passes.