Skip to content

Feature/skills phase2#146

Merged
stippi merged 8 commits into
mainfrom
feature/skills-phase2
Jun 27, 2026
Merged

Feature/skills phase2#146
stippi merged 8 commits into
mainfrom
feature/skills-phase2

Conversation

@stippi

@stippi stippi commented Jun 27, 2026

Copy link
Copy Markdown
Owner

No description provided.

stippi added 8 commits June 27, 2026 11:04
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
@stippi stippi merged commit a399f69 into main Jun 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant