feat(skills): reload registry on watcher change events

This commit is contained in:
William Valentin
2026-02-12 17:30:23 -08:00
parent b773e2bbf3
commit 2fb5c9adab
5 changed files with 90 additions and 8 deletions
+7 -4
View File
@@ -30,12 +30,13 @@ export function initSkills(config: Config, lifecycle?: Lifecycle): SkillsResult
const defaultManagedDir = resolve(homedir(), '.flynn/workspace/skills');
const skillRegistry = new SkillRegistry();
const skillInstaller = new SkillInstaller(config.skills.managed_dir ?? defaultManagedDir);
const skills = loadAllSkills({
const skillLoadConfig = {
bundledDir: config.skills.bundled_dir,
managedDir: config.skills.managed_dir ?? defaultManagedDir,
workspaceDir: config.skills.workspace_dir,
});
};
const skills = loadAllSkills(skillLoadConfig);
for (const skill of skills) {
skillRegistry.register(skill);
@@ -61,7 +62,9 @@ export function initSkills(config: Config, lifecycle?: Lifecycle): SkillsResult
skillDirs,
debounceMs: config.skills.load.watch_debounce_ms,
onSkillsChanged: ({ changedPaths }) => {
console.log(`Skills watcher detected changes in ${changedPaths.length} path(s)`);
const reloadedSkills = loadAllSkills(skillLoadConfig);
skillRegistry.reset(reloadedSkills);
console.log(`Skills watcher reloaded ${reloadedSkills.length} skill(s) after ${changedPaths.length} change(s)`);
},
});
skillsWatcher.start();