You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Constructor Enhancement: Added default value [] for plugins_paths parameter in PluginManager.__init__() to make it optional
Type Safety: Updated type annotations to support optional plugins_paths parameter
Fixed
Priority System: Fixed plugin priority sorting to correctly execute higher priority plugins first
Recursive Loading: Fixed recursive plugin loading to properly discover plugins in subdirectories
Plugin Replacement: Fixed plugin replacement mechanism to properly unload old modules from sys.modules cache, ensuring clean reload when plugins with same name are loaded
Hot Reload: Fixed hot reload functionality by implementing initial file scanning in DirectoryWatcher to detect existing plugins on startup
Hot Reload Detection: Fixed file deletion detection in hot reload system to properly handle plugin removal
Cross-Platform Tests: Fixed test compatibility issues between macOS and Linux environments for hot reload functionality
Documentation: Fixed API documentation to match actual method names (handle_message vs handle_command, get vs get_plugin, etc.)
Method Names: Corrected README examples to use actual method signatures
Added
Plugin Management Methods: Added unload_plugin() and reload_plugin() methods to PluginManager
Comprehensive Test Suite: Added extensive tests covering all major functionality:
Default parameter handling
Plugin priority system
Lifecycle hooks (on_load/on_unload)
Context sharing between manager and plugins
Broadcast method functionality
Error isolation and handling
Hot reload functionality
Event system testing
Message filtering and command processing
Integration tests based on example applications
Test Organization: Reorganized tests into focused unit tests (tests/unit/) and integration tests (tests/integration/)
Test Fixtures: Added common test utilities in conftest.py for better test maintainability
Technical Details
Enhanced constructor usability by allowing instantiation without plugin paths
Improved type safety with Optional[List[Union[str, Path]]] annotation
Fixed priority ordering in both dispatch_event and handle_message methods
Improved recursive directory scanning in plugin loader
Error isolation and handling
Selective event handling with handles() method
Multiple message handlers
Recursive vs non-recursive plugin loading
Plugin versioning
Plugin replacement (same name)
Non-existent path handling
Technical Details
Enhanced constructor usability by allowing instantiation without plugin paths
Improved type safety with Optional[List[Union[str, Path]]] annotation
Fixed plugin execution order to match documented behavior (higher priority = earlier execution)
Improved recursive plugin discovery algorithm for better subdirectory support