Skip to content

Update everything-search extension#24494

Closed
LorryGailius wants to merge 5 commits intoraycast:mainfrom
LorryGailius:ext/everything-search
Closed

Update everything-search extension#24494
LorryGailius wants to merge 5 commits intoraycast:mainfrom
LorryGailius:ext/everything-search

Conversation

@LorryGailius
Copy link
Contributor

@LorryGailius LorryGailius commented Jan 14, 2026

Description

  • Added ability to uses regex search in queries. fixes([Everything] regex option #23953)
  • Added ability to change the max result count for queries
  • voidtools offers an MIT license compliant SDK(here). So I went ahead and built node native modules to directly access the Everything application without the need of CLI. The source code on the .node module builds are available at LorryGailius/everything-search-sdk-node. For now the feature will be flagged as experimental and after further testing from me and users interested in this, will be moved to be the primary way of communication between the extension and the application.

Took inspiration from how to import native node modules from #135

Screencast

Checklist

@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: everything-search Issues related to the everything-search extension platform: Windows OP is contributor The OP of the PR is a contributor of the extension labels Jan 14, 2026
@raycastbot
Copy link
Collaborator

raycastbot commented Jan 14, 2026

Thank you for your contribution! 🎉

🔔 @anastasiuspernat you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="ext/everything-search"
FORK_URL="https://github.com/LorryGailius/extensions.git"
EXTENSION_NAME="everything-search"
REPO_NAME="extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

Due to our current reduced availability, the initial review may take up to 10-15 business days.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 14, 2026

Greptile Summary

This PR adds regex search support, configurable max result counts, and an experimental SDK-based search method to the Everything Search extension. While the feature additions are well-intentioned and the CLI implementation is solid, the PR introduces three critical issues that need addressing:

  1. Missing SDK Sort Mappings (Critical): The mapSortPreferenceToSDK function lacks mappings for 10 sort preference options (attributes, file-list, run-count, date-recently-changed, date-run). When users select these options in SDK mode, the function silently falls back to NAME_ASCENDING, breaking the user's sort preference.

  2. Platform Shortcut Key Capitalization (Critical): Keyboard shortcuts in SearchResult use lowercase windows instead of uppercase Windows, causing shortcuts to fail on the Windows platform where this extension is used.

  3. Changelog Format Non-Compliance: The changelog entry uses a literal date instead of the required {PR_MERGE_DATE} placeholder per repository standards.

The core implementation is otherwise solid: the CLI regex/maxResults handling is correct, SDK module loading properly handles architecture detection, and preferences configuration follows the established patterns. However, the missing SDK sort mappings are a functional defect that directly impacts users choosing to use the experimental SDK feature.

Confidence Score: 2/5

  • This PR should not be merged in its current state due to critical functional defects and keyboard shortcut failures on Windows.
  • The PR contains three blocking issues: (1) missing SDK sort type mappings cause incorrect sorting behavior in experimental SDK mode, (2) Windows keyboard shortcuts are broken due to incorrect capitalization, and (3) non-compliance with changelog standards. While the new features (regex, maxResults) are implemented correctly for CLI mode, the incomplete SDK implementation and platform-specific bugs severely impact usability. The score reflects these critical issues that must be fixed before merge.
  • Critical attention needed: src/utils/everything-sdk/everything-sdk-utils.ts (missing 10 sort mappings), src/components/SearchResult.tsx (Windows shortcut capitalization), CHANGELOG.md (format compliance)

Important Files Changed

Filename Overview
CHANGELOG.md Changelog entry uses literal date instead of {PR_MERGE_DATE} placeholder. Must follow standardized changelog format per custom rules.
src/utils/everything-sdk/everything-sdk-utils.ts mapSortPreferenceToSDK function missing mappings for 10 sort options (attributes, file-list, run-count, date-recently-changed, date-run). Falls back to NAME_ASCENDING instead, breaking user sort preferences in SDK mode.
src/components/SearchResult.tsx Keyboard shortcut on line 100 and 118 use incorrect platform key capitalization (windows instead of Windows). Shortcuts will fail on Windows.
src/services/everything-sdk.ts SDK implementation properly loads native modules for x64/arm64 and configures search parameters. Good error handling, but depends on complete mapSortPreferenceToSDK mappings.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Additional Comments (4)

  1. src/utils/everything-sdk/everything-sdk-utils.ts, line 40-73 (link)

    logic: Missing sort type mappings for several options available in preferences. When users select "Attributes (A-Z)", "Attributes (Z-A)", "File List File Name (A-Z/Z-A)", "Run Count", "Date Recently Changed", or "Date Run" from SDK mode, the function falls back to NAME_ASCENDING instead of mapping to the correct sort type.

    The switch statement should include cases for:

    • -sort attributes-ascending → SortType.ATTRIBUTES_ASCENDING
    • -sort attributes-descending → SortType.ATTRIBUTES_DESCENDING
    • -sort file-list-file-name-ascending → SortType.FILE_LIST_FILENAME_ASCENDING
    • -sort file-list-file-name-descending → SortType.FILE_LIST_FILENAME_DESCENDING
    • -sort run-count-ascending → SortType.RUN_COUNT_ASCENDING
    • -sort run-count-descending → SortType.RUN_COUNT_DESCENDING
    • -sort date-recently-changed-ascending → SortType.DATE_RECENTLY_CHANGED_ASCENDING
    • -sort date-recently-changed-descending → SortType.DATE_RECENTLY_CHANGED_DESCENDING
    • -sort date-run-ascending → SortType.DATE_RUN_ASCENDING
    • -sort date-run-descending → SortType.DATE_RUN_DESCENDING
  2. CHANGELOG.md, line 1-12 (link)

    syntax: Changelog entry title must use {PR_MERGE_DATE} placeholder instead of literal date, and should be placed at the top in descending version order with most recent version first.

    Context Used: Rule from dashboard - What: Changelog entries must use {PR_MERGE_DATE} placeholder in titles, be placed at the top of th... (source)

  3. src/components/SearchResult.tsx, line 98-101 (link)

    syntax: Platform-specific shortcut keys use incorrect capitalization: windows should be Windows (capital W). This will cause the keyboard shortcuts to fail on Windows.

    Context Used: Rule from dashboard - What: Ensure platform keys in shortcut objects use correct capitalization: Windows and macOS, no... (source)

  4. src/components/SearchResult.tsx, line 118 (link)

    syntax: Platform-specific shortcut on line 118 uses incorrect capitalization: windows should be Windows. This will cause keyboard shortcuts to fail on Windows.

    Fix: Change line 118 from windows: to Windows:

    Context Used: Rule from dashboard - What: Ensure platform keys in shortcut objects use correct capitalization: Windows and macOS, no... (source)

15 files reviewed, 4 comments

Edit Code Review Agent Settings | Greptile

Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion: script to fetch this

Can we add a script and a command in package.json to fetch this?

Keep the file in the assets folder under version control. A fetch script will help other maintainers.

Copy link
Contributor Author

@LorryGailius LorryGailius Jan 20, 2026

Choose a reason for hiding this comment

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

Do you mean fetch the prebuilt binaries from LorryGailius/everything-search-sdk-node or re-build them with a script? Problem is to build the binaries on machine it requires additional setup beforehand so distribution of it is quite above my knowledge

Copy link
Contributor

Choose a reason for hiding this comment

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

No, I mean to fetch from the source (https://github.com/LorryGailius/everything-search-sdk-node) which you are already doing, but if it can be documented or added a script in package, it would be helpful to other maintainers.

Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion: script to fetch this

Can we add a script and a command in package.json to fetch this?

Keep the file in the assets folder under version control. A fetch script will help other maintainers.

Copy link
Contributor

@0xdhrv 0xdhrv left a comment

Choose a reason for hiding this comment

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

Minor suggestion

@0xdhrv 0xdhrv marked this pull request as draft January 20, 2026 11:27
@0xdhrv 0xdhrv self-assigned this Jan 20, 2026
@raycastbot
Copy link
Collaborator

This pull request has been automatically marked as stale because it did not have any recent activity.

It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊

@raycastbot raycastbot added the status: stalled Stalled due inactivity label Feb 4, 2026
@0xdhrv
Copy link
Contributor

0xdhrv commented Feb 4, 2026

Hey @LorryGailius 👋

Thanks for your contribution 🔥

Is this ready for review?

@raycastbot raycastbot removed the status: stalled Stalled due inactivity label Feb 4, 2026
@raycastbot
Copy link
Collaborator

This pull request has been automatically marked as stale because it did not have any recent activity.

It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊

@raycastbot raycastbot added the status: stalled Stalled due inactivity label Feb 18, 2026
@LorryGailius
Copy link
Contributor Author

Closing this as it is not currently ready for release, there are some prominent issues i need to investigate. Will open a new PR, once I have handled some intricacies

@LorryGailius
Copy link
Contributor Author

@0xdhrv would really appreciate if we could move the PR review to #25820

@LorryGailius LorryGailius deleted the ext/everything-search branch February 27, 2026 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension: everything-search Issues related to the everything-search extension extension fix / improvement Label for PRs with extension's fix improvements OP is contributor The OP of the PR is a contributor of the extension platform: Windows status: stalled Stalled due inactivity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants