Commit Graph
2312 Commits
Author SHA1 Message Date
Dominik Jain d70b772564 Force-update all comments in .yml files when re-saving (ensuring up-to-date documentation) 2026-03-14 23:27:03 +01:00
Dominik Jain 0e6e94fc68 Improve description of web_dashboard option 2026-03-14 23:16:38 +01:00
Dominik Jain d6e325e2a0 Project.get_language_server_manager_or_raise: Fix error message generation
Fixes #1168
2026-03-14 23:00:39 +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
Terrance Orletsky 18cee10fa9 Fix PHP symbol retrieval: declare missing Intelephense client capabilities (#1099)
Fix PHP symbol retrieval via Intelephense LSP

* intelephense.py: Add missing client capability declarations for
  documentSymbol (with hierarchical support), references, hover, and
  workspace symbol. Without these, Intelephense does not advertise
  documentSymbolProvider and returns empty results for get_symbols_overview.

Add PHP tests validating hierarchical symbols and LS routing fix

- test_document_symbols_hierarchical_structure: verifies Intelephense
  returns DocumentSymbol[] with class/method hierarchy (not flat
  SymbolInformation[]) when hierarchicalDocumentSymbolSupport is declared

- test_full_symbol_tree_within_file: verifies request_full_symbol_tree
  scoped to sample.php returns Dog/Animal/greet/fetch with Dog containing
  greet as a child (not at root level)

- test_find_symbol_within_php_file: verifies find_symbol with a PHP
  file path (relative_path=) routes to the PHP language server via
  get_language_server() rather than iterating all servers

Peripheral changes:

- symbol.py (LanguageServerSymbolRetriever.find_symbols): When searching
  within a specific file, route to the file-type-appropriate language server
  via get_language_server() instead of querying all servers. This ensures
  PHP files are served by Intelephense and not silently skipped.
2026-03-12 15:19:11 +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
Dr. Dominik Jain f561204840 Merge pull request #1154 from zerone0x/fix/allow-project-creation-without-detected-languages
fix: allow project creation when no LSP-supported languages are detected
2026-03-11 00:40:05 +01:00
zerone0xandClaude 9e9b5edc53 fix: allow project creation when no LSP-supported languages are detected
Previously, ProjectConfig.autogenerate() raised a ValueError when no
recognized source files were found (e.g. empty dir, JetBrains project,
or project with only gitignored files). This prevented users from
creating Serena projects in valid scenarios, especially with the
JetBrains backend where language servers are not used at all.

Now, autogenerate() creates the project with an empty languages list
and logs a warning explaining that symbol tools will be unavailable
for the LSP backend. Users can add languages later via the dashboard
or by editing the project configuration manually.

Fixes #1053

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-10 16:44:27 +01:00
Dominik Jain 3f047f9a66 Fix: Prevent _default_language_server from becoming stale #1151 2026-03-10 12:22:51 +01:00
Dr. Dominik Jain 6ccea87be1 Merge pull request #1140 from cek/feature/configurable-line-ending
feat: Add configurable line_ending setting for file writes
2026-03-09 23:34:45 +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
Dominik Jain 65f5145ab0 Refactoring: Improve dependency structure of LanguageServerSymbolRetriever & CodeEditors
Simplify dependency injections by depending on Project instead of low-level instances
* LanguageServerSymbolRetriever(Project) - contains the instance
* LanguageServerCodeEditor(LanguageServerSymbolRetriever)
* CodeEditor(Project)

Move retrieval methods for LS manager from SerenaAgent to Project, including
the exception-based problem report
2026-03-09 23:20:45 +01:00
Dominik Jain 6bf71ef10b Improve line ending configuration
* Keep unset in project.yml by default (only explicit override)
* Fix member docstrings and member grouping in SerenaConfig
* Fix missing migration in SerenaConfig (ensure setting is saved)
2026-03-09 23:20:45 +01:00
Dr. Dominik Jain 682452dadd Merge pull request #1144 from tamaro-skaljic/fix-path-to-project-yml
Fix path_to_project_yml method to use config instead of removed constant
2026-03-09 17:19:37 +01:00
Tamaro Skaljic aab9ff6556 Fix path_to_project_yml method to use config instead of removed constant 2026-03-09 17:10:36 +01:00
Craig Kolb d6a832b5d9 feat: Add configurable line_ending setting for file writes
Resolves #1139
2026-03-07 22:36:12 -08: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
Dominik Jain eee2f12a74 Add migration of 'edit_global_memories' setting 2026-03-06 23:52:27 +01:00
Dominik Jain 4dc617ae6b Improve read-only memory handling, introducing MemoriesList 2026-03-06 23:47:10 +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
Dominik Jain 751f4ef906 TestProjectSerenaDataFolder: Wait for project to be fully ready before returning it 2026-03-06 20:46:15 +01:00
Dominik Jain b89522f363 Fix: Deduplication of ignore patterns shuffled patterns, breaking intended semantics
Fixes #1138
2026-03-06 19:34:04 +01:00
Dr. Dominik Jain 9755ba596f Merge pull request #1134 from oraios/project-local-yml
Add support for project.local.yml
2026-03-05 22:39:43 +01:00
Michael Panchenko 60d4cba822 Feature: configure read-only memories through regex patterns 2026-03-05 22:19:42 +01:00
Dominik Jain 45f1dcc3ae Mark TestFSharpLanguageServer.test_go_to_definition with xfail 2026-03-05 21:55:22 +01:00
Dominik Jain f2ded67464 Improve structure of change log 2026-03-05 21:55:22 +01:00
Dominik Jain 5b8c84f883 Update change log to mention new features pertaining to project handling [skip ci] 2026-03-05 21:55:22 +01:00
Dominik Jain d63a2e801e Add template for project.local.yml and copy it when creating a project 2026-03-05 21:55:21 +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 4353fd34dd Merge pull request #1104 from oraios/query-project-tool
Add QueryProjectTool and ListQueryableProjectsTool
2026-03-05 19:52:24 +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 b9a1ce9c3e Adjust exception wording to improve generality [skip ci] 2026-03-05 19:04:29 +01:00
Dominik Jain b805b58fe3 Pin ruff 2026-03-05 17:05:44 +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
Michael Panchenko 2c901b0a0e Raise error if overview is requested without suitable LS support 2026-03-04 20:12:23 +01:00
Michael Panchenko 4e26785a85 Fix health-check command (was using old overview api) 2026-03-04 20:07:50 +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 dadf3f6a18 Merge pull request #1128 from ClementBourt/fix/concurrent-log-file-collision
fix: append PID to log filename to prevent concurrent server collision
2026-03-04 15:16:13 +01:00
Dominik Jain ec15edde22 Clearly communicate scope of PRs [skip ci] 2026-03-04 14:43:58 +01:00
YenandClaude Sonnet 4.6 4b86e7b5e5 Enable Rego tests on Windows now that Regal fixed upstream path handling (#1114)
- Bump Regal from v0.36.1 to v0.39.0 which includes Windows path fixes
  (upstream fix: https://github.com/StyraInc/regal/issues/1683)
- Remove sys.platform == "win32" skipif from TestRegoLanguageServer

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 14:12:32 +01:00
Bourtguize-Ramel Clément cb0afa3d04 fix: append PID to log filename to prevent concurrent server collision
When multiple MCP servers start within the same second, they derive the
  same log filename from datetime_tag() (second-level precision only).
  Both then open the file with mode='w', causing one server's logs to be
  truncated and all subsequent output to be interleaved.

  Appending os.getpid() to the filename guarantees uniqueness across
  concurrent processes regardless of timing.
2026-03-04 12:18:05 +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 6e95e0e112 Merge pull request #1115 from oraios/improve-dotnet-handling
Improve .NET handling in C# and F# language servers
2026-03-02 21:14:04 +01:00
Dominik Jain 90967ad678 TestFSharpLanguageServer: Mark test_find_referencing_symbols with xfail 2026-03-02 21:13:18 +01:00
Dominik Jain eb78921c08 Split test_find_symbol_references and test_find_symbol into stable and unstable tests 2026-03-02 19:32:25 +01:00