Commit Graph
2926 Commits
Author SHA1 Message Date
Dominik Jain 02c3d6bb78 Fix: Wait for the subprocess that opens the browser window, preventing zombie processes
Fixes #1488
2026-06-02 11:36:05 +02:00
Dr. Dominik Jain 8a54795848 Merge pull request #1531 from futile/fix-nix-appindicator-tray
fix(nix): Add NixOS-support for the tray manager in AppIndicator trays
2026-06-01 15:21:02 +02:00
Felix Rath 7b9fc9c5b7 fix(nix): Add Linux-support for the tray manager in AppIndicator trays
Assisted-by: gpt-5.5
2026-06-01 15:17:36 +02:00
Dr. Dominik Jain ae58b60a58 Merge pull request #1509 from oraios/agent-config-update-events
Introduce events for agent config/status updates
2026-06-01 14:02:01 +02:00
Dr. Dominik Jain 93dd4df696 Merge pull request #1536 from oraios/fix-svelte-diagnostics
SvelteLanguageServer: Fix diagnostics requests for TypeScript/JavaScript files
2026-06-01 13:59:51 +02:00
Dominik Jain 7b30f9328e SvelteLanguageServer: Fix diagnostics requests for TypeScript/JavaScript files
incorrectly being processed by the Svelte LS instead of the TypeScript LS
2026-06-01 12:50:31 +02:00
Dominik Jain 4aeef5ab85 Merge remote-tracking branch 'origin/main' into agent-config-update-events
Conflicts:
	CHANGELOG.md
	src/serena/agent.py
2026-06-01 11:25:23 +02:00
Dr. Dominik Jain 81fafd646e Merge pull request #1522 from oraios/configurable-trusted-hosts
Make dashboard trusted hosts configurable
2026-06-01 11:16:27 +02:00
Dominik Jain d5033c404d Make dashboard trusted hosts configurable 2026-05-28 14:31:41 +02:00
Dominik Jain c57b7f2b7d Add missing changelog entry for v1.5.3 2026-05-28 13:36:32 +02:00
Dominik Jain 09430b0fb6 Fix: Host validation required a local host even if the listen address was set to a non-local address
(regression introduced in 1.5.2)
2026-05-28 13:36:32 +02:00
Michael Panchenko 3240403ab1 Dashboard: configure trusted hosts directly in flask app 2026-05-28 13:28:56 +02:00
Petr Devyaterikov 7bf30080f6 typescript_vts: add initialization_options pass-through (#1507)
* typescript_vts: add initialization_options pass-through

Extends ls_specific_settings["typescript_vts"] with an optional
initialization_options key — a dict forwarded to vtsls via all three
LSP configuration channels:

- the initialize request (initializationOptions field),
- a workspace/didChangeConfiguration notification right after initialize,
- and responses to workspace/configuration pulls, looked up per section
  (e.g. "typescript", "vtsls", "javascript", or dotted paths like
  "typescript.tsdk").

All three channels are necessary because different parts of vtsls read
settings from different places — notably typescript.tsdk, which vtsls
pulls via workspace/configuration rather than reading from
initializationOptions. Without the pull-answer, setting tsdk had no
effect.

Primary use case: Yarn Plug'n'Play projects. Running
`yarn dlx @yarnpkg/sdks vscode` in the project root generates
.yarn/sdks/typescript/lib/tsserver.js, a PnP-aware tsserver. The user
then points vtsls at it with:

    ls_specific_settings:
      typescript_vts:
        initialization_options:
          typescript:
            tsdk: "<...>/.yarn/sdks/typescript/lib"
          vtsls:
            autoUseWorkspaceTsdk: true

autoUseWorkspaceTsdk is required alongside tsdk because, in a headless
LSP context, there is no UI prompt to confirm switching to the
workspace TypeScript version. See yioneko/vtsls#169 for the recipe.

Default behaviour is unchanged — the field is optional, omitted from
the initialize params and didChangeConfiguration when unset or empty,
and workspace/configuration continues to answer empty sections.
2026-05-27 13:31:57 +02:00
Michael Panchenko 9b292a6c8b Set version to v1.5.4.dev0 2026-05-26 21:03:36 +02:00
Michael Panchenko 2449313c0d Release v1.5.3 2026-05-26 21:03:36 +02:00
Michael Panchenko 0847215740 Prepare release to GitHub's mcp registry 2026-05-26 21:01:47 +02:00
Michael Panchenko d0dbed3779 Shorten command in installation instructions
--prerelease=allow is no longer necessary (pythonnet was bumped) and @latest is not needed either (same effect as without it)
2026-05-26 17:10:14 +02:00
Michael Panchenko 209ea95881 Set version to v1.5.3.dev0 2026-05-26 17:05:07 +02:00
Michael Panchenko 2ee8f100b2 Release v1.5.2 2026-05-26 17:05:07 +02:00
Joe Black f5c707aca4 feat(hooks): expand _CODE_FILE_EXTENSIONS to include config/schema formats
Add structured non-source file types (.yaml, .json, .toml, .graphql,
.proto, .sql, .tf, .hcl, etc.) to the read-file nudge set.

These extensions are common in real-world projects and repeated raw
reads of them are equally well served by `search_for_pattern` or
other Serena tools — the same rationale that applies to .py/.ts already
applies to config, schema, and query files.

Note added to the docstring: `search_for_pattern` works regardless of
extension and is always a valid alternative to repeated raw reads.
2026-05-26 16:43:47 +02:00
Michael Panchenko 6956948180 Merge pull request #1518 from oraios/improve_packaging
Improve packaging
2026-05-26 16:39:36 +02:00
Michael Panchenko 75738f4838 Add identifier as comment to readme
Needed for Serena to be listed in GitHub's mcp registry
2026-05-26 15:34:38 +02:00
Michael Panchenko 1122166b7c Remove pyright and fortls from serena-agent package, instead install with uvx on the fly
Added a dedicated LSDependencyProvider for that
2026-05-26 15:34:37 +02:00
Michael Panchenko 6941af6aab Bumped pythonnet, added serena-agent cli alias command
The latter enables running uvx serena-agent as entrypoint, otherwise one needs uvx --from serena-agent serena
2026-05-26 14:58:54 +02:00
Michael Panchenko 016ccbe1c0 Dashboard: validate host and port on each request 2026-05-26 13:44:57 +02:00
weiconghe 9c19d5f7f8 fix: allow non-existent paths in ignore check
The _is_ignored_relative_path method used to raise FileNotFoundError
when checking a path that does not exist on disk. This prevented
editing tools (replace_content, insert_after_symbol, etc.) from
operating on newly created files.

Since a non-existent file cannot be matched by ignore patterns,
returning False (not ignored) is semantically correct and safe.

Changes:
- _is_ignored_relative_path: return False instead of raising for
  non-existent paths, with a debug log message
- validate_relative_path docstring: updated to reflect new behavior
- Added 3 test cases covering non-existent path scenarios
2026-05-26 11:44:06 +02:00
Dominik Jain 24c16b6fec Fix empty executions queue displaying as 'Loading ...' 2026-05-23 15:51:10 +02:00
Dominik Jain 065df5ea31 Introduce events for agent config/status updates
decoupling dashboard config computation from the task queue

Resolves #1064
2026-05-23 15:51:09 +02:00
Dominik Jain 981f560fa3 Consolidate handling of resources paths
* constants.py should remain the central place where a root path
   is determined based on source file location
 * SerenaPaths should consistently use strings
2026-05-21 15:27:49 +02:00
Dominik Jain 1b1522d46d Improve change log
* v1.5.1: Add hotfix cbfe68a4cd
 * v1.5.0: Mention changes to onboarding invasiveness
2026-05-20 15:10:12 +02:00
dependabot[bot] c3144a7144 Bump idna from 3.11 to 3.15 in the uv group across 1 directory
Bumps the uv group with 1 update in the / directory: [idna](https://github.com/kjd/idna).


Updates `idna` from 3.11 to 3.15
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15)

---
updated-dependencies:
- dependency-name: idna
  dependency-version: '3.15'
  dependency-type: indirect
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 14:08:32 +02:00
Sergiy Borodych 860c5841df Include .t files in Perl::LanguageServer fileFilter
Serena's file-to-language router already maps `.t` to the Perl LS
(`Language.PERL` in `solidlsp/ls_config.py`), but the
Perl::LanguageServer-side `fileFilter` was hardcoded to
`[".pm", ".pl"]`. As a result Perl::LanguageServer skipped `.t`
files entirely: symbol queries on a `.t` returned empty, and
references to `.pm`/`.pl` subs missed any callers defined in
`.t` files.

Add `.t` to the filter, deduplicate the two `fileFilter` literals
into a `_FILE_FILTER` class constant, and note the sync requirement
with `Language.PERL.get_source_fn_matcher()` in a comment. Cover
the behavior with a new cross-file references test plus a `helper.t`
fixture; the test fails on unpatched `main` and passes on this
branch.
2026-05-20 14:07:57 +02:00
Michael Panchenko 0909ae05f7 Set version to v1.5.2.dev0 2026-05-18 23:15:02 +03:00
Michael Panchenko c3a8d5a9c5 Release v1.5.1 2026-05-18 23:15:01 +03:00
Edward Muller ffd5dfd3e7 Add CUE language support via cue lsp (#1474) 2026-05-18 22:12:40 +02:00
Michael Panchenko cbfe68a4cd Hotfix: fix path to memory_maintenance.md 2026-05-18 23:07:46 +03:00
Dominik Jain 1c5cf3486e Improve release workflow description (single tag required) 2026-05-18 14:33:30 +02:00
Dominik Jain e2e8b3c231 Set version to v1.5.1.dev0 2026-05-18 14:33:30 +02:00
Dominik Jain 6fbbbadc88 Release v1.5.0 2026-05-18 14:33:30 +02:00
Dr. Dominik Jain 9eef1cba36 Merge pull request #1477 from oraios/feature/rename-memory-references
Revamp Memory System
2026-05-18 14:04:29 +02:00
Dominik Jain 1943549ad5 Fix duplicate constant 2026-05-18 14:02:51 +02:00
Dr. Dominik Jain d1fb182302 Merge pull request #1492 from mturac/fix/issue-1407-empty-projects-config
fix: handle empty projects config key
2026-05-18 13:22:16 +02:00
Erik JacobsandClaude Sonnet 4.6 87eaa40553 fix(gdscript): detect broken TCP connection and fail fast on send error (#1493)
fix(gdscript): detect broken TCP connection and fail fast on reconnect

When the Godot editor restarts or the LSP connection drops, the
TCPLanguageServer read loop exits but previously left self._sock set,
causing is_running() to return True. Subsequent LSP requests would
then send to a dead socket, log a broken-pipe error silently, and
block for the full tool timeout (235 s by default) before raising.

Two fixes in TCPLanguageServer:
- _send_payload: on OSError, clear self._sock/self._file and
  immediately cancel all pending requests so callers fail fast
  instead of waiting out the timeout.
- _read_loop: after unexpected exit, clear self._sock/self._file so
  is_running() returns False and _ensure_functional_ls can trigger
  an automatic reconnect on the next tool call.

Also fixes GodotLanguageServer so that ls_specific_settings.request_timeout
is respected as a cap on the per-request timeout. Previously the value
was read in _create_language_server_interface but then overridden by
the tool-timeout-derived value passed to set_request_timeout(). Now
set_request_timeout() applies min(incoming, configured) so users can
set a low request_timeout in their project.yml to fail fast without
lowering the global tool_timeout.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 13:08:27 +02:00
Dr. Dominik Jain 7c7d5eef56 Merge pull request #1495 from oraios/language-instance
SolidLanguageServer: Fix language enum instance being derived from the language_id
2026-05-16 15:40:49 +02:00
Dominik Jain a59e12adaa Merge remote-tracking branch 'origin/main' into feature/rename-memory-references
Conflicts:
  src/serena/tools/file_tools.py
2026-05-16 15:28:32 +02:00
Dominik Jain eb43c5be1a Rename MemoriesManager -> MemoryManager 2026-05-16 15:16:14 +02:00
Dominik Jain 14e939ee1c Add memories package, moving MemoriesManager to its own module 2026-05-16 15:02:54 +02:00
Dominik Jain da26e5c63a Split history src/serena/project.py to src/serena/memories/memory_manager.py - restore name of source-file 2026-05-16 14:58:32 +02:00
Dominik Jain 63c28ce688 Split history src/serena/project.py to src/serena/memories/memory_manager.py - resolve conflict and keep both files 2026-05-16 14:58:31 +02:00
Dominik Jain a5464fec66 Split history src/serena/project.py to src/serena/memories/memory_manager.py - rename source-file to git-split-temp 2026-05-16 14:58:31 +02:00