Skip to content

DO NOT MERGE: drop all backwards compatibility (BREAK train reference) - #912

Draft
JarbasAl wants to merge 1 commit into
devfrom
break/train-reference-drop-backcompat
Draft

DO NOT MERGE: drop all backwards compatibility (BREAK train reference)#912
JarbasAl wants to merge 1 commit into
devfrom
break/train-reference-drop-backcompat

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Sep 2, 2026

Copy link
Copy Markdown
Member

🤖 Auto-generated by Claude Sonnet 5 via Claude Code — NOT human-reviewed. Verify before acting.

DO NOT MERGE — reference for the breaking release train; the owner merges when the time comes.

This is a scoped slice of the total backwards-compat drop, distinct from the held flag-day PR #837: rather than describing the full break, it shows the concrete diff for three self-contained compat surfaces so their removed-line counts are visible ahead of time. It does not duplicate #837's description or scope; treat the two as complementary reference points for the same release.

The pre-STOP-1 _LegacyStopBridge (ovos_core/intent_services/stop_service_legacy.py) re-emitted mycroft.stop / <skill_id>.stop and the pre-spec stop:global / stop:skill observer topics on top of StopService's spec-correct <skill_id>:stop / <pipeline_id>:global_stop dispatch, purely for deployments or skills that never adopted the spec topics. It is wired out of StopService.__init__/shutdown and the module and its dedicated end-to-end/unit tests are deleted with it.

_PIPELINE_MIGRATION_MAP in ovos_core/intent_services/service.py silently translated legacy short pipeline-matcher ids (adapt_high, padatious_high, ocp_legacy, and so on) found in intents.pipeline / session.blacklisted_pipelines into today's full plugin ids before resolving a matcher or attributing a dispatch. Emission was always spec-correct (pipeline_id on ovos.intent.matched already used the full plugin id); only the acceptance of the old short spelling on the way in is dropped. A config still carrying the old spelling now fails to resolve a matcher rather than being silently normalized.

SkillManager.stop() was a one-line alias for shutdown() kept for callers that never moved to the current name; it is dropped along with its dedicated unit test.

Tests that existed only to pin the removed acceptance (the _LegacyStopBridge behavior tests, the migration-map resolution test, the blacklist-warning test keyed specifically on a legacy short id) are deleted. Tests that merely used a legacy short id as an arbitrary sample pipeline-id string are updated to a spec-correct id so they keep testing the surrounding logic.

Removal table

Surface Replacement LOC removed
_LegacyStopBridge / stop_service_legacy.py + wiring StopService's own spec dispatch (<skill_id>:stop, <pipeline_id>:global_stop, ovos.stop) 146
test_stop_legacy_e2e.py + legacy-bridge unit tests none needed — surface removed 333
_PIPELINE_MIGRATION_MAP legacy short-id acceptance full spec plugin ids only (e.g. ovos-adapt-pipeline-plugin-high) ~40
SkillManager.stop() alias SkillManager.shutdown() 4

Diffstat

 ovos_core/intent_services/service.py             |  50 ++-----
 ovos_core/intent_services/stop_service.py        |   4 -
 ovos_core/intent_services/stop_service_legacy.py | 142 -------------------
 ovos_core/skill_manager.py                       |   4 -
 test/end2end/test_stop_legacy_e2e.py             | 169 -----------------------
 test/unittests/test_intent_service_extended.py   |  91 ++++--------
 test/unittests/test_skill_manager.py             |   7 -
 test/unittests/test_stop_service.py              | 164 ----------------------
 8 files changed, 36 insertions(+), 595 deletions(-)

Not removed — needs a call

  • dispatcher.py's consumption of mycroft.skill.handler.complete / .error as the framework done-signal, and skill_manager.py's mycroft.network.connected / mycroft.internet.connected / mycroft.gui.available / mycroft.skills.* topics. ovos-spec-tools' NamespaceTranslator.is_migrated(...) returns False for these pairs (confirmed against the installed translator), so they are not a translator-bridged legacy alias of an existing spec topic — dropping them would be a protocol change to what ovos-workshop skills and ovos-audio actually emit today, not a compat-shim removal, and is out of scope here.
  • converse_service.py's dual-emit of the broadcast and per-skill legacy converse ping/pong (skill.converse.pong) — this keeps currently-shipping skills in the converse contest and is load-bearing today, not a droppable shim.
  • skill_installer.py's rejection of bare setup.py-only ("legacy Mycroft packaging") skill repos — this is validation logic for what it accepts, not a compat surface to remove.

Test evidence

Targeted suites for the touched files (test_stop_service.py, test_skill_manager.py, test_intent_service_extended.py): 156 passed, 9 subtests passed.

Full suite on this branch: 494 passed, 6 xfailed, 47 subtests passed, 11 failed. All 11 failures reproduce identically against unmodified dev (verified in a separate clone) — 10 are pre-existing ovoscope model-load/timing flakiness in test_padatious.py, test_adapt.py, test_converse.py, test_intent_pipeline.py; the 11th, test_stop_spec_e2e.py::TestTargetedStopSpec::test_targeted_stop_dispatch_shape, is the area this PR touches directly and passes both standalone and in a subsequent full end2end-only re-run (which reproduced only the same 10 pre-existing flaky failures). None of the 11 are introduced by this change.

…ain (DO NOT MERGE)

Reference commit for the flag-day break: removes the pre-STOP-1
_LegacyStopBridge (mycroft.stop/<skill_id>.stop re-emission,
stop_service_legacy.py, wired from StopService), drops
_PIPELINE_MIGRATION_MAP (silent acceptance of legacy short pipeline-matcher
ids like "adapt_high" in intents.pipeline/blacklisted_pipelines; the
spec-correct full plugin ids like "ovos-adapt-pipeline-plugin-high" are the
only accepted form now), and removes SkillManager.stop() (bare backwards-compat
alias for shutdown()).

Tests pinning only the removed behavior are dropped with it; tests using the
legacy ids as arbitrary sample strings are updated to spec ids.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

I've completed my sweep! Here's the situation. 🧹

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

📋 Repo Health

I've performed a digital acupuncture on the codebase. 📍

✅ All required files present.

Latest Version: 3.2.1a1

ovos_core/version.py — Version file
README.md — README
LICENSE — License file
pyproject.toml — pyproject.toml
⚠️ setup.py — setup.py
CHANGELOG.md — Changelog
ovos_core/version.py has valid version block markers

🌍 Locale Build

I've finished the digital walk-through of your PR. 🚶‍♂️

✅ Locale properly configured (65 files, 18 languages)

Locale directories found:

  • ovos_core/intent_services/locale

Localization coverage:

  • ovos_core/intent_services/locale: 65 files in 18 languages (en-us, ca-es, fa-ir, de-de, gl-es...)

pyproject.toml:[tool.setuptools.package-data.ovos_core] includes locale

  • intent_services/locale/*/*.voc

Build manifest: ✅ 32 locale files included in package

🔒 Security (pip-audit)

Our digital defenses have been updated. 🛡️

✅ No known vulnerabilities found (113 packages scanned).

📡 Channel Compat — stable

Here's the report you've been waiting for. 📁

🚧 Channel unresolvable with this checkout — the repo's dependency floors exceed what the channel pins (fleet finding; see the install log).

Constraints: https://raw.githubusercontent.com/OpenVoiceOS/OpenVoiceOS/main/constraints-stable.txt
Resolved stack: channel-compat-stable artifact (constraints + pip freeze).

📚 Docs

I've double-checked the data for any anomalies. 🔍

✅ All required documentation files present.

README.md

🏷️ Release Preview

The release preview is now complete. 🏁

Current: 3.2.1a1Next: 3.2.1a2

Signal Value
Label (none)
PR title DO NOT MERGE: drop all backwards compatibility (BREAK train reference)
Bump alpha

⚠️ No conventional commit prefix — alpha-only bump.
Suggested: fix: update the thing or feat: update the thing


🚀 Release Channel Compatibility

Predicted next version: 3.2.1a2

Channel Status Note Current Constraint
Stable Too new (must be <1.4.0) ovos-core>=1.3.1,<1.4.0
Testing Too new (must be <3.0.0) ovos-core>=2.1.1,<3.0.0
Alpha Compatible ovos-core>=2.2.4a1

📊 Coverage

Coverage report incoming! Every line counts. 🎯

⚠️ 72.8% total coverage

Files below 80% coverage (9 files)
File Coverage Missing lines
ovos_core/__init__.py 0.0% 7
ovos_core/intent_services/__init__.py 0.0% 1
ovos_core/version.py 0.0% 18
ovos_core/transformers.py 33.3% 18
ovos_core/skill_installer.py 49.0% 132
ovos_core/skill_manager.py 63.4% 159
ovos_core/__main__.py 69.0% 9
ovos_core/intent_services/service.py 72.9% 137
ovos_core/intent_services/dispatcher.py 75.7% 27

Full report: download the coverage-report artifact.

🔨 Build Tests

Checking if all the bolts are tightened. 🔩

✅ All versions pass

Python Build Install Tests
3.10
3.11
3.12
3.13
3.14

🔌 Plugin Detection

I've checked the plugin's 'documentation' links. 📖

Plugin Status: ERRORS (1)

Plugin Info:

  • Name: ovos-core
  • Description: The spiritual successor to Mycroft AI, OVOS is flexible voice assistant software that can be run almost anywhere!

OPM Detection:

Plugin Type Wheel Editable
pipeline

Entry Point Validation:

Entry Point Type Import Interface
ovos-converse-pipeline-plugin pipeline ✅ 1083ms
ovos-fallback-pipeline-plugin pipeline ✅ 2ms
ovos-stop-pipeline-plugin pipeline ✅ 46ms

⊘ No settingsmeta.json
requires-python >=3.10 — running Python 3.11

Issues:

  • ❌ Import time for ovos-converse-pipeline-plugin exceeds 500ms (1083ms)
  • ⚠️ No settingsmeta.json found
  • ⚠️ No settingsmeta.json found

⚖️ License Check

Verifying the SPDX identifiers for correctness. 🆔

✅ No license violations found.

Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed.

🔌 Skill Tests (ovoscope)

I've simulated a thousand conversations with your skill. 🗣️

11/35 passed, 5 failed

❌ **TestAdaptIntent** — 0/4
Test Result
test_padatious_no_match ❌ subtests passed
test_intent_blacklist ❌ subtests passed
test_skill_blacklist ❌ subtests passed
test_adapt_match ❌ failed

test_padatious_no_match failure:

[gw1] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_intent_blacklist failure:

[gw0] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_skill_blacklist failure:

[gw3] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
❌ **TestCancelIntentMidSentence** — 0/1
Test Result
test_cancel_match ❌ subtests passed

test_cancel_match failure:

[gw2] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
✅ **TestContext1EndToEndReachability** — 3/3
❌ **TestConverse** — 0/1
Test Result
test_parrot_mode ❌ failed

test_parrot_mode failure:

[gw3] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
❌ **TestDeactivate** — 2/3
Test Result
test_activate ✅ passed
test_deactivate_inside_converse ❌ subtests passed
test_deactivate ✅ passed

test_deactivate_inside_converse failure:

[gw0] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
❌ **TestFallback** — 0/1
Test Result
test_fallback_match ❌ subtests passed

test_fallback_match failure:

[gw3] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
✅ **TestGGWaveSkillInstall** — 2/2 ✅ **TestGlobalStopSpec** — 1/1
❌ **TestIntentPipelineRouting** — 0/4
Test Result
test_no_match_produces_intent_failure ❌ subtests passed
test_high_priority_stage_handles_before_low ❌ failed
test_padatious_intent_matched ❌ failed
test_blacklisted_skill_falls_through_to_failure ❌ subtests passed

test_no_match_produces_intent_failure failure:

[gw0] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_high_priority_stage_handles_before_low failure:

[gw2] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_padatious_intent_matched failure:

[gw1] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
❌ **TestLangDisambiguation** — 0/4
Test Result
test_stt_lang ❌ subtests passed
test_metadata_preferred_over_text_detection ❌ subtests passed
test_invalid_lang_detection ❌ subtests passed
test_lang_text_detection ❌ subtests passed

test_stt_lang failure:

[gw1] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_metadata_preferred_over_text_detection failure:

[gw2] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_invalid_lang_detection failure:

[gw2] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
❌ **TestLegacyIntentIdBackCompat** — 0/2
Test Result
test_legacy_blacklist_id_suppresses ❌ subtests passed
test_legacy_dispatch_topic_fires_handler ❌ subtests passed

test_legacy_blacklist_id_suppresses failure:

[gw1] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_legacy_dispatch_topic_fires_handler failure:

[gw2] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
❌ **TestNoSkills** — 0/2
Test Result
test_routing ❌ subtests passed
test_complete_failure ❌ subtests passed

test_routing failure:

[gw3] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_complete_failure failure:

[gw3] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
❌ **TestPadatiousIntent** — 0/4
Test Result
test_padatious_match ❌ failed
test_skill_blacklist ❌ subtests passed
test_adapt_no_match ❌ subtests passed
test_intent_blacklist ❌ subtests passed

test_padatious_match failure:

[gw1] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_skill_blacklist failure:

[gw0] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python

test_adapt_no_match failure:

[gw3] linux -- Python 3.11.16 /opt/hostedtoolcache/Python/3.11.16/x64/bin/python
✅ **TestResponseModeHolderStopE2E** — 2/2 ✅ **TestTargetedStopSpec** — 1/1

🚌 Bus Coverage

Ensuring the skill's emissions match our expectations. 📤

🔴 Coverage Summary

Metric Status Coverage
Listeners ░░░░░░░░░░ 3.4% 6/177 handlers
Emitters ██████████ 100% 10/10 observed
Assertions ██████████ 100% 10/10 asserted

📊 Per-Skill Breakdown

Skill Listeners Observed Asserted
AdaptPipeline 0/14 (0.0%) 0/0 0/0
ConverseService 0/4 (0.0%) 0/0 0/0
DomainAdaptPipeline 0/14 (0.0%) 0/0 0/0
FallbackService 0/2 (0.0%) 0/0 0/0
HierarchicalAdaptPipeline 0/14 (0.0%) 0/0 0/0
IntentDispatcher 1/2 (50.0%) 0/0 0/0
IntentManifest 0/8 (0.0%) 0/0 0/0
IntentService 1/4 (25.0%) 0/0 0/0
Model2VecIntentPipeline 0/12 (0.0%) 0/0 0/0
Model2VecPrototypePipeline 0/12 (0.0%) 0/0 0/0
PadaciosoPipeline 0/11 (0.0%) 0/0 0/0
PadatiousPipeline 0/15 (0.0%) 0/0 0/0
SkillManager 0/5 (0.0%) 0/0 0/0
__core__ 3/16 (18.8%) 7/7 7/7
ovos-skill-count.openvoiceos 0/16 (0.0%) 0/0 0/0
ovos-skill-hello-world.openvoiceos 0/24 (0.0%) 3/3 3/3
type 1/4 (25.0%) 0/0 0/0
🔍 Detailed Message Type Breakdown

AdaptPipeline

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.register.keyword (Intent)
  • detach_intent
  • detach_skill
  • intent.service.adapt.get
  • intent.service.adapt.manifest.get
  • intent.service.adapt.vocab.manifest.get
  • ovos.entity.deregister
  • ovos.entity.register
  • ovos.skill.deregister
  • register_intent
  • register_vocab

ConverseService

⚠️ Uncovered Listeners:

  • converse:skill (Intent)
  • intent.service.active_skills.get
  • intent.service.skills.activate
  • intent.service.skills.deactivate

DomainAdaptPipeline

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.register.keyword (Intent)
  • detach_intent
  • detach_skill
  • intent.service.adapt.get
  • intent.service.adapt.manifest.get
  • intent.service.adapt.vocab.manifest.get
  • ovos.entity.deregister
  • ovos.entity.register
  • ovos.skill.deregister
  • register_intent
  • register_vocab

FallbackService

⚠️ Uncovered Listeners:

  • ovos.skills.fallback.deregister
  • ovos.skills.fallback.register

HierarchicalAdaptPipeline

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.register.keyword (Intent)
  • detach_intent
  • detach_skill
  • intent.service.adapt.get
  • intent.service.adapt.manifest.get
  • intent.service.adapt.vocab.manifest.get
  • ovos.entity.deregister
  • ovos.entity.register
  • ovos.skill.deregister
  • register_intent
  • register_vocab

IntentDispatcher

⚠️ Uncovered Listeners:

  • mycroft.skill.handler.error
    ✅ Covered Listeners:
  • mycroft.skill.handler.complete (1x)

IntentManifest

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.describe (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.list (Intent)
  • ovos.intent.register.keyword (Intent)
  • ovos.intent.register.template (Intent)
  • ovos.skill.deregister

IntentService

⚠️ Uncovered Listeners:

  • intent.service.intent.get (Intent)
  • intent.service.pipelines.reload
  • intent.service.skills.deactivate
    ✅ Covered Listeners:
  • ovos.utterance.handle (5x)

Model2VecIntentPipeline

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.register.template (Intent)
  • padatious:register_intent (Intent)
  • detach_intent
  • detach_skill
  • mycroft.ready
  • ovos.entity.deregister
  • ovos.entity.register
  • ovos.skill.deregister
  • register_intent

Model2VecPrototypePipeline

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.register.template (Intent)
  • padatious:register_intent (Intent)
  • detach_intent
  • detach_skill
  • mycroft.ready
  • ovos.entity.deregister
  • ovos.entity.register
  • ovos.skill.deregister
  • register_intent

PadaciosoPipeline

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.register.template (Intent)
  • padatious:register_entity (Intent)
  • padatious:register_intent (Intent)
  • detach_intent
  • detach_skill
  • ovos.entity.deregister
  • ovos.entity.register
  • ovos.skill.deregister

PadatiousPipeline

⚠️ Uncovered Listeners:

  • ovos.intent.deregister (Intent)
  • ovos.intent.disable (Intent)
  • ovos.intent.enable (Intent)
  • ovos.intent.register.template (Intent)
  • padatious:register_entity (Intent)
  • padatious:register_intent (Intent)
  • detach_intent
  • detach_skill
  • intent.service.padatious.entities.manifest.get
  • intent.service.padatious.get
  • intent.service.padatious.manifest.get
  • mycroft.skills.train
  • ovos.entity.deregister
  • ovos.entity.register
  • ovos.skill.deregister

SkillManager

⚠️ Uncovered Listeners:

  • skill.converse.get_response.disable
  • skillmanager.activate
  • skillmanager.deactivate
  • skillmanager.keep
  • skillmanager.list

__core__

⚠️ Uncovered Listeners:

  • ovos-stop-pipeline-plugin:global_stop (Intent)
  • add_context
  • clear_context
  • message
  • mycroft.ovos-skill-count.openvoiceos.all_loaded
  • mycroft.ovos-skill-count.openvoiceos.is_alive
  • mycroft.ovos-skill-count.openvoiceos.is_ready
  • ovos-skill-count.openvoiceos.set
  • ovos.session.sync
  • ovos.session.update_default
  • remove_context
  • skill.converse.get_response.enable
  • speak
    ✅ Covered Listeners:
  • mycroft.skill.handler.start (1x)
  • ovos.utterance.handled (9x)
  • ovos.utterance.speak (1x)

📤 Emitters:

  • mycroft.audio.play_sound (Asserted ✅)
  • ovos-skill-hello-world.openvoiceos:Greetings.intent (Asserted ✅)
  • ovos.intent.unmatched (Asserted ✅)
  • ovos.utterance.cancelled (Asserted ✅)
  • ovos.utterance.handle (Asserted ✅)
  • ovos.utterance.handled (Asserted ✅)
  • recognizer_loop:utterance (Asserted ✅)

ovos-skill-count.openvoiceos

⚠️ Uncovered Listeners:

  • ovos-skill-count.openvoiceos:count_to_n (Intent)
  • question:action (Intent)
  • question:action.ovos-skill-count.openvoiceos (Intent)
  • question:query (Intent)
  • homescreen.metadata.get
  • mycroft.skill.disable_intent
  • mycroft.skill.enable_intent
  • mycroft.skill.remove_cross_context
  • mycroft.skill.set_cross_context
  • mycroft.skills.settings.changed
  • mycroft.stop
  • ovos-skill-count.openvoiceos.converse.get_response
  • ovos-skill-count.openvoiceos.stop
  • ovos-skill-count.openvoiceos.stop.ping
  • ovos.common_query.ping
  • ovos.skills.settings_changed

ovos-skill-hello-world.openvoiceos

⚠️ Uncovered Listeners:

  • ovos-skill-hello-world.openvoiceos:Greetings (Intent)
  • ovos-skill-hello-world.openvoiceos:HelloWorldIntent (Intent)
  • ovos-skill-hello-world.openvoiceos:HowAreYou (Intent)
  • ovos-skill-hello-world.openvoiceos:ThankYouIntent (Intent)
  • question:action (Intent)
  • question:action.ovos-skill-hello-world.openvoiceos (Intent)
  • question:query (Intent)
  • hello.world
  • homescreen.metadata.get
  • mycroft.ovos-skill-hello-world.openvoiceos.all_loaded
  • mycroft.ovos-skill-hello-world.openvoiceos.is_alive
  • mycroft.ovos-skill-hello-world.openvoiceos.is_ready
  • mycroft.skill.disable_intent
  • mycroft.skill.enable_intent
  • mycroft.skill.remove_cross_context
  • mycroft.skill.set_cross_context
  • mycroft.skills.settings.changed
  • mycroft.stop
  • ovos-skill-hello-world.openvoiceos.converse.get_response
  • ovos-skill-hello-world.openvoiceos.set
  • ovos-skill-hello-world.openvoiceos.stop
  • ovos-skill-hello-world.openvoiceos.stop.ping
  • ovos.common_query.ping
  • ovos.skills.settings_changed

📤 Emitters:

  • mycroft.skill.handler.complete (Asserted ✅)
  • mycroft.skill.handler.start (Asserted ✅)
  • ovos.utterance.speak (Asserted ✅)

type

⚠️ Uncovered Listeners:

  • recognizer_loop:audio_output_end (Intent)
  • recognizer_loop:record_begin (Intent)
  • recognizer_loop:record_end (Intent)
    ✅ Covered Listeners:
  • recognizer_loop:audio_output_start (1x)


Crafting a better voice assistant, one commit at a time 🎙️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant