Commit Graph
1343 Commits
Author SHA1 Message Date
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
MischaPanch 111a764b0b One more link [ci skip] 2025-08-14 00:22:01 +02:00
MischaPanch c75eed739d Typo in link [ci skip] 2025-08-14 00:18:12 +02:00
MischaPanch 181772ffd2 Config: removed replace_regex from ide-assistant and coded contexts [ci skip] 2025-08-14 00:09:59 +02:00
MischaPanch 7abaedeea7 Readme: added top-level section with summary and user feedback [ci skip] 2025-08-14 00:00:34 +02:00
Michael Panchenko 80a050bcec Create FUNDING.yml [ci skip] 2025-08-11 23:19:02 +02:00
MischaPanch b28f40ac7b Added git to docker 2025-08-11 22:39:56 +02:00
MischaPanch 71bb1f8d99 Added unzip to docker 2025-08-11 22:38:31 +02:00
Michael Panchenko d0dffab866 Merge pull request #459 from oraios/feature/better_project_indexing
Continue indexing on timeout errors, make timeout configurable in CLI
2025-08-11 22:35:28 +02:00
MischaPanch 8464f257aa Hotfix: fix create_text_file (had raised FileNotFound on new files), fix return type of the tool 2025-08-11 18:11:07 +02:00
MischaPanch 6a2458c688 Added zip to dockerfile 2025-08-11 18:11:07 +02:00
MischaPanch e4e98c7e24 Docker: add sudo and wget to image 2025-08-11 18:11:07 +02:00
Michael Panchenko 0f063dc762 Update issue templates [ci skip] 2025-08-11 10:35:26 +02:00
Michael Panchenko 53aef72961 Added issue template [ci skip] 2025-08-11 10:31:10 +02:00
MischaPanch 78b690dc92 Added codex support and instructions in readme [ci skip] 2025-08-11 09:25:06 +02:00
MischaPanch c99dd82697 Formatting 2025-08-11 09:05:25 +02:00
MischaPanch 8840164122 Continue indexing on timeout errors, make timeout configurable in CLI 2025-08-09 18:29:55 +02:00
Michael Panchenko 0f467a64da Merge pull request #454 from oraios/feature/codex_compatibility
Feature/codex compatibility
2025-08-09 17:52:32 +02:00
MischaPanch 6e1c8a4225 CLI: added health-check command [ci skip] 2025-08-09 16:47:26 +02:00