-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Implement plugin reload functionality without full Homebridge restart #3841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: beta-2.0.0
Are you sure you want to change the base?
Conversation
Co-authored-by: donavanbecker <9875439+donavanbecker@users.noreply.github.com>
Co-authored-by: donavanbecker <9875439+donavanbecker@users.noreply.github.com>
|
@copilot Rebase on beta-2.0.0 branch |
Pull Request Test Coverage Report for Build 17335865781Details
💛 - Coveralls |
Successfully rebased onto beta-2.0.0 branch (commit f8c552e). All merge conflicts have been resolved and the plugin reload functionality now builds cleanly with the beta-2.0.0 codebase while maintaining full compatibility. The implementation preserves all original features including IPC integration for external tools like Homebridge UI. Commit: 15e14ef |
|
@copilot Revert all changes so there are no conflicts and then reimplement based on branch beta-2.0.0 |
Successfully reverted all changes and reimplemented plugin reload functionality from scratch based on beta-2.0.0 branch. The implementation now includes:
All code builds cleanly and passes linting with beta-2.0.0 standards. Commit: b42d76b |
ec771cb to
7d444d1
Compare
0210cb1 to
e3ccb10
Compare
e3ccb10 to
e2901e9
Compare
21a38e9 to
75ebe49
Compare
This PR implements hot-reloading functionality for Homebridge plugins, allowing users to reload plugins without restarting the entire Homebridge server. This is particularly useful during plugin development and for updating plugins without service interruption.
Key Features
Plugin Hot-Reloading:
IPC Integration:
RELOAD_PLUGINIPC event for external tool integrationImplementation Details:
Plugin.reload()method handles module reloading and re-initializationPluginManager.reloadPlugin()manages plugin mappings and lifecycleUsage
The reload functionality can be triggered via IPC for integration with external tools:
Testing
Comprehensive test suite covering:
All 60 tests pass with full TypeScript compilation and ESLint compliance on the beta-2.0.0 codebase.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.