Commit Graph
211 Commits
Author SHA1 Message Date
Dominik Jain 91977532fd Remove obsolete notebook-related dev dependencies (nbsphinx, nbconvert) 2026-04-22 00:49:41 +02:00
dependabot[bot] 8ebe6322f2 Bump nbconvert from 7.17.0 to 7.17.1 in the uv group across 1 directory
Bumps the uv group with 1 update in the / directory: [nbconvert](https://github.com/jupyter/nbconvert).


Updates `nbconvert` from 7.17.0 to 7.17.1
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.17.0...v7.17.1)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-version: 7.17.1
  dependency-type: direct:production
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 18:12:38 +00:00
dependabot[bot] 8691ae3046 Bump python-multipart in the uv group across 1 directory
Bumps the uv group with 1 update in the / directory: [python-multipart](https://github.com/Kludex/python-multipart).


Updates `python-multipart` from 0.0.22 to 0.0.26
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.26
  dependency-type: direct:production
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 21:21:13 +00:00
Dominik Jain a2061c1f4e Switch back to official pywebview (new release 6.2)
Resolves #1253
2026-04-15 13:35:01 +02:00
Dominik Jain e2463cec9e Fix Python 3.14 classifier 2026-04-15 13:32:51 +02:00
Dominik Jain 1e6345cae9 Release v1.1.2 2026-04-14 17:46:53 +02:00
Michael Panchenko 1789967968 Pyproject: added description and classifiers [ci skip]
Description in particular is important since it is shown in pypi
2026-04-13 09:17:24 +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
Michael Panchenko f3de97084b Release v1.1.1 2026-04-12 14:08:37 +02:00
Dominik Jain 870e6184a4 Release v1.1.0 2026-04-11 15:30:58 +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 c59768ceb9 Merge branch 'main' into v1.1-develop 2026-04-11 11:13:44 +02:00
Michael Panchenko d572f48e4c Use our fork of pywebview until upstream releases 2026-04-10 17:20:33 +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 2921336726 Merge remote-tracking branch 'origin/v1.1-develop' into v1.1-develop 2026-04-10 10:09:42 +02:00
Michael Panchenko ace531b17a Added serena-hooks cli 2026-04-09 23:53:14 +02:00
dependabot[bot] a0519d183d Bump cryptography in the uv group across 1 directory
Bumps the uv group with 1 update in the / directory: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 46.0.6 to 46.0.7
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.6...46.0.7)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.7
  dependency-type: direct:production
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 22:58:26 +00:00
Jochen Seeber d8bf1365c3 Add Crystal language support 2026-04-07 17:15:09 +02:00
Dominik Jain cd1ce8dc60 Pin sphinx-book-theme to 1.1.4
The newer version 1.2.0 does not have the auto-expanding contents
(in display on right) - at least not by default
2026-04-07 01:54:03 +02:00
Michael Panchenko eb453976e2 CLI: removed deprecated commands 2026-04-06 19:18:48 +02:00
Dominik Jain f65980bd8c Set version to 1.0.0 2026-04-03 16:17:39 +02:00
Dominik Jain d9b278c357 Add pythonnet as an explicit dependency (actually transitive via pywebview)
Using pre-release version, because otherwise Python 3.14 support is broken
2026-04-01 15:09:08 +02:00
Michael Panchenko 823d5bbe30 Bump pyjwt (dependabot alert) 2026-04-01 09:03:00 +02:00
Michael Panchenko af6628ea04 Merge branch 'main' into pywebview 2026-03-31 14:29:50 +02:00
Michael Panchenko e53e487cae Pinned pystray exactly 2026-03-31 11:27:11 +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
dependabot[bot] b5cf58372d Bump cryptography in the uv group across 1 directory
Bumps the uv group with 1 update in the / directory: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 46.0.5 to 46.0.6
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.5...46.0.6)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.6
  dependency-type: direct:production
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-29 02:00:19 +00:00
Michael Panchenko fe6aca4de5 pinned regex to be python 3.14 compatible 2026-03-27 16:56:08 +01:00
Michael Panchenko f94e956339 Merge pull request #1226 from oraios/ty_support
Ty support
2026-03-27 12:14:07 +01:00
Michael Panchenko 43885f6d79 Exclude test resources from formating 2026-03-27 10:03:06 +01:00
dependabot[bot] 52a42232ca Bump requests from 2.32.5 to 2.33.0 in the uv group across 1 directory (#1225)
Bumps the uv group with 1 update in the / directory: [requests](https://github.com/psf/requests).


Updates `requests` from 2.32.5 to 2.33.0
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.5...v2.33.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.33.0
  dependency-type: direct:production
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 09:53:04 +01:00
Dominik Jain 971e2a5d28 Merge remote-tracking branch 'origin/main' into pywebview
Conflicts:
	pyproject.toml
	src/serena/agent.py
	src/serena/cli.py
	src/serena/dashboard.py
	uv.lock
2026-03-26 13:39:41 +01:00
dependabot[bot] 6d72a594e3 Bump the uv group across 1 directory with 2 updates
Bumps the uv group with 2 updates in the / directory: [urllib3](https://github.com/urllib3/urllib3) and [cryptography](https://github.com/pyca/cryptography).


Updates `urllib3` from 2.5.0 to 2.6.3
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3)

Updates `cryptography` from 46.0.3 to 46.0.5
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.3...46.0.5)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.6.3
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: direct:production
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 09:42:28 +00:00
Dominik Jain 24d646b50b Upgrade mcp to 1.26 2026-03-23 21:17:20 +01:00
Michael Panchenko d15887a145 Pin dependencies to versions that work across Python 3.11 to 3.14 2026-03-23 21:11:23 +01:00
Michael Panchenko 45cd8ca12e Pinned all dependencies, removed black, addressed dependabot warnings 2026-03-23 21:10:41 +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
Vinh Tran 6d6f55308f feat(solidlsp): add Solidity language server support (#1156)
Integrates the Nomic Foundation @nomicfoundation/solidity-language-server
as a new Language.SOLIDITY backend (experimental). Supports .sol files with
go-to-definition, find references, document symbols, hover, and diagnostics.
The server is automatically installed via npm on first use.
2026-03-13 13:14:09 +01:00
StayBlue b3a6045f7e Add Luau language support (#1152) 2026-03-12 11:58:45 +01:00
Dan Rosen 09c007d1e1 Add Lean 4 language support (#1137) 2026-03-12 11:32:31 +01:00
Dominik Jain 12b6372161 Depend on dev version of pywebview for improved icon support 2026-03-07 12:41:00 +01:00
Dominik Jain b805b58fe3 Pin ruff 2026-03-05 17:05:44 +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
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 f7f5a8e7e6 Introduce SerenaDashboardViewer based on pywebview
Shows the dashboard in a separate application window we can control,
replacing the use of the webbrowser module to open the dashboard in
a browser tab
2026-03-02 23:49:23 +01:00
Hyun-Gyu (Ethan) KimandClaude Opus 4.6 5d417beb80 Add SystemVerilog language server support using slang-langserver (#990)
* Add SystemVerilog language server support using slang-langserver

- Add Language.SYSTEMVERILOG enum with .sv, .svh, .v, .vh file support
- Create SystemVerilogLanguageServer class with auto-download for Linux, macOS, Windows
- Add pytest marker and basic test cases for symbol retrieval

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix ruff lint errors by updating configuration

- Add UP042, PLW0108, PLC0207 to ruff ignore list (style preferences)
- Update test repo pyproject.toml to use lint.select and lint.isort sections

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Replace slang-langserver with verible-verilog-ls for SystemVerilog

slang v7.0 release URLs return 404 as the project stopped providing
pre-built binaries after v3.0. Migrate to Verible (CHIPS Alliance)
which actively maintains binary releases for all major platforms.

Changes:
- Update RuntimeDependency URLs to Verible v0.0-4051-g9fdb4057
- Add Linux ARM64 platform support
- Update fallback and error messages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add SystemVerilog language server support using slang-langserver

- Add Language.SYSTEMVERILOG enum with .sv, .svh, .v, .vh file support
- Create SystemVerilogLanguageServer class with auto-download for Linux, macOS, Windows
- Add pytest marker and basic test cases for symbol retrieval

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Replace slang-langserver with verible-verilog-ls for SystemVerilog

slang v7.0 release URLs return 404 as the project stopped providing
pre-built binaries after v3.0. Migrate to Verible (CHIPS Alliance)
which actively maintains binary releases for all major platforms.

Changes:
- Update RuntimeDependency URLs to Verible v0.0-4051-g9fdb4057
- Add Linux ARM64 platform support
- Update fallback and error messages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix Verible binary paths for macOS and Windows

The archive directory names differ per platform:
- Linux: verible-v0.0-4051-g9fdb4057/bin/
- macOS: verible-v0.0-4051-g9fdb4057-macOS/bin/
- Windows: verible-v0.0-4051-g9fdb4057-win64/ (no bin/ subdirectory)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Update docs and comments: slang-langserver → verible-verilog-ls

- Update pyproject.toml marker description
- Update ls_config.py docstring
- Update test file docstrings
- Remove unused _slang_available() function

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add verible-verilog-ls to CI and improve SystemVerilog LS

- Add verible-verilog-ls installation step to pytest.yml for
  Linux/macOS/Windows (GitHub Releases, follows ZLS pattern)
- Remove unused threading import and server_ready Event
- Add capability validation (assert textDocumentSync, warn on
  missing documentSymbolProvider/definitionProvider)
- Add window/logMessage notification handler
- Add codeAction, formatting, documentHighlight capabilities
- Improve error message with conda/Homebrew/GitHub install methods

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add verible detection tests and remove redundant ALU tests

Add comprehensive unit tests for verible-verilog-ls binary detection
logic (PATH lookup, version logging, graceful degradation, download
fallback). Remove duplicate ALU symbol tests that tested the same
LSP operations already covered by counter tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix SystemVerilog LSP convention deviations from code review

- Add client/registerCapability handler (all other 31 LSPs have it)
- Add locale: en to initialize params (project convention)
- Change log.debug to log.info for window/logMessage handler
- Fix dead code in test_find_references_cross_file skip/assert logic
- Move repeated imports to module top level in detection tests
- Remove unused IS_WINDOWS/IS_UNIX variables and sys import
- Fix hardcoded line number comment to semantic description

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Windows CI verible path: flat zip structure has no bin/ subdir

The Windows verible zip extracts to verible-VERSION-win64/ with
executables directly in the root (no bin/ subdirectory), unlike
Linux/macOS tar.gz which have bin/ subdirectory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix macOS CI verible path: tar.gz extracts with -macOS suffix

Each platform has different directory naming in verible releases:
- Linux: verible-VERSION/bin/ (no suffix)
- macOS: verible-VERSION-macOS/bin/ (has -macOS suffix)
- Windows: verible-VERSION-win64/ (flat, no bin/ subdir)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Refactor: read Verible version from settings instead of hardcoding

Extract hardcoded version string into _custom_settings.get("verible_version")
with the current version as default. This allows version override via
project.yml without changing source code.

Also introduce DEFAULT_VERIBLE_VERSION constant in detection tests
for consistency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add rename tests and strengthen existing SystemVerilog tests

- Add TestSystemVerilogRename: within-file, cross-file, module rename
- Strengthen all existing tests with exact position/value verification
- Remove all pytest.skip, replace with assert (review feedback)
- Remove isinstance check in _find_symbol_by_name (review feedback)
- Extract _extract_hover_text and _extract_changes helpers
- Remove test_diagnostics (requires shared ls.py fix, separate PR)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-22 21:08:32 +01:00
Dominik Jain 177f0f46cb Enable mypy for test/ (allowing untyped defs) 2026-02-14 19:31:41 +01:00
Azraf Nahian 71a6f1ff82 CCLS Support added (#975)
Also added a test suite for both clangd and ccls
2026-02-01 20:01:51 +07:00
Dominik Jain f97e1bb99a Force black below v26, because of pathspec compatibility 2026-01-18 19:41:08 +01:00