Skip to content

[Feature] Expose Codebase Indexing Concurrency Settings in UI #7509

@VooDisss

Description

@VooDisss

Problem Description

Currently, the concurrency settings for codebase indexing are hardcoded as constants within the extension's source code. This includes values like PARSING_CONCURRENCY, MAX_PENDING_BATCHES, and BATCH_PROCESSING_CONCURRENCY located in src/services/code-index/constants/index.ts.

This fixed configuration prevents users from optimizing the indexing process for their specific hardware. Users with powerful machines are limited by these conservative defaults, while the current settings might be too aggressive for users on lower-end hardware.

Proposed Solution

Introduce a new section in the RooCode VS Code extension settings UI that allows users to configure the codebase indexing concurrency settings.

This new section should provide options to modify:

  • Parsing Concurrency: The number of files to parse in parallel.
  • Max Pending Batches: The maximum number of batches to accumulate before waiting.
  • Batch Processing Concurrency: The number of batches to process for embeddings/upserts in parallel.

The settings should have sensible defaults but be adjustable by the user.

Impact

  • Improved Performance: Power users can increase concurrency settings to significantly speed up codebase indexing by fully utilizing their machine's capabilities.
  • Greater Flexibility: All users can fine-tune the indexing process to match their hardware and preferences, leading to a better user experience.
  • Enhanced User Control: Moves important performance-tuning options from hardcoded constants to an accessible user interface.

Technical Context

The relevant constants are defined in src/services/code-index/constants/index.ts and consumed in src/services/code-index/processors/scanner.ts. The implementation would involve creating a configuration schema and reading these values from the VS Code settings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue - In ProgressSomeone is actively working on this. Should link to a PR soon.enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions