Commit Graph
183 Commits
Author SHA1 Message Date
Michael Panchenko c3a5652fc7 Minor improvement in readme and docs [ci skip] 2026-04-13 14:54:40 +02:00
Michael Panchenko a3cf1b17c9 Added documentation on Serena evaluation and first evaluation results 2026-04-13 14:09:04 +02:00
Michael Panchenko 685715dd02 Merge branch 'main' into evaluation 2026-04-13 09:51:20 +02:00
ab67ecab3b feat: add mSL (mIRC Scripting Language) support (#1315)
* feat: add mSL (mIRC Scripting Language) support

Add language server support for mIRC Scripting Language (.mrc files).
mSL is used in mIRC and AdiIRC IRC clients for scripting bots, games,
and automation.

The implementation uses a custom Python-based LSP server (pygls) that
parses aliases, events, menus, dialogs, and CTCP handlers. Dependencies
(pygls, lsprotocol) are installed in an isolated venv on first use.

Includes test repo, integration tests, and documentation updates.

* style: apply ruff formatting to msl_language_server.py

* fix: remove INITIALIZE handler that crashes pygls 2.x

pygls 2.x handles the initialize request internally. Overriding
it via @server.feature(lsp.INITIALIZE) causes the LSP subprocess
to crash. Removing the handler lets pygls auto-advertise capabilities
based on registered features (document_symbol, workspace_symbol).

* fix: update embedded LSP script for pygls 2.x

pygls 2.x moved LanguageServer from pygls.server to pygls.lsp.server.
Update import and bump requirement from pygls>=1.3.0 to pygls>=2.0.0.

* refactor: ship mSL LSP as package module, not runtime disk write

Per maintainer feedback: the mSL LSP is a Python script, so it should
ship as a module inside the package rather than being written to disk
at runtime.

Changes:
- Extract embedded LSP script to msl_lsp_server.py (proper module)
- Simplify MslLanguageServer: remove venv creation, disk writes,
  _create_msl_lsp_files(). DependencyProvider now just returns
  sys.executable and launches the sibling module directly.
- Add pygls>=2.0.0 and lsprotocol>=2023.0.0 to pyproject.toml deps

* fix: regenerate uv.lock after upstream v1.1.0 merge

* feat(msl): add references, definitions, and expand test coverage

- Add textDocument/references handler for cross-file alias reference finding
- Add textDocument/definition handler for go-to-definition support
- Handle $ prefix on cursor position for mSL identifiers
- Fix pre-existing mypy error in agent.py (dict[str, object] -> dict[str, str | int])
- Add MSL to _LANGUAGE_PYTEST_MARKERS in conftest.py
- Add MSL parametrized cases to test_find_symbol_stable and test_find_symbol_references_stable
- Expand test repo with cross-file reference examples (main.mrc <-> utils.mrc)
- Add within-file and cross-file reference tests to test_msl_basic.py
- Update docs and CHANGELOG to reflect expanded capabilities

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* style: apply ruff formatting to msl_lsp_server.py

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(msl): add hover handler, fix cross-file references via filesystem scan

Root causes of 4 CI test failures:
- textDocument/hover was not implemented (test_find_symbol_stable needs it)
- references/workspace_symbol/definition only searched opened documents,
  missing files not explicitly opened by the client
- pygls.uris.to_fs_path returns lowercase drive letters on Windows,
  causing URI mismatch with the framework's repository path comparison

Fixes:
- Add textDocument/hover handler returning definition snippets in Markdown
- Add _get_all_mrc_files() to scan workspace filesystem for all .mrc files
- Read workspace roots from server.workspace (pygls 2.x API) instead of
  broken monkey-patching of server.lsp
- Use pathlib.Path.resolve() to normalize drive letter casing on Windows
- Simplify __main__ to just server.start_io()

All 12 tests pass locally (10 solidlsp + 2 serena_agent integration).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* MSL language: removed unnecessary Dep. provider

* Changelog

* deps

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Michael Panchenko <michael.panchenko@oraios-ai.de>
2026-04-13 08:47:51 +02:00
90c30e0374 HLSL: bump to shader-language-server v1.3.1, remove CRLF workaround (#1319)
The upstream fix for the CRLF stale-tree crash (antaalt/shader-sense#44)
was merged and released as v1.3.1. This commit:

- Removes the client-side CRLF workaround (open_file override and
  _preload_crlf_content helper) added in #1305, along with the
  now-unused imports.
- Bumps _DEFAULT_VERSION to 1.3.1 and updates SHA-256 checksums for
  all three pre-built platform archives (win-x64, linux-x64, win-arm64).

The regression test (test_include_file_document_symbols_directly) that
exercises the original crash scenario passes against v1.3.1 without the
workaround.

Co-authored-by: TheSmallKiwi <TheSmallKiwi@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 08:27:48 +02:00
TheSmallKiwiandClaude Sonnet 4.6 e7b51173bc HLSL: bump to shader-language-server v1.3.1, remove CRLF workaround
The upstream fix for the CRLF stale-tree crash (antaalt/shader-sense#44)
was merged and released as v1.3.1. This commit:

- Removes the client-side CRLF workaround (open_file override and
  _preload_crlf_content helper) added in #1305, along with the
  now-unused imports.
- Bumps _DEFAULT_VERSION to 1.3.1 and updates SHA-256 checksums for
  all three pre-built platform archives (win-x64, linux-x64, win-arm64).

The regression test (test_include_file_document_symbols_directly) that
exercises the original crash scenario passes against v1.3.1 without the
workaround.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 15:38:48 -04:00
Dominik Jain 1fb4ab1738 Add information on uninstallation 2026-04-12 18:21:08 +02:00
Michael Panchenko 99925447ea Evaluation, WIP 2026-04-12 15:16:16 +02:00
Dominik Jain a96640aebf Merge remote-tracking branch 'origin/main' into disable-usage-reporting-env-var
Conflicts:
  CHANGELOG.md
2026-04-12 15:13:28 +02:00
Dominik Jain 3193637c75 Document environment variable for opting out of usage reporting 2026-04-12 15:12:55 +02:00
Michael Panchenko ca387bdc76 Docs: added brief explainer on hooks in Common Pitfalls, removed section on tool-loading in Claude Code 2026-04-12 11:43:29 +02:00
Dominik Jain 34a703ad50 Restore links to quick start guide, updating the docs autogen build script 2026-04-11 16:54:45 +02:00
Michael Panchenko 812b6e066a Merge branch 'main' into v1.1-develop
# Conflicts:
#	CHANGELOG.md
2026-04-11 15:27:38 +02:00
Michael Panchenko ef8f0ac404 Docs: minor changes 2026-04-10 19:36:14 +02:00
Tobias Jansing addccfa41f Improve Haxe LS: configurable version/haxePath, top-level imports, CI docs, regression test 2026-04-10 17:49:48 +02:00
Tobias Jansing e9b6c0ff85 Add Haxe language support via vshaxe/haxe-language-server
Includes full setup with ls provider, tests, docs, etc.
2026-04-10 15:07:23 +02:00
Michael Panchenko bbe4993540 Major enhancement in client connection documentation
Added new contexts and extended some older ones to exclude more basic tool
2026-04-10 13:21:15 +02:00
Dominik Jain 9722f68796 Merge remote-tracking branch 'origin/main' into v1.1-develop 2026-04-09 15:26:35 +02:00
Michael Panchenko c1aedec189 Deleted obsolete tools. Essentially backwards compatible
Enhanced tool registry check to log a warning instead of crashing when
a deleted tool name is passed
2026-04-08 14:35:07 +02:00
Dominik Jain 25f5f5095f Adjust documentation to use uv tool installation as the main way of running things
* Add installation, update, etc.
* Remove use of `<serena>` and obsolete uvx examples.
2026-04-07 17:36:44 +02:00
Jochen Seeber d8bf1365c3 Add Crystal language support 2026-04-07 17:15:09 +02:00
Michael Panchenko 318d2f4204 Readme, docs: recommend init command instead of start-mcp-server 2026-04-06 20:25:07 +02:00
Michael Panchenko 4ff2993bc0 Docs: recommend user-level setup for claude code by default
Also added a note on startup timeouts
2026-04-06 13:41:09 +02:00
Dominik Jain 8856d82590 Adjust instructions for Claude Code: Newer versions interpret -p parameter
Even though the parameter is after the separator `--`, newer versions (>2.1.76)
fail to add the MCP server and interpret the arguments directly.

Fixes #1279
2026-04-05 13:12:23 +02:00
Michael Panchenko 0e229586dc Readme, docs: clarified config file creation and JB plugin role
Also added a sentence on using with the Codex app
2026-04-04 20:19:57 +02:00
Dominik Jain 66cb41a66a Add callout making clear which purpose the JetBrains plugin serves 2026-04-04 20:19:57 +02:00
Dominik Jain d958f70103 Improve language server docs 2026-04-04 20:19:57 +02:00
Dominik Jain 30244526f7 README refinements 2026-04-04 20:19:57 +02:00
Dominik Jain 749bb815ae Adapt docs generation to new integrated README content 2026-04-04 20:00:22 +02:00
Dominik Jain 83bd14b38b Mention beta features on JetBrains docs page 2026-04-03 16:06:28 +02:00
Dominik Jain 60067f3274 Mark some new tools as beta tools and denote in tool list 2026-04-03 16:06:28 +02:00
Dominik Jain aa78d9751d Further improve JetBrains docs page for v1 2026-04-02 21:31:09 +02:00
Dominik Jain 6604efd778 Streamline 'Language Support' page, removing some overlap with other pages 2026-04-02 21:03:01 +02:00
Dominik Jain 2d78040cf9 Auto-generate docs pages from README: About & Features 2026-04-02 18:21:05 +02:00
Michael Panchenko 9f63606d7b Update README and About section with enhanced feature presentation for v1 2026-04-02 17:38:03 +02:00
Dominik Jain 6faf12b9fa Update uvx run instructions to include Python version (3.13)
uvx ignores not only the lock file but also the Python
version specified in pyproject.toml.
https://github.com/astral-sh/uv/issues/8206#issuecomment-4113536371
2026-04-02 13:25:58 +02:00
Michael Panchenko d52d24efe2 Docs: added -p 3.13 to configuration examples 2026-04-02 11:25:52 +02:00
Michael Panchenko 33b4d08c9b Updated usage docs for codex 2026-04-02 10:58:37 +02:00
Dominik Jain d96cda3ee1 Merge remote-tracking branch 'origin/main' into pywebview
Conflicts:
	src/serena/resources/serena_config.template.yml
2026-03-30 19:44:58 +02:00
Lin Yang e8d9c1335f Make JDTLS and IntelliCode JVM heap sizes configurable
Add four new ls_specific_settings for Java: jdtls_xmx, jdtls_xms,
intellicode_xmx, and intellicode_xms, allowing users to tune heap
sizes for the JDTLS server process and the IntelliCode embedded JVM
independently via serena_config.yml.
2026-03-29 19:35:13 -07:00
Dominik Jain af1de59d2b Adapt Dashboard documention in light of pywebview changes 2026-03-29 20:35:50 +02:00
Dominik Jain a7af5c1f8a Improve security documentation 2026-03-29 14:13:08 +02:00
Dominik Jain b00ae292ac Change default listen address of MCP server in HTTP mode to localhost
The previous default 0.0.0.0 was a potential security hazard
2026-03-29 12:11:40 +02:00
Michael Panchenko f00a992e5d Security enhancement: pinned all runtime deps, verify checksums
Extended documentation of ls_specific_settings and of our security approach
2026-03-27 13:00:09 +01:00
b898677b1c feat: add ignored_memory_patterns config option for regex-based memory exclusion (#1145)
Co-authored-by: Bokai Yang <22804145+YouJianFengXue@users.noreply.github.com>
Co-authored-by: Michael Panchenko <35432522+MischaPanch@users.noreply.github.com>
2026-03-23 18:12:30 +01:00
code4lala bf92f3cb49 feat: Support project-level ls_specific_settings (#1192) 2026-03-23 18:03:57 +01:00
Sergey Belov ff1b9057c0 Add limited Ansible language server support (#1170)
References and definition not working yet. Since ansible resolves same files as yaml LS, we will need to add disambiguation later.

Work in progress, improvements on the language server itself are being worked on, ansible support in Serena will be extended accordingly in the future.
2026-03-16 22:40:58 +01:00
Dominik Jain 7a1dcfeeda Auto-generate the tool list in the documentation 2026-03-15 17:26:20 +01:00
010ed1015d docs: clarify inheritance of global defaults
Fixes #1155

Co-Authored-By: Dominik Jain <dominik.jain@oraios-ai.de>
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-15 12:59:42 +01:00
Dominik Jain e615c54d80 Improve documentation of HTTP mode and multiple agents in general
Resolves #1118
2026-03-15 12:36:10 +01:00