feat: answer targeted ovos.pip.install.ovos_core topic - #852
Conversation
SkillsStore already handles the broadcast ovos.pip.install / .uninstall. Also register the targeted ovos.pip.install.ovos_core / .uninstall.ovos_core topics (same handlers) so ovos-core participates in targeted install routing — a skill / solver / persona / utterance-transformer plugin can be installed into the core process specifically, matching the ServiceInstaller companion services (audio, listener, gui, PHAL). Targeted requests still reply on the base ovos.pip.install.complete / .failed topics. Handlers 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 |
Another day, another set of automated checks. Let's see! 🌅I've aggregated the results of the automated checks for this PR below. 🌍 Locale BuildThe latest check report is officially filed. 📁 ✅ Locale properly configured (64 files, 17 languages) Locale directories found:
Localization coverage:
pyproject.toml: ✅
Build manifest: ✅ 31 locale files included in package 🏷️ Release PreviewThe roadmap for the future just got clearer. 🗺️ Current:
✅ PR title follows conventional commit format. 🚀 Release Channel Compatibility Predicted next version:
🔎 Type CheckEnsuring the codebase remains stable and healthy. 🛡️ ❌ mypy: 272 error(s) found
Errors (showing first 10/272)📊 CoverageScanning for any 'untested' alerts! 🚨 Files below 80% coverage (9 files)
Full report: download the 🔒 Security (pip-audit)I've checked the vulnerability database for hits. 🎯 ✅ No known vulnerabilities found (113 packages scanned). 📋 Repo HealthI've checked the repo's hydration (aka documentation density). 💧 ✅ All required files present. Latest Version: ✅ 📚 DocsJust a quick heads-up on the latest check. 🛎️ ✅ All required documentation files present. ✅ 🔌 Plugin DetectionScanning for any 'global state' pollution from the plugin. 🌍 ❌ Plugin Status: ERRORS (1) Plugin Info:
OPM Detection:
Entry Point Validation:
⊘ No Issues:
⚖️ License CheckEnsuring our project is well-protected legally. 🛡️ ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 🔌 Skill Tests (ovoscope)I've checked the skill's 'documentation' vs its 'behavior'. 📖 ✅ 4/40 passed ❌ **TestAdaptIntent** — 0/4
❌ **TestCancelIntentMidSentence** — 0/1
❌ **TestConverse** — 0/1
❌ **TestCountSkills** — 0/4
❌ **TestDeactivate** — 2/3
❌ **TestFallback** — 0/1
❌ **TestGlobalStopVocWithActiveSkill** — 0/1
❌ **TestGlobalStopVocabulary** — 0/2
❌ **TestIntentPipelineRouting** — 0/4
❌ **TestLangDisambiguation** — 0/4
❌ **TestLegacyIntentIdBackCompat** — 0/2
❌ **TestNoSkills** — 0/2
❌ **TestPadatiousIntent** — 0/4
❌ **TestStopNoSkills** — 0/3
❌ **TestStopServiceNotASkill** — 0/1
❌ **TestStopSkillCanHandleFalse** — 0/1
🚌 Bus CoverageMeasuring the reach of our test cases across the message bus. 📏 🔴 Coverage Summary
📊 Per-Skill Breakdown
🔍 Detailed Message Type Breakdown
|
| Python | Build | Install | Tests |
|---|---|---|---|
| 3.10 | ✅ | ✅ | ✅ |
| 3.11 | ✅ | ✅ | ✅ |
| 3.12 | ✅ | ✅ | ✅ |
| 3.13 | ✅ | ✅ | ✅ |
| 3.14 | ✅ | ✅ | ✅ |
Processing... Done! Have a productive day! ☕
What
SkillsStorealready answers the broadcastovos.pip.install/.uninstall. This adds the targetedovos.pip.install.ovos_core/.uninstall.ovos_coreregistrations (same handlers) so ovos-core can be addressed specifically for skill / solver / persona / utterance-transformer plugins. Targeted requests still reply on the baseovos.pip.install.complete/.failedtopics.Why
Targeted install routing lets a split/containerised deployment install each plugin family into the exact service that loads it. ovos-core is the home for skills, solvers, personas and utterance transformers. This is the ovos-core member of a fleet of companion PRs (audio, listener, gui, PHAL) that give every service a targeted installer topic; ovos-webui's plugin browser routes families by these topics. The service-name form
ovos_corematchesovos_utils.skill_installer.ServiceInstaller's documented underscore convention.Safety
Reuses the existing handlers, which are gated by
skills.installer.allow_pip(off by default). Handlers are unregistered on shutdown.On hold: the targeted
ovos.pip.install.ovos_core/.uninstall.ovos_coretopics are not defined in the OpenVoiceOS/architecture specs, and no new bus topic ships before the spec defines it. Needs an owner decision (spec PR first, or drop).