Commit Graph
1361 Commits
Author SHA1 Message Date
Michael Panchenko fd09f2f7fc Update issue templates 2025-08-25 20:35:21 +02:00
Michael Panchenko f79bbe96f6 Update issue templates [ci skip] 2025-08-25 20:34:40 +02:00
MischaPanch f6ae93ae35 Disable blank issues [ci skip] 2025-08-25 20:07:57 +02:00
Michael Panchenko c8a7b14259 Merge pull request #534 from cdmikechen/fix-conflict-subprocess-key
Fix: Remove conflict key "creationflags" for windows
2025-08-25 12:32:51 +02:00
PC 276f691133 remove confilct key for windows 2025-08-25 14:57:32 +08:00
MischaPanch 51b2b0cea8 Bugfix - max_answer_chars in write_memory was not using _limit_length
So it couldn't just be -1
2025-08-24 00:14:08 +02:00
Michael Panchenko e316cae5c8 Add nix flake (#526)
Adds a nix flake to the project so that nix users can easily execute it.
2025-08-23 23:21:04 +02:00
Jonathan Dickinson 9885570bf8 Add nix flake
Adds a nix flake to the project so that nix users can easily execute it.
2025-08-23 13:45:47 -07:00
Alex Whitney 602f552f7e feat: add Erlang language server support via Erlang LS (#436) 2025-08-23 18:01:28 +02:00
Michael Panchenko d6d1e78fee Merge pull request #523 from oraios/feature/make_max_tokens_configurable
Config enhancement: allow configuring default_max_tool_answer_chars
2025-08-23 17:17:05 +02:00
MischaPanch cd001f3c45 GH: don't setup java twice 2025-08-23 16:47:10 +02:00
MischaPanch 06efd426d8 Extended memory for adding language support 2025-08-23 16:46:57 +02:00
MischaPanch f00205d110 Config enhancement: allow configuring default_max_tool_answer_chars
Replaces the fixed global var that was used before
2025-08-23 16:11:11 +02:00
MischaPanch 09b4caa260 Changelog [ci skip] 2025-08-23 15:52:37 +02:00
cylee 144e1357bd Change kotlin lsp to official https://github.com/Kotlin/kotlin-lsp (#507)
Also added tests for kotlin
2025-08-23 14:27:16 +02:00
MischaPanch 80589726ec Changelog [ci skip] 2025-08-23 00:06:30 +02:00
MischaPanch 5f8ce2b92d Lowered TOOL_DEFAULT_MAX_ANSWER_LENGTH 2025-08-22 23:56:44 +02:00
Dominic Rubas 7e6dbdc9ba Feat: Add Support for Zig, Nix, Lua (#498)
Extensive tests for each of the three languages were added
2025-08-22 23:34:46 +02:00
bzark 47ccc916a4 Added tests for Dart (#521)
* Adding testing support for Dart language; steps 3, 4 & 5 from adding_new_language_support_guide.md
2025-08-22 22:07:12 +02:00
Dominik Jain f83d72cf32 Log time taken for gitignore file discovery/parsing 2025-08-22 18:43:04 +02:00
Dominik Jain 2c23e1151c Remove unused var 2025-08-22 14:57:54 +02:00
Dominik Jain 48a1952cae Set ignore_non_source_files=True in gather_source_files #519 2025-08-22 14:49:48 +02:00
Dominik Jain ac149afac9 Add further exception handle for relative path conversion,
accounting for paths which are not deemed 'absolute' (apparently NUL file on Windows satisfies this) #517
2025-08-22 14:14:08 +02:00
Dominik Jain 7b65979393 Map Windows ARM64 correctly (system='Windows', machine='ARM64', bitness='64bit')
Relates to #479
2025-08-22 09:32:05 +02:00
Piotr Wilkin (ilintar) b299422699 Fix OpenAI tool compatibility (#509)
* Fix OpenAI tool compatibility; add agent mode for OpenAI compatible servers like Llama.cpp; add testcase to verify completeness
2025-08-22 01:30:02 +02:00
Dominik Jain 395fcc4126 Merge pull request #510 from oraios/unify-ignore-logic
Improve handling of ignored files and .gitignore discovery
2025-08-21 23:29:17 +02:00
Dominik Jain 716fbb5296 Remove queue item representation, using absolute paths instead 2025-08-21 22:09:09 +02:00
Dominik Jain b23d883f42 Make sure paths that have invalid relative paths are always ignored
Fixes #506
2025-08-21 19:02:57 +02:00
Dominik Jain a603054cb9 Fix prevention of recursion into ignored directories in gather_source_files
(Used _is_ignored_relative_path instead of is_ignored_path)
2025-08-21 19:02:57 +02:00
Dominik Jain ca8ac45c5e Remove method _is_ignored_dirname
(Randomly ignoring directories starting with '.' is not appropriate)
2025-08-21 19:02:57 +02:00
Dominik Jain 2a388dc22c Incrementally look for .gitignore files in a top-down fashion,
skipping directories that are ignored based on files already discovered

Fixes #453
Probably fixes #470
2025-08-21 19:02:38 +02:00
Dominik Jain ba7943d2ea Improve logging 2025-08-21 17:45:23 +02:00
Vladimir 807ff1f56e refactor: use rustup-managed rust-analyzer instead of bundling (#495)
rust-analyzer now requires rustup to be installed

## Motivation

The previous implementation bundled rust-analyzer binaries that quickly
became outdated and required manual updates to Serena's codebase. This
caused version mismatches between the bundled rust-analyzer and users'
actual Rust toolchain versions.

## Changes

- Remove RuntimeDependency-based binary bundling for rust-analyzer
- Use rustup-managed rust-analyzer from the user's toolchain
- Add automatic installation of rust-analyzer component if missing
- Install rustup with minimal profile in Docker images

## Rationale

Rust development universally relies on rustup for toolchain management.
Unlike some other languages where system packages or bundled binaries
make sense, Rust developers already have rustup installed and expect
tools to use their toolchain's versions.

This approach ensures:
- rust-analyzer always matches the user's Rust version
- No outdated binaries shipped with Serena
- Automatic updates via `rustup update`
- Consistency with Rust ecosystem expectations

The LSP API of rust-analyzer is stable enough that version differences
are not a concern. If users don't have rustup, they'll get a clear error
message - this is acceptable since you cannot meaningfully develop Rust
without rustup.

## Docker Support

Added rustup installation to Docker images to ensure Rust support works
in containerized environments. Uses minimal profile to reduce image size
while still providing full rust-analyzer functionality.
2025-08-20 17:03:16 +02:00
Phuong To 6ebff74f9d fix: add missing osx-x64 runtime dependency for clangd language server (#497) 2025-08-20 11:04:45 +02:00
MischaPanch d5f9071067 Bump version 2025-08-15 13:59:53 +02:00
MischaPanch 4d9cd31e36 Docstring: reminder to escape appropriately in replace_regex (\\n for inserting \n) [ci skip] 2025-08-15 13:43:57 +02:00
MischaPanch 4ce25cad6b Merge branch 'main' of github.com:oraios/serena 2025-08-15 13:39:03 +02:00
MischaPanch 636009d145 Changelog [ci skip] 2025-08-15 13:38:51 +02:00
Michael Panchenko 5884e67d3b Merge pull request #490 from oraios/improve_waiting_for_cross_file_references
Improve waiting logic for cross-file references to be ready
2025-08-15 13:29:16 +02:00
MischaPanch e6ae39ab1b Fixed path in test 2025-08-15 13:28:32 +02:00
MischaPanch d4dedd5d84 Improve waiting logic for cross-file references to be ready
Now waiting only once instead of on each request, hopefully that's enough
2025-08-15 13:10:46 +02:00
Yen a066202d02 simplify bash LS integration by removing hybrid approach (#467)
Turns out that bash language server was actually doing the right thing
2025-08-15 10:43:08 +02:00
Michael Panchenko 7df16d21e5 Bump wait time for references in csharp_language_server.py 2025-08-14 21:51:22 +02:00
Riya Amemiya a597bb1715 Correct typos in variable names, constants, and documentation (#488) 2025-08-14 19:40:54 +02:00
Abdelkader Boudih bcc4a9e5d9 Better error message on FileNotFoundError (#480)
- Check if directory exists before calling validate_relative_path
- Return structured JSON error with project_root context when directory not found
- Helps LLMs understand the current working directory context in MCP

Similar to fix in commit 8464f25 for CreateTextFileTool
2025-08-14 14:42:15 +02:00
MischaPanchandClaude de173ce078 Fix gitignore pattern scoping bug for **/pattern in subdirectories
Previously, when a subdirectory .gitignore file contained patterns starting
with "**/", these patterns were incorrectly applied globally instead of being
scoped to that subdirectory's tree.

For example, if foo/.gitignore contained "**/test.txt", it would incorrectly
ignore test.txt files everywhere in the repository, including at the root
level and in other subdirectories like bar/test.txt.

The bug was in _parse_gitignore_content() where patterns starting with "**/"
were left unchanged (line 228: adjusted_pattern = line), making them global
instead of scoped.

Fixed by ensuring that even "**/pattern" gets the subdirectory prefix:
- Before: "**/test.txt" → "**/test.txt" (global)
- After: "**/test.txt" → "foo/**/test.txt" (scoped to foo/ subtree)

Added comprehensive test cases covering all gitignore pattern scenarios:
- Non-anchored patterns (foo.txt) - already worked correctly
- Anchored patterns (/foo.txt) - already worked correctly
- Double-star patterns (**/foo.txt) - was broken, now fixed
- Anchored double-star (/**/foo.txt) - already worked correctly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-14 12:11:24 +02:00
MischaPanch c82fab97c1 CSharp: added waiting for request_referencing and test for cross-file references 2025-08-14 12:01:58 +02:00
MischaPanch b87c8a97ee Merge branch 'main' of github.com:oraios/serena 2025-08-14 11:19:57 +02:00
MischaPanch 3484c0205a Readme, minor [ci skip] 2025-08-14 11:19:53 +02:00
Colin MollenhourandClaude 16aa8c93dd Support license key for advanced PHP LSP features. (#476)
* Add optional Intelephense license key support via INTELEPHENSE_LICENSE_KEY environment variable

- Add initializationOptions support to Intelephense LSP server
- Pass license key via licenceKey property when environment variable is set
- Update README.md and DOCKER.md documentation with new environment variable
- Fix docstring comment in _get_initialize_params method

🤖 Generated with [Claude Code](https://claude.ai/code)

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

* Fix formatting

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-14 09:56:37 +02:00