Skip to content

Releases: bartolli/codanna

v0.9.19

03 Apr 22:14
v0.9.19
afc342e

Choose a tag to compare

Fixed

  • mcp get_index_info reports persisted remote semantic metadata in lite facade loads (PR #98)
  • Remote embedding model name shown instead of local default in status messages (PR #98)
  • index-parallel persists index.meta so MCP status reads do not trigger unnecessary sync (PR #98)
  • Windows test portability: Java, Lua, and path tests use TempDir instead of hardcoded Unix paths (PR #98)

Changed

  • index-parallel command retired; index uses the same pipeline path
  • format_semantic_status() shared helper for remote/local status formatting
  • GitHub Actions upgraded to Node 24: checkout v6, upload-artifact v7, download-artifact v8, github-script v8
  • softprops/action-gh-release v1 to v2 (Node 20, no Node 24 release yet)
  • Swatinem/rust-cache@v2 in full-test, quick-check, and autofix workflows
  • full-test.yml: redundant build steps removed, release build conditional on tags only
  • Local CI scripts synced with updated workflows

Removed

  • index-parallel CLI command and save_document_index_metadata from IndexPersistence

v0.9.18

25 Mar 16:11
v0.9.18
236b402

Choose a tag to compare

Added

  • Remote embedding backend: OpenAI-compatible HTTP endpoint as alternative to local fastembed (PR #97)
  • CODANNA_EMBED_API_KEY env var for Bearer auth on remote embedding servers
  • CODANNA_EMBED_URL, CODANNA_EMBED_MODEL, CODANNA_EMBED_DIM env var overrides
  • Remote embedding config documentation in codanna init output
  • Nix flake for reproducible builds and nix run support (PR #94)
  • GetIndexInfoRequest manual JsonSchema impl for OpenAI function-calling compatibility (PR #96)

Fixed

  • Dimension mismatch detection: enable_semantic_search no longer overrides semantic_incompatible flag
  • --force with CLI paths warns about configured roots that will not be rebuilt
  • --force suppresses misleading "Already indexed" message
  • process::exit removed from create_semantic_search in index_parallel (returns gracefully)
  • Highlight range overlap panic in document search
  • DimensionMismatch propagated through persistence and hot-reload paths

Changed

  • EmbeddingBackend enum wraps local fastembed pool and remote HTTP embedder
  • Shared load_symbol_languages helper (deduplicated load/load_remote)
  • API keys env-var only: secrets not stored in config files

v0.9.17

15 Mar 19:36
v0.9.17
3be859b

Choose a tag to compare

Added

  • Clojure language support: parser, behavior, definition, resolution modules (PR #80)
  • Clojure test fixtures, examples, grammar analysis, and audit report

Changed

  • Grammar audit tests split into per-language modules under abi15_grammar_audit/

v0.9.16

15 Mar 16:34
v0.9.16
05c32bb

Choose a tag to compare

Fixed

  • Embedding pool initialized on incremental index when loaded from disk (#88)
  • Semantic save errors logged instead of silently discarded
  • get_index_info reports live embedding count instead of stale metadata
  • Debug printlns removed from semantic search

v0.9.15

15 Mar 15:20
v0.9.15
37076cd

Choose a tag to compare

Changed

  • rmcp 1.2.0, rand 0.10.0, and 18 other dependency updates

Fixed

  • System git backend for SSH config support
  • Profile install for symlinked directories
  • Windows installer script and rustls enablement

Removed

  • git2 crate (system git backend)

v0.9.14

30 Jan 04:11
v0.9.14
04b5266

Choose a tag to compare

Added

  • Lua language support: parser, behavior, definition, resolution modules
  • Lua test fixtures and comprehensive examples
  • Lua grammar analysis and audit report documentation

Changed

  • Updated rmcp to 0.14.0 (CallToolRequestParams, InitializeRequestParams, StreamableHttpServerConfig API)
  • Updated clap to 4.5.56, chrono to 0.4.43, thiserror to 2.0.18, rcgen to 0.14.7, sysinfo to 0.38.0

Fixed

  • Vector storage clippy panicking_unwrap false positive

v0.9.13

17 Jan 17:21
v0.9.13
a5d71c1

Choose a tag to compare

Added

  • Go project resolver provider for go.mod parsing and module path resolution
  • Python project resolver with multi-backend support (Poetry, Hatch, Maturin, Setuptools, PDM, Flit)
  • Kotlin project resolver with source layout config (jvm, standard-kmp, flat-kmp)
  • PHP PSR-4 provider for composer.json autoload namespace resolution
  • C# project resolver for .csproj SDK-style projects (RootNamespace, AssemblyName extraction)
  • Shared helper functions in helpers.rs for provider implementations
  • [[languages.X.projects]] config block for per-project source layout override
  • PHP method call tracking (member_call_expression, scoped_call_expression)
  • Animated spinner during pipeline warmup phase (DISCOVER/READ/PARSE/COLLECT)

Changed

  • Settings.languages uses IndexMap for alphabetical ordering in init output
  • LoggingConfig.modules uses IndexMap for consistent ordering
  • Empty indexes now auto-trigger force mode for dual EMBED+INDEX progress bars
  • DualProgressBar shows preparing spinner when both bars at 0%

Fixed

  • Languages without providers no longer show empty config_files in settings.toml
  • Rustdoc invalid-html-tags error in C# provider doc comments

v0.9.12

15 Jan 01:58
v0.9.12
76d8f93

Choose a tag to compare

Added

  • Unified JSON envelope format (Envelope type) with schema_version, status, code, exit_code, message, hint, data, meta
  • --fields flag for JSON field filtering on data payload (mcp and retrieve commands)
  • QueryContext abstraction for symbol resolution and error handling in retrieve commands
  • lang field to Meta struct with with_lang() builder method
  • paths.rs module with normalize_for_module_path, strip_source_root, strip_extension helpers
  • format_path_as_module as required trait method for language-specific path formatting
  • Document collections info to get_index_info output

Changed

  • Migrated all 9 MCP tool commands to unified Envelope format for --json output
  • Migrated retrieve symbol/callers/calls/describe/search/implementations to Envelope format
  • Lazy load ML model for embedding generation (deferred until first semantic search)
  • Flattened tuple output in get_calls/find_callers to avoid nested array waste
  • Standardized search_symbols output with nested symbol object
  • Unified logging to stderr for all commands
  • Skip embedding pool loading for retrieve commands via load_facade_lite()
  • module_path_from_file now accepts extensions: &[&str] parameter (fixes deadlock when registry lock held)

Removed

  • file_extensions() method from LanguageBehavior trait (duplicated LanguageDefinition::extensions())
  • file_extensions() implementations from all 12 language behaviors
  • init_with_config_stderr function (replaced by unified init_with_config)
  • Tantivy-based resolution methods from trait: resolve_import, build_resolution_context, resolve_import_path, classify_import_origin, resolve_import_path_with_context
  • Dead Go behavior methods: get_current_package_path_for_file, get_project_root_for_file
  • store_file_info from DocumentIndex (replaced by store_file_registration)

Breaking

  • --json output format changed for mcp and retrieve commands (now uses Envelope schema)

v0.9.11

12 Jan 22:29
v0.9.11
39006e5

Choose a tag to compare

Fixed

  • MCP servers now load document store on all transports (stdio, HTTP, HTTPS)
  • Consolidated document store loading into reusable helper

Documentation

  • Added transport notes to MCP Persistent and MCP Network docs

v0.9.10

07 Jan 15:28
v0.9.10
d73004d

Choose a tag to compare

Changed

  • Bump version to 0.9.10
  • Update serde_json from 1.0.148 to 1.0.149
  • Disable ort dev-dependency (commented out)

Fixed

  • Pipeline wall_time tracking (aa01269)
  • Add EMBED to pipeline metrics (aa01269)

Documentation

  • Fix JSON examples in MCP tools
  • Add lang parameter to tools documentation
  • Update architecture for v0.9.0
  • Add install methods documentation