feat: run ServiceInstaller so gui plugins install over the bus - #123
Conversation
…he bus Instantiate ovos_utils.skill_installer.ServiceInstaller in GUIService so ovos-gui answers the targeted ovos.pip.install.ovos_gui / .uninstall bus topic (and the broadcast ovos.pip.install), installing gui plugins into the process that actually loads them - correct in split and containerised deployments. Gated by the existing skills.installer.allow_pip config (off by default). Cleanly unregistered on shutdown. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Tada! The results of the latest automation run are here. 🎉I've aggregated the results of the automated checks for this PR below. 🔨 Build TestsThe build process has successfully terminated. 🏁 ✅ All versions pass
Your 24/7 automated code reviewer 🌙 |
What
Run
ovos_utils.skill_installer.ServiceInstallerinsideGUIServiceso ovos-gui installs gui plugins into its own environment over the message bus. It answers the broadcastovos.pip.install/.uninstalland the targetedovos.pip.install.ovos_gui/.uninstall.ovos_gui, replying on the baseovos.pip.install.complete/.failedtopics.Why
In a split or containerised deployment each service owns a separate venv. A gui plugin must install into the process that loads it — the gui service. This is one of a fleet of companion PRs (audio, listener, PHAL, core) giving every service its own installer; ovos-webui's plugin browser routes each plugin family to the owning service by these topics.
service_name convention
service_name="ovos_gui"— the module/process name with underscores, following ServiceInstaller's own documented convention (its docstring listsovos_audio,ovos_gui,ovos_core,ovos_messagebus). The web-ui routing map and every companion PR use this same form.Safety
Gated by the existing
skills.installer.allow_pipconfig — off by default. Cleanly unregistered on shutdown.