Commit Graph
2287 Commits
Author SHA1 Message Date
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
Dominik Jain 9c336cc339 Update language requirements for C# and F#
[skip ci]
2026-03-02 19:29:00 +01:00
Dominik Jain c4844ec4a2 Raise .NET version in CI to 10 2026-03-02 17:47:38 +01:00
Dominik Jain 9800d4e98b Introduce DotNETUtil
* Apply in FSharpLanguageServer and CSharpLanguageServer
* CSharpLanguageServer: Disabled auto-install of .NET (does not work reliably)
  and remove corresponding test
* Remove TestFSharpLanguageServerSetup
2026-03-02 17:47:32 +01:00
Dominik Jain 9cd33aa503 Fully skip Phpactor tests on Windows (can cause hangs) 2026-03-02 00:23:46 +01:00
Dominik Jain 827512b4d1 Improve error reporting for LSP backend issues (LS initialisation)
* Include concrete information on failing language servers
* Explain how to access logs to get detailed information

Resolves #1112
2026-03-01 18:43:55 +01:00
Dominik Jain 6a798ef0c9 Merge pull request #1110 from oraios/fix/markdown-heading-symbol
Fix: Markdown heading symbols were low-level symbols
2026-03-01 14:55:21 +01:00
Dominik Jain 7ac79bae41 Marksman: Set document symbols cache fingerprint to account for override 2026-03-01 14:02:46 +01:00
Terrance Orletsky 003a9e2a6d Fix markdown heading symbol recognition in Marksman LSP
Marksman returns all headings (h1-h6) with SymbolKind.String (15), which
causes them to be treated as low-level symbols and filtered out of
get_symbols_overview results.

Override request_document_symbols in Marksman to remap SymbolKind.String
to SymbolKind.Namespace, which is semantically appropriate for headings
(named sections containing other content) and ensures they appear in
symbol overviews.
2026-03-01 13:57:47 +01:00
Dominik Jain 8375da7dc9 Rename _cache_context_fingerprint -> _document_symbols_cache_fingerprint
Also improve docstring to make clear what the purpose is
2026-03-01 13:05:49 +01:00
Dominik Jain 3d4610fef4 Merge branch 'main' into regression-test-init 2026-03-01 01:20:13 +01:00
Dominik Jain 67d8173f1e Add test for agent instantiation, including regression test for #1107 2026-03-01 01:19:14 +01:00
Dominik Jain 5333ea809f Fix active modes not necessarily being set in activate_project_from_path_or_name during init
Ref #1107
2026-03-01 01:04:09 +01:00
Dominik Jain 918a90280e Add information on project querying to the documentation & changelog 2026-03-01 00:50:24 +01:00
Dominik Jain 0f6471d2a8 Introduce ProjectServer to support QueryProjectTool for the LSP backend
The server allows arbitrary tools to be called remotely,
spawning language servers dynamically for each requested project.

This implements #1086 for LSP users.
2026-03-01 00:50:24 +01:00
Dominik Jain 1af824c025 Project: Make SerenaConfig compulsory, simplifying LanguageServerManager creation 2026-03-01 00:50:24 +01:00
Dominik Jain 59f344cc00 Add project system prompt 2026-03-01 00:10:47 +01:00
Dominik Jain 1cd05b4a2d Add QueryProjectTool and ListQueryableProjectsTool
These tools allow to query information from other projects (without activation)
by allowing tools to be executed in the respective project context.

LSP tools are not supported, as this would require language servers to be
spawned and managed, but when using the JetBrains backend, symbolic
access is fully supported for all projects, for which an IDE is open.
This thus implements #1086 for users of the JetBrains language backend.

The tools are optional. Mode 'query-projects' enables them.
2026-03-01 00:10:47 +01:00
Dominik Jain be618a4653 Merge pull request #1106 from oraios/fix-exposed-tools
Refactor active mode and tool computation, fixing modes not being able to activate optional tools
2026-02-28 21:22:59 +01:00
Dominik Jain e62aa47b7e Refactor active mode and tool computation, fixing modes not being able to activate optional tools
Modes could not activate optional tools, because optional tools were not in the base toolset.
Base toolset computation was fully refactored, now considering all initial modes in the sense
that their inclusions are definitely part of the base toolset.

Dynamic mode changes after agent creation are still subject to the constraint that they
can essentially only disable tools; while they can technically also enable tools,
enabling is not effective unless the tools were also in the exposed toolset (as clients
otherwise cannot "see" them).

Fixes #1105
2026-02-28 20:23:00 +01:00
Dominik Jain 5af01c71dd LanguageServerManager.from_languages: Refactoring, ensuring original language order in dict 2026-02-28 12:24:20 +01:00
Alberto Simões e4c4bf4d19 [Kotlin LSP] Do not download extra Java. (#1079)
The language server is already bundled with a JRE
2026-02-27 12:40:25 +01:00
Dominik Jain 2e2c7bdb60 Add JetBrainsPluginClientManager to scan ports in parallel
This speeds up the port scan considerably (was 1s per port without server on Win).

[skip ci]
2026-02-26 00:14:45 +01:00
Dominik Jain d49c14c258 Use more precise failure instructions (no workarounds) [skip ci] 2026-02-25 22:10:23 +01:00
Dominik Jain 880b03f8cc Update project.yml 2026-02-25 22:10:01 +01:00
Dominik Jain 59c4e59964 Merge pull request #1084 from oraios/xfail-flaky-tests
Use xfail to mark flaky tests, fix TestHoverBudget
2026-02-25 12:01:57 +01:00