Skip to content

feat: Add configurable embedding models and fix TypeScript call tracking - #50

Merged
bartolli merged 2 commits into
bartolli:mainfrom
Nbecause:feat/configurable-embedding-models
Oct 18, 2025
Merged

feat: Add configurable embedding models and fix TypeScript call tracking#50
bartolli merged 2 commits into
bartolli:mainfrom
Nbecause:feat/configurable-embedding-models

Conversation

@Nbecause

@Nbecause Nbecause commented Oct 14, 2025

Copy link
Copy Markdown
Contributor

Summary

This PR adds two improvements to codanna:

1. Configurable Embedding Model Support

  • Adds ability to configure which embedding model to use for semantic search
  • Supports three models: AllMiniLML6V2 (default), MultilingualE5Small, and ParaphraseMultilingualMiniLML12V2
  • Enables better semantic search for multilingual codebases
  • Documents usage in README

Configuration:

[semantic]
model = "MultilingualE5Small"  # Choose based on codebase language mix

2. TypeScript Object Property Call Tracking Fix

  • Fixes bug where calls from object property functions weren't tracked
  • Extends context inference to handle arrow functions in object properties
  • Updates relationship compatibility rules to allow Constants/Variables as callers
  • Adds comprehensive integration test

Example pattern now tracked:

const actions = {
  submitForm: async (request) => {
    return submitForm({ input: request.body });  // Now detected ✓
  }
};

Test Plan

  • All 446 tests pass
  • New integration test test_typescript_object_property_call verifies fix
  • Manual testing with test_action_caller.ts confirms relationship tracking works
  • Documentation added for new configuration option

Related Issues

Fixes the TypeScript call tracking issue for server actions/form actions patterns commonly used in Next.js and similar frameworks.

…tic search

- Add model field to SemanticConfig (AllMiniLML6V2, MultilingualE5Small, ParaphraseMultilingualMiniLML12V2)
- Update embedding initialization to use configured model
- Document configuration in README
- Default to AllMiniLML6V2 for English codebases

Enables users to choose embedding models based on their codebase language mix.
Fixes bug where object property functions calling same-named functions
were not tracked in relationship graph.

- Extend context inference to handle arrow functions in object properties
- Update relationship compatibility to allow Constant/Variable as callers
- Add integration test for object property call tracking

Example pattern now tracked:
  const actions = {
    submitForm: () => submitForm(data)  // Now detected
  }
@bartolli
bartolli merged commit d171b8c into bartolli:main Oct 18, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants