- Authentication has been rewritten and is now configured through the "Auth" application, accessible from the web UI as an administrator.
- Remarkup rules are now more flexible about block boundaries, and should generally behave in a manner more consistent with expectations.
- Builtin queries can now be disabled.
- Queries can now be reordered with drag-and-drop.
- The first query is now the default query.
- Moved Conduit to ApplicationSearch.
- Added a setup check for file upload limit configuration.
- Added a setup check which examines $PATH in detail.
- Added bin/auth recover for recovering administrative accounts.
- Improved UI for setup checks.
- Improved UX for deleted or misspelled configuration.
- Added an "invisible" syntax highlighter mode, which shows whitespace characters like tabs and newlines.
- Fixed a bug where PHP, being a beautiful language full of unique ideas, interprets request keys like "a.b" as "a_b".
- PhutilArgumentParser now raises a better error message when the provided workflow does not exist.
- Improved the performance of phutil_utf8_shorten().
- Improved the performance of phutil_tag().
- Improved arc error message when file uploads fail.
- Fixed an issue with PHPUnitTestEngine and deleted files.
- Fixed an issue where arc would try to instantiate abstract workflows.
- Improved Pholio feed stories.
- Added a configurable global limit for email size, for MTAs which reject large mail.
- Fixed a bug when searching for user projects in Maniphest.
- Fixed a bug with ApplicationTransactions and subscriptions.
- Made all colors more colorful, or lest colorful, as dictated by good taste.
- Fixed a bug with Disqus comments on Phame posts.
- Improved "View Live" in Phame.
- qsprintf() can now be used with external connections.
- Added PhutilAsanaFuture, a future for Asana's API.
- HTTPFuture now supports DELETE.
- Added a phutil_exit() function for debugging, which terminates guards and stops them from writing to the error log.
- Inline remarkup rules now have an explicit priority.
- Arcanist linters now identify more uses of classes (catch, call_user_func(), newv, instanceof).
- Added a --library-name flag to arc liberate.
- Added LiskRawMigrationIterator.
- Doorkeeper now provides infrastructure for import/export/sync with external systems.
- Added bin/auth refresh for debugging OAuth tokens.