-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat: add mode dropdown to change skill mode dynamically (#10513) #11102
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
Open
SannidhyaSah
wants to merge
3
commits into
main
Choose a base branch
from
feature/skills-mode-dropdown
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+895
−33
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Add moveSkill() method to SkillsManager that moves skills between mode directories - Replace static mode badge with interactive dropdown in SkillItem component - Automatically clean up empty mode directories after moving skills - Add comprehensive tests for move operation (42 backend tests, 21 message handler tests, 16 UI tests) - Built-in skills show static badge and have dropdown disabled - Support moving between: generic ↔ mode-specific, mode A ↔ mode B Fixes the issue where users couldn't change which mode a skill applies to after creation.
Contributor
All issues resolved. The unused variable
Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
- Add missing_move_fields error translation for all 17 locales - Add changeMode and modeAny UI translations for all 17 locales - Covers: ca, de, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW
Collaborator
Author
|
@brunobergher Please take a look at this PR. It works, but if you think the UI/UX flow should be different, let me know. |
Collaborator
|
Seems ok for now, I'll redesign that stuff soon enough. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Documentation
Improvements or additions to documentation
size:XL
This PR changes 500-999 lines, ignoring generated files.
UI/UX
UI/UX related or focused
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related GitHub Issue
Related to: #10513
Roo Code Task Context (Optional)
No Roo Code task context for this PR
Description
This PR enhances the Skills management UI by adding the ability to dynamically change which mode a skill applies to, building upon the Skills UI improvements in #10513.
Key Implementation Details:
Backend (
moveSkill()method): Usesfs.rename()to move skill directories between mode-specific folders (e.g.,.roo/skills-code/→.roo/skills-architect/). Automatically cleans up empty parent directories after moving.UI Enhancement: Replaced the static mode badge in
SkillItem.tsxwith an interactive dropdown that:Message Flow: Added
moveSkillmessage type with routing throughwebviewMessageHandler.ts→skillsMessageHandler.ts→SkillsManager.tsSmart Cleanup: After moving a skill, the system checks if the source directory is empty and automatically removes it to keep the
.roo/directory clean.Design Trade-offs:
skills/directory)Test Procedure
Automated Tests:
Manual Testing Steps:
.roo/skills-code/to.roo/skills-architect/.roo/skills-code/directory was automatically deleted (if it was empty).roo/skills/Test Coverage:
Pre-Submission Checklist
Screenshots / Videos
Screenshot shows the mode dropdown integrated into the skill item UI
Documentation Updates
Additional Notes
Implementation Notes:
MODE_ANYsentinel pattern (__any__) asCreateSkillDialog.tsxfor consistencyFuture Enhancements:
Get in Touch
Sa..
Important
Adds dynamic skill mode change feature in Skills UI with backend support for moving skill directories and UI dropdown for mode selection.
moveSkill()method inSkillsManager.tsto move skill directories between mode-specific folders usingfs.rename(), with cleanup of empty directories.SkillItem.tsxto change skill modes dynamically.moveSkillmessage type inwebviewMessageHandler.tsandskillsMessageHandler.ts.SkillItem.tsxlists all modes, allows changing modes, and is disabled for built-in skills.handleMoveSkillinskillsMessageHandler.spec.tsandmoveSkillinSkillsManager.spec.ts.SkillItem.spec.tsxto test dropdown functionality and message sending.This description was created by
for f99f57f. You can customize this summary. It will automatically update as commits are pushed.