Commit Graph
2690 Commits
Author SHA1 Message Date
Michael Panchenko 14cd3ef559 Merge pull request #1385 from mdorman/flake
flake.nix: include `serena-hooks` in package
2026-04-20 19:58:39 +02:00
Michael Alan Dorman 6016c3b4e2 flake.nix: include serena-hooks in package 2026-04-20 13:42:21 -04:00
Dominik Jain 84891b592e Usage reporting: Include context name 2026-04-20 14:51:37 +02:00
Dominik Jain 2d767e2fa9 Remove obsolete docs file 040_comparison-to-other-agents 2026-04-20 14:17:04 +02:00
Dominik Jain f64a7ca678 Fix formatting issue 2026-04-20 14:14:57 +02:00
Dominik Jain 9386012aed Improve README -> docs translation (once again) 2026-04-20 14:13:49 +02:00
Dr. Dominik Jain 51163eda81 Merge pull request #1371 from oraios/mode-activation-prompts
Improve project-specific prompt provision
2026-04-20 13:33:15 +02:00
Dominik Jain 3fea7b562e Add TestPromptProvision 2026-04-20 13:31:30 +02:00
Dominik Jain c3414c3be6 Merge remote-tracking branch 'origin/main' into mode-activation-prompts
Conflicts:
	CHANGELOG.md
2026-04-20 12:21:13 +02:00
Dominik Jain 3d31512107 Manage project-specific prompt provision per session (MCP client session ID)
This allows the stateful handling introduced for #1370 #1372
to correctly apply to HTTP mode as well, by adjusting tools to be session-aware:
 * InitialInstructionsTool
 * ActivateProjectTool
2026-04-20 12:18:07 +02:00
Michael Panchenko 229fac0662 Restrict querying of external projects to read-only tools 2026-04-20 11:13:04 +02:00
Michael Panchenko 7663d06f83 Forbid ".." in memory names 2026-04-20 10:58:10 +02:00
Michael Panchenko 1fd97a8ae2 Merge pull request #1376 from oraios/new_evals
New evals
2026-04-20 09:33:04 +02:00
Michael Panchenko e0cf89ff6a Merge branch 'main' into new_evals 2026-04-20 09:32:50 +02:00
Dominik Jain b3c92d32d8 Support session-aware tools: Tools can now use a session_id: str parameter in apply
* Not included in client-relevant interface
* Injected via apply_ex if apply defines the parameter
  (apply should never document the parameter, notably)
2026-04-19 22:52:37 +02:00
Dr. Dominik Jain 6fae7374bd Merge pull request #1366 from oraios/readme-video-update
Update README & Docs (videos, JetBrains usage)
2026-04-19 15:14:40 +02:00
Dominik Jain 7636a1cf37 Improve JetBrains plugin usage description 2026-04-19 15:14:09 +02:00
Dominik Jain 269fe26d08 Prevent project activation message from being provided more than once
Fixes #1372
2026-04-19 14:20:01 +02:00
Dominik Jain 9bc815b3e1 Ensure that prompts for dynamically activated modes are appropriately transmitted
Fixes #1370
2026-04-19 14:20:01 +02:00
Michael Panchenko 97699fa59f Evaluation: added results for Junie and GLM 5.1 2026-04-19 12:52:22 +02:00
Michael Panchenko 11dfdbf8c5 Merge pull request #1375 from Koushik-Salammagari/fix/document-symbol-children-field
fix: add missing children field to DocumentSymbol TypedDict
2026-04-18 20:48:54 +02:00
KoushikReddy ed63068045 fix: add missing children field to DocumentSymbol TypedDict
The LSP v3.17 spec defines DocumentSymbol.children as an optional list
of nested DocumentSymbol entries. The field was absent from the TypedDict,
causing type checkers to flag access to 'children' on DocumentSymbol
objects and requiring # type: ignore workarounds in ls.py.
2026-04-18 09:27:06 -07:00
Dominik Jain 64ef986d75 Refactor ActiveModes, improving the caching 2026-04-18 12:33:15 +02:00
Dominik Jain 37d40d6659 Merge remote-tracking branch 'origin/webview-util' 2026-04-17 16:11:13 +02:00
Dr. Dominik Jain 49524ab155 Update README
* Add "Quick Demo" section with new videos
* Remove old section "Serena in Action"
* Update section "How Serena Works", removing redundant part explaining backends (this is what the next section handles)
2026-04-17 15:55:36 +02:00
Michael Panchenko 8c4fa120fe Fix in request_overview: explicitly passed file path bypassed ignore check (#1365) 2026-04-17 13:06:54 +02:00
Michael Panchenko 3be62e3c27 Fix in request_overview: explicitly passed file path bypassed ignore check 2026-04-17 11:05:59 +02:00
Michael Panchenko 7e1a94ea4c Context: removed more tools from junie default context 2026-04-17 10:56:58 +02:00
Michael Panchenko 7392d65b00 Tests: removed unnecessary and failing test for empty symbol not being cached 2026-04-17 09:32:03 +02:00
Michael Panchenko b47ee4c2f1 Merge branch 'main' of github.com:oraios/serena 2026-04-17 09:30:42 +02:00
Dominik Jain 4147ad8254 Refactoring: Extract utility class WebViewWithTray 2026-04-16 22:17:46 +02:00
d32c053c55 Fix Lean4 stale cache: skip caching empty document symbol responses (#1356)
* Fix Lean4 stale cache: skip caching empty document symbol responses

When the Lean language server is queried before `lake build` completes,
it returns empty symbol lists. Previously these were written to the
persistent cache, permanently hiding symbols even after the build
finished. Now only non-empty responses are cached.

Adds a unit test that verifies empty responses from the LSP layer are
never written to _raw_document_symbols_cache.

Fixes #1217

* fix: run poe format and add changelog entry for #1356

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Michael Panchenko <35432522+MischaPanch@users.noreply.github.com>
2026-04-16 19:19:23 +02:00
Michael Panchenko 3345153cce Clean up CodeQL workflow by removing languages
Removed unused languages from CodeQL workflow matrix.
2026-04-16 17:53:54 +02:00
Michael Panchenko 1f95613b11 JB tools: transform some incorrectly sent empty strings in params to None
In Move and SafeDelete, the client might send an empty string instead of None
2026-04-16 13:44:04 +02:00
mesa3 d650f30c7e Fix clangd cache invalidation and capability checks (#1359)
Summary
relax clangd initialize capability checks to tolerate valid response shape differences
add a clangd-specific document-symbol cache fingerprint so stale C++ symbol caches are invalidated when backend/config state changes
add a regression test covering C++ document-symbol cache invalidation
Problem
For C++ projects, Serena's symbol tools could keep returning malformed cached document symbols even after clangd / compile commands / backend state had been repaired. The cache key was effectively stable as long as file contents did not change, so previously bad symbol trees could survive later LS recovery.

In addition, clangd capability checks were too strict and assumed a single exact initialize-response shape.

What this changes
accepts both integer and object-style textDocumentSync responses
validates completionProvider more conservatively by checking required trigger characters instead of exact equality
fingerprints clangd document-symbol caches using:
clangd_version
ls_path
compile_commands_dir
compile_commands.json content hash
adds a C++ regression test similar to the existing Go cache invalidation coverage
2026-04-16 12:19:29 +02:00
ek-133 9d64931fd9 Issue #1348 Vue rename_symbol fix (#1355)
Edits in vue files need to be propagated to the TS LS, e.g. for cross-language renames
2026-04-16 11:11:53 +02:00
Michael Panchenko 7a0d142185 Merge pull request #1354 from oraios/dependabot/uv/uv-d832887a00
Bump python-multipart from 0.0.22 to 0.0.26 in the uv group across 1 directory
2026-04-16 10:27:19 +02:00
Michael Panchenko f0d92bfca8 Merge pull request #1353 from oraios/implement_security_recommendations
Implement security recommendations
2026-04-16 10:13:36 +02: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
Michael Panchenko 6cd9c6b4d6 CI: minor cleanup in workflows. build job in publish workflow was not needed 2026-04-15 19:30:53 +02:00
Michael Panchenko e9e90f734d Dashboard: escape user input, address server-side scripting warning 2026-04-15 19:29:10 +02:00
Michael Panchenko 9ff2c765a9 Readme: minor changes in section on how Serena works 2026-04-15 16:08:10 +02: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
Dr. Dominik Jain e2e30a04c9 Merge pull request #1349 from oraios/fix-duplicated-yaml-comments
Fix duplicated YAML comments
2026-04-15 13:29:55 +02:00
Dominik Jain 5e82077b26 Fix duplicated comments when re-saving YAML files
This was due to nested comments associated with list items.
We now completely remove these.

Fixes #1285
2026-04-15 00:20:34 +02:00
Dominik Jain a6ec1b0621 Rename YAML comment transfer functions (no longer solely about transferring missing comments) 2026-04-15 00:20:10 +02:00
Dominik Jain a09840156f Fix in Project._is_ignored_relative_path
Check for ignored path ignored `.git` folder only at the top level,
not in every subdirectory

Fixes #1350
2026-04-15 00:18:04 +02:00
Michael Panchenko d8178fa2b4 CI: Removed persist-credentials: false from checkout action
For some reason, this causes the haxe LS download to fail.
We might want to investigate this in the future
2026-04-15 00:13:48 +02:00
Dominik Jain 7067963d6e Support serena --version CLI command
Resolves #1347
2026-04-15 00:01:24 +02:00