Repository navigation
Fix: match .zip extension case-insensitively in IsZipFilePath - #4734
Conversation
IsZipFilePath compared the text after the last dot with "zip" case-sensitively, so a local plugin package such as C:\Downloads\Plugin.ZIP was not recognized by "pm install" / "pm update" and the query fell through to the manifest search. Windows file extensions are case-insensitive, so compare with Path.GetExtension and OrdinalIgnoreCase. Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
ZIP extension detection and validation Flow.Launcher.Plugin/SharedCommands/FilesFolders.cs, Flow.Launcher.Test/FilesFoldersTest.cs |
IsZipFilePath checks the extension case-insensitively. Tests cover mixed-case extensions, a UNC path, and rejection of .zip.txt, extensionless, and filename-only paths. |
Estimated code review effort: 2 (Simple) | ~10 minutes
Suggested reviewers: jjw24, jack251970
Merge Risk: 
Minimal · up to a6631
-
The ZIP path detection update is narrowly scoped and ready to merge.
Pre-merge checks: 
5
-
Full details: Docstring Coverage
-
Explanation
Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 2 files.
-
Finishing Touches
-
Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
DavidGBrett
left a comment
There was a problem hiding this comment.
LGTM!
Thanks for the fix
FilesFolders.IsZipFilePathcompared the text after the last dot with "zip" case-sensitively, sopm install C:\Downloads\Plugin.ZIPwasn't recognized as a local plugin package and fell through to the manifest search. Windows extensions are case-insensitive, so it now usesPath.GetExtensionwithOrdinalIgnoreCase. Added test cases to FilesFoldersTest.I used Claude Code to write this change.
Summary by cubic
Summary of changes
Fixes
FilesFolders.IsZipFilePathso plugin packages with uppercase.ZIPextensions are correctly recognized as local plugin packages.Path.GetExtensionwithOrdinalIgnoreCase, matching Windows's case-insensitive file extension behavior.querySearchString.Split('.').Last() == "zip".Path.GetExtensioncall.Release Note
Fixes an issue where plugin installs from local
.ZIPfiles with uppercase file extensions were not recognized.Written for commit a66317c. Summary will update on new commits.