Commit Graph
3027 Commits
Author SHA1 Message Date
weicongheandClaude b8a0882d29 fix(file_system): handle PermissionError on scandir in gitignore walker (#1634)
Wrap os.scandir() with PermissionError guard in _iter_gitignore_files'
scan() function to prevent crash when a subdirectory is not readable.

Previously, PermissionError on the scandir call itself crashed the
entire gitignore walker, even when the path was listed in ignored_paths.

Fixes oraios/serena#1624

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-02 10:53:22 +02:00
Jordan CarneyandDominik Jain dcbd8ce064 Add activation_command to project config (#1623)
Add activation_command to project config

Adds two optional fields to ProjectConfig:
- activation_command: shell command run in the project root before the
  language backend (LSP or JetBrains) initialises
- activation_command_timeout: safety backstop (default 180s); on expiry
  the process tree is killed and activation continues

The command is only executed for trusted projects (trusted_project_path_patterns).
Exit code is the primary completion signal; failures and timeouts are logged
but never abort activation (no return channel to the LLM at that point).

Closes #1606

---------

Co-authored-by: Dominik Jain <dominik.jain@oraios-ai.de>
2026-07-01 18:12:05 +02:00
Dr. Dominik Jain 684f457f0d Merge pull request #1630 from oraios/file-proxy 2026-07-01 18:01:57 +02:00
Dominik Jain d5d88d72eb Improve handling of glob support in FileProxy, fixing tests 2026-07-01 17:00:00 +02:00
Dominik Jain 3096ac4fe2 Fix in Project._is_ignored_relative_path: Filtering of files for source files ignored the language backend
The check is really only possible for LSP,
so the flag is now ignored for JetBrains (where there is no known list of languages).
2026-07-01 14:57:52 +02:00
Dominik Jain 423c04101d Make Project aware of the language backend (as it can affect its behaviour) 2026-07-01 14:57:52 +02:00
Dominik Jain f39906728d search_text: Remove obsolete option allow_multiline_match
The obsolete option was only used in tests, where adjusting the `multiline` parameter
restored the tested functionality.
2026-07-01 14:57:52 +02:00
Dominik Jain 6e518b5f7c Refactor search in files/iterative file processing
* Introduce abstractions: FileCollection, FileProxy
* Unify handling of pattern search in project files
  (source code vs. all files)

This prepares for processing of external files,
which can implement FileProxy differently.
2026-07-01 14:32:37 +02:00
Dominik Jain 103a17072e Update change log 2026-06-29 17:25:06 +02:00
Dr. Dominik Jain d1a25ddbc1 Merge pull request #1621 from oraios/ade-updates
ADE updates
2026-06-29 16:31:27 +02:00
Dominik Jain 673f657dcc Apply formatter, fix spelling 2026-06-29 16:19:41 +02:00
Michael PanchenkoandClaude Opus 4.8 3d9b953ac6 Add mode benchmark
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 16:04:44 +02:00
Dominik Jain 3a7757a390 Merge commit 'ee3e7506428d08c8786a90306a8bc5cf1734182f'
Conflicts:
  CHANGELOG.md
2026-06-29 16:00:17 +02:00
Dominik Jain 99ad6eaaee Fix JetBrainsPluginClient._make_request incorrectly passing None as data
Fixes #1615
2026-06-29 15:56:21 +02:00
ee3e750642 Update Serena system prompt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Dominik Jain <dominik.jain@outlook.com>
2026-06-29 15:48:38 +02:00
6b0a5ec097 Update editing mode prompt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Dominik Jain <dominik.jain@outlook.com>
2026-06-29 15:48:38 +02:00
Dominik Jain d589d09d85 Improve interactive mode prompt 2026-06-29 15:48:38 +02:00
Michael PanchenkoandClaude Opus 4.8 634460d32d Add agent instructions on tool descriptions and memories
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 15:48:38 +02:00
Michael Panchenko 310a01c1ac Bugfix: list_memories was not recursing into symlinked dirs. 2026-06-29 15:48:38 +02:00
Michael PanchenkoandClaude Opus 4.8 b174a2cf72 util/yaml: make save_yaml atomic (temp + os.replace, Windows retry)
A plain truncate-and-write (open(path,"w")) is not atomic: a concurrent writer
(a second Serena process updating the auto-managed registered-projects list) or an
interrupted write can leave the file half-overwritten -- a shorter value over a longer
one leaves a stale tail, corrupting the YAML so every later load fails. This is what
wedged native benchmark runs (serena MCP crashed at startup with a ruamel ScannerError
-> 0 tools registered -> agent silently degraded to Bash).

Write to a temp file in the same dir, then os.replace onto the target (atomic;
last-writer-wins, never a corrupt interleave). Retry os.replace on Windows
PermissionError (WinError 5/32 sharing violation under contention). Adds
test/serena/util/test_yaml.py covering the shorter-over-longer corruption signature
plus a concurrent-writers stress.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 15:48:38 +02:00
Michael Panchenko 75410c78e7 Use depth=-1 to enable lang-specific default for overview tools 2026-06-29 15:48:38 +02:00
Michael Panchenko 4dc0cd1453 Add ReplaceInFilesTool 2026-06-29 15:37:18 +02:00
Dominik Jain 31e2acd9bc Restructure change log entries 2026-06-29 15:36:59 +02:00
Michael PanchenkoandClaude Opus 4.8 a6d052a6a2 print-system-prompt: make project optional, drop logging + stray prints
Render the system prompt without activating a project: `project` is now an
optional positional (default None -> project-independent prompt). Drop the
--log-level option / logging.configure call so CLI logging stays off and only
the prompt reaches stdout, and remove two stray debug print()s
(default_modes/base_modes) that leaked onto stdout. IDE autostart is already
disabled here via with_headless_mode_overrides() (it nulls
jetbrains_launch_command). Also drop an accidental unused sqlalchemy import.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 15:25:29 +02:00
Michael Panchenko 7333a0c868 Replace mypy by ty (#1619) 2026-06-29 12:26:07 +02:00
Dominik Jain 0d8d5add9d Add instructions on submitting PRs 2026-06-29 12:20:36 +02:00
Michael Panchenko c89b0d1942 CI: mark flaky zls test as xfail 2026-06-29 11:25:39 +02:00
Michael Panchenko 4c7fa0e578 CI: caching of deps in the niche batch 2026-06-29 10:40:13 +02:00
Michael Panchenko 85e78db670 CI: remove now obsolete Dockerfile.maximal-based workflow 2026-06-29 10:13:33 +02:00
Michael Panchenko ebe7646764 CI: overcome rate-limits for GH downloads by providing access token
Also only run haskell tests on linux, toolchain takes 6 mins to install on macos
2026-06-28 22:38:48 +02:00
Michael Panchenko af1048901d CI: run niche batch only on ubuntu and document workflow logic 2026-06-28 21:44:55 +02:00
Michael Panchenko 4246ac0fe8 CI: remove unnecessary free disk space step 2026-06-28 19:22:34 +02:00
Michael Panchenko ad7f65ef13 CI: improve distribution of cases to batches (GH offers limited concurrency)
See https://docs.github.com/en/actions/reference/limits#job-concurrency-limits-for-github-hosted-runners
2026-06-28 19:04:31 +02:00
Michael Panchenko 4b7e02239a CI: re-adding ubuntu to OS matrix and niche languages with large toolkits 2026-06-28 18:28:36 +02:00
Michael Panchenko 0143479621 Tests: centralized test enabling logic, better parallelization in CI
Removing some heavy toolchains from windows/macos run (they will be tested only in the job based off the maximal docker image)
2026-06-28 17:47:36 +02:00
Michael Panchenko ae097c5c10 Remove perl and nix from CI tests (heavy toolchains) 2026-06-28 16:27:24 +02:00
Michael Panchenko befc642f34 Merge pull request #1614 from 0x1997/main
Add pyrefly as alternative lsp for python
2026-06-28 15:34:12 +02:00
wangzhe 6e7f0e648d Add pyrefly as alternative lsp for python 2026-06-28 20:53:39 +08:00
TiM 83d19905d0 solidlsp: recognize Arduino .ino files as C++ (#1534) 2026-06-28 14:48:55 +02:00
Fabio Capucci 91a18eb465 add phpantom lsp for php (#1554) 2026-06-28 14:46:27 +02:00
Michael Panchenko 52bbeefa6a Changelog - 2 new entries, shortened overly verbose existing entries 2026-06-28 13:33:19 +02:00
Michael Panchenko 595cf19b87 Remove niche languages with heavy toolchains from execution in GH actions 2026-06-28 13:33:19 +02:00
Michael Panchenko 644eb763eb Skip BSL tests, fix outdated comment 2026-06-28 13:18:53 +02:00
Michael Panchenko c7be814402 Merge pull request #1595 from oraios/dependabot/uv/uv-536976e7af
Bump the uv group across 1 directory with 2 updates
2026-06-28 13:10:04 +02:00
Michael Panchenko 88fe650f35 Merge pull request #1576 from zerone0x/fix/jdtls-workspace-hash-config-1541
fix: invalidate JDTLS workspace cache when Java import settings change
2026-06-28 13:09:37 +02:00
Devin 68a4af4ac1 Add CodeBuddy agent integration (#1581) 2026-06-28 13:00:41 +02:00
PETRO YAKOVYSHYN b7e7b86dd1 Unreal Engine: reorder the setup guide, fail on an empty compile_commands.json (#1610) 2026-06-28 12:59:29 +02:00
Michael Panchenko 42294fdf32 Merge pull request #1617 from Lauritz-Timm/fix/windows-csharp-startup-install
Fix Windows C# startup and Roslyn install
2026-06-28 12:48:07 +02:00
Lauritz-Configo 8e7c8feb84 Fix Windows C# startup and Roslyn install 2026-06-27 19:29:43 +02:00
Dr. Dominik Jain 901bd2155a Merge pull request #1612 from oraios/trusted-projects
Add notion of trusted projects
2026-06-26 13:45:02 +02:00