feat: emit spec bus messages alongside legacy (PIPELINE-1 §8/§9.6, STOP-1 §4.2)#415
feat: emit spec bus messages alongside legacy (PIPELINE-1 §8/§9.6, STOP-1 §4.2)#415JarbasAl wants to merge 5 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
Standard verification protocol finished. 📋I've aggregated the results of the automated checks for this PR below. 📋 Repo HealthEnsuring the repo's skin is clear (aka linting errors). ✨ ✅ All required files present. Latest Version: ✅ 🔍 LintGeneric report status: Complete and verified. ✅ ❌ ruff: issues found — see job log 🔒 Security (pip-audit)Ensuring our cookies are secure and fresh. 🍪 ✅ No known vulnerabilities found (72 packages scanned). 🔨 Build TestsCompiling thoughts and code into something real. 🧠
❌ 3.10: Install OK, tests failed ⚖️ License CheckI've checked the genealogical tree of your licenses. 🌳 ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. Crafting quality through automation. 🧪 |
8c5774e to
c75b624
Compare
… §4.2)
A skill emits either the legacy mycroft.* topics or the OVOS spec ovos.*
topics, chosen by the deployment 'legacy_namespace' config (default True) —
never both, so a subscriber never sees duplicate messages. Skills subscribe
on BOTH namespaces. Covers:
- handler-lifecycle trio: mycroft.skill.handler.* <-> ovos.intent.handler.* (§8)
- speak <-> ovos.utterance.speak (§9.6)
- stop ping/pong: {skill}.stop.ping/skill.stop.pong <-> ovos.stop.ping/ovos.stop.pong (§4.2)
- stop dispatch: also subscribe ovos.stop and {skill}:stop (§4.3/§5.3)
Adds dual-namespace unit tests (test/unittests/test_spec_bus_messages.py).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
c75b624 to
cccd290
Compare
What
Introduce a deployment-wide
legacy_namespaceconfig flag (defaultTrue) thatselects the bus-topic namespace during the
mycroft.* → ovos.*transition. A skillemits exactly one namespace (never both), so subscribers never see duplicate
messages — and skills subscribe on both so they work whichever namespace a producer
uses.
legacy_namespace: true)legacy_namespace: false)mycroft.skill.handler.start/.complete/.errorovos.intent.handler.start/.complete/.errorspeakovos.utterance.speakskill.stop.pongovos.stop.pong{skill}.stop.ping,mycroft.stop,{skill}.stopovos.stop.ping,ovos.stop,{skill}:stopSelection reads
Configuration().get("legacy_namespace", True)per emit. No double-emit(this avoids hacks like audio receiving
speaktwice).Why first
Companion to ovos-core; merges first so core CI sees the skill-side behaviour. See also
ovos-dinkum-listener, ovos-simple-listener, ovos-audio companion PRs.
Tests
test/unittests/test_spec_bus_messages.py— both namespaces for the trio, speak and pong(6 passed). Also exercised end-to-end by the ovos-core conformance suites.
🤖 Generated with Claude Code