fix: refresh codebase index on config change
Description
Updates the CodebaseIndexer to refresh the index when the assistant config is changed. The DocsService already does this, so this change copies the approach that the DocsService is using.
The biggest current issue is that the codebase indexing will begin before Continue has loaded remote assistant configs, which means it will use whatever model is available locally (usually Transformers.js in VSCode), or worse, silently fail. By refreshing after the config loads, we will ensure we are indexing the codebase using the user's configured embed model.
Checklist
- [x] I've read the contributing guide
- [x] The relevant docs, if any, have been updated or created
- [x] The relevant tests, if any, have been updated or created
Screenshots
N/A This is a backend change.
Tests
Added appropriate tests to CodebaseIndexer.test.ts
Deploy request for continuedev pending review.
Visit the deploys page to approve it
| Name | Link |
|---|---|
| Latest commit | 634aafb08fc51a52cb7d8410eec89e9925e73e8d |
😱 Found 1 issue. Time to roll up your sleeves! 😱
Thanks, I've updated both indexers as requested and fixed the tests which were failing due to caching.
What would be a good way to check for this? Looking at the ContextProviderDescription, it seems like the properties there would typically always be the same given that we are always looking at the "codebase" provider.
@shssoichiro you are right that changes in nRetrieve and nFinal and useReranking (the only codebase params) should not trigger a refresh. I just mean that the equality expression codebaseProvider1 === codebaseProvider2 will always evaluate to false, because they are objects that are created with each config reload.
Thanks, that makes sense. In that case it probably makes sense to remove that check and just check if the embed provider has changed. I've done that and fixed the merge conflicts.
:tada: This PR is included in version 1.1.0 :tada:
The release is available on:
Your semantic-release bot :package::rocket: