github oraios/serena v0.1.3

latest release: v0.1.4
one month ago

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 from multilspy),
      removing our fork of multilspy (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.
  • 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).
  • 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
  • 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 and token_count_estimator
    • Serena config, modes and contexts can now be adjusted from the user's home directory.
    • Extended CLI to help with configuration
  • Dashboard:
    • Displaying tool usage statistics if enabled in the config

Fixes:

  • Fix ExecuteShellCommandTool and GetCurrentConfigTool 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.

Don't miss a new serena release

NewReleases is sending notifications on new releases.