Feat/claude skills management (#237)

* feat(skills): add Claude Skills management feature

Implement complete Skills management system with repository discovery,
installation, and lifecycle management capabilities.

Backend:
- Add SkillService with GitHub integration and installation logic
- Implement skill commands (list, install, uninstall, check updates)
- Support multiple skill repositories with caching

Frontend:
- Add Skills management page with repository browser
- Create SkillCard and RepoManager components
- Add badge, card, table UI components
- Integrate Skills API with Tauri commands

Files: 10 files changed, 1488 insertions(+)

* feat(skills): integrate Skills feature into application

Integrate Skills management feature with complete dependency updates,
configuration structure extensions, and internationalization support.

Dependencies:
- Add @radix-ui/react-visually-hidden for accessibility
- Add anyhow, zip, serde_yaml, tempfile for Skills backend
- Enable chrono serde feature for timestamp serialization

Backend Integration:
- Extend MultiAppConfig with SkillStore field
- Implement skills.json migration from legacy location
- Register SkillService and skill commands in main app
- Export skill module in commands and services

Frontend Integration:
- Add Skills page route and dialog in App
- Integrate Skills UI with main navigation

Internationalization:
- Add complete Chinese translations for Skills UI
- Add complete English translations for Skills UI

Code Quality:
- Remove redundant blank lines in gemini_mcp.rs
- Format log statements in mcp.rs

Tests:
- Update import_export_sync tests for SkillStore
- Update mcp_commands tests for new structure

Files: 16 files changed, 540 insertions(+), 39 deletions(-)

* style(skills): improve SkillsPage typography and spacing

Optimize visual hierarchy and readability of Skills page:
- Reduce title size from 2xl to lg with tighter tracking
- Improve description spacing and color contrast
- Enhance empty state with better text hierarchy
- Use explicit gray colors for better dark mode support

* feat(skills): support custom subdirectory path for skill scanning

Add optional skillsPath field to SkillRepo to enable scanning skills
from subdirectories (e.g., "skills/") instead of repository root.

Changes:
- Backend: Add skillsPath field with subdirectory scanning logic
- Frontend: Add skillsPath input field and display in repo list
- Presets: Add cexll/myclaude repo with skills/ subdirectory
- Code quality: Fix clippy warnings (dedup logic, string formatting)

Backward compatible: skillsPath is optional, defaults to root scanning.

* refactor(skills): improve repo manager dialog layout

Optimize dialog structure with fixed header and scrollable content:
- Add flexbox layout with fixed header and scrollable body
- Remove outer border wrapper for cleaner appearance
- Match SkillsPage design pattern for consistency
- Improve UX with better content hierarchy
This commit is contained in:
YoVinchen
2025-11-18 22:05:54 +08:00
committed by GitHub
parent 023726c59d
commit ec303544ca
21 changed files with 2034 additions and 7 deletions

View File

@@ -26,7 +26,8 @@
"format": "Format",
"formatSuccess": "Formatted successfully",
"formatError": "Format failed: {{error}}",
"copy": "Copy"
"copy": "Copy",
"view": "View"
},
"apiKeyInput": {
"placeholder": "Enter API Key",
@@ -606,5 +607,49 @@
"deleteTitle": "Confirm Delete",
"deleteMessage": "Are you sure you want to delete prompt \"{{name}}\"?"
}
},
"skills": {
"manage": "Skills",
"title": "Claude Skills Management",
"description": "Discover and install Claude skills from popular repositories to extend Claude Code/Codex capabilities",
"refresh": "Refresh",
"refreshing": "Refreshing...",
"repoManager": "Repository Management",
"count": "{{count}} skills",
"empty": "No skills available",
"emptyDescription": "Add skill repositories to discover available skills",
"addRepo": "Add Skill Repository",
"loading": "Loading...",
"installed": "Installed",
"install": "Install",
"installing": "Installing...",
"uninstall": "Uninstall",
"uninstalling": "Uninstalling...",
"view": "View",
"noDescription": "No description",
"loadFailed": "Failed to load",
"installSuccess": "Skill {{name}} installed",
"installFailed": "Failed to install",
"uninstallSuccess": "Skill {{name}} uninstalled",
"uninstallFailed": "Failed to uninstall",
"repo": {
"title": "Manage Skill Repositories",
"description": "Add or remove GitHub skill repository sources",
"url": "Repository URL",
"urlPlaceholder": "owner/name or https://github.com/owner/name",
"branch": "Branch",
"branchPlaceholder": "main",
"path": "Skills Path",
"pathPlaceholder": "skills (optional, leave empty for root)",
"add": "Add Repository",
"list": "Added Repositories",
"empty": "No repositories",
"invalidUrl": "Invalid repository URL format",
"addSuccess": "Repository {{owner}}/{{name}} added, detected {{count}} skills",
"addFailed": "Failed to add",
"removeSuccess": "Repository {{owner}}/{{name}} removed",
"removeFailed": "Failed to remove",
"skillCount": "{{count}} skills detected"
}
}
}