Skip to content

Conversation

@altynbek132
Copy link

Summary

Suggest to user files from includeDirectories

Details

Refactor the file search logic to handle multiple directories, allowing for concurrent searches across different roots. This change enhances the search capabilities and optimizes the suggestion retrieval process.

Related Issues

How to Validate

try adding includeDirectories and tag files from there

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker
Refactor the useAtCompletion hook to utilize an array of file searchers instead of a single reference. This change allows for concurrent searches across multiple resources, improving the efficiency of suggestion retrieval.
…etion tests

Enhance the test suite for useAtCompletion by adding cases that validate searching across multiple directories. This includes ensuring deduplication of files with the same path and filtering results based on patterns. Additionally, handle scenarios where the workspace context is undefined or empty.
@altynbek132 altynbek132 requested a review from a team as a code owner February 1, 2026 09:22
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @altynbek132, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the @completion feature by enabling it to suggest files from multiple specified includeDirectories. It introduces a refactored file search mechanism that supports concurrent searches across various project roots and intelligently deduplicates results. This change improves the accuracy and comprehensiveness of file suggestions, particularly for users working within multi-root workspaces, by ensuring all relevant files are discoverable.

Highlights

  • Multi-Directory File Search: The @completion feature now supports suggesting files from multiple includeDirectories by refactoring the underlying file search logic to handle concurrent searches across different roots.
  • Concurrent Search Execution: The file search mechanism has been updated to use Promise.all to execute searches concurrently across all configured file searcher instances, significantly improving efficiency for multi-root workspaces.
  • Duplicate Result Deduplication: Search results from multiple directories are now automatically flattened and deduplicated, ensuring that users receive a clean list of unique file suggestions even if the same file path exists in different roots.
  • Enhanced Test Coverage: New comprehensive tests have been added to validate the multi-directory search functionality, including scenarios for searching across multiple roots, deduplication, filtering, and handling of undefined or empty workspace contexts.
  • Refactored Searcher State: The internal state for managing file search instances in useAtCompletion has been transitioned from a single FileSearch object to an array of FileSearch objects, preparing the hook for managing multiple search contexts.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the @ completion to support searching for files across multiple directories specified in includeDirectories. The changes include updating the useAtCompletion hook to manage multiple FileSearch instances and adding comprehensive tests for the new multi-directory functionality. I've identified a critical issue in the implementation where the logic to create searchers for multiple directories is missing, causing it to only search in the current working directory. My review includes a code suggestion to fix this, which has been retained as it does not contradict any established rules.

@gemini-cli gemini-cli bot added the priority/p1 Important and should be addressed in the near term. label Feb 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority/p1 Important and should be addressed in the near term.

1 participant