From 333625bdab6ae1d72d6bc89f53017d76d45914ce Mon Sep 17 00:00:00 2001 From: Haileyesus <118998054+blackmammoth@users.noreply.github.com> Date: Mon, 22 Jun 2026 14:04:57 +0300 Subject: [PATCH] fix(skills): restrict standalone skill uploads Only show Markdown files when selecting standalone skills. Normalize browser file paths so SKILL.md is not mistaken for a folder named dot. --- src/components/skills/view/ProviderSkills.tsx | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/components/skills/view/ProviderSkills.tsx b/src/components/skills/view/ProviderSkills.tsx index c83aaab4..8c7f9b22 100644 --- a/src/components/skills/view/ProviderSkills.tsx +++ b/src/components/skills/view/ProviderSkills.tsx @@ -120,6 +120,7 @@ const getBrowserRelativePath = (file: File): string => { || file.name ) .replace(/\\/g, '/') + .replace(/^\.\/+/, '') .replace(/^\/+/, ''); }; @@ -211,6 +212,7 @@ export default function ProviderSkills({ selectedProvider, currentProjects }: Pr const [submitError, setSubmitError] = useState(null); const [isSubmitting, setIsSubmitting] = useState(false); const [searchQuery, setSearchQuery] = useState(''); + const fileInputRef = useRef(null); const folderInputRef = useRef(null); const providerName = PROVIDER_NAMES[selectedProvider]; @@ -309,7 +311,7 @@ export default function ProviderSkills({ selectedProvider, currentProjects }: Pr } }, [queueSkillFolders]); - const { getRootProps, getInputProps, isDragActive, open } = useDropzone({ + const { getRootProps, isDragActive } = useDropzone({ maxFiles: MAX_SKILL_FOLDER_FILES, noClick: true, noKeyboard: true, @@ -400,7 +402,17 @@ export default function ProviderSkills({ selectedProvider, currentProjects }: Pr : 'border-border/70 bg-muted/15 hover:border-foreground/25 hover:bg-muted/25', )} > - + { + handleDrop(Array.from(event.target.files ?? [])); + event.target.value = ''; + }} + />
-