Commit Graph
2760 Commits
Author SHA1 Message Date
Michael Panchenko ff78c1bee6 Improve cpp log level classification (#1422) 2026-04-28 09:19:47 +02:00
Dominik Jain 0a96f71bd9 Release v1.2.0 2026-04-27 13:36:19 +02:00
Dominik Jain 4e0043a9b8 Merge branch 'dev-v1.2.0' 2026-04-27 13:35:18 +02:00
Dominik Jain 7c50041d14 Improve Claude Code client setup documentation 2026-04-27 13:35:06 +02:00
Dominik Jain d9864bcdc0 Update news for 1.2.0 2026-04-27 13:16:20 +02:00
Michael Panchenko c68137e4d4 Adjusted wording of startup hook, improving project activation instructions #1401 2026-04-27 13:13:54 +02:00
Dominik Jain 96303c5381 Merge branch 'make_claude_code_great_again' into dev-v1.2.0 2026-04-27 12:58:53 +02:00
Rabbit_SlayerandMichael Panchenko fd3e29ac50 Skip and warn on malformed project configs at startup instead of crashing the MCP server (#1424)
* Skip and warn on malformed project configs at startup

`SerenaConfig.from_config_file` iterates the `projects:` list in
`serena_config.yml` and calls `ProjectConfig.load(path)` with no
exception handling. A single malformed `.serena/project.yml`
(missing required key, bad language string, YAML syntax error,
etc.) raises out of the master loader and aborts MCP server
startup before any client handshake or tool registration. Other
projects in the list — even ones that would load cleanly — become
unreachable.

This matches the failure mode behind #997: the schema-migration
shim closed the *cause*, but the surrounding loader still has no
isolation, so the next class of `project.yml` malformation will
take the server down again.

Wrap the `ProjectConfig.load(path)` call in the master loop with
a narrow try/except that logs a warning and continues, matching
the existing skip-with-warning pattern used a few lines above for
inaccessible paths and missing project.yml files. One bad project
becomes one skipped project, not a server-down event.

A new test under `TestSerenaConfigFromConfigFileRobustness`
registers two projects (one healthy, one with invalid YAML),
asserts that `from_config_file` returns successfully, that only
the healthy project ends up registered, and that a warning naming
the bad path is logged.

---------

Co-authored-by: Michael Panchenko <35432522+MischaPanch@users.noreply.github.com>
2026-04-27 12:39:34 +02:00
Dominik Jain 2382399b92 Improve prompt list CLI function 2026-04-27 12:22:28 +02:00
Dominik Jain 621ca5cf44 Interprompt: Add location to prompt templates, allow to retrieve template 2026-04-27 12:19:36 +02:00
Darin Morrison f018b4baf6 Improve cpp log level classification 2026-04-26 09:58:36 -06:00
a-simeshin ae7f1065be ci: install libuv1-dev so R fs package builds on ubuntu-24.04 (#1420)
The `Install R language server` step started failing on the new
`ubuntu-24.04` runner image (`ubuntu-latest`) because the R `fs`
package falls back to a source build and its `configure` step calls
`pkg-config --exists libuv`, which fails with:

    Package libuv was not found in the pkg-config search path.
    fatal error: uv.h: No such file or directory
    ERROR: configuration failed for package 'fs'

That cascades through `pkgload` -> `roxygen2` -> `languageserver`,
making `test/solidlsp/r/test_r_basic.py` error out at setup with
`RuntimeError: R languageserver package is not installed`.

Verified locally on a clean `ubuntu:24.04` container: `libuv1-dev`
is not preinstalled but is available in the `noble` apt repo
(version `1.48.0-1.1build1`). Installing it makes
`pkg-config --exists libuv` succeed (`pkg-config --modversion libuv`
returns `1.48.0`), which is exactly what the `fs` configure script
needs.

Linux-only via `if: runner.os == 'Linux'` so the step is a no-op
on macOS and Windows runners (libuv is bundled differently there
and `fs` is delivered as a binary).

Refs: #1419
2026-04-26 16:28:31 +02:00
Michael Panchenko d4c75224d3 Added demo script for profiling/debugging the CLI 2026-04-26 16:26:30 +02:00
Michael Panchenko 1a83060b05 Extended interprompt and moved cc-system-prompt-override command to prompts subcommand
Also added print-prompt-template subcommand
2026-04-26 16:25:58 +02:00
Michael Panchenko f4b035698c Docs: added explanation on system prompt override for CC 2026-04-26 12:51:26 +02:00
Michael Panchenko d1e337f924 Extended claude-code context
Adding more instructions and stressing them even more. The extension was suggested by claude code, then edited by me. This alone is not enough at the time of writing, the system prompt needs to be overridden for serena to be called consistently
2026-04-26 12:51:25 +02:00
Michael Panchenko d3513077c8 CLI: added new command cc-system-prompt-override 2026-04-26 12:51:25 +02:00
Michael Panchenko 26f4fcdc9f CLI: make heavy imports local to accelerate light cli commands 2026-04-25 19:17:02 +02:00
Michael Panchenko 0a07b83ccd Merge branch 'refs/heads/main' into cleanup/remove_set_modes 2026-04-25 16:56:48 +02:00
Dominik Jain ee6a926eab Add news item for v1.2.0 release 2026-04-24 21:25:14 +02:00
Dr. Dominik Jain 7a8b5fb212 Merge pull request #1403 from oraios/jetbrains-debugger
Add JetBrainsDebugTool
2026-04-24 20:42:43 +02:00
Andrew Newell fc27a5204e Fix: 1397 Expert deadlock by sending didOpen(mix.exs) before readiness wait (#1405)
* Fix: Expert deadlock by sending didOpen(mix.exs) before readiness wait

Expert's build pipeline only starts after receiving a textDocument/didOpen
notification. Without it, Serena waited 300 s for $/progress signals that
Expert never emitted, causing a deadlock on every cold start.
2026-04-24 17:16:37 +02:00
Dominik Jain 18e7e63070 Bump mcp from 1.26.0 to 1.27.0 #1367 2026-04-24 16:26:08 +02:00
Dominik Jain 1fd0fe2cb5 Add SerenaInfoTool for on-demand retrieval of usage information
Apply it to provide JetBrains debug REPL information lazily
2026-04-24 13:51:27 +02:00
Dominik Jain 3b71b3f306 Add version guard for debug tool 2026-04-24 13:27:23 +02:00
Dominik Jain b331183c76 Update documentation to mention JetBrains debug tool 2026-04-24 13:27:23 +02:00
Dominik Jain f678d81cac Improve debugger interface and instructions 2026-04-24 13:27:23 +02:00
Dominik Jain 3223c82609 Add JetBrainsDebugTool 2026-04-24 13:27:23 +02:00
Dominik Jain 64582cebe2 Provide Serena's system prompt (instruction manual) lazily
At MCP connection time, provide only a one-sentence bootstrap prompt
2026-04-24 13:23:35 +02:00
dependabot[bot] bc41c840ea Bump python-dotenv in the uv group across 1 directory (#1395)
Bumps the uv group with 1 update in the / directory: [python-dotenv](https://github.com/theskumar/python-dotenv).


Updates `python-dotenv` from 1.2.1 to 1.2.2
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-version: 1.2.2
  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-04-24 11:42:51 +02:00
e4da2db1d7 feat: add JSON language server support via vscode-json-languageserver (#1404)
* feat: add JSON language server support via vscode-json-languageserver (fixes #1391)

Add support for JSON files using the `vscode-json-languageserver` npm package
from Microsoft. This provides document symbol navigation and hover information
for JSON files.

The implementation follows the existing YAML language server pattern:
- Auto-installs `vscode-json-languageserver` via npm on first use
- Requires Node.js and npm
- Marked as experimental (must be explicitly specified)

Co-Authored-By: Octopus <liyuan851277048@icloud.com>
Co-authored-by: octo-patch <octo-patch@github.com>
Co-authored-by: Michael Panchenko <35432522+MischaPanch@users.noreply.github.com>
2026-04-24 11:41:50 +02:00
Dominik Jain 9ae2d1af77 Update TestSearchText to use 0-based line numbers 2026-04-23 15:58:37 +02:00
Dominik Jain d79e2c2a0f Fix: SearchForPatternTool returned 1-based line numbers (in contrast to all other tools)
Cause: Implementation of text_utils.search_text

Serena's tools use 0-based line numbers, and this information
is now also centrally added to the instructions (manual).
2026-04-23 15:01:03 +02:00
Dominik Jain 885266ffb0 open_url_in_browser: Surround subprocess creation with try-catch
Resolves #1363
2026-04-23 11:03:32 +02:00
Dr. Dominik Jain d5724c4bd5 Merge pull request #1380 from oraios/dashboard-manager
Introduce DashboardManager with three interface modes for the dashboard
2026-04-23 02:23:08 +02:00
Dominik Jain 3e24972c61 SerenaDashboardTrayManager: Add initial delay to monitoring thread 2026-04-23 02:20:58 +02:00
Dominik Jain 81349514ab Mention new dashboard interface options in change log & documentation 2026-04-23 02:15:54 +02:00
Dominik Jain f8968ae657 Merge remote-tracking branch 'origin/main' into dashboard-manager
Conflicts:
	src/serena/agent.py
2026-04-23 02:03:51 +02:00
Dominik Jain 071fec981c Mark 'tray_manager' dashboard mode as experimental,
reverting back to 'browser' on macOS until it is tested
2026-04-23 02:01:41 +02:00
Dominik Jain 1beb2523f7 Improve docstrings 2026-04-23 01:48:44 +02:00
Dominik Jain a4913e6760 Fix memory leaks in dashboard frontend when using Chromium-based browsers
(including web view on Windows)

* Remove heartbeat (browsers no longer allow windows to be closed anyway)
* Prevent parallel requests pertaining to the executions queue

Both measures eliminate parallel requests (which, apparently, can lead
to memory leaks in Chromium-based browsers; no such observations in Firefox).

Fixes #1389
2026-04-23 01:35:41 +02:00
Dominik Jain 26e989dddd Reduce duplicate page init logic 2026-04-22 23:56:40 +02:00
Dominik Jain 7caff5f032 Adjust claude-code context
* Keep the replace_content tool enabled
 * Instruct the agent to use Serena's editing tools, especially
   when editing code that was read through Serena

This is in reaction to Claude Code's editing tool denying edits
without corresponding prior reads

Resolves #1400
2026-04-22 23:53:48 +02:00
Michael Panchenko 7ea9317a95 Removed no longer used set_modes and tests for it 2026-04-22 12:57:37 +02:00
Dr. Dominik Jain 110ddffc45 Merge pull request #1396 from oraios/remove-nbsphinx
Remove obsolete notebook-related dev dependencies (nbsphinx, nbconvert)
2026-04-22 01:45:37 +02:00
Dominik Jain 91977532fd Remove obsolete notebook-related dev dependencies (nbsphinx, nbconvert) 2026-04-22 00:49:41 +02:00
Michael Panchenko f786dee0b4 Merge pull request #1393 from oraios/dependabot/uv/uv-82fdfb001f
Bump nbconvert from 7.17.0 to 7.17.1 in the uv group across 1 directory
2026-04-22 00:09:28 +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
Dominik Jain a6877c4419 Project server:
- query_project: Support use of project root instead of project name
  - list_queryable_projects: Return both project names and project roots

Resolves #1388
2026-04-21 17:48:12 +02:00
Dominik Jain 4e0e7cd668 Always return prompts of newly activated modes in project activation message
(even if already returned within current session, because clients like
Claude Desktop use a single session for everything)

Relates to #1370
2026-04-21 15:47:29 +02:00