Skip to content

Conversation

@hassoncs
Copy link
Contributor

@hassoncs hassoncs commented Jan 8, 2026

Detect when global or local configuration things change for skills, workflows, and rules and show a VS Code notification
At some point we want to move the notification into our own panel, but this was just the MVP to let users know when we do detect skills changes

2026-01-09 11 10 54

@changeset-bot
Copy link

changeset-bot bot commented Jan 8, 2026

🦋 Changeset detected

Latest commit: 5b245a2

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
kilo-code Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a notification system to alert users when skills are added or removed from their project. The implementation includes a generic ConfigContextManager for tracking configuration changes, integration with the existing SkillsManager, new type definitions for configuration changes, and Storybook stories for the UI component.

Key changes:

  • New generic configuration change tracking system that can work with any config type (skills, workflows, commands, rules, MCP servers)
  • Integration with SkillsManager to detect and notify on skill changes
  • Type definitions moved to shared packages for reusability

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
packages/types/src/context-config.ts Defines types for configuration changes (ContextConfigType, ContextConfigChange)
packages/types/src/index.ts Exports new context-config types
src/shared/context-config.ts Re-exports types from @roo-code/types for backward compatibility
src/services/config/ConfigContextManager.ts Implements generic configuration change tracking and notification logic
src/services/skills/SkillsManager.ts Integrates ConfigContextManager to track skill changes and watch file system
src/services/skills/SkillsManager.spec.ts Tests for configuration change detection logic
apps/storybook/stories/ConfigDiscoveryToast.stories.tsx Storybook stories for the toast notification UI component

@hassoncs hassoncs force-pushed the skills-discovery branch 4 times, most recently from 53a2e83 to a6d14ac Compare January 9, 2026 19:17
@hassoncs hassoncs marked this pull request as ready for review January 9, 2026 19:17
Introduces a ConfigChangeNotifier service that tracks configuration changes and displays VSCode notifications when skills are added or removed from global or project configurations. Includes i18n support for 25 languages and type definitions for context configuration changes.
@kiloconnect
Copy link
Contributor

kiloconnect bot commented Jan 9, 2026

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Overview

This PR adds a notification system for skill configuration changes. The implementation is clean and well-structured:

  • New ConfigChangeNotifier class - Tracks configuration changes and shows VS Code notifications when skills are added or removed
  • Type definitions - New ContextConfigType and ContextConfigChange types in @roo-code/types
  • SkillsManager integration - Notifies on skill discovery changes
  • Comprehensive test coverage - Tests for initial discovery, additions, removals, and separate tracking by config type
  • Translations - All 18 locale files updated with new notification strings

Notable implementation details:

  • Uses WeakRef to avoid memory leaks with provider references
  • First discovery call establishes baseline (no notifications shown)
  • File watcher pattern changed from **/SKILL.md to * to watch directory-level changes more efficiently
Files Reviewed (22 files)
  • .changeset/polite-results-attend.md - Changeset for minor version bump
  • packages/types/src/context-config.ts - New type definitions
  • packages/types/src/index.ts - Export new types
  • src/services/config/ConfigChangeNotifier.ts - New notifier class
  • src/services/config/ConfigChangeNotifier.spec.ts - Test coverage
  • src/services/skills/SkillsManager.ts - Integration with notifier
  • src/i18n/locales/en/kilocode.json - English translations
  • src/i18n/locales/ar/kilocode.json - Arabic translations
  • src/i18n/locales/ca/kilocode.json - Catalan translations
  • src/i18n/locales/cs/kilocode.json - Czech translations
  • src/i18n/locales/de/kilocode.json - German translations
  • src/i18n/locales/it/kilocode.json - Italian translations
  • src/i18n/locales/ja/kilocode.json - Japanese translations
  • src/i18n/locales/ko/kilocode.json - Korean translations
  • src/i18n/locales/nl/kilocode.json - Dutch translations
  • src/i18n/locales/pl/kilocode.json - Polish translations
  • src/i18n/locales/pt-BR/kilocode.json - Portuguese (Brazil) translations
  • src/i18n/locales/ru/kilocode.json - Russian translations
  • src/i18n/locales/th/kilocode.json - Thai translations
  • src/i18n/locales/tr/kilocode.json - Turkish translations
  • src/i18n/locales/uk/kilocode.json - Ukrainian translations
  • src/i18n/locales/vi/kilocode.json - Vietnamese translations
  • src/i18n/locales/zh-CN/kilocode.json - Chinese (Simplified) translations
  • src/i18n/locales/zh-TW/kilocode.json - Chinese (Traditional) translations

@kiloconnect
Copy link
Contributor

kiloconnect bot commented Jan 9, 2026

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Overview

This PR adds a well-structured notification system for skill configuration changes. The implementation:

  • Introduces clean type definitions in packages/types/src/context-config.ts
  • Implements ConfigChangeNotifier with proper state tracking using a WeakRef to the provider
  • Correctly integrates with SkillsManager.discoverSkills() to detect added/removed skills
  • Includes comprehensive test coverage for the notifier
  • Adds localized strings for all 18 supported languages

The file watcher pattern change from **/SKILL.md to * is intentional to detect directory-level changes (skill folders being added/removed), which is the correct approach for this feature.

Files Reviewed (24 files)
  • .changeset/polite-results-attend.md - Changeset for minor version bump
  • packages/types/src/context-config.ts - New type definitions
  • packages/types/src/index.ts - Export added
  • src/services/config/ConfigChangeNotifier.ts - New notifier implementation
  • src/services/config/ConfigChangeNotifier.spec.ts - Test coverage
  • src/services/skills/SkillsManager.ts - Integration with notifier
  • src/i18n/locales/en/kilocode.json - English translations
  • src/i18n/locales/ar/kilocode.json - Arabic translations
  • src/i18n/locales/ca/kilocode.json - Catalan translations
  • src/i18n/locales/cs/kilocode.json - Czech translations
  • src/i18n/locales/de/kilocode.json - German translations
  • src/i18n/locales/it/kilocode.json - Italian translations
  • src/i18n/locales/ja/kilocode.json - Japanese translations
  • src/i18n/locales/ko/kilocode.json - Korean translations
  • src/i18n/locales/nl/kilocode.json - Dutch translations
  • src/i18n/locales/pl/kilocode.json - Polish translations
  • src/i18n/locales/pt-BR/kilocode.json - Portuguese (Brazil) translations
  • src/i18n/locales/ru/kilocode.json - Russian translations
  • src/i18n/locales/th/kilocode.json - Thai translations
  • src/i18n/locales/tr/kilocode.json - Turkish translations
  • src/i18n/locales/uk/kilocode.json - Ukrainian translations
  • src/i18n/locales/vi/kilocode.json - Vietnamese translations
  • src/i18n/locales/zh-CN/kilocode.json - Chinese (Simplified) translations
  • src/i18n/locales/zh-TW/kilocode.json - Chinese (Traditional) translations

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.

3 participants