Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable tag searching in model metadata #1187

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

RTHilton
Copy link

Added the ability to search for tags (exact, case-insensitive) using the # operator. For example:
#celebrity will return all models with the Celebrity tag
#celebrit will return nothing

Added the ability to search for tags (exact, case-insensitive) using the # operator. For example:
#celebrity will return all models with the Celebrity tag
#celebrit will return nothing
Copy link

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

Hello @RTHilton, 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!

Summary of Changes

This pull request enables tag searching in model metadata. It adds the ability to search for tags (exact, case-insensitive) using the # operator. For example, #celebrity will return all models with the Celebrity tag, while #celebrit will return nothing. The change modifies the CheckpointsPageViewModel.cs file to include this new search functionality.

Highlights

  • Tag Searching: Implements tag searching using the # operator for filtering models by tags.
  • Case-Insensitive Search: The tag search is case-insensitive, ensuring that tags are matched regardless of capitalization.
  • Exact Match: The tag search requires an exact match, meaning partial tag names will not return any results.

Changelog

  • StabilityMatrix.Avalonia/ViewModels/CheckpointsPageViewModel.cs
    • Added tag search functionality using the '#' operator.
    • Implemented case-insensitive tag matching.
    • Ensured that only exact tag matches are returned.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 is currently in preview and 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 to provide feedback.

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.


Trivia time!

What is the origin of the term 'hashtag' and when did it become widely adopted?

Click here for the answer
The term 'hashtag' originated from Internet Relay Chat (IRC) networks, where it was used to label groups and topics. Chris Messina proposed using the '#' symbol on Twitter in 2007 to group related Tweets. It gained widespread adoption during the 2009–2010 Iranian election protests.

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

github-actions bot commented Mar 12, 2025

CLA Assistant Lite bot CLA Assistant bot All Contributors have signed the CLA.

Copy link

@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

The pull request introduces the ability to search for tags in model metadata using the '#' operator. The implementation appears straightforward and effective. However, there are a few areas where the code could be improved for clarity and robustness.

Summary of Findings

  • Null check before accessing Tags: The code checks for file.ConnectedModelInfo being null but doesn't explicitly check if file.ConnectedModelInfo.Tags is null before calling Contains. While the ?? false handles the null case, it's clearer to explicitly check for null on Tags as well.
  • Case-insensitive comparison: The code performs a case-insensitive comparison using StringComparer.OrdinalIgnoreCase. Consider documenting why this specific comparer was chosen, as there might be other comparers that are more appropriate depending on the specific use case and requirements.

Merge Readiness

The code is functional and introduces a useful feature. However, addressing the null check and adding a comment about the case-insensitive comparison would improve the code's clarity and maintainability. I recommend addressing these points before merging. I am unable to approve this pull request, and other reviewers should also review and approve this code before merging.

Comment on lines +219 to +222
file.ConnectedModelInfo?.Tags.Contains(
SearchQuery.Substring(1),
StringComparer.OrdinalIgnoreCase
) ?? false

Choose a reason for hiding this comment

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

medium

Consider adding an explicit null check for file.ConnectedModelInfo?.Tags before calling Contains. While the ?? false handles the null case, an explicit check would improve readability and make the intent clearer.

Also, it might be beneficial to add a comment explaining why StringComparer.OrdinalIgnoreCase is used for the tag comparison. This clarifies the intended behavior, especially if there are other comparison options to consider.

                                    file.ConnectedModelInfo?.Tags != null && file.ConnectedModelInfo.Tags.Contains(
                                        SearchQuery.Substring(1),
                                        StringComparer.OrdinalIgnoreCase // Case-insensitive comparison for tag search
                                    ) ?? false

@RTHilton
Copy link
Author

RTHilton commented Mar 12, 2025

I have read the CLA Document and I hereby sign the CLA

@RTHilton
Copy link
Author

recheck

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