See last link for the details about the following highlights since rc1:
- Fixed reversed arguments in config-status f969147
- Make sure that early exceptions are printed. 5573da0
- Fix sql-conf alias. a1f2d6d
- Allow 'drush status' to work even on older unsupported versions of Drupal 8. 787b3ac
- Replace substitutions in alias files with configuration values. (#3212)
- Move options.ssh-options to ssh.options (#3210)
- A bit more docs and provide example of command-specific options for sql-sync and sql-dump. 5733f62
- Fix router.php to work with update.php (#3218)
- Remove drush_scan_directory() - use Finder instead. (#3228)
- Stop outputting all tables during debug output. Finally! 1515ca7
- Lots of Generator improvements, especially commands that are ported from Drush8
- Restore original maintenance mode state after database updates. (#3236)
- Prevent infinite loops in RedispatchToSiteLocal. (#3235)
- Fix #3214. Canonicalize config paths before comparing. Fixes a config split module issue (#3250)
- Fix #2563. Add diff preview to config-export. Also adds colored preview for cex and cim (#3249)
- Remove a dupe cache clear in updateDb
- The cget --include-overridden is currently reversed (#3255)
- Add logging if an error occurs during an update (#3266)
- Private yml parser (#3269)
- Remove —no-ansi from Unish (#3271)
- Reduce log level for drush.services.yml nag. f709c11
- Allowing files by any name to be imported via -c option. (#3283)
- Support global generators (#3265)
- Process included configuration files recursively. (#3288)
- Simplify shell escape code, particularly with respect to SSH Commands (#3174)
- Changes since 9.0.0-rc1.