Skip to content

feat: run ServiceInstaller so gui plugins install over the bus - #123

Merged
JarbasAl merged 1 commit into
devfrom
feat/service-installer
Aug 11, 2026
Merged

feat: run ServiceInstaller so gui plugins install over the bus#123
JarbasAl merged 1 commit into
devfrom
feat/service-installer

Conversation

@JarbasAl

Copy link
Copy Markdown
Member

🤖 Auto-generated by Claude Opus 4.8 (claude-opus-4-8) via Claude Code — NOT human-reviewed. Verify before acting.

What

Run ovos_utils.skill_installer.ServiceInstaller inside GUIService so ovos-gui installs gui plugins into its own environment over the message bus. It answers the broadcast ovos.pip.install / .uninstall and the targeted ovos.pip.install.ovos_gui / .uninstall.ovos_gui, replying on the base ovos.pip.install.complete / .failed topics.

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 lists ovos_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_pip config — off by default. Cleanly unregistered on shutdown.

…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>
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 76244734-ffe2-43f7-b82f-88c80323af5e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Tada! The results of the latest automation run are here. 🎉

I've aggregated the results of the automated checks for this PR below.

🔨 Build Tests

The build process has successfully terminated. 🏁

✅ All versions pass

Python Build Install
3.10
3.11
3.12
3.13
3.14

Your 24/7 automated code reviewer 🌙

@JarbasAl
JarbasAl marked this pull request as ready for review August 11, 2026 17:19
@JarbasAl
JarbasAl merged commit 0130a84 into dev Aug 11, 2026
12 checks passed
@JarbasAl
JarbasAl deleted the feat/service-installer branch August 11, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant