Ensure environment variables are encoded in unit tests.
Update and External Trigger APIs now know about Alfred 4.
- Add support for `.alfred4workflow` file extension to hide workflows from Alfred 3 and below.
- Replace AppleScript with JXA.
- Automatically call `Alfred 3` or `com.runningwithcrayons.Alfred` depending on the version of Alfred the library is running in.
- Make `util.appinfo()` not choke if multiple apps with the same bundle ID are installed 133
- Don't throw an exception if update finds no valid releases 132
Add support for Alfred's configuration API 125
Change `appinfo` to also work on non-running apps
- Add new [utility functions for running commands and scripts](http://www.deanishe.net/alfred-workflow/api/index.htmlutilities-helpers)
- Move some helpers from `workflow.py` to `util.py`
- Write '.' to debugger on start, so real log messages start on a new line
- Use root logger instead of 'workflow'
- Add [`warn_empty()`](http://www.deanishe.net/alfred-workflow/api/index.htmlworkflow.Workflow3.warn_empty) helper method to `Workflow3`
Ensures that top-level variables are also sent when a modifier is used
is_running` now returns the correct status immediately 124
Big thanks to orf for identifying the problem and the solution.
Support for [match](https://www.alfredapp.com/help/workflows/inputs/script-filter/json/match) field in items added in Alfred 3.5 for [Alfred filters results](https://www.alfredapp.com/help/workflows/inputs/script-filter/alfred-filters-results) option.
- Use new method of setting item/modifier variables introduced in Alfred 3.4.1 (currently in beta)
- Add alternative icons to modifiers
- Rejigger docs
Add new `Variables` class to [set workflow variables from Run Script actions](http://www.deanishe.net/alfred-workflow/user-manual/workflow-variables.htmlsetting-variables-from-run-script-actions) 117
- Fix hanging background processes on Sierra 111
- Remove stale lockfiles 110
- Add [session IDs and session-scoped caching](http://www.deanishe.net/alfred-workflow/guide/persistent-data.htmlsession-scoped-cache)
Log level now defaults to INFO if Alfred's debugger is closed and DEBUG if it's open
- Top-level (i.e. `Workflow.setvar()`) variables
- New `rerun` feature introduced in Alfred 3.
`rerun` tells Alfred to run your Script Filter again after the specified number of seconds. The new top-level variables are passed to the Script Filter when it's run again.
Thanks to 105 by idpaterson, you can now force error messages (when `Workflow.run()` catches an exception) to be in plaintext, rather than Alfred's XML/JSON feedback format.
This is useful when your script isn't running in a Script Filter and you'd like to show the error message in a notification.
This release has no new features, but removes a couple of potential errors.
**Note:** The signature of `workflow.update.install_update()` has changed. It no longer takes any arguments, as they weren't used anyway.
If you were calling this function directly, which is unlikely, you will need to update your workflow(s).
The `quicklookurl` feature is now supported in both `Workflow` and `Workflow3` classes.
Under Alfred 3, will now preferentially use the Workflow Version specified in Alfred's workflow configuration sheet (and `info.plist`). No `version` file necessary any more.
Improves behaviour when workflow scripts aren't run from Alfred and the corresponding environment variables aren't set.
Thanks to fantomnotabene for 92
- Support for setting workflow variables via Script Filter feedback
- Support for Alfred 3's advanced modifiers
**Note:** Both these features are Alfred 3 only.
Use `.alfred3workflow` files in GitHub releases for Alfred 3-only workflows. This enables you to release backwards-incompatible versions without Alfred 2 installations trying to update themselves to death.
Alfred 2 has been fixed.
Workaround for 80.
- Add prerelease option for updates 77
- Make writing of settings.json uninterruptible 79
Thanks to idpaterson for the above new features