Major Enhancements

#749961, #750778, #751112 (Bug #69119) Swarm now allows participants to vote up or down on a review. The reviews page replaces the participants columns with an up/down votes column.

#730156, #747698, #748957 (Bug #69279) Swarm can now emulate IP-based Perforce protections. Swarm will check the user's IP address and use it to apply any necessary restrictions, such as when browsing files, viewing file content, viewing & adding comments on files.

#724625 (Bug #60905) Added ability to comment at the file-level on reviews and changes. Files in changes and reviews will now have a footer to display and add comments similar to the existing inline comment interface.

Minor Enhancements

#751165 (Bugs #68207, #69624) Eliminated redundant commit activity and email notification. This would occur when a change linked to a review was committed. Now, the commit is reported only once.

#751085 (Bug #69749) Old invalidated cache files are now cleared out periodically.

#750074 (Bug #70114) Swarm will log warnings when Perforce commands take longer than a prescribed time. By default, the print, submit, sync, shelve, and unshelve commands' threshold is 10 seconds; for all others, it is 3 seconds.

#749100 (Bug #70023) Swarm will perform XHProf profiling if the 'xhprof' PHP extension is present and requests take longer than a prescribed time (by default, 3 seconds). Data collected will be placed in the data/xhprof directory.

#748526 (Bug #70110) When browsing a project's branches, mainlines now appear first and are bolded as they are the most frequently accessed codelines.

#747404 (Bug #70017) The Swarm distribution now includes P4PHP binaries for PHP 5.5.

#745637 (Bug #69980) Commit email notifications now include a link to their associated review.

#734207, #751251 (Bug #69487) Swarm can now display deleted files and folders when browsing files.

#732930 (Bug #69636) Added support for hashtag (more formally known as "octothorpe"!) style review keywords; e.g. #review or #review-1234. Note the keyword is only honoured if it is preceeded and followed by either whitespace or EOL/SOL. Unlike the square-bracket convention [review], the hashtag style review keyword can appear anywhere in the description, not just at the beginning or end.

#728989 (Bug #60909) Users can now comment on jobs in Swarm under the new 'Comments' tab on the job page. When there is a new comment, Swarm will send an email notification to users listed in 'user' fields in the job, @mentioned in the job description and users of associated changes.

#728163 (Bug #69542) Avoid session locking to improve performance when making multiple simulatenous requests. This should improve the ability to browse in other tabs while file previews are being converted/transferred.

#723845 (Bug #64834) Added a system information page (/info), accessible to users with admin privileges. The page displays Perforce Server information, PHP info, and the Swarm log, which can be downloaded.

#722080 (Bug #69406) Enhanced the 'jobs' route to automatically prepend 'job0...' if the given ID is numeric and doesn't exactly match an existing job. For example, /jobs/12345 will resolve to /jobs/job012345.

#721850 (Bug #69380) Added a new 'disable_commit' option under the 'reviews' section in the configuration. Enabling this option will remove the "Approve and Commit" and "Commit" options from the Swarm web interface. External commits via traditional Perforce clients will still be possible. This setting is false by default.

#720456 (Bug #69290) If a user adds themselves as a review participant, Swarm will no longer email the new participant, though all other participants will still be notified.

#719792, #719938 (Bug #69245) Added icons next to changes listed on the jobs page to indicate their type (review, commit, pending).

#718564 (Bug #69206) Added new 'http_client_options' configuration. This allows administrators to specify HTTP communication options (particularly useful for HTTPS related options) either globally, or host- specific.

#716765 (Bug #65289) Improved HTTPS support via a 'strict_https' option. When enabled, viewing an HTTP link will include a meta-refresh to the HTTPS version, a strict transport security header will be included for all HTTPS requests (pinning the browser to HTTPS for 30 days), all qualified URLs will use HTTPS for the scheme, and cookies on HTTPS connections will be flagged HTTPS-only

#716542 (Bug #66938) Updated the Jobs page to allow selecting and re-ordering columns representing job fields. Columns can now be selected via the 'Select Columns' drop-down button located beside the search box. Users can select columns to show in the table below by checking them in the drop-down (showing all available fields, where the selected ones are always located at the top of the list). Selected columns can also be re-ordered, either by dragging them into desired spot in the drop-down or in the table header.

#714786, #715519, #715658, #719803, #720491 (Bugs #69093, #69647) Swarm has a new design that is cleaner and brighter with fewer borders. The projects sidebar has been moved to the left-hand side of the home page. This fixes an issue loading activity on mobile devices. Events in the activity table are now color-coded (with a thin vertical line on the far-right edge) to indicate the type of activity.

#714421 (Bug #69090) Enhanced our emojify filter to make use of Gemoji images if they are installed under public/vendor/gemoji. Gemoji provides support for more emojis and works on more browsers and platforms than the unicode codepoints we normally use. For more information about Gemoji, see

#713201 (Bug #68815) Introduced 'use_bcc' configuration item under 'mail' to address recipients of changelist notifications via the BCC field instead of the TO field. See the Email configuration section under Administration of the documentation.

Bug Fixes

#757302 (Bug #69995) Fixed a bug where multibyte UTF-8 sequences in user ID's could lead to HTTP 500 errors.

#755964 (Bug #70225) Fixed the activity display for a user whose ID contains a period.

#751230 (Bug #69672) Fixed erroneous 'approved' email when committing a review from Swarm where the review was already approved.

#751219 (Bug #69696) Fixed an issue where including an invalid change number when adding a commit to a review would throw an exception instead of returning a nicely formatted error.

#751195 (Bug #65646) Fixed an issue where the 'Commit' button in the Commit Review dialog became prematurely enabled.

#751100 (Bug #69666) Fixed an issue where some errors were not being displayed when failing to commit a review from Swarm.

#751043 (Bug #67471) Fixed an issue where a long description of a history entry would not be collapsed.

#751013 (Bug #68809) Fixed an issue where a change description that contained a line with only a period as its content would cause email notifications to be truncated at that point.

#747494 (Bug #69651) When showing historic context lines on comments, the old context will now only be shown once when it applies to multiple sequential comments.

#747607 (Bug #70022) Swarm now properly disconnects from the mail server after sending an email. Previously, a timeout error could occur if a worker processed multiple email related tasks.

#746579 (Bug #65666) Swarm no longer throws an HTTP 500 error when an invalid depot is entered within the change select dialog.

#745635 (Bug #69981) When editing a review description, mentioning a user (via @user) will now actually add that user as a review participant.

#745911 (Bug #69204) On the history tab, searching for a user with invalid characters will no longer generate an error.

#743323 (Bug #69928) Previews of office type documents no longer silently fail on CentOS and Red Hat Enterprise Linux.

#736065 (Bug #69737) Work around a Chrome bug where clearing out the password field on a long page would freeze the browser. See for details.

#736112 (Bug #69743) Fixed a race condition that could cause the commit status to become erroneously stuck at 'unshelving...'.

#732093 (Bug #66240) Fixed a bug where login would fail against a case-insensistive Perforce server if the username did not match case exactly.

#719604 (Bug #69248) Fixed a bug where Unicode or UTF-16 text files were not displaying properly in Swarm; Perforce converts them to UTF-8 and Swarm now flags them as such.

#716735 (Bug #69129) Fixed a bug where the wrong timestamp would be shown in the activity feed for certain timezones (e.g. AEST).

#712670 (Bug #68949) Fixed a minor bug where the user could erroneously select a header row in the 'Select Job' dialog.