Commit Graph
1126 Commits
Author SHA1 Message Date
Dominik Jain fcca03db9c Add method SerenaAgent.load_project_from_path_or_name 2025-07-19 22:36:57 +02:00
Dominik Jain 4506c87d99 Move flag indicating new project creation into Project representation 2025-07-19 22:26:40 +02:00
Dominik Jain 0def7aaecc Remove obsolete flag returned by ProjectConfig.load
which was never correctly returned anyway (due to a logic error)
2025-07-19 22:21:21 +02:00
Michael Panchenko 933fbee32b Merge pull request #319 from oraios/feature/dont_expose_tools_excluded_by_project/cc_serena
Apply project-specific tool exclusions early, cc_serena
2025-07-19 21:20:09 +02:00
Michael Panchenko 077f50a9b9 Corrected conditional on project existence 2025-07-19 20:44:43 +02:00
Michael Panchenko b9065ca636 Typing, removed unused method (minor) 2025-07-19 20:12:54 +02:00
Michael Panchenko 4dada35767 Apply project-specific tool exclusions early, cc_serena
Tokens: 1691910
Prompt (after initial instructions):
When the serena mcp server is started in ide-assistant mode and a project is passed, we should:                                                                                                                         │
│                                                                                                                                                                                                                           │
│   1. check the excluded tools from the project.yml. If no project.yml exists, there are no excluded tools there. You can use the Project or ProjectConfig classes for that.                                               │
│   2. exclude the tools there a-priori for the entire session, like the tools that are excluded from the context                                                                                                           │
│   3. exclude the activate_project tool                                                                                                                                                                                    │
│                                                                                                                                                                                                                           │
│   The code modification should happen in SerenaAgent, the problematic block is here:                                                                                                                                      │
│                                                                                                                                                                                                                           │
│           # determine the base toolset defining the set of exposed tools (which e.g. the MCP shall see),                                                                                                                  │
│           # limited by the Serena config, the context (which is fixed for the session) and JetBrains mode                                                                                                                 │
│           tool_inclusion_definitions = [self.serena_config, self._context]                                                                                                                                                │
│           if self.serena_config.jetbrains:                                                                                                                                                                                │
│               tool_inclusion_definitions.append(SerenaAgentMode.from_name_internal("jetbrains"))                                                                                                                          │
│           self._base_tool_set = ToolSet.default().apply(*tool_inclusion_definitions)                                                                                                                                      │
│           self._exposed_tools = {tc: t for tc, t in self._all_tools.items() if self._base_tool_set.includes_name(t.get_name())}                                                                                           │
│           log.info(f"Number of exposed tools: {len(self._exposed_tools)}")                                                                                                                                                │
│                                                                                                                                                                                                                           │
│   The exposed tools should be adjusted to reflect the logic I mentioned above
2025-07-19 18:56:34 +02:00
Michael Panchenko 7be56f0c82 Added claude.md [ci skip] 2025-07-19 18:18:30 +02:00
Michael Panchenko dcf8c6bae3 Simplified memory on how to add LS [ci skip] 2025-07-19 18:00:47 +02:00
Michael Panchenko 01c5f562c4 Merge pull request #316 from oraios/docs/update_memories_cc_with_serena
New memories, with claude code and serena
2025-07-19 17:46:52 +02:00
Michael Panchenko dd101ada6d New memories, with claude code and serena
Tokens (ccusage 15.5.0): 1,676,097
Claude version: 1.0.56
Prompt (after reading instructions):
Explore the repository and write memories explaining the structure and the core concepts. Also write a memory specifically with instructions on how to add support for a new programming language - including how to    │
│   test it. Have a look at how existing languages are tested, e.g. csharp, to understand how this can be done.
2025-07-19 17:37:25 +02:00
Dominik Jain ea5e0ced3c Catch all project activation errors for initial project 2025-07-18 11:36:01 +02:00
Dominik Jain ac12430182 Expose top-level command serena which now contains all other commands 2025-07-18 11:28:38 +02:00
Dominik Jain eed2057a13 Allow multiple projects with the same name
(but raise an error when trying to activate by non-unique name)
2025-07-18 10:51:14 +02:00
Dominik Jain e5aae3ee41 Merge branch 'feature/enhanced_cli' 2025-07-17 17:09:35 +02:00
Michael Panchenko c5fe377693 Readme: mention Serena's usefulness in coding assistants 2025-07-17 17:04:33 +02:00
Dominik Jain b3b24ebfe6 Make opening robust on Windows, using notepad.exe as a fallback 2025-07-17 16:45:39 +02:00
Michael Panchenko b7dace362e Merge pull request #313 from oraios/feature/enhanced_cli
Feature/enhanced cli
2025-07-17 16:33:58 +02:00
Michael Panchenko 7a89f32a6a Typo 2025-07-17 16:21:06 +02:00
Michael Panchenko eabf2ac09f Better help messages in cli 2025-07-17 16:10:24 +02:00
Michael Panchenko 108eded31a Missing entry in pyproject 2025-07-17 16:00:34 +02:00
Michael Panchenko dbacca6c5b Enhanced serena cli
We can manage configs and modes through it now
2025-07-17 15:26:32 +02:00
Michael Panchenko 0d4263e91d Added mode and context templates 2025-07-17 10:59:15 +02:00
Michael Panchenko e596319492 Possibility to load modes and contexts by name from $HOME/.serena 2025-07-17 00:28:29 +02:00
Michael Panchenko cad4df59cc Refactoring (minor): move all cli related things to a dedicated module 2025-07-16 18:27:13 +02:00
Michael Panchenko b9aadb3455 Support for using experimental language servers 2025-07-16 18:12:54 +02:00
Michael Panchenko cf866bb168 Merge pull request #310 from oraios/feature/system_prompt_on_cli/cc_serena
Add print-system-prompt command - PR by CC with Serena
2025-07-16 16:42:57 +02:00
Michael Panchenko 04b028f90c Typos [ci skip] 2025-07-16 15:57:08 +02:00
Michael Panchenko a9bc2c6483 Minor extension of print_system_prompt command, added explanation on using it to readme [ci skip] 2025-07-16 15:48:37 +02:00
Michael PanchenkoandClaude f654e1fe25 Add print-system-prompt command to output InitialInstructionsTool result
This command creates a SerenaAgent instance for a project and uses the InitialInstructionsTool
to output the system prompt/initial instructions. It follows the same pattern as the existing
index-project command and can be run with: uv run print-system-prompt [project_path]

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 14:43:53 +02:00
Michael Panchenko 85ee10662b Prompting: more explicit instructions on reading symbolic tools instead of reading [ci skip]
In ide-assistant context
2025-07-16 13:37:58 +02:00
Michael Panchenko f917aa9de6 Omnisharp: remove excessive logging 2025-07-14 11:41:54 +02:00
Michael Panchenko 2772132b6a Tests: raised loglevel to error 2025-07-14 11:41:41 +02:00
Michael Panchenko 9f1189ac9a Removed unused terraform LS files (forgotten to delete in past refactoring) 2025-07-13 23:18:25 +02:00
Michael Panchenko 3a2bf9702d Merge pull request #264 from oraios/codex/add-analytics-to-serena-dashboard
Add basic tool analytics to dashboard
2025-07-13 23:13:56 +02:00
Michael Panchenko 8e4147abfc Readme [ci skip] 2025-07-13 23:13:12 +02:00
Michael Panchenko fe5a888d49 Changelog [ci skip] 2025-07-13 23:09:29 +02:00
Michael Panchenko c43a1a6f11 Updated mypy, minor typing fix 2025-07-13 19:46:00 +02:00
Michael Panchenko 93702f3932 Minor improvements of stats display in dashboard
Display token count estimator name
Display short message if no stats were collected
2025-07-13 19:45:41 +02:00
Michael Panchenko f9609b8d9f Reverted unwanted change to ls 2025-07-12 21:18:18 +02:00
Michael Panchenko 0572722c0e Merge branch 'main' into codex/add-analytics-to-serena-dashboard 2025-07-12 21:16:30 +02:00
Michael Panchenko f220be2ac8 Merge pull request #288 from oraios/feature/new_ts_langserver
Alternative to typescript-language-server
2025-07-12 21:13:52 +02:00
Michael Panchenko 3719a22513 Merge branch 'feature/new_ts_langserver' into codex/add-analytics-to-serena-dashboard 2025-07-12 21:09:27 +02:00
Michael Panchenko a22ca1a0fe Default back to original ts LS 2025-07-12 21:01:40 +02:00
Michael Panchenko 3c0f33acde Improvements in tool call stats display 2025-07-12 20:54:06 +02:00
Michael Panchenko 56902e58e2 Support for displaying token stats in the dashboard 2025-07-12 20:26:51 +02:00
Michael Panchenko 0811eebe1b Merge branch 'refs/heads/main' into codex/add-analytics-to-serena-dashboard
# Conflicts:
#	src/serena/tools/tools_base.py
2025-07-12 16:34:47 +02:00
Dominik Jain 87791d14fa Merge pull request #284 from oraios/jetbrains
JetBrains plugin support
2025-07-11 00:03:46 +02:00
Dominik Jain 915da8dc9f Fix demo script 2025-07-10 23:19:36 +02:00
Dominik Jain 6a8a1810ed Rename variables: symbol_manager -> symbol_retriever 2025-07-10 23:16:37 +02:00