Summary
This is the first release of Serena to pypi. Since the last release, we have greatly improved
stability and performance, as well as extended functionality, improved editing tools and included support for several new languages.
- Reduce the use of asyncio to a minimum, improving stability and reducing the need for workarounds
- Switch to newly developed fully synchronous LSP library
solidlsp
(derived frommultilspy
),
removing our fork ofmultilspy
(src/multilspy) - Switch from fastapi (which uses asyncio) to Flask in the Serena dashboard
- The MCP server is the only asyncio-based component now, which resolves cross-component loop contamination,
such that process isolation is no longer required.
Neither are non-graceful shutdowns on Windows.
- Switch to newly developed fully synchronous LSP library
- Improved editing tools: The editing logic was simplified and improved, making it more robust.
- The "minimal indentation" logic was removed, because LLMs did not understand it.
- The logic for the insertion of empty lines was improved (mostly controlled by the LLM now)
- Add a task queue for the agent, which is executed in a separate and thread and
- allows the language server to be initialized in the background, making the MCP server respond to requests
immediately upon startup, - ensures that all tool executions are fully synchronized (executed linearly).
- allows the language server to be initialized in the background, making the MCP server respond to requests
SearchForPatternTool
: Better default, extended parameters and description for restricting the search- Language support:
- Better support for C# by switching from
omnisharp
to Microsoft's official C# language server. - Add support for Clojure, Elixir and Terraform. New language servers for C# and typescript.
- Experimental language server implementations can now be accessed by users through configuring the
language
field
- Better support for C# by switching from
- Configuration:
- Add option
web_dashboard_open_on_launch
(allowing the dashboard to be enabled without opening a browser window) - Add options
record_tool_usage_stats
andtoken_count_estimator
- Serena config, modes and contexts can now be adjusted from the user's home directory.
- Extended CLI to help with configuration
- Add option
- Dashboard:
- Displaying tool usage statistics if enabled in the config
Fixes:
- Fix
ExecuteShellCommandTool
andGetCurrentConfigTool
hanging on Windows - Fix project activation by name via
--project
not working (was broken in previous release) - Improve handling of indentation and newlines in symbolic editing tools
- Fix
InsertAfterSymbolTool
failing for insertions at the end of a file that did not end with a newline - Fix
InsertBeforeSymbolTool
inserting in the wrong place in the absence of empty lines above the reference symbol - Fix
ReplaceSymbolBodyTool
changing whitespace before/after the symbol - Fix repository indexing not following links and catch exceptions during indexing, allowing indexing
to continue even if unexpected errors occur for individual files. - Fix
ImportError
in Ruby language server. - Fix some issues with gitignore matching and interpreting of regexes in
search_for_pattern
tool.