Feature/skills phase2#146
Merged
Merged
Conversation
Resolve the command's scope via explorer_for_scope so bundled skill scripts under the user (:config:) and system (:system:) skill roots can be run with execute_command, mirroring read_files' scope handling. Adds a testable explorer_for_scope_in(config_dir) seam with unit tests.
Introduces the skills config model with enabled / bundled_skills_enabled / disabled fields, best-effort load (missing or malformed -> defaults), atomic save, and disabled-list filtering by skill name or absolute SKILL.md path. Fully unit-tested.
…very and tools - filter_skills now also drops system-scoped skills when bundled skills are disabled - discover_all_skills / discover_scope_skills load SkillsConfig and apply filtering; add explicit *_filtered variants for testing - read_skill / list_skills return an explanatory error when the feature is disabled - install_system_skills removes the extracted tree when bundled skills are disabled
Extend the config watcher to recognize skills.json and SKILL.md changes and to watch the <config_dir>/skills subtree recursively, emitting ConfigChanged so the UI catalog stays in sync. The system prompt itself already re-discovers skills on each agent run (agents are constructed per-run with a fresh prompt cache).
New settings section with a master Enable-skills toggle, a bundled-skills toggle (re-extracts/removes the system tree on change), and a per-skill enable/disable list for user and system skills. All changes persist to skills.json and the catalog refreshes live via the existing watcher. Adds discover_config_and_system_skills() for unfiltered listing so disabled skills still appear in the UI with their toggle state. NOTE: the GPUI frontend cannot be compiled in this environment due to a pre-existing duplicate gpui version in Cargo.lock (floating [patch] git rev); the same errors affect untouched files. The code mirrors existing settings-section API usage.
Both tools are read-only, so they render with the InlineToolRenderer (single-line description + expandable output). Without this, the GPUI block renderer logged "No ToolBlockRenderer registered for tool ..." and fell back to no rendering.
- drop let-binding on unit-returning view.update calls (let_unit_value) - collapse label/description into a tuple param to satisfy too_many_arguments on render_toggle_row
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.