Commit Graph
1467 Commits
Author SHA1 Message Date
Dominik Jain 66a72d2b76 Update language settings in project configuration template 2025-10-28 18:52:23 +01:00
Dominik Jain 27b933796a Improve LS-related error handling, reporting and propagation 2025-10-28 18:52:23 +01:00
Dominik Jain 747d342166 Make stream reader thread names indicate the language 2025-10-28 18:52:23 +01:00
Dominik Jain c7a0afb6ce Spawn language servers in parallel (using threads) 2025-10-28 18:52:23 +01:00
Dominik Jain e0ab4db189 Add LanguageServerManager, adding multi-language support in a single project 2025-10-28 18:52:23 +01:00
Dominik Jain 340338f593 Update lock file 2025-10-28 01:07:26 +01:00
MischaPanch c43c9c55f5 Merge branch 'main' of github.com:oraios/serena 2025-10-27 22:15:46 +01:00
MischaPanch ad4fec9230 Enhance dashboard functionality
Added an overview (landing page showing current and available config) and advanced stats windows, controlled by top-right menu

Stats calculation is no longer optional, but we use a trivial token estimator by default
2025-10-27 22:08:53 +01:00
Suvarchal Kumar Cheedela a8f6ad92cc Add Fortran language support via fortls (#698) 2025-10-27 18:49:32 +01:00
David Markey 45407f7a2a Update agno API to the newest version, switch to AgentOS (#702) 2025-10-27 15:57:56 +01:00
MischaPanch 4bf2cbe818 Readme, changelog (mention Julia support) [ci skip] 2025-10-27 00:18:25 +01:00
Ketema Harris 37c4898bd6 feat: Add Haskell language server support (#697) 2025-10-26 23:30:40 +01:00
Dominik Jain 1461aff18c Improve description of RegexReplaceTool 2025-10-26 12:00:00 +01:00
Dominik Jain 70ab5e77bf Re-enable InitialInstructionsTool, because some clients do not read the system prompt
at connection time (e.g. Claude Desktop)

Establish a "name" for the instructions (Serena Instructions Manual) such that the agent
can know whether it has read the instructions and therefore will know whether or not
the tool needs to be called
2025-10-25 21:30:19 +02:00
Dominik Jain 570703d0ae Improve string representation of Project and JetBrainsSymbol
Improve typing of JetBrainsSymbol
2025-10-25 21:29:50 +02:00
Dominik Jain 1e06812d68 Fix: Allow increasing the log level (e.g. to WARNING or ERROR) 2025-10-23 12:26:41 +02:00
Vishwajit Sarnobat fd410a4638 feat: Add Julia language server support (#691)
Implements JuliaLanguageServer with LanguageServer.jl integration.
Includes comprehensive tests and auto-detection of Julia installations.

Checks for LanguageServer.jl on startup and installs via Pkg.add if not found. Only runs once on first use.
2025-10-22 00:37:12 +02:00
Dominik Jain 64ac699ac6 FileUtils.read_file: Remove logger parameter, do not wrap exceptions 2025-10-20 22:41:49 +02:00
玖亖伍 d88e2dd180 Enhancing file read robustness (#682)
If a file cannot be read using the project's defined encoding, 
use charset-normalizer to detect the likely encoding
2025-10-20 21:36:32 +02:00
MischaPanch f45c22045a Minor additions to readme, changelog [ci skip] 2025-10-19 12:55:34 +02:00
youM 6a28fff9d0 Feature: Support Scala Language (#528)
Unlike other language servers, metals LS only works properly when the project has been compiled in a particular way. Compiling like this on the fly or in CI is unfeasible, so instead, we expect the user to setup and compile the project correctly when using Serena for scala. Extensive documentation has been added.

Scala tests exist, but we don't run them in CI. They have been executed manually on macOS and Windows, thereby verifying that after following the instructions, Scala support works in Serena.
2025-10-19 12:47:52 +02:00
Dominik Jain 19b56d94bb Support rename_symbol for JetBrains 2025-10-17 18:10:05 +02:00
Dominik Jain 4d7072d9ed Fix mypy issues 2025-10-17 14:32:08 +02:00
Dominik Jain 89340ef197 Fix project-specific information (prompt, encoding, etc.) not being provided
when the project is activated at startup (ActivateProjectTool not applied)

Peripheral change: Move MemoriesManager into module 'project',
moving the instance into the Project instance, because memories are strictly
associated with the project

Fixes #681
2025-10-17 13:40:57 +02:00
Dominik Jain ef4c19c586 Merge pull request #674 from oraios/use-project-encoding 2025-10-17 00:50:03 +02:00
Dominik Jain 5d7aeb680f Intelephense: Account for spaces in launch command (use robust list syntax instead of string) 2025-10-16 22:35:50 +02:00
Dominik Jain 3cde03a8fb Introduce constant for Serena file encoding
* SERENA_FILE_ENCODING for Serena-specific files (config files, memories)
 * DEFAULT_SOURCE_FILE_ENCODING for source files (renamed from DEFAULT_ENCODING)
2025-10-16 22:10:35 +02:00
Nickolay Kondratyev b1d9ac5765 [README-only-change]: Add quotes around /home/nickolaykondratyev/git_repos/nickolay-kondratyev_serena per shell best practices (#679)
If someone uses spaces in file names /home/nickolaykondratyev/git_repos/nickolay-kondratyev_serena is likely to not work as expected due to argument splitting (hopefully people arent using spaces, but its best practice to quote everything in shell)
2025-10-16 20:10:38 +02:00
Nickolay Kondratyev fd8b0174f4 [README-only-change]: Add section for git worktree usage (#680) 2025-10-16 20:09:40 +02:00
Michael Panchenko 5dfb8ad912 Merge pull request #676 from oraios/minor_fix_in_ignored_path
Minor fix in ignored path
2025-10-16 18:34:44 +02:00
MischaPanch e1ba1befa9 Bugfix - special handling of edge case in ignore patterns
Was falsely matching project root against something like ".*" in gitignore
2025-10-16 18:05:51 +02:00
Dominik Jain 4e3db0bd09 Consistently use the project's encoding setting, also passing it on the LS 2025-10-16 15:04:06 +02:00
Dominik Jain 563e42efbd Add encoding entry to project.yml template (supported since 20th June) 2025-10-16 13:56:51 +02:00
Michael PanchenkoandDon Syme 25da7a505f Add rename_symbol method (#660)
Tested through a snapshot test on python. Calling the tool with language servers not supporting renaming will raise an error

Co-authored-by: Don Syme <dsyme@users.noreply.github.com>
2025-10-16 12:12:20 +02:00
Yen f2919f11c5 Add rego language support (#670)
Also added an ignore rule for ruff (about unused unpacked variables), we might reintroduce this rule later
2025-10-15 22:46:25 +02:00
Dominik Jain 39a11657a9 Project.validate_relative_path: Make handling of ignored files explicit #672 2025-10-15 18:16:55 +02:00
Michael Panchenko 5f114d9e05 Merge pull request #669 from Anivie/fix_rust_analyzer
Fix 'Failed to deserialize config field at /cargo/cfgs' error from rust analyzer
2025-10-15 11:16:05 +02:00
dc31e4e27e fix(nix): resolve build issues and add CI verification (#668)
* ci: add Nix build verification to pytest workflow

Add a verification step to the CI pipeline that validates the Nix package builds successfully on each run. The step uses 'nix build --no-link' to verify the flake builds without creating artifacts.

This provides early detection of Nix packaging issues with minimal overhead, reusing the existing Nix installation on Linux and macOS runners.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

* fix(nix): add setuptools to ruamel-yaml-clib build dependencies

Add pyproject override to ensure ruamel-yaml-clib has setuptools available during build. This fixes Nix build failures where the package requires setuptools but doesn't declare it as a native build input.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
2025-10-15 11:14:32 +02:00
Anivie Michaelis a82d9a9fb9 Update rust_analyzer.py
Fix 'Failed to deserialize config field at /cargo/cfgs' error by rust analyzer
2025-10-15 11:21:02 +08:00
Drew Volz 8abfe58c67 feat(text_utils): add brace expansion for glob patterns (#652)
* adds expand_braces function to handle glob patterns
* updates search_files to use it for include/exclude patterns
* allows for flexible file filtering `**/*.{js,ts}` to match ts/js
2025-10-14 13:15:39 +02:00
Jordan Munch O'HareandJordan Munch O'Hare 675a421287 feat: Elm language support (#667)
Also added Node.js setup to GitHub Actions workflow

---------

Co-authored-by: Jordan Munch O'Hare <git@jordan.munchohare.com>
2025-10-14 10:15:53 +02:00
Michael Panchenko 21af8bf451 Removed LinesRead and mark_file_modified (#666) 2025-10-13 11:37:17 +02:00
Ryuhei Nakano 9b622bcfd5 added support for Perl via Perl::LanguageServer (#656) 2025-10-12 16:07:34 +02:00
intoffset dd239b9f98 Add Markdown language server support with marksman (#655) 2025-10-11 22:36:37 +02:00
Akira TSURUDA e523c42259 feat: add rbenv integration for Ruby LSP server (#628)
* feat: add rbenv integration for Ruby LSP server

Add support for rbenv Ruby version management in the Ruby LSP language server.
This allows Serena to respect project-specific .ruby-version files and use
the appropriate Ruby and bundler versions as specified by rbenv.
2025-10-11 10:36:35 +02:00
Dominik Jain 77213e18d0 Fix outdated heartbeat call and a potential access issue in exception handler 2025-10-07 13:40:02 +02:00
Dominik Jain a317017fe7 SolidLanguageServer.request_full_symbol_tree: Fix ValueError when obtaining relative path
Fixes #627
2025-10-01 22:24:54 +02:00
Dominik Jain 19b9e1cf31 ReplaceRegexTool: Improve tool description #326 2025-10-01 22:14:23 +02:00
Dominik Jain 7d4b8a58b8 Improve response in case of no active project #650 2025-09-30 16:23:09 +02:00
Dominik Jain b5f8bcedac Improve descriptions of ReplaceSymbolBodyTool and ExecuteShellCommandTool 2025-09-30 14:11:43 +02:00