All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
list_module_dependentsMCP tool - reverse dependency lookup to find all modules that depend on a given module- Supports filtering by dependency type (
compilerorruntime) - Useful for assessing impact before refactoring or deprecating a module
- Supports filtering by dependency type (
- Support for overriding MCP tool descriptions at compile time via application configuration
- Example:
config :codicil, Codicil.MCP.Tools.FindSimilarFunctions, "custom description"
- Example:
- BREAKING: Removed
get_module_file_pathMCP tool as it duplicates functionality available in Tidewave - Reduced tool count from 6 to 5 tools to minimize overlap between MCP servers
- BREAKING: Renamed all MCP tools for better discoverability and consistency:
similar_functions→find_similar_functionsfunction_callers→list_function_callersfunction_callees→list_function_calleesmodule_relationships→list_module_dependenciesmodule_file→get_module_file_pathfunction_code→get_function_source_code
- Enhanced all MCP tool descriptions with:
- Clear use cases and trigger phrases for better AI assistant tool selection
- Explicit debugging and refactoring contexts for callers/callees tools
- Important notes to use indexed tools instead of shell commands (
ls,grep) - More action-oriented naming (find/list/get prefixes)
- Multi-clause functions now correctly capture all clauses in the
codefield - Added comprehensive test coverage for multi-clause function extraction
- Fixed RateLimiter error handling in tests when GenServer is not running
mix codicil.migratetask for running database migrationsmodule_fileMCP tool to get the file path where a module is definedfunction_codeMCP tool to retrieve function source code with preceding module-level use/alias/import directives- Documentation for combining multiple MCP servers (Codicil + Tidewave) in README and module docs
- Fix tracer crash when compiling files with top-level defimpl statements
mix codicil.setuptask for easy database initialization (creates database and runs migrations)
- BREAKING: The
exportedfield in thefunctionstable is now required (NOT NULL constraint added) - Updated
Functionchangeset to require theexportedfield at validation level - Placeholder functions (for external dependencies) now always have
exported: trueby default
- Tracer now provides clear error messages when
CODICIL_LLM_PROVIDERis not set - Better startup error handling to prevent silent compilation failures
Initial release of Codicil - semantic code search and analysis for Elixir projects via MCP.
MCP Tools:
similar_functions- Semantic search for functions by behavior descriptionfunction_callers- Find all functions that call a specific functionfunction_callees- Find all functions called by a specific functionmodule_relationships- Analyze module dependency chains (imports, aliases, uses, requires)