What’s in these release notes?
We are well into the Mark 1 production run now and have been putting out releases largely focused on that experience. We’ve also expanded the core capabilities in the process. Below are the notes for the last several releases.
mycroft-core 0.8.18
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)
Developer and API enhancements
- Blacklisted skills are now read from a list in the config. The value is under skills.blacklisted_skills. Thanks JarbasAI! (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). Thanks el-tocino and Blackbaud-RyanSnedegar! (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)
mycroft-core 0.8.17
Fixes
- PID and locking mechanism was causing issues on auto-reloads. (PR #837)
Mark 1
- Added support for menu item SSH > DISABLE and switch to using ‘systemctl’. (PR #744, #745)
- Tweaks to wifi-setup disconnect detection (PR #861)
General
- Added a docker setup script (PR #775)
- Improved multi-core support in dev_setup.sh script (PR #823)
- Refinement of mycroft.sh operation (PR #835)
- CLI client refinements to support backspace on some terminals and suppress TTS output that occasionally corrupted the screen. (PR #833)
- Some JSON loads didn’t use load_commented_json(), causing issues if devs commented some config files. (PR #845)
- Added local caching for remote Mycroft config (PR #828)
- SkillSettings could miss updates to lists or dicts (PR #844)
- Added remove_all_listeners() to EventEmitter on the websocket (PR #854)
- MSM enhancements. Added support for Picroft installs, installing list of skills, etc. Thanks el-tocino! (PR #813)
mycroft-core 0.8.16 june 13
Fixes
- Issue #807: MSM could report successful install even after a failure. (PR #813)
- Minor onboarding refinements: no timeout for wifi setup, preventing from talking over itself in certain situations. (PR #817)
- Rework of has_been_paired() to deal with a changing identity file. (PR #825)
mycroft-core 0.8.15
Mark 1
- Created an ‘out of box’ experience. This walks a new Mark 1 user through the process of setting up seamlessly and provides a simple introduction to using the device. (PR #808, #811)
Enhancements
- Added mycroft.util.parse.extract_number(). This will support parsing a number out of phrases like “a cup and a half of milk” or “one and three fourths cup”, extracting 1.5 and 1.75 respectively. Thanks ProsperousHeart! (PR #793)
- Added mycroft.util.format.nice_number(). This converts numbers into natural spoken phrases, e.g. 3.5 into “three and a half.” Thanks ashwinjv! (PR #786)
Fixes
- Catching of KeyboardInterrupt by a signal handler was causing issues when shutting down services as a developer. Ctrl+C didn’t work properly anymore. (PR #798)
- Scaled the duration of wake-up-word listening based on number of phonemes. This allows longer wake-up phrases to work properly. (PR #794)
- Fixed broken link in CONTRIBUTING.md (PR #784)
- Added check of exit status after calling the Mycroft Skills Manager (MSM) to verify skill install success. (PR #782)
mycroft-core 0.8.14
- Changed the wifi-setup client password to ‘12345678’ to make easier to type, based on user testing feedback. (PR #780)
mycroft-core 0.8.13
Fixes
- Issue #746 : Google STT was broken by a typo (PR #750)
- Issue #705: Unable to talk to the API over SSL on some Linux distros. Switching to pyOpenSSL version 16.2.0, resolved it. Thanks BoBeR182! (PR #751)
Startup sequence
- Prevented double-announcements when connecting to (PR #766)
- Corrected announcement when SSH is enabled/disabled — reboot is not required anymore. (PR #765)
- Reworked startup sequence of events and documented behavior. This corrected occasionally not prompting user to connect to the internet and unified the startup prompt and prompts needed if internet is lost later. (PR #764, 760)
- Simplified the package manifest files by adding wildcards to handle resource files under ‘mycroft/res/’ (PR #763)
Steve has been building cutting edge yet still highly usable technology for over 25 years, previously leading teams at Autodesk and the Rhythm Engineering. He now leads the development team at Mycroft as a partner and the CTO.