continue icon indicating copy to clipboard operation
continue copied to clipboard

fix: refresh codebase index on config change

Open shssoichiro opened this issue 6 months ago • 2 comments

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

shssoichiro avatar Jun 15 '25 19:06 shssoichiro

Deploy request for continuedev pending review.

Visit the deploys page to approve it

Name Link
Latest commit 634aafb08fc51a52cb7d8410eec89e9925e73e8d

netlify[bot] avatar Jun 15 '25 19:06 netlify[bot]

😱 Found 1 issue. Time to roll up your sleeves! 😱

recurseml[bot] avatar Jun 15 '25 19:06 recurseml[bot]

Thanks, I've updated both indexers as requested and fixed the tests which were failing due to caching.

shssoichiro avatar Jul 03 '25 05:07 shssoichiro

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 avatar Jul 08 '25 18:07 shssoichiro

@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.

RomneyDa avatar Jul 10 '25 01:07 RomneyDa

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.

shssoichiro avatar Jul 10 '25 02:07 shssoichiro

:tada: This PR is included in version 1.1.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

sestinj avatar Jul 22 '25 05:07 sestinj