Commit Graph
140 Commits
Author SHA1 Message Date
Michael Panchenko f00a992e5d Security enhancement: pinned all runtime deps, verify checksums
Extended documentation of ls_specific_settings and of our security approach
2026-03-27 13:00:09 +01:00
b898677b1c feat: add ignored_memory_patterns config option for regex-based memory exclusion (#1145)
Co-authored-by: Bokai Yang <22804145+YouJianFengXue@users.noreply.github.com>
Co-authored-by: Michael Panchenko <35432522+MischaPanch@users.noreply.github.com>
2026-03-23 18:12:30 +01:00
code4lala bf92f3cb49 feat: Support project-level ls_specific_settings (#1192) 2026-03-23 18:03:57 +01:00
Sergey Belov ff1b9057c0 Add limited Ansible language server support (#1170)
References and definition not working yet. Since ansible resolves same files as yaml LS, we will need to add disambiguation later.

Work in progress, improvements on the language server itself are being worked on, ansible support in Serena will be extended accordingly in the future.
2026-03-16 22:40:58 +01:00
Dominik Jain 7a1dcfeeda Auto-generate the tool list in the documentation 2026-03-15 17:26:20 +01:00
010ed1015d docs: clarify inheritance of global defaults
Fixes #1155

Co-Authored-By: Dominik Jain <dominik.jain@oraios-ai.de>
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-15 12:59:42 +01:00
Dominik Jain e615c54d80 Improve documentation of HTTP mode and multiple agents in general
Resolves #1118
2026-03-15 12:36:10 +01:00
Vinh Tran 6d6f55308f feat(solidlsp): add Solidity language server support (#1156)
Integrates the Nomic Foundation @nomicfoundation/solidity-language-server
as a new Language.SOLIDITY backend (experimental). Supports .sol files with
go-to-definition, find references, document symbols, hover, and diagnostics.
The server is automatically installed via npm on first use.
2026-03-13 13:14:09 +01:00
StayBlue b3a6045f7e Add Luau language support (#1152) 2026-03-12 11:58:45 +01:00
Dan Rosen 09c007d1e1 Add Lean 4 language support (#1137) 2026-03-12 11:32:31 +01:00
Dominik Jain f51ba805f0 Add comment explaining that JavaScript is supported via the TypeScript LS
Resolves #1141
2026-03-09 23:29:19 +01:00
Dr. Dominik Jain 66cbe31045 Merge pull request #1135 from oraios/read_only_memories
Feature: configure read-only memories through regex patterns
2026-03-07 00:41:41 +01:00
Michael Panchenko 57fc582606 Merge branch 'refs/heads/main' into read_only_memories
# Conflicts:
#	src/serena/config/serena_config.py
#	src/serena/project.py
2026-03-06 23:23:11 +01:00
Michael Panchenko 60d4cba822 Feature: configure read-only memories through regex patterns 2026-03-05 22:19:42 +01:00
Dominik Jain 75cf842180 Add support for project.local.yml 2026-03-05 21:55:21 +01:00
Alberto SimõesandDominik Jain 58efe413e3 Merge pull request #1131 from cx-alberto-simoes/feature/configurable-serena-folder-location
feat: add configurable project_serena_folder_location setting

Add a new `project_serena_folder_location` setting to `serena_config.yml` that allows configuring where the per-project `.serena` data folder (memories, caches) is stored, with `$projectDir` and `$projectFolderName` placeholder support (default: `$projectDir/.serena`, preserving current behavior).

Resolves #1123

Co-authored-by: Dominik Jain <dominik.jain@oraios-ai.de>
2026-03-05 21:09:13 +01:00
Dominik Jain 8f3a31768e Merge remote-tracking branch 'origin/main' into query-project-tool
Conflicts:
	src/serena/agent.py
	src/serena/project.py
2026-03-05 19:08:10 +01:00
Dominik Jain e7ae10f7cd Update supported IDEs, move OCaml info to the proper place 2026-03-04 22:22:41 +01:00
John Haley 13e20c1cbd feat: Add comprehensive OCaml language support with ocaml-lsp-server integration (#573) 2026-03-04 21:56:49 +01:00
DevonandClaude Opus 4.6 dbd7bf7596 Add HLSL and related languages support through shader-language-server (#1093)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:28:50 +01:00
Dominik Jain 736a6ed103 Update list of supported IDEs 2026-03-04 12:05:53 +01:00
Michael Panchenko 47bb6326cf Fix references in docs 2026-03-04 01:17:23 +01:00
ccbd15082b Feature/global memories (#1091)
Support for global (cross-project) memories, adds a news item

---------

Co-authored-by: Ariadne[bot] (butterflysky-ai) <good.town5863@butterflysky.dev>
Co-authored-by: Dominik Jain <dominik.jain@oraios-ai.de>
2026-03-03 15:18:41 +01:00
Dominik Jain 9c336cc339 Update language requirements for C# and F#
[skip ci]
2026-03-02 19:29:00 +01:00
Dominik Jain 918a90280e Add information on project querying to the documentation & changelog 2026-03-01 00:50:24 +01:00
Dominik Jain 0c95433fb9 Merge pull request #835 from tkruse/main
Eclipse JDTLS: Add use_system_java_home, gradle_wrapper_enabled and gradle_java_home to support usage in context with restrictive gradle wrapper
2026-02-24 14:04:39 +01:00
Thibault Kruse 8c2f303636 835: Add an LS-specific settings use_system_java_home, gradle_wrapper_enabled and gradle_java_home
* fixes serena startup in cases where projects have a gradle wrapper which requires a specific JRE
2026-02-24 14:03:25 +01:00
Marius AilincaandClaude Opus 4.6 6decf2e8d1 Docs: document per-project language_backend override; move field to SharedConfig
- Add "Per-Project Configuration" section to JetBrains plugin docs
  with cross-reference anchor for linking from other pages
- Add language_backend to project configuration feature list in workflow docs
- Add cross-reference from global config docs to per-project override
- Move language_backend field from ProjectConfig to SharedConfig,
  following the same pattern as symbol_info_budget (review feedback)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:53:08 +02:00
de186907f2 Update Kotlin Language Server to v261.13587.0 and refactor it to use DependencyProvider (#1061)
---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Michael Panchenko <michael.panchenko@oraios-ai.de>
2026-02-23 12:35:13 +01:00
Dominik Jain ce246c2d39 Clarify that plugin installation should be on the host only 2026-02-20 15:05:38 +01:00
Dominik Jain d7d3435abe Improve WSL usage information for JetBrains plugin #1057 2026-02-20 14:39:27 +01:00
Dominik Jain 3791c1b050 CSharpLanguageServer: Make clear that pwsh is required 2026-02-19 17:23:46 +01:00
TJ Kolleh 1ea5f0c25f feat(scala): Add stale lock detection for Metals H2 database (#1012)
* feat(scala): Add stale lock detection for Metals H2 database

Add detection and automatic cleanup of stale Metals H2 database locks
to improve multi-instance support. When a Metals process crashes without
proper cleanup, it can leave a lock file that prevents proper AUTO_SERVER
coordination with new instances.

Changes:
- Add metals_db_utils.py with detection logic for stale locks
- Add StaleLockMode enum (auto-clean/warn/fail) for configurable behavior
- Add MetalsStaleLockError exception for fail mode
- Integrate stale lock checking into ScalaLanguageServer init
- Add configuration options: on_stale_lock, log_multi_instance_notice
- Add comprehensive unit tests for detection logic

This enhancement allows Serena's Metals to coexist with VS Code or other
editors running Metals on the same project, with proper handling of edge
cases like crashed processes.

* test(scala): Add integration tests for stale lock handling modes

Add 7 integration tests for ScalaLanguageServer stale lock detection:
- AUTO_CLEAN mode cleans stale locks and proceeds
- WARN mode logs warning without cleanup
- FAIL mode raises MetalsStaleLockError
- ACTIVE_INSTANCE logs info when notice enabled
- ACTIVE_INSTANCE silent when notice disabled
- NO_DATABASE proceeds silently
- NO_LOCK proceeds silently

Tests use mocking to avoid requiring Java/Coursier/Metals.

* docs(scala): Add multi-instance and stale lock documentation

Document Metals multi-instance support via H2 AUTO_SERVER:
- Explain how multiple Metals instances share database and Bloop
- Document memory considerations (~500MB per JVM)
- Add stale lock detection configuration options
- Document on_stale_lock modes (auto-clean, warn, fail)
- Add YAML configuration examples

* docs: Clean up docs

Removed memory considerations and additional configuration sections from the Scala setup guide.

* refactor(scala): Extract settings helper and add module-level constants

- Add DEFAULT_METALS_VERSION, DEFAULT_CLIENT_NAME, DEFAULT_ON_STALE_LOCK,
  DEFAULT_LOG_MULTI_INSTANCE_NOTICE constants to eliminate duplication
- Extract _get_scala_settings() pure function for centralized settings parsing
- Remove redundant cleanup_stale_lock import
- Add warning log when AUTO_CLEAN mode fails to remove stale lock
- Simplify lock path handling with ternary expression

This refactoring improves code maintainability by centralizing Scala
settings extraction and applying functional programming principles.

* chore(scala): fix typo in docstring and comments
2026-02-19 13:30:05 +01:00
Dominik Jain f117196989 Add section on logs to usage documentation 2026-02-17 14:05:54 +01:00
Dominik Jain cd2f6f6717 Update list of LS supporting ls_path 2026-02-13 03:12:28 +01:00
Dominik Jain be155a348e Improve JetBrains usage documentation
Relates to #1027
2026-02-12 21:26:22 +01:00
Dominik Jain 3e71411780 Improve language requirements/alternatives documentation 2026-02-11 21:17:27 +01:00
Dominik Jain 4d0a4f6180 Merge remote-tracking branch 'origin/main' into feature/support-phpactor 2026-02-07 15:03:41 +01:00
takeokunn 65c24a0df8 feat(php): add Phpactor as alternative PHP language server
- 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
2026-02-07 22:40:56 +09:00
Michael Panchenko e588bc7f89 C/C++ language server fixes (#987)
Fixes longstanding clangd issues (wrong selectionRange, failure to take compile_commands.json into account) and enhances documentation about C/C++ support
2026-02-06 15:25:43 +01:00
Dominik Jain ca49707791 Do not use CWD as a fallback for --project-from-cwd
This can be problematic if CWD is, for example, the user's home directory.
Fixes #979
2026-02-05 14:14:20 +01:00
Tom Longhurst d199718695 Add C# language server documentation
Document the runtime_dependencies setting for overriding Roslyn
Language Server download URLs and supported platforms.
2026-02-02 23:01:30 +00:00
Dominik Jain 811e1981b5 Merge pull request #978 from oraios/dependency-provider-rust
Convert RustAnalyzer to use LanguageServerDependencyProviderSinglePath
2026-02-01 18:50:37 +01:00
Dominik Jain 6b87ffd758 Convert RustAnalyzer to use LanguageServerDependencyProviderSinglePath 2026-02-01 14:29:39 +01:00
Azraf Nahian 71a6f1ff82 CCLS Support added (#975)
Also added a test suite for both clangd and ccls
2026-02-01 20:01:51 +07:00
Dominik Jain 01dc6f8734 Add note making clear the LS-specific settings need not be adjusted by most users 2026-01-31 17:22:02 +01:00
Dominik Jain 944cf5d956 Improve docs on mode configuration 2026-01-30 00:36:28 +01:00
Dominik Jain a9552b64f5 Merge pull request #969 from oraios/feature/mode-config
Improve mode configurability and general config improvements
2026-01-29 20:05:16 +01:00
Michael Panchenko f14faa12d0 Merge pull request #947 from Linde7777/fix-codex-prompt
Adjust the activation prompt for Codex, to make GPT-5 more compliant.
2026-01-29 14:26:09 +07:00
Dominik Jain 5b103ee281 Improve configurability of modes
Modes can now be configured in three places (in reverse order of precedence)
  * global config
  * project config
  * command line

Furthermore, we differentiate base modes from default modes,
where command line parameters override only default modes,
adding more flexibility

Resolves #926
2026-01-26 20:20:29 +01:00