Skip to content
This repository has been archived by the owner on Sep 8, 2024. It is now read-only.

Developer and API Enhancements

Compare
Choose a tag to compare
@aatchison aatchison released this 11 Jul 18:55
· 3609 commits to dev since this release

Fixes

  • ISSUE #874: Handling $WORKON_HOME in start.sh. Thanks nealmcb! (PR #875)
    Mycroft wasn’t recognizing the “wake up” phrase to come out of deep sleep mode entered by saying “Hey Mycroft, go to sleep”. (PR #888)
  • ISSUE #871: Automatic skill update was not occurring. Files automatically generated by Python were making the system think the skill was being worked on by a developer. Now the Mycroft Skill Manager (MSM) behavior properly updates skills that have not been modified, but stops updates if a developer intentionally makes changes to the code for a skill. (PR #873, #890, #894)
  • Hack to deal with duplicate mycroft-skill process on a Mark 1 unit after upgrade. A reboot is forced to resolve.

Developer and API enhancements

  • Blacklisted skills are now read from a list in the config. The value is under skills.blacklisted_skills. (PR #857)
  • Added support for “mycroft.sh restart” to mycroft.sh utility. (PR #868)
  • Documented the Message class. (PR #869 and #748)
  • Intents now can be defined via a decorator. This replaces the need to create an initialize() method purely for connecting the skill handlers. Here is an example:Decorator-style intent definition
   @intent_handler(IntentBuilder('HelloWorldIntent').require('hello').build())
   def handle_hello_world(self, message):
       self.speak('hello!')

Old-style intent definition

   def initialize(self):
       hello_intent = IntentBuilder("HelloWorldIntent").require("hello").build()
       self.register_intent(hello_world_intent, self.handle_hello_world)

   def handle_hello_world(self, message):
       self.speak('hello!')

The old style is still supported and will remain available. But both methods are functionally identical and we believe the new method is simpler and clearer. (PR #865)

  • Modularization of Wake Word (similar to TTS and STT). This will allow alternatives to PocketSphinx for wake word spotting. (PR #876)
  • Text to Speech is now unified in an independent thread. This groups multiple-sentence replies and improves handling of for the “Stop” action and button on a Mark 1. This architectural change will also allow things like applying the audio caching mechanism for TTS engines besides the default Mimic, and viseme (mouth shape) support for other TTS providers. (PR #804, #892)
  • Removed unused / unneeded libraries from the requirements.txt (PR #806)
  • Added dev_setup.sh support for using packaged mimic (eliminating the lengthy compile time). (PR #882)
    Errors encountered during skill update were failing with no indication of why in the logs. (PR #879)
  • Deprecated version mechanism was still being used in setup tools. (PR #829)