Skip to content

Conversation

inlined
Copy link
Member

@inlined inlined commented Oct 8, 2025

Array.filter does not work with Promises, so construct a new array in parallel instead. Upon Gemini's insistence I made this more complex to preserve ordering.

Copy link
Contributor

Summary of Changes

Hello @inlined, 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 addresses a functional bug in src/archiveDirectory.ts where Array.filter was incorrectly used with an asynchronous predicate to filter out symbolic links. The change refactors this logic to correctly perform asynchronous filtering by building a new array in parallel, ensuring that only non-symlink files are processed for archiving. The author acknowledges a potential change in file order but deems it inconsequential.

Highlights

  • Intent: The primary intent of this pull request is to correct a bug where Array.filter was being used with an asynchronous predicate, which does not work as expected in JavaScript. The goal is to properly filter out symbolic links from a list of files before archiving them, ensuring security and correctness.
  • Changes Summary: The pull request modifies src/archiveDirectory.ts. Specifically, the logic for filtering out symbolic links from the files array has been refactored. Instead of using Array.filter with an async callback, which would result in an array of Promises, the code now initializes an empty array realFiles. It then iterates over the original files array using Promise.all(files.map(async (f) => { ... })). Inside the map callback, it asynchronously checks if each file is a symbolic link using fs.promises.lstat. If a file is not a symbolic link, it is conditionally pushed into the realFiles array. This ensures that the filtering is performed correctly and in parallel, addressing the limitation of Array.filter with asynchronous operations. The author notes that this change might affect file order, but anticipates no negative consequences.
  • Reviewer Activity Summary: There is no reviewer activity to summarize at this time.
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

I've reviewed your pull request and have provided some feedback on the code changes. Please take a look at my comments and let me know if you have any questions.

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.

1 participant