Editor’s note: Steve wrote this last week we have just not had time to post it.
We’ve been putting in late hours at the Portland programmer house, polishing things for the initial Mark 1 production image. We want the out-of-box experience to be as smooth as possible for our backers!
As I type this, I’m at the Portland airport heading to the Bay Area for Maker Faire. Portland was quiet for a few days at the start of the week when the development team returned to their respective homes after gathering in the same city to work together at the Jaguar Land Rover offices. This allowed us to gel as a team as well as work tighter with the Jaguar engineers who have been loaned to us to help develop the mycroft-core.
Things quickly picked up as PyCon began in earnest. Lots of great developers there are hearing about Mycroft for the first time, and I expect the Sprint next week is going to be well attended. In the meantime we are spreading the word at Maker Faire and then I return to PyCon on Monday.
I’ve been so busy, I neglected posting a What’s New here for several weeks. Whoops! So brace yourself, this post is going to be super-sized:
This build was a huge architectural change as we moved all Skills out of mycroft-core. Now
even the “default” skills are not in the core, instead they get downloaded from Github.
This delivers lots of of architectural and packaging advantages. Additionally, all Skills
are now automatically updated from their Github repo’s ‘master’ branch independent of the
release cycle of mycroft-core.
- Moved msm (Mycroft Skills Manager) into mycroft-core
- Removed support for the old ‘/opt/mycroft/third_party’ Skill folder, just use ‘/opt/mycroft/skills’
- The wake-up sound is now played synchronously, preventing premature cut-off if there is a gap before the user speaks.
- Extended the minimum recorded phrase to 0.5s instead of 0.1s, and it must be “quiet” that whole period.
- The threshold for “silent” is adjusted more dynamically based on the sound level right before the wake word was heard.
- BUG: The “silent” level wasn’t coming back up after settling down during extreme silence.
- The order of configuration loading has changed, allowing local mycroft.conf files to override the web settings. The load order is now defined as: DEFAULT (from source code), REMOTE (from home.mycroft.ai), SYSTEM (from /usr/mycroft/mycroft.conf), USER (from ~/.mycroft/mycroft.conf)
- Added support for commenting JSON files (lines starting with // or # are stripped before load).
- Documented all of the settings and possible values in mycroft\configuration\mycroft.conf
Command Line Interface (CLI)
- Chat history now wraps
- Layout changes to maximize screen space and clarify sections
- Added ability to filter the log using commands like:
:filter DEBUG (filters out any lines containing “DEBUG”)
:filter remove DEBUG (stop filtering “DEBUG”)
:filter “not this” (filters out any log lines containing “not this”)
:filter list (displays active filters)
:filter clear (removes all filters)
- BUG: The ‘simple’ CLI was not being launched when using mycroft.sh. This caused log
files attached to the screen session to become huge due to the microphone level
- The wifi setup page now allows you to un-hide the password
- Began using Google-style docstrings throughout the system. Automatic documentation will be build out of this, and IDEs can use it to provide coding hints.
Minor packaging change to include ‘git’ as a dependency. (All of the developers immediately install git on their machines and missed it as a dependency!)
Mark 1 Support
- Added ability to enable SSH from the Mark 1 menu #712 #732
- Added support for running DEMO from the Mark 1 menu #731 #729
- The RESET menu now clears saved wifi networks #708 #710 #720 #728
- Added Spanish-language text normalization #722
- Added mycroft.dialog.get() to support localization of strings in mycroft-core. #717
- Corrected MSM behavior on Picroft #709 ???
- Location of MSM now comes from mycroft.conf #684 #707
- Signals wouldn’t work if the directory didn’t already exist #703
- Skill update would overwrite local changes #687
- The SkillContainer was broken #679
- Added coverage monitoring to the unit tests #698
- Skills are updated whenever the internet connection gets established #697
- Added ability to “merge” configuration sections. #694 ???
- Restored many previously disabled unit tests #670
- Renamed DeviceApi.find() method to DeviceApi.get(). DeviceApi.find() is still supported, but it is deprecated. #716 #727
- Singing is now a default skill (try “Hey Mycroft, sing me a song”) #700
Mark 1 Support
- Added ability to disable SSH from the Mark 1 menu #744
- Improved handling of the button press. Now the ‘buttonPress’ signal can be consumed if audio is being spoken, not starting recording afterwards. (Support for consumption after a Skill ‘stop’ is yet to come.) #743
- Restored weather icon support using new Mark 1 enclosure encoded bitmap mechanism #738
- The skill container now catches configuration update events #735
Mark 1 Support
- Prompts to guide network connection on startup have been restored #745???
- Included the my-info.sh script (thanks el-tocino!)
- Updated to pyOpenSSL 16.2.0
- Cleaned up the MANIFEST
- BUG: Google STT was broken due to a typo in an earlier PR
Those of you with the earlybird developer units will notice a few changes in how it looks and acts:
- Eyes now default to blue-green instead of white. This shows off the capabilities of Neopixels and just looks better!
- Added SSH > ALLOW and SSH > BLOCK menu items.
- Added DEMO menu item and mode. Developers can also create their own “demo” skill by just watching for watching for “mycroft.mark1.demo” on the messagebus. See the example Demo Skill.
- The RESET menu now has a confirmation of NO or WIPE to prevent accidental resets. The reset also fully restores the unit to factory defaults — erasing pairing, installed Skills, and any saved networks.
- Removed the “veil” during network setup.
- Added support for iOS and Mac browsers
- Removed unnecessary “Advanced” settings and simplified other interactions
- Added voice previews
- Whole new look after we switched frameworks!