#### v1.19.6 (2022-04-13)

##### Chores

*  incrementing version number - v1.19.6 (283a0072)
*  update changelog for v1.19.5 (05032ca2)
* **deps:**
  *  bump semver from 7.3.6 to 7.3.7 in /install (#10493) (65cec8d0)
  *  update dependency grunt to v1.5.2 (9f496659)
  *  update dependency grunt to v1.5.1 (0a8bf44e)
  *  update dependency grunt to v1.5.0 (e82d8bb6)
  *  update dependency eslint to v8.13.0 (bc3aabb4)
  *  update dependency eslint-plugin-import to v2.26.0 (a2ebf53b)
  *  bump nodebb-theme-persona from 11.4.3 to 11.4.4 in /install (#10437) (5b1789c1)
  *  bump nodebb-plugin-composer-default in /install (#10438) (c8c42933)
  *  update dependency eslint to v8.12.0 (a6590e20)
  *  update dependency lint-staged to v12.3.7 (#10407) (5f36ad39)
* **i18n:**  fallback strings for new resources: nodebb.post-queue (a06d1246)

##### New Features

*  #10460, add cutoff to suggested topics (799e94e0)
*  add response:helpers.notAllowed (e8058ca3)
*  add filter:image.stripEXIF (b8765df5)
*  add confirm to reject, closes #10427 (538ad9e1)
*  allow client-side hook registration chaining (b88bb3cf)
*  delete flagId field from post/user on flag purge (31251282)
*  add flags.purge (3b529b84)
*  new admin events, closes #10405 (421ba6e1)
*  add Albanian localisation :tada: (309968bf)

##### Bug Fixes

*  dont add caller to arrays (5316029f)
*  #10491, don't leak deleted message in cleanedContent (c52401da)
*  #10473, trim trailing slashes on config url (9f91db16)
*  closes #10436, fix DST issue on acp dashboard (39877763)
*  delete history as well (002a241c)
*  handle purge posts as well (93b60532)
*  byCid removal, targetCid not stored in flagObj (03fdb5be)
*  upgrade script (55be4202)
*  column counts for other privileges (2b9b2b4a)
* **deps:**
  *  update dependency nodebb-plugin-mentions to v3.0.8 (#10490) (7c733e9c)
  *  update dependency winston to v3.7.2 (#10454) (dc03a2f9)
  *  update dependency nconf to v0.11.4 (#10481) (f253bbdd)
  *  update dependency yargs to v17.4.1 (#10480) (bbf2b73e)
  *  update dependency ioredis to v5.0.4 (#10479) (88200ec1)
  *  update dependency html-to-text to v8.2.0 (#10471) (91026e5f)
  *  update dependency semver to v7.3.6 (#10466) (c50de911)
  *  update dependency html-to-text to v8.1.1 (#10470) (b3ec8059)
  *  update dependency nodebb-widget-essentials to v5.0.10 (#10461) (b6517cfd)
  *  update dependency body-parser to v1.20.0 (#10450) (26511185)
  *  update dependency spdx-license-list to v6.5.0 (#10452) (5e37f34e)
  *  update dependency graceful-fs to v4.2.10 (#10457) (947fa193)
  *  update dependency mongodb to v4.5.0 (#10458) (30f728ca)
  *  update dependency ioredis to v5.0.3 (#10446) (0d744d30)
  *  update dependency ioredis to v5 (#10434) (060ad1b0)
  *  update dependency nodebb-plugin-2factor to v3.0.6 (#10435) (0ac426e0)
  *  update dependency nodebb-plugin-composer-default to v7.0.21 (#10429) (898e0e89)
  *  update dependency nodebb-plugin-spam-be-gone to v0.8.1 (#10425) (47399bfe)
  *  update dependency sortablejs to v1.15.0 (#10418) (12cd1df2)
  *  update dependency nodemailer to v6.7.3 (#10421) (7e542495)
  *  update dependency yargs to v17.4.0 (#10416) (eaa05517)
  *  update dependency nodebb-theme-persona to v11.4.3 (#10414) (720a9dba)
  *  update dependency connect-redis to v6.1.3 (#10390) (06594131)
* **security:**
  *  explicitly declare cache-control header instead of using middleware (38ca73c4)
  *  cache-control on all pages using setupPageRoute or setupApiRoute, and 404 controllers. (1f6f389f)
  *  explicitly set cache-control 'private' on any page where a header is built (e39cdd49)

##### Performance Improvements

*  WIP #10449, allow array of pids for posts.purge (#10465) (76797371)
*  #10410, faster upgrade script (dab22d5f)

##### Refactors

*  replace deprecated String.prototype.substr() (#10432) (200f0b2e)
*  remove some verbose logging (9abe22a0)
*  :trollface: (29b86b32)
*  shorter generateTopicClass (f76c0e89)

#### v1.19.5 (2022-03-16)

##### Chores

*  incrementing version number - v1.19.5 (48d6eb4f)
*  update changelog for v1.19.4 (0e6e49b2)
* **deps:**
  *  bump less from 3.13.1 to 4.1.2 in /install (#9856) (d33485f6)
  *  bump autoprefixer from 10.4.2 to 10.4.4 in /install (#10403) (90094935)
  *  update dependency lint-staged to v12.3.6 (0a4522a2)
  *  update commitlint monorepo to v16.2.3 (0a97015d)
  *  bump nodebb-plugin-spam-be-gone in /install (#10387) (445e3d70)
  *  bump connect-redis from 6.1.1 to 6.1.2 in /install (#10391) (145621f7)
  *  update dependency eslint to v8.11.0 (feaf3068)
  *  update dependency mocha to v9.2.2 (#10383) (4ffbd78d)
* **i18n:**
  *  fallback strings for new resources: nodebb.admin-manage-users (2f09c22c)
  *  fallback strings for new resources: nodebb.admin-manage-privileges, nodebb.admin-manage-users, nodebb.error, nodebb.user (15508bac)
  *  fallback strings for new resources: nodebb.admin-settings-reputation, nodebb.error (5274a6aa)

##### New Features

*  collect hook logs in order to reduce console noise, flush on ajaxify loadScript completion (935704a8)
*  add support for PATCH method in api module (4b79dfd2)
*  on online users page override timeago cutoff to 24 hours (7c946570)
*  ability to mute users (be6bbabd)
*  min:rep:upvote, and other limits similar to downvotes (3414a23b)
*  post-queue hooks, closes #10381 (2056ac04)

##### Bug Fixes

*  topic events if there is a blocked user in topic (3935a86b)
*  topic events disappearing if there are queued posts (2808c952)
*  #10393, move 'Create User' control to overflow menu (cd687cff)
*  don't append to history on refresh or ajaxify to same url (c83987bd)
*  global privs (7d063d73)
*  #10384 -- mixed up sizes for fallback touch icons (cb113208)
*  #10377, remove logging of env vars (997ab7d4)
* **deps:**
  *  update dependency postcss to v8.4.12 (#10396) (bdbc168d)
  *  update dependency sharp to v0.30.3 (#10389) (b4213859)

##### Refactors

*  closes #10301 (c8e986d6)

##### Tests

*  skip i18n tests if the github event is a pull request (e578c605)
*  fix middleware test (24c1f879)
*  fix category tests (6344c3b6)
*  fix one more test (a5511425)

#### v1.19.4 (2022-03-09)

##### Chores

*  incrementing version number - v1.19.4 (67282057)
*  delay `filter:email.send` removal to v2.0.0 (83fd4311)
*  up persona (c23b2089)
*  incrementing version number - v1.19.3 (09cb11c8)
*  update changelog for v1.19.3 (0b48ec54)
* **deps:**
  *  bump postcss from 8.4.7 to 8.4.8 in /install (#10372) (d7a4ae1f)
  *  update dependency lint-staged to v12.3.5 (517ae926)
  *  bump nodebb-plugin-spam-be-gone in /install (81e7ca20)
  *  update dependency eslint to v8.10.0 (e83c8be2)
  *  bump postcss from 8.4.6 to 8.4.7 in /install (52ee5ce8)
  *  bump json2csv from 5.0.6 to 5.0.7 in /install (e44cbb24)
  *  update dependency smtp-server to v3.10.0 (67e4df78)
  *  update dependency mocha to v9.2.1 (00eebf10)
  *  bump prompt from 1.2.1 to 1.2.2 in /install (21913b5b)
  *  bump express from 4.17.2 to 4.17.3 in /install (5321ba4d)
* **i18n:**
  *  fallback strings for new resources: nodebb.admin-settings-reputation, nodebb.flags (a5fe8350)
  *  fallback strings for new resources: nodebb.topic (dc0f9a73)

##### New Features

*  add hook filter:posts.getUserInfoForPosts (df46ab48)
*  add translateKeys (e841d59a)
*  post auto flagging on downvotes #10029 (#10367) (62187caa)
*  closes #10324, show recently online users as well (eac9cd03)
*  resolve paths for staticDirs as well (e0b1c374)
*  ability to go through your posts in a topic (b517b376)
* **sorted-list:**  add new client-side hook `filter:settings.sorted-list.loadItem` (92d613e4)

##### Bug Fixes

*  apply some DRY (a3b4c668)
*  optional params (e9a86cb9)
*  #10374, use quick search in setting (70e613f8)
*  #10366, remove dupe /files (371b4658)
*  always show self on /users?online (56345777)
*  db call (21cd1e61)
*  lastonline timestamps and display for guests (cc665fd6)
*  #10357 (7ee4e4e0)
*  #10358, bad uploads path (5479f364)
*  #10360, only take top level posts (37ef8366)
*  #10354, flag actions regression (fec907d9)
*  dont overwrite asset_base_url if its set (0e12f82d)
*  allow calls to api module without a defined payload (914733e4)
*  #10334, use the correct env vars for web install (6b22d0e1)
*  persona test fail (10a5901e)
*  #10316, fix quoting regression (0b813d60)
*  #10322 (5694e62e)
*  #10329, select elements in sorted-list not showing proper values (1fa41342)
*  allow translation keys in `label` attributes (52836f3a)
*  don't load setup.json into nconf if setup.json doesn't exist (6e156daa)
*  regression caused by 94b79ce4024f72a3eee2cfa06b05d8f66898149f (4164898d)
* **deps:**
  *  update dependency nodebb-plugin-markdown to v9.0.10 (bcb68ee9)
  *  update dependency mongodb to v4.4.1 (#10364) (4b730df9)
  *  update dependency nodebb-theme-persona to v11.4.2 (#10361) (4d590f65)
  *  update dependency body-parser to v1.19.2 (#10298) (c75714b7)
  *  update dependency sharp to v0.30.2 (#10359) (1a6c2c55)
  *  update dependency nodebb-plugin-mentions to v3.0.7 (#10355) (3e5a0f0d)
  *  update dependency nodebb-plugin-2factor to v3.0.5 (f30c65a4)
  *  update dependency nodebb-theme-persona to v11.4.1 (#10337) (b84e61d5)
  *  update dependency nodebb-theme-persona to v11.4.0 (#10325) (244d8801)
  *  update dependency nodebb-plugin-mentions to v3.0.6 (#10328) (31cbff19)
  *  update dependency nodebb-plugin-dbsearch to v5.1.3 (#10330) (1c1062e1)
  *  update dependency nodebb-plugin-markdown to v9.0.8 (#10327) (c17b9bd4)
  *  update dependency mongodb to v4.4.0 (#10319) (afd2993d)
  *  update dependency nodebb-plugin-emoji to v3.5.17 (#10314) (04900291)
  *  update dependency nodebb-plugin-dbsearch to v5.1.2 (#10313) (0e30362b)
  *  update dependency nodebb-widget-essentials to v5.0.9 (#10307) (5666c103)
  *  update dependency nodebb-widget-essentials to v5.0.8 (#10306) (636f1baf)
* **sorted-list:**
  *  call loadItem hook on add/edit items as well as on item retrieval, refactor edit to call parse() (1c8d1d23)
  *  only call `.stripHTMLTags()` on string values (fb4f89f3)

##### Refactors

*  show a louder deprecation notice, alert once for each hook, not per plugin per hook (93b80f17)
*  move header unread code to separate module (40230725)
*  remove code that doesn't do anything (4a1e761a)
*  wrap around if at end (3acd2ac8)
*  change lang string (94961196)

##### Tests

*  possible fix random psql test failure (50ed3a32)
*  log configJSON (9db90a30)
*  check contents of config.json in tests (32f69301)

#### v1.19.3 (2022-02-16)

##### Chores

* **i18n:**
  *  fallback strings for new resources: nodebb.admin-settings-uploads (4043f179)
  *  fallback strings for new resources: nodebb.user (775d9077)
* **deps:**
  *  update dependency lint-staged to v12.3.4 (9577ef8d)
  *  update commitlint monorepo to v16.2.1 (2290cee5)
  *  update dependency eslint to v8.9.0 (763cd193)
*  remove punycode dep (e9cb1452)
*  incrementing version number - v1.19.2 (e49b31f0)
*  update changelog for v1.19.2 (f012984d)

##### New Features

*  delete diffs on post purge, closes #10291 (e9e48a75)
*  closes #10296 (58b5781c)
*  deleting a user upload dissociates from posts, and vice versa (d5ed8736)
*  #10276, dont change/revert theme if its current (398d25c2)

##### Bug Fixes

*  #10302, fix regression (503e27f7)
*  one last try (9205169f)
*  doggy.gif (2f64d633)
*  one more fix (cfdfbf32)
*  dupe key errors (770fcd9e)
*  #10292, delete missing fields (dbf7a458)
*  local deleteUploads() method in `src/user/delete.js` to call `User.deleteUpload()` (b9edee14)
*  #10144, automatically delete uploads from disk on post purge, ACP option to keep uploads on disk if desired (84dfda59)
*  four-space indents in package.json (9aa3e442)
*  #10289, remove lodash dependency in src/cli/package-install.js (81fa2e22)
*  non-functional upgrade script (1c7fb8fe)
*  language keys (350052ec)
*  #10273, properly calculate item count for best/controversial (d70ce3a9)
* **deps:**
  *  update dependency nodebb-plugin-emoji to v3.5.16 (#10297) (b47ca86d)
  *  update dependency nodebb-plugin-markdown to v9.0.7 (#10293) (5b0d4a8e)
  *  update dependency nodebb-plugin-emoji to v3.5.14 (#10295) (7af057fa)
  *  update dependency nodebb-plugin-mentions to v3.0.5 (#10294) (55a98183)
  *  update dependency winston to v3.6.0 (#10285) (22da7a10)
  *  update dependency nodebb-plugin-markdown to v9.0.6 (3225a1af)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.13 (#10280) (3dc108d3)
  *  update dependency nodebb-plugin-emoji to v3.5.12 (#10279) (2c0b6322)
  *  update dependency nodebb-plugin-emoji to v3.5.11 (#10274) (766ef4e5)

##### Refactors

*  lazy load slugify (946d351f)
*  .deleteUpload() to accept array of paths (7ef9c7d2)
*  fix user uploads paths, and associate uid with user uploads (ea36016d)
*  change the post uploads' hash seeds to have the `files/` prefix (6489e9fd)
*  abstract some common code out to local utility methods (aad0c5fd)
*  move post upload tests to its own file (d92da828)
*  remove extra zset remove, closes #10277 (489c0d30)

##### Code Style Changes

*  linting errors (5d7e1ebc)

##### Tests

*  fix topic thumb tests and topic thumbs to work properly with post upload assoc. (fb78570c)
*  user uploads.js tests (8c2752ba)
*  testing user upload methods, already fixed one bug (11275d68)

#### v1.19.2 (2022-02-09)

##### Chores

*  up persona (14ecafb6)
*  up markdown (8a4b7dc4)
*  add missing quote (b98758d3)
*  use source and current local vars, + docs (9e4147f0)
*  up persona (1eaae1d0)
*  up emoji (106ef7cf)
*  persona (3b4cf971)
*  persona (78db61cf)
*  up deps (c7a56439)
*  add punycode dependency (452f29c0)
*  up persona (d50d4a9e)
*  up persona (458606bc)
*  up persona (cfe53305)
*  up persona (f29bed27)
*  up packages (b4a4e60e)
*  up persona (3e30b6cd)
*  incrementing version number - v1.19.1 (7f450268)
*  update changelog for v1.19.1 (55df683a)
* **deps:**
  *  bump ioredis from 4.28.4 to 4.28.5 in /install (#10254) (b496ad44)
  *  bump nodebb-widget-essentials in /install (#10219) (b71025ce)
  *  update dependency lint-staged to v12.3.3 (6ba25557)
  *  update dependency eslint to v8.8.0 (153693e0)
  *  bump nodebb-theme-persona in /install (#10199) (2db54e67)
  *  update dependency lint-staged to v12.3.2 (814cb66b)
  *  update dependency mocha to v9.2.0 (05e2b354)
  *  bump helmet from 5.0.1 to 5.0.2 in /install (1f037bf6)
  *  update dependency lint-staged to v12.3.1 (ac244af3)
  *  update dependency lint-staged to v12.3.0 (7060837b)
  *  bump helmet from 4.6.0 to 5.0.1 in /install (5d3900dc)
* **i18n:**
  *  fallback strings for new resources: nodebb.modules (a71b8e59)
  *  fallback strings for new resources: nodebb.global, nodebb.pages (aa812f03)
  *  fallback strings for new resources: nodebb.users (70eeb204)
  *  fallback strings for new resources: nodebb.admin-settings-email (e9588ca7)
  *  fallback strings for new resources: nodebb.admin-settings-advanced (2ec4e31f)

##### Documentation Changes

*  openapi spec for new route (9b912db7)
*  some tweaks to cli help (c869d7db)

##### New Features

*  handle array of keys in psql exists for zsets (5143ca33)
*  upgrade script to clean up leftover :thumb zsets (0ac28435)
*  more tests for ensuring downvoted posts are added to the :votes zset (1b8eeaf8)
*  upgrade script to store downvotes posts in the user :votes sorted set (cf88483f)
*  new accounts route to show most downvoted ('controversial') posts (5afd5de0)
*  v3 user email tests (aa8914a1)
*  allow gif profile images, sharp 0.30.0 supports gifs (7f1c4477)
*  detect alternative package managers based on lockfile (8ba9e67c)
*  new language key for user search in chat (766ad6b7)
*  remove colors in favour of chalk (#10142) (cf8f62ae)
*  add upload helper module for drag&drop, paste, closes #6388 (cf5c0968)
*  no more sending emails to banned users, + feature flag (ea27eaf1)
*  push the theme name into body class (e1e1d522)
*  add ACP toggles for COEP and CORP headers (d91aeea3)

##### Bug Fixes

* **deps:**
  *  update dependency sharp to v0.30.1 (#10270) (8e52abe8)
  *  update dependency nodebb-widget-essentials to v5.0.7 (#10269) (6c0f7034)
  *  update dependency nodebb-theme-persona to v11.3.37 (#10265) (78d48c37)
  *  update dependency ioredis to v4.28.5 (#10252) (721a70c0)
  *  update dependency connect-redis to v6.1.1 (#10260) (a10e4940)
  *  update dependency nodebb-theme-persona to v11.3.36 (#10253) (0e2a4a2d)
  *  update dependency nodebb-theme-persona to v11.3.35 (#10251) (6465e012)
  *  update dependency pg-cursor to v2.7.3 (#10244) (e6185883)
  *  update dependency nodebb-theme-persona to v11.3.33 (#10248) (32477676)
  *  update dependency nodebb-theme-vanilla to v12.1.17 (#10249) (8f5b5ef1)
  *  update dependency nodebb-plugin-emoji to v3.5.9 (#10250) (1eb0939e)
  *  update dependency sanitize-html to v2.7.0 (#10246) (845717b8)
  *  update dependency pg to v8.7.3 (#10243) (531a3b1e)
  *  update dependency connect-redis to v6.1.0 (#10245) (c343b631)
  *  update dependency nodebb-theme-persona to v11.3.31 (#10241) (f1bed441)
  *  update dependency nodebb-plugin-composer-default to v7.0.20 (#10231) (a4702959)
  *  update dependency nodebb-theme-persona to v11.3.30 (#10232) (916a0db3)
  *  update dependency nodebb-plugin-emoji to v3.5.8 (#10239) (ebf4e12b)
  *  update dependency sharp to v0.30.0 (#10221) (2924cd3b)
  *  update dependency ioredis to v4.28.4 (#10224) (cda07cb7)
  *  update dependency clipboard to v2.0.10 (2c605d1c)
  *  update dependency sitemap to v7.1.1 (1bf938da)
  *  update dependency winston to v3.5.1 (b0dd68bb)
  *  pin dependency punycode to 2.1.1 (e7ba24c5)
  *  update dependency postcss to v8.4.6 (322f1033)
  *  update dependency nodebb-plugin-markdown to v9 (7d5080cd)
  *  update dependency ace-builds to v1.4.14 (#10200) (c50f6512)
  *  update dependency winston to v3.5.0 (#10202) (a7f142be)
  *  update dependency clipboard to v2.0.9 (#10203) (c6164e48)
*  remove extraneous devDependencies on package merge (a2c7d69e)
*  #10257, topic thumbs not deleting on topic deletion (0f788b8e)
*  #10256, allow quote tooltip on mobile (fb3f4f9a)
*  #10255, create verified/unverified groups on install (08f2a050)
*  controversial posts/bests posts not showing anything (079c487d)
*  regression in package.json merging logic that caused extraneous packages to not be removed (d34471f6)
*  #10229, package merging should deep merge nested objects (689c125c)
*  use fs.promises (a0a38706)
*  bug where .reduce() exploded due to no initial value, if input value was an empty array (5cff6e3f)
*  https://github.com/NodeBB/NodeBB/issues/10242 (dcb201df)
*  missing early return (ad635175)
*  handle case where email is explicitly passed into user.create, and thus is set in user hash, but confirmation request may have expired (936562c3)
*  #10236, don't check email:uid, instead verify an email confirmation is active (0322e984)
*  don't crash if requestedFields is undefined (98839108)
*  a missed invocation of colors (c3d926ff)
*  proactively guard against homograph characters in website values (fa7dcdb9)
*  #10208, don't use leading slash in directory names (1d01741a)
*  don't crash if quick search doesn't return posts (93d18383)
*  properly unregister hooks in emailer tests (fc2c755c)
*  email ban tests (dee9cca3)
*  update usage of emailer.send to not catch (as errors are no longer thrown), email error throttler (d4e5259f)
*  derp (b3f7b742)
*  bug where page wouldn't complete loading if data.scripts was emptied (578145ac)
*  use escaped group names in invite modal (2a89ad82)
*  https://github.com/julianlam/nodebb-plugin-mentions/issues/170 (dc6e629d)
*  #10197, fix relative path urls for dashboard pages (92a249c9)
*  actually, CORP is ok (df8c8ad8)
*  update defaults for corp and coep to be more permissive, for now, to be reverted for v1.20.0 (4467299e)
*  if no group label is selected, select no group title option (94da5026)

##### Other Changes

*  remove unused require (6be330f2)

##### Performance Improvements

*  increase batch size (b548083b)

##### Refactors

*  update chat plcaeholder message (fbd9ba79)
*  updated package-install.js exports style, new exported method 'getPackageManager' for use in cases where nconf is unreliable, fix bug where nconf was not correctly set up in cli tools, proper installation of dev dependencies based on global env value (9a169085)
*  emailer.send and emailer.sendToEmail returns Boolean based on message being successfully sent (f0e32ff1)
*  sorted-list .get() to be async fn (89b559a2)

##### Tests

*  fix occasional test failure (2dbdd181)
*  add test to verify that a sorted set is automatically deleted if its last element is removed (#10261) (60680876)
*  stricter isValidationPending check (d1b1f50b)
*  fix derp (680e36da)
*  up acp plugin page timeout (a214f9a6)

#### v1.19.1 (2022-01-21)

##### Chores

* **deps:**
  *  bump compare-versions from 4.1.2 to 4.1.3 in /install (#10154) (4a5182e4)
  *  update dependency lint-staged to v12.2.2 (f090de36)
  *  update dependency @commitlint/cli to v16.1.0 (44d81a95)
  *  update dependency lint-staged to v12.2.1 (857ac480)
  *  update dependency @commitlint/cli to v16.0.3 (9c63d076)
  *  update dependency lint-staged to v12.2.0 (1a0c117d)
  *  update dependency eslint to v8.7.0 (8abaf3f6)
  *  update dependency mocha to v9.1.4 (f5ad173b)
*  up persona (89871d71)
*  add test.sh to gitignore (d7796f0b)
*  delete test script (250274c7)
*  remove unused lang key #10180 (2fe91e36)
*  incrementing version number - v1.19.0 (18b0a29f)
*  update changelog for v1.19.0 (c8f1bc53)
* **i18n:**
  *  fallback strings for new resources: nodebb.admin-settings-user (78cd6de7)
  *  fallback strings for new resources: nodebb.user (3ec9197c)
  *  fallback strings for new resources: nodebb.email (354aa1a5)

##### New Features

*  revert label js change (1c80adf1)
*  hide all categories link on flags filters (e9d0db28)
*  nicer error handling for bad jwt in unsubscribe template (31ea2266)

##### Bug Fixes

* **deps:**
  *  update dependency jquery-ui to v1.13.1 (#10186) (55b3a355)
  *  update dependency multiparty to v4.2.3 (#10188) (7fa2ba70)
  *  update dependency nodebb-theme-persona to v11.3.15 (#10155) (e03d4747)
  *  update dependency mongodb to v4.3.1 (#10178) (693ca1f1)
  *  update dependency nodebb-plugin-composer-default to v7.0.18 (#10164) (2c75cce6)
*  urls used when recent/unread/popular/top is used as the homepage (28359665)
*  mark unread button showing the selected category (fdfafb44)
*  catch exceptions from sendNotifications (c1ec2047)
*  multiple cid filter on flags page (3e8cb732)
*  post indices if there is a blocked user in topic (f9279b63)
*  dont add duplicate link backs (3b72ff87)
*  #10175, fix topic linkbacks duplicating on post edit (b06c6329)
*  #10173, don't show optional message if email is required (d1eb21c5)
*  #10172, fix postqueue accept/reject notification text (6a75ed50)
*  #10167, fix regression prevent guest post (4799efc7)
*  CSRF handler to go back to saving in session (#10159) (e9ee843b)
*  #10158, fix extra padding (03f5cbcc)

##### Refactors

*  add method to error messages (c9fabb0e)

##### Tests

*  add failing guest csrf test (#10169) (10949184)

#### v1.19.0 (2022-01-13)

##### Breaking Changes

*  `GET /chats/:roomId/users` [breaking] (6eea6451)
*  remove socket.emit('user.exists') (1f063058)
*  remove socket.emit('user.changeUsernameEmail') (6b45dee9)
*  #10077, store nav items in objects (69c96078)
*  remove socket.emit('topics.follow') (f918a381)
*  remove socket.emit('topics.post') (6ad04721)
*  remove socket.emit('user.banUsers'); (49641a32)
*  remove socket.emit('posts.reply') (4604a572)
*  remove socket.emit('user.changePicture') (6d95684b)
*  remove socket.emit('user.search') (0d694c78)
*  remove socketHelpers.setDefaultPostData (99f865c6)
*  remove deprecated groups socket calls (02ea17ea)
*  remove deprecated methods (0d1e57dc)
*  remove socket.emit('posts.delete') (bd1cb2d4)
*  remove socket.emit('posts.upvote') (ec1d5e38)
*  remove socket.emit('posts.move') (8427c5d9)
*  remove socket.emit('posts.edit') (4247f624)
*  remove socket.emit('posts.bookmark/unbookmark') (f7418ccd)
*  remove deprecated admin.groups methods (07e2741e)
*  remove socket.emit('categories.getCategory') (45d755b6)
*  remove socket.emit('admin.categories.setPrivilege') and socket.emit('admin.categories.getPrivilegeSettings') (cc3f82bc)
*  remove deprecated socket.emit('admin.categories.update') (0b9c01f9)
*  remove deprecated socket.emit('admin.categories.purge') (ba5d2e7b)
*  remove deprecated socket.emit('admin.categories.create') (b3353723)
*  remove deprecated socket.emit('admin.categories.getAll') (10c19af2)
*  remove getTopicPosts(tid, ...) usage (170e5dd9)
*  remove deprecated post diff socket calls (8117b7f2)
*  remove deprecated user middlewares (1a7fffc7)
*  remove action:category.loaded, use action:topics.loading (36aa6034)
*  remove setTopicSort/setCategorySort (6dcdf1d3)
*  remove deprecated socket user create/delete functions (a7d1dfb6)
*  remove deprecated uploads.delete (c93d7fdb)
*  remove deprecated methods (79de48c5)
*  remove socket.io/flags.js (c5f08fdc)

##### Chores

*  org; merge consecutive await calls into one Promise.all (be4dbe34)
*  fix #9213 (0a5420ed)
*  revert engines change in install/package.json (487f25ba)
*  update renovate config (f95acce3)
*  update renovate range strategy... (bc0f33df)
*  remove debug logs in test/api.js (82768fcf)
*  use apiv3 for room rename tests (e745e212)
*  trigger lang (540eeae9)
*  up themes (71fa8175)
*  right dropdown (7aa85882)
*  right dropdown (a998cc1c)
*  update readme mongodb version (af5393ec)
*  incrementing version number - v1.18.6 (3a78a151)
*  update changelog for v1.18.6 (3c8109e2)
* **deps:**
  *  update commitlint monorepo (56d134c3)
  *  update dependency lint-staged to v12.1.7 (40e7007f)
  *  update dependency lint-staged to v12.1.6 (f78108ac)
  *  update dependency eslint-plugin-import to v2.25.4 (a69afdb6)
  *  update dependency lint-staged to v12.1.5 (12038039)
  *  update dependency eslint to v8.6.0 (b546ff4e)
  *  update dependency lint-staged to v12.1.4 (87779fc8)
  *  update dependency jsdom to v19 (#10053) (ee05b762)
  *  update dependency lint-staged to v12.1.3 (c0dd8dcb)
  *  update dependency eslint to v8.5.0 (55b9fab1)
  *  update dependency eslint to v8.4.1 (ba02f015)
  *  update dependency eslint to v8.4.0 (4b113715)
  *  update dependency lint-staged to v12 (b3423389)
  *  update dependency eslint to v8 (e9aadde1)
  *  update commitlint monorepo to v15 (f6c6425d)
  *  update dependency jsdom to v18.1.1 (87433b79)
  *  bump compare-versions from 3.6.0 to 4.1.1 in /install (ea9f2c73)
  *  update dependency jsdom to v18.1.0 (d7c2a311)
* **i18n:**
  *  fallback strings for new resources: nodebb.user (d79d7e80)
  *  fallback strings for new resources: nodebb.admin-settings-uploads (e6a46ef6)
  *  fallback strings for new resources: nodebb.error (207ae8cd)
  *  fallback strings for new resources: nodebb.post-queue (edba10e2)
  *  fallback strings for new resources: nodebb.modules, nodebb.notifications (fd939f8b)
  *  fallback strings for new resources: nodebb.admin-admin (4a53adf6)
  *  fallback strings for new resources: nodebb.admin-admin (b052a8e7)
  *  fallback strings for new resources: nodebb.topic (23c915ba)
  *  fallback strings for new resources: nodebb.admin-settings-user, nodebb.login (eecd02fb)
  *  fallback strings for new resources: nodebb.admin-settings-email (72e1c281)

##### Documentation Changes

*  comment hint :shipit: (ffdf26af)
*  fix description for route (47ab9526)
*  roomId is number (0aa25f20)
*  openAPI documentation for routes (55e68e2f)
*  use social media card in readme header (33c8b197)
*  add social media card (f7b3f69f)
*  add docs link higher up (1a85aaad)
*  update readme blurb (e325aa93)

##### New Features

*  bundling nodebb-plugin-2factor with all NodeBB installations, v1.19.0 onwards :tada: (31b4b8fd)
*  revoke user sessions on successful password reset (6ca216ab)
*  allow % in tags, #10135 (a75a043b)
*  allow isCluster, isPrimary, and jobsDisabled to be passed in as numbers in addition to string/bool (b5b188fd)
*  `GET /api/v3/chats/:roomId/messages` (2fe53cf8)
*  `DELETE /api/v3/chats/:roomId/users` and `DELETE /api/v3/chats/:roomId/users/:uid` (fe17c94c)
*  `POST /chats/:roomId/users` (d62ee846)
*  `POST /chats/:roomId/:mid` and `DELETE /chats/:roomId/:mid` (d5fd098e)
*  middleware.assert.message (90fcbe44)
*  `GET /chats/:roomId/:mid` (b2929605)
*  `PUT /chats/:roomId/:mid` (f48ed365)
*  allow API checkRequired middleware error to be internationalized (74f1905e)
*  `PUT /api/v3/chats/:roomId` (9a4fd5dc)
*  `POST /api/v3/chats/:roomId` (eeffb9d9)
*  `GET /api/v3/chats/:roomId` (09cf9c77)
*  `POST /api/v3/chats`, chat room creation, plus openAPI docs update (40b4544e)
*  `GET /api/v3/chats` (94bead71)
*  stub code for v3 chats api (02e878be)
*  #9506, allow seeing and editing your queued posts (c4042c70)
*  pass in all query params to category search filter (599bffd8)
*  add data param to filter:categories.search (c4156bdd)
*  ensure that all requests handled by NodeBB fall under the relative_path as configured (a3bdb706)
*  show 10 members (d9c42c00)
*  closes #10018 (1e535528)
*  #10018 add href (06bfec88)
*  #10018 , wip (0f14f23b)
*  autocomplete for activate/reset (f0d192fb)
*  #10008, add history entry for note deletion (c26870d2)
*  #9957, don't remove existing fields form config.json (0532c1b2)
*  add feature flag to disable verification emails, closes #9996 (09e0c6d5)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-plugin-markdown to v8.14.6 (ad6f6051)
  *  update dependency winston to v3.4.0 (#10150) (2fee1d07)
  *  update dependency ioredis to v4.28.3 (#10151) (bfad04ab)
  *  pin dependencies (da2bb340)
  *  pin dependency socket.io-adapter-cluster to 1.0.1 (#10146) (15bf3db2)
  *  update dependency nodebb-theme-vanilla to v12.1.15 (#10149) (2fa3cd0d)
  *  update dependency nodebb-theme-slick to v1.4.23 (#10148) (762de2d8)
  *  update dependency nodebb-theme-persona to v11.3.13 (#10147) (385d4c71)
  *  update dependency winston to v3.3.4 (4bada01b)
  *  update dependency autoprefixer to v10.4.2 (a47883e8)
  *  update dependency mongodb to v4.3.0 (50eb4556)
  *  update socket.io packages to v4.4.1 (9eb00cb2)
  *  update dependency nodebb-rewards-essentials to v0.2.1 (0a15c99e)
  *  update dependency autoprefixer to v10.4.1 (f1aa5f7d)
  *  update dependency yargs to v17.3.1 (5c3335b7)
  *  update dependency nodebb-theme-vanilla to v12.1.14 (#10102) (dd8b1f75)
  *  update dependency nodebb-theme-slick to v1.4.22 (#10101) (dd1633ff)
  *  update dependency nodebb-theme-lavender to v5.3.2 (#10099) (eccdfc9d)
  *  update dependency nodebb-theme-persona to v11.3.12 (#10100) (4f6fc10b)
  *  update dependency nodebb-theme-persona to v11.3.11 (32cbf760)
  *  update dependency nodebb-theme-slick to v1.4.21 (9253519c)
  *  update dependency nodebb-theme-slick to v1.4.20 (#10084) (019804e1)
  *  update dependency nodebb-theme-vanilla to v12.1.13 (#10085) (66c759ed)
  *  update dependency nodebb-theme-persona to v11.3.10 (#10083) (d276c9cd)
  *  update dependency nodebb-plugin-composer-default to v7.0.17 (#10082) (0ef9c7ab)
  *  update dependency nodebb-theme-vanilla to v12.1.12 (dda7c075)
  *  update dependency nodebb-theme-slick to v1.4.19 (4577600e)
  *  update dependency nodebb-theme-persona to v11.3.8 (5e2281c3)
  *  update dependency mongodb to v4.2.2 (0551a19e)
  *  update dependency postcss to v8.4.5 (16398dd9)
  *  update dependency compare-versions to v4.1.2 (de1ed01d)
  *  bump persona (16c88a97)
  *  bump persona (c90a8926)
  *  update dependency nodebb-plugin-mentions to v3.0.4 (#10063) (07217762)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.12 (#10064) (a5840c5a)
  *  update dependency nodebb-theme-slick to v1.4.18 (#10065) (5477cf32)
  *  update dependency nodebb-plugin-markdown to v8.14.5 (#10062) (60d778f0)
  *  update dependency nodebb-theme-persona to v11.3.5 (#10059) (8695d370)
  *  update dependency nodebb-plugin-dbsearch to v5.1.1 (70068d6c)
  *  update dependency nodebb-plugin-composer-default to v7.0.15 (84b03a34)
  *  update dependency nodebb-theme-persona to v11.3.3 (8cbe0df2)
  *  bump emoji plugin (14e35247)
  *  update dependency ioredis to v4.28.2 (597d826b)
  *  update dependency yargs to v17.3.0 (115de4e5)
  *  update dependency mime to v3 (#9963) (49813cce)
  *  update dependency mongodb to v4.2.1 (f72af319)
  *  update dependency @socket.io/redis-adapter to v7.1.0 (ed4b0cf7)
  *  update dependency postcss to v8.4.4 (b34b8aa9)
  *  update dependency postcss to v8.4.3 (2dadf786)
  *  update dependency postcss to v8.4.1 (6a273798)
  *  update dependency postcss to v8.4.0 (29345275)
  *  update dependency ioredis to v4.28.1 (9966a00f)
  *  update dependency nodebb-theme-persona to v11.3.1 (fdae6991)
  *  update socket.io packages to v4.4.0 (f05d308a)
  *  update dependency nodebb-theme-vanilla to v12.1.10 (68dddbd9)
  *  update dependency nodebb-theme-persona to v11.2.22 (3eb91a20)
  *  update dependency nodebb-plugin-mentions to v3.0.3 (5ec32c31)
  *  update dependency mongodb to v4.2.0 (#10011) (2378fc84)
  *  update dependency @socket.io/redis-adapter to v7.0.1 (aae7be02)
  *  update dependency sharp to v0.29.3 (46162537)
*  lint (c9592e17)
*  icon alignment issue that was also bugging me :shipit: (37a71291)
*  #10143, add back ace editor searchbox (42caef7f)
*  #10095, add login info to email interstitial (5eb02f59)
*  #10121, fix error messages in user creation (8ad64ec0)
*  #10115, fix chat autocomplete hook (69a7634a)
*  notice links in subfolder installs (cc27a324)
*  move authenticateRequest before interstitial and maintenance mode middlewares, allowed plugins to disable authentication on certain routes (d89fc44c)
*  retry incrObjtFieldBy (07232a8c)
*  use component instead of class name (b179f0fc)
*  assertion check to ensure messages are in the room when editing/deleting, etc (d95b4ee2)
*  rename language key for incorrect parameter type error (aeb43b9b)
*  deprecate chats.leave (16ba16cd)
*  re-allow kicking of the other party in a 1-to-1 chat (6294beea)
*  isFinite check for room assertion, more test migrating (140f9d24)
*  #10096, don't display preview for links if hostname doesnt match (a115b771)
*  only render preview on topic page (a9f81215)
*  don't crash server if analytics fails to save (8fb89d76)
*  upgrade script to handle strings as well (e332acf3)
*  #10090, remove left over necro posts messages (fdaf8274)
*  #10086, if pidfile is empty delete (59214ca2)
*  utils method (91e21ecc)
*  prevent crash if groups is not valid json (cc0a087a)
*  upgrade script (968d4616)
*  delete left over nav items after removal of some (737e1c19)
*  targetBlank/dropdown not getting cleared (10e890e4)
*  prettier bulk method usage (3b0c42a5)
*  bug where groupChat property was not set for chat rooms (42959df0)
*  #9484 show user history only to admins and gmods (bc7707aa)
*  no need to pass 'img' to teaser tags stripping as images are already converted to alt text (45c9dde3)
*  #10069, don't modify fields array (a8afdc60)
*  #10068, update data-index values after sort (236d4e80)
*  #10068, baseIndex should be read before sort update fix off by one error (9af23351)
*  tests (45d8157f)
*  #10067, count posts instead of incr/decr (830166d1)
*  handle start=0 stop=0 for topics.getTopicPosts (906dc567)
*  wrong usage of is ACP (4f423610)
*  don't throw on invalid session, just return early so socket is not opened. (fa01801f)
*  #10052, dont use spaces in tag class name (a2953583)
*  don't crash if tid is falsy (1cdb0b1e)
*  regression from https://github.com/NodeBB/NodeBB/commit/27c05448e1532ce466658513af0e2ff65576b410 (50063fe2)
*  keep query params on /me redirects (941ecaf8)
*  403/400/500 page not generating csrf_token (65c55041)
*  error pages dont have config.csrf_token (3dd681eb)
*  quote button staying on screen on slow computers (d378bf4c)
*  removed unused var (e0caa5e0)
*  #10027, properly auto confirm first user (2473d5d8)
*  cli password reset (71e34be5)
*  #10023, bump persona (a10ea03c)
*  #10020, /api/post/upload returns v3 style response (242f8e95)
*  consolidate plugin reset logic (449366ca)
*  search crash (9245f71a)
*  #10010, handle reverse sorting for topic events (d5bfd512)
*  #10006, dont allow new rooms or adding to a room if target is blocked (047f031d)

##### Other Changes

*  remove unused (afc75ba4)
*  fix (682f6089)
*  missing ; (20e76699)
*  remove unused (cbf198fe)
*  remove unused (a20abdce)
*  fix (0a6eeb93)
*  remove unused utils (82b72f7e)
*  fix (fa1ac04d)

##### Performance Improvements

*  only add middleware if relativePath is set (41db9436)
*  don't load all set members to get count (0414356c)
*  create user tooltips on demand (23147235)
*  closes #9994, bulk methods for settings (d412ba44)
*  remove createUserTooltips (facc10e4)

##### Refactors

*  remove unused language key (5278b11a)
*  put message api calls behind `/messages` prefix, #10097 (aaa6f752)
*  rewrite messaging tests to use API v3 calls when available, rewrote a bunch of tests to async..await (c990211c)
*  only write analytics data on nbb that has runJobs=true (35fea58a)
*  remove knonwOwner param (42781467)
*  remove console.log (a7644466)
*  remove unused validator (4e1d4217)
*  only pass qs (b8896d13)
*  change error message (1e60ae87)
*  use hasOwnProperty (9f1b8a3b)
*  remove object.create (dbba0c39)
*  remove unused args (3d3ae82f)
*  remove comment (633061f4)
*  use .map to return promises (d4f3ee67)
*  async (cfd47448)
*  async (f0394c49)
*  use async (8491f67d)
*  remove unused (e3c0f0be)
*  always returns array (9627fa90)
*  use async/await (f4aa249d)
*  change var name (36eb47d9)
*  alerts (621c142f)
*  use alerts.error/success (cba78aee)
*  use lang keys, fix typo (dd02c49f)
*  use alerts module (1980feed)
*  dont need local function (2bb0828a)
*  DRY (324262cb)
*  use routePrefixMap instead of routeRegexpMap, +tests (#10035) (6c07433d)
*  use hasOwnProprety (daf385cd)
*  tab rules (fb363957)
*  change category feed so it is not updated on every reply (697dd376)
*  dont expost entire res._locals to client side (e368feef)
*  shorter meta.settings.get (190532b3)
*  clone settings before returning (51cbeccb)
*  remove another async.series (27c05448)
*  remove tabs after declaration (4359e5c9)
*  update dates (6d38eab6)
*  clone before returning (f729e519)
*  add filter:topic.getPosts (258f368e)
*  setObjectBulk to match sortedSetAddBulk (8379c11b)
*  remove more async.eachSeries/mapSeries (d1964095)
*  make a single call to set widgets per template (8750ee04)
*  remove jshint, remove async.parallel (80f9963b)

##### Code Style Changes

*  eslint (d960f601)

##### Tests

*  fix util test (6c1e184c)
*  update tag tests, fix linux symlink error (9b75b1ed)
*  fix restore test (0d9ec9d3)
*  fix user tests calling deprecated socket methods (e747998c)
*  add email interstitial tests (1264dcb5)
*  don't use csrf_token for get,head, options (5e08f7e6)
*  fix tests (0e273ab2)
*  remove old test (68fd0875)
*  make it async (5c3d5f1f)
*  fix (26f00ffb)
*  one more getTopicPosts test (f8f0a83b)
*  utils.params (7b99dc46)
*  regular user shouldn't see admin:privileges (cd2040ac)
*  add missing tests (58431221)
*  add api token tests (7434cbf6)
*  add missing tests (404a8774)
*  upgrade.runParticular (2bdb4906)
*  add missing acp root category test (c17ec996)
*  cache dump test (217aae4c)
*  add missing controllers (bc120dba)
*  fix tpl name (edf7c647)
*  add mising email.test tpls (6d186ff1)
*  debug routes in dev (754cdab8)
*  add digest route test (1280d9ae)
*  digest (f11bc33a)
*  fix function name (0e725125)
*  submitUsage (d375dcb8)
*  remove log (d7c32ccb)
*  middleware/expose.js (29b3587d)
*  up mongodb version (500cad78)
*  mainPost removed from inf scroll (aac0792a)

#### v1.18.6 (2021-11-10)

##### Chores

*  make it a link (a0f0dd02)
*  update badges, remove david doesnt work (dad31c8e)
*  up themes (b1d6c9ba)
*  up mentions (98b98a11)
*  up mentions (3e4d477e)
*  fix type.yaml example and summary (591424ce)
*  incrementing version number - v1.18.5 (1e418f5b)
*  update changelog for v1.18.5 (82eda23a)
*  remove .opacity() mixin as it is supported cross-browser (28efcb59)
* **deps:**
  *  update dependency eslint-plugin-import to v2.25.3 (45a0895c)
  *  update commitlint monorepo to v14 (dc78125a)
  *  update dependency jsdom to v18.0.1 (7d468e72)
* **i18n:**
  *  fallback strings for new resources: nodebb.admin-development-info (91676c6c)
  *  fallback strings for new resources: nodebb.admin-settings-navigation (3727e39f)
  *  fallback strings for new resources: nodebb.admin-settings-post (46789910)

##### New Features

*  #9992, hooks.one (96f13e4f)
*  use auto-generated meta and link tags in ACP, closes #9991 (1719bff8)
*  add node 16 (#9847) (d27c9696)
*  #9967, allow dropdowns in navigation (2e623dd2)
*  show number of events per type in acp (b916e42f)
*  show posts previews if enabled on mouse over (8c670316)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-theme-slick to v1.4.16 (#9990) (cf30876f)
  *  update dependency nodebb-plugin-composer-default to v7.0.14 (#9989) (ef02bdc4)
  *  update dependency nodebb-plugin-composer-default to v7.0.13 (#9988) (654c8e61)
  *  update dependency nodebb-plugin-mentions to v3.0.2 (1a22b0ec)
  *  update dependency socket.io to v4.3.2 (98ebc4d9)
  *  update dependency html-to-text to v8.1.0 (c1f5889f)
  *  update dependency nodebb-plugin-dbsearch to v5.1.0 (#9983) (4f1ee1fc)
  *  update dependency nodebb-plugin-composer-default to v7.0.12 (7fee0e32)
  *  update dependency nodebb-plugin-mentions to v3.0.1 (#9979) (8224a2a9)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.11 (91293ecc)
  *  update dependency nodebb-theme-lavender to v5.3.1 (f7295aaa)
  *  update dependency nodebb-plugin-mentions to v3 (#9966) (0888aae6)
  *  update dependency mongodb to v4.1.4 (#9968) (f5993731)
  *  update dependency nodebb-theme-persona to v11.2.21 (#9969) (8fac8d61)
  *  update dependency nodebb-plugin-mentions to v2.15.1 (0f8a68c0)
  *  update dependency validator to v13.7.0 (81c8d70c)
  *  update dependency autoprefixer to v10.4.0 (755860f1)
*  ability to enumerate email via updateProfile method (c1ac2912)
*  accidentally not clearing email when said email is confirmed for a different uid (b912a564)
*  #9976 (28dd31a8)
*  #9976, handle array or object (9bfb6c72)
*  dont show previews on mobile (41e02400)
*  category load more btn visibility (05468526)
*  #9973, ignore if assigning to same parent (66e7cdac)
*  #9972 (67cb2491)
*  remove tooltip on ajaxify (f728abda)
*  don't highlight external nav items (8a88295d)
*  don't use # for previews (5a0efd2d)
*  events for just topic with main post (3d611ab7)
*  #9954, get next post timestamp (89399c0e)
*  topic events not rendered in infinitescroll (a7f235db)
*  broken post uploads due to 6a976a9db0340e34577961ce8d5d9479c78f7856 (485b6ced)
*  #9950, rename account export routes to remove `uid/` prefix (0ee85d5a)
*  double invocation of authenticateRequest (60352eca)
*  #9945, call authenticateRequest middleware for mount points in /api (6a976a9d)
*  hooks is sometimes undefined (74aa12c9)
*  typo in flags (bc4b19b4)
*  remove unused code (50b2ebf8)
*  handle undefined data.query (8f08d9ca)

##### Performance Improvements

*  only load posts once (9fbb3b11)

##### Refactors

*  shorter require (41c3eb82)
*  deprecate app.alert functions user alerts module directly (0428912c)
*  deprecate app.logout (8b4510cc)
*  simpler rejoin (61903448)
*  deprecate app.openChat/newChat (f352be63)
*  move search functions from app.js to search module (1a9b1598)
*  move session messages (666fe209)
*  move warnings/messages out of app.js (51855254)
*  remove jshint (0a7ff208)
*  cleanup info, better cpu usage % (4b738c8c)
*  acp only uses 3 modes and a single theme (890bf03f)
*  display errors from category drag/drop (c1cc35a9)
*  use utils.debounce (e8c17fee)

##### Tests

*  add another assert for random failing test (ae64b9f4)
*  socket.emit doesnt exist in tests (61d1f565)
*  show body when test fails (e3f5b706)
*  lint (3d2398ac)
*  fix tpl test (30cce142)
*  dbsearch no longer has staticDir (3386893b)
*  increase timeout (4ac9270a)
*  fix account export test routes (10bb8cf7)
*  add test aliases.buildTargets (62ac9a8b)
*  empty query params for search (bda5d144)

#### v1.18.5 (2021-10-27)

##### Breaking Changes

*  disable javascript in custom less tab (719cfc0d)

##### Chores

*  remove .opacity() mixin as it is supported cross-browser (28efcb59)
*  up themes (463b2076)
*  up persona (1438f409)
*  incrementing version number - v1.18.4 (945c2b0b)
*  update changelog for v1.18.4 (7cbcb521)
* **deps:**
  *  update dependency lint-staged to v11.2.6 (8d4bb8bb)
  *  update dependency lint-staged to v11.2.5 (0728a994)
  *  update dependency lint-staged to v11.2.4 (f76a7882)
  *  update dependency husky to v7.0.4 (2a3e13f3)
  *  update dependency mocha to v9.1.3 (4784f016)
  *  update dependency eslint-plugin-import to v2.25.2 (3c3f45d9)
  *  update dependency jsdom to v18 (4b8dcd4c)
  *  update dependency eslint-plugin-import to v2.25.1 (7c4aebbd)
  *  update dependency lint-staged to v11.2.3 (288b5456)
  *  update dependency lint-staged to v11.2.2 (f96c8c4d)
  *  update dependency @commitlint/cli to v13.2.1 (52c38a1d)
  *  update dependency lint-staged to v11.2.1 (022e8df0)
  *  update dependency eslint-config-nodebb to v0.0.3 (4b92df82)
* **i18n:**
  *  fallback strings for new resources: nodebb.admin-settings-email, nodebb.error (9b68dc37)
  *  fallback strings for new resources: nodebb.admin-dashboard (ff962b5d)
  *  fallback strings for new resources: nodebb.admin-dashboard, nodebb.admin-menu (abe59131)
  *  fallback strings for new resources: nodebb.admin-manage-digest, nodebb.admin-settings-user, nodebb.user (2bed40be)

##### Documentation Changes

*  update verbiage re: login API route (94c4f87b)

##### New Features

*  new ACP option `emailPrompt` ... which allows administrators to disable the client-side prompt to encourage users to enter or confirm their email addresses (80ea12c1)
*  show popular searches (f4cf482a)
*  new plugin hook  to allow plugins to reject email address on new registration or email change (6b4f35c2)
*  utilities login API route now starts an actual login session, if requested (806a1e50)
*  add method name to deprecation message (b91ae088)
*  quote tooltip (66fca4e0)
*  additional quality options for jpeg uploads, added quality and compression settings for png uploads (d22b076b)
*  #8053, biweekly digest option (f7967bdf)
*  core submit button dropdown (605a5381)
*  added failing i18n tests (35af7634)
*  confirm before deleting all events (#9875) (56d05b4e)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-theme-vanilla to v12.1.7 (#9944) (bf20965f)
  *  update dependency nodebb-theme-persona to v11.2.19 (#9943) (bcf85fcf)
  *  update dependency nodebb-rewards-essentials to v0.2.0 (7c2ecb12)
  *  update dependency nodebb-theme-vanilla to v12.1.6 (49b8b983)
  *  update dependency nodebb-theme-persona to v11.2.18 (ed0adf2c)
  *  update dependency nodebb-theme-persona to v11.2.17 (78661079)
  *  update dependency postcss to v8.3.11 (a5f4e206)
  *  update dependency nodebb-theme-vanilla to v12.1.5 (d74a6bd3)
  *  update dependency sharp to v0.29.2 (8b8fe393)
  *  update dependency postcss to v8.3.10 (b18a24e9)
  *  update dependency nodebb-theme-persona to v11.2.15 (f3c8d7da)
  *  update dependency nodebb-theme-persona to v11.2.14 (#9919) (5e08e67b)
  *  update dependency socket.io-client to v4.3.2 (deba3e27)
  *  update dependency socket.io to v4.3.1 (e1554f61)
  *  update socket.io packages (ce5a0a21)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.10 (600a8720)
  *  update dependency nodebb-plugin-composer-default to v7.0.10 (b0128f85)
  *  update dependency nodebb-plugin-markdown to v8.14.4 (f8f35d7e)
  *  update dependency nodebb-plugin-composer-default to v7.0.9 (ed874662)
  *  update dependency nodebb-theme-persona to v11.2.13 (1dba75e9)
  *  update dependency ioredis to v4.28.0 (4ff5452d)
  *  update dependency nodebb-theme-persona to v11.2.12 (fe9f82f6)
  *  update dependency ioredis to v4.27.11 (6d2e0aa9)
  *  update dependency nodebb-plugin-mentions to v2.14.1 (820f8cdf)
  *  update dependency jquery-ui to v1.13.0 (b0eb2aed)
*  remove loading="lazy", fixes inf. scroll loaded images (01572785)
*  windows tests (25ebbd65)
*  undefined query showing in searches (6cfaea06)
*  don't repeat search if on same page (89f5e06b)
*  api session revoke test (0926ae6e)
*  crash (da64810a)
*  add missing translation (eb075c73)
*  move record to controller (ee8e0480)
*  profile edit fields showing translated values (63572c23)
*  #9934, fix translator test (8d316d18)
*  token verify (04dab1d5)
*  guard against prototype pollution (1783f918)
*  translator path traversal (c8b2fc46)
*  there is no alltime digest, fixes translation in test email (e62948f7)
*  clicking outside postContainer should close tooltip (47df62e7)
*  minification regression (998b9e79)
*  tooltip (fec7ebed)
*  biweekly digest #8053 (9cb4de50)
*  restore plugin upgrade checking logic (44687394)
*  fallbacks for new langauge key (ed4ebd22)
*  #9917, show topics as unread for guests (4333d217)
*  clarify site settings urls vs config.json url (#9912) (6436aa65)
*  clarify SMTP enable toggle (#9911) (09f198fc)
*  don't overwrite reloadRequired with false (9e0ce027)
*  delete translations in admin/general folder (since general was removed and relocated elsewhere) (b460e590)
*  pushed missing key to tx and pulled fallbacks (21b61082)
*  adding missing language namespace "top" (0f9b0b78)
*  extra debug log (bd893cda)
*  have renovate add `dependencies` label to its PRs (eddb9868)
*  no global bootbox (#9879) (227456fb)
*  #9872 update app badge with notification count if applicable (3e69bcdf)
*  better nomenclature (c1149d04)
*  html attributes (#9877) (3acaac4c)
*  escape thumbs, allow robots meta tag (4f9717fb)
*  missing translations (#9876) (7935bd9e)

##### Performance Improvements

*  dont fs.open if plugin doesnt have language namespace (#9893) (1feb111a)

##### Refactors

*  wider value field (c428ba80)
*  dont save partial searches (c7e078d4)
*  use search api for topic search (64192731)
*  slowdown quick search (19ee7174)
*  typo (a5287906)
*  add callback to loadNotifications (f02fba29)
*  simplified utilities API > login rout (506c34a8)
*  log error as well (1d62bd6d)
*  catch errors from buildHeader in error handler :fire: (73a9ca09)
*  add missing helpers.tryRoute (d4da9840)
*  shorter middleware (ee0282f5)
*  meta/minifier use async/await (b2429ef0)
*  remove unused var (90b81262)
*  catch errors from digest (8e319a9b)
*  less.render returns promise (14bc83a8)
*  less.render already returns promise (6da32392)
*  prompt.get already returns promise (c70eaa0a)
*  no need for async/callbacks (057d1d58)
*  no more :cow: (38756a0c)
*  allow array of uids for blocks.is/list (a9bc6a09)
*  show full url on error log (8e6bd7e9)
*  var to const and let (#9885) (b0a24d6d)
*  remove unused code (997fb2b3)
*  remove unused colorpicker (543d8521)

##### Reverts

*  lazy load (3d1cf168)

##### Tests

*  fix broken openapi3 schema (7ef5214e)
*  restore commented-out i18n test (fa1afbcf)
*  moved topic event and topic thumb tests to subfolder for better organisation (154ffea0)
*  remove escape (6c25b9db)
*  possible fix to timeout (63109c07)
*  increase timeout (8654a996)

#### v1.18.4 (2021-10-06)

##### Chores

*  up persona (f4e62fb1)
*  incrementing version number - v1.18.3 (57358743)
*  update changelog for v1.18.3 (f066ddb8)
* **deps:**
  *  update dependency lint-staged to v11.2.0 (840b49b9)
  *  update commitlint monorepo to v13.2.0 (aa370310)
  *  update dependency mocha to v9.1.2 (6385b88e)

##### Documentation Changes

*  added link to unofficial IRC channel (c5a48b44)

##### New Features

*  use unread icon in mobile (27e53b42)
*  cli user management commands (#9848) (d1ff3d62)
*  #9855, allow uid for post queue notifications (5aea6c6a)
*  add userData to static:user.delete (f24b630e)
*  closes #9845, sort by views (6399b428)
*  duplicate `requireEmailAddress` settings block to Settings > User (a9645475)
*  mongodb driver 4.x (#9832) (07adb49e)
*  a useless hover effect because raisins (1a61ffc5)

##### Bug Fixes

* **deps:**
  *  update dependency mongodb to v4.1.3 (b4fc2773)
  *  update dependency postcss to v8.3.9 (9455e5b2)
  *  update dependency autoprefixer to v10.3.7 (78895d05)
  *  update dependency nodebb-plugin-composer-default to v7.0.8 (9215c7d1)
  *  update dependency ioredis to v4.27.10 (4694382c)
  *  update dependency nodebb-theme-persona to v11.2.9 (346e0890)
  *  update dependency autoprefixer to v10.3.6 (058fdca4)
  *  update dependency yargs to v17.2.1 (d50dd801)
  *  update dependency postcss to v8.3.8 (193c92e3)
  *  update dependency passport to ^0.5.0 (daea8a86)
  *  update dependency connect-pg-simple to v7 (#9785) (054f3da6)
  *  update dependency yargs to v17.2.0 (c78309b5)
*  #9866, fire vote hooks after reputation changes (#9867) (8ad9a103)
*  #9865, don't display register messages after login (96f5312d)
*  dont show decimails on auto approva minutes (a0df3890)
*  #9864 (e954ca10)
*  delete old topic tags (a70c69fa)
*  switch inf. scroll to xhr (#9854) (4404e819)
*  #9828, max-width (40915105)
*  handle undefined returnTo on registerAbort (ac1b9692)
*  lint (ff850b24)
*  psql tests (123354ca)
*  psql test (f8d4ec6c)
*  possible test fix for subfolder redirect (3605ac81)
*  missing relative path in test (4eacfef0)
*  #9834, missing null email check on new registrations, added tests (58e0a366)
*  crossorigin not showing up on manifest link tag (0faa4937)
*  #9827, fix reward duplication (89af00d1)

##### Performance Improvements

*  convert promise.all to single query (#9851) (ea04aede)

##### Refactors

*  use utils.debounce (a7668a7f)
*  remove async.waterfall from remaining upgrade scripts (6b34065f)

##### Tests

*  dashboard (4f8647a5)
*  add tests for admin privileges (9fe9ab08)
*  add missing tests (34798325)
*  remove debug log (8cb47548)
*  no need to create fake interstitial as NodeBB comes with some by default (cb69934a)

#### v1.18.3 (2021-09-22)

##### Chores

* **deps:**  update docker/build-push-action action to v2.7.0 (ee027719)
*  incrementing version number - v1.18.2 (0a56158b)
*  update changelog for v1.18.2 (27e9282a)

##### New Features

*  move filter:topic.post hook to top of method (f194809f)
*  add client-side static hook to fire immediately before any topic action (hint: delete `action` to stop default behaviour) (66eaae44)
*  allow removing multiple items from list (397835a0)
*  add uid to filter:user.saveSettings (7f48edc0)
*  headers for global privs #9717 (#9762) (84ff1152)
*  add ACP option to require email address on new registration (006fc700)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-plugin-composer-default to v7.0.7 (98554294)
  *  update dependency postcss to v8.3.7 (6ebe707c)
  *  update dependency autoprefixer to v10.3.5 (25687441)
  *  update dependency nodebb-plugin-composer-default to v7.0.6 (#9815) (c18678ce)
  *  update dependency nodebb-theme-persona to v11.2.8 (#9816) (39d73d0c)
  *  update dependency connect-mongo to v4.6.0 (8e886c85)
  *  update dependency nodebb-plugin-composer-default to v7.0.4 (8af54255)
  *  update dependency mongodb to v3.7.1 (9049dcd7)
  *  update dependency nodebb-theme-persona to v11.2.6 (506035b5)
  *  update dependency nodebb-theme-slick to v1.4.13 (787306a6)
  *  update dependency nodebb-plugin-composer-default to v7.0.3 (732b59c2)
*  fixed element shifting in ACP menu that's been bothering me for 5-ish years (31975a62)
*  #9822, use correct username/pwd (30f38771)
*  remove unused translator (2add84a5)
*  ban info test (07859f7e)
*  #9819, show same time info for ban (9f0e55ad)
*  show local time for ban (7a2f0ae1)
*  crash (c437b336)
*  remove caller from payload after hooks is done (15f9aaa6)
*  bad uid reference (ce8ea6ea)
*  update Topics.post and Topics.reply so that plugins can modify uid (or redirect a reply to a different topic) (7777812e)
*  #9818, fix totalTime calculation (c4fc7bf9)
*  missing microdata in category data (1ed62aa8)
*  #9812, add topics:schedule (c0a52924)
*  for subfolders (31a6d4b3)
*  req.path doesn't have full url (0236ea86)
*  escape moderation note before adding to dom (75ebe786)
*  #9811, send bodyClass on 403 (40c9fca9)
*  also launch docker workflow on release branches (944a7985)
*  xss on flags page via ban reason (ba3582b8)
*  up timeout for psql tests (896ff215)
*  redis batch (0c4b875e)
*  redis processing batch+1 items every iteration (3261edcc)
*  #9560, don't save post diffs if content didn't change (8b576a37)
*  #9790, get baseIndex on update for infinitescroll (6a55c027)
*  #9790, fix sorting of more than one page of pinned topics (2657804c)
*  privileges added by plugins (#9802) (3ecbb624)
*  #9800, don't send all welcome test emails to test@example.org @julianlam (71ed50b9)
*  docker - remove sha tag (b06e8dba)
*  Return QEMU back, remove platforms definition (52eace4b)
*  Docker workflow tweaks (#9792) (e7f4cde4)
*  browsers autocompleting smtp fields when they should not (34afb747)

##### Refactors

*  no regex (18252fb9)
*  remove async.waterfall (58ac55c1)
*  remove async.waterfall (222dccaf)
*  remove async.waterfall (f35a0f43)
*  allow plugins to replace og:image, or specify additional og:image (819917da)

##### Code Style Changes

*  give me an A! :100: (0b4d7d1f)

#### v1.18.2 (2021-09-08)

##### Chores

* **deps:**  update commitlint monorepo to v13 (87ba768f)
*  incrementing version number - v1.18.1 (f8f80e4f)
*  update changelog for v1.18.1 (0713475d)

##### New Features

*  a slightly less ugly rewards panel (bf0c02a7)

##### Bug Fixes

*  dashboard graph controls (a7855c4c)
*  #9767 ACP change group icon fix (580a016b)
*  #9781 (#9782) (0ce4b87d)
*  replace logic in isPrivilegedOrSelfAndPasswordMatch to use privileges.users.canEdit (856ba78a)
*  handle missing uid in deprecated socket call (cdaea611)
*  use privileges.users.canEdit for image upload priv check (e33e046f)
*  errors from registerComplete (a48bbdbf)
*  simplify logic for fullname and email blanking in user retrieval (getUserDataByUserSlug) (60de0844)
*  lint (1e2bda13)
*  manifest error (488f0978)
*  #9772, regression from https://github.com/NodeBB/NodeBB/commit/70a04bc10577e90e28d66a647d38cafc3307a285 (72710b80)
*  push back some deprecations, remove deprecated stuff scheduled for v1.18.0 (dd4e66e2)
*  deprecate userData.showHidden as it is functionally equivalent to userData.canEdit (4ac701d7)
*  focus on save button on plugin activation (46e5e17d)
*  #9773, fire hooks properly for priv changes (#9774) (6869920e)
* **deps:**
  *  update dependency sharp to v0.29.1 (ac6cd02f)
  *  update dependency nodebb-plugin-dbsearch to v5.0.3 (338f90fc)
  *  update dependency nodebb-theme-vanilla to v12.1.3 (0b3ea5ad)
  *  update dependency nodebb-theme-persona to v11.2.5 (57e54d55)

##### Refactors

*  deprecate picture update socket call, new API routes for picture update (0a41741b)

##### Tests

*  added test for external image via new change picture API (8cbad61e)

#### v1.18.1 (2021-09-03)

##### Chores

*  found some hooks that don't play well docgen (ae793b4a)
*  incrementing version number - v1.18.0 (1e436ae7)
*  update changelog for v1.18.0 (2fd9c095)
* **deps:**  update dependency mocha to v9.1.1 (64bac178)

##### New Features

*  create folders in ACP uploads #9638 (#9750) (3df79683)
*  column based view on wide priv. tables (#9699) (61f02f17)
*  als (#9749) (e59d3575)
*  add quick reply key (e9314842)
*  add new lang key for no best posts (6e73d8c9)

##### Bug Fixes

* **deps:**
  *  update dependency autoprefixer to v10.3.4 (67b932f4)
  *  update dependency nodebb-theme-persona to v11.2.4 (fe18e100)
  *  update dependency mongodb to v3.7.0 (31a35d7f)
  *  update socket.io packages to v4.2.0 (f2028d70)
  *  update dependency ioredis to v4.27.9 (6052eb16)
  *  update dependency mongodb to v3.6.12 (#9761) (5fa982c1)
  *  update dependency nodebb-plugin-composer-default to v7.0.2 (33d51201)
  *  update dependency nodebb-theme-slick to v1.4.12 (1b416d7e)
  *  update dependency nodebb-theme-slick to v1.4.11 (65b32fa1)
  *  update dependency nodebb-theme-persona to v11.2.3 (6ce321e4)
  *  update dependency autoprefixer to v10.3.3 (91ba7cdf)
  *  update dependency nodebb-theme-slick to v1.4.9 (d80b378f)
  *  update dependency jquery-deserialize to v2.0.0 (#9744) (7f9451ce)
*  determine indeterminate checkboxes (760ea9df)
*  move app.alert back into the conditionals (ca9bae3a)
*  only show email confirmation warning toast on pages that it applies (1bd1cc74)
*  updated email confirm warning to be more positive (2d1380dd)
*  automated tests are a good thing to have (6afeac37)

##### Refactors

*  consistent jquery element var naming (fc0e655e)
*  var to const (1272da65)

#### v1.18.0 (2021-08-25)

##### Breaking Changes

* **emails:**  restore ability for admins to edit a user's email address [breaking] (c4e3362b)
*  #9670 return 4xx errors instead of 5xx on flag routes, when unauthenticated or not privileged [breaking] (d1959a25)
*  made TopicList.onTopicsLoaded private [breaking] (07f25d8c)
*  return proper API-style response if exception caught by error handler on v3 routes [breaking] (a54a3ee1)

##### Chores

* **deps:**
  *  update dependency husky to v7.0.2 (324c7d48)
  *  update dependency eslint-plugin-import to v2.24.2 (9a34fe18)
  *  update dependency eslint-config-nodebb to v0.0.2 (cd85a55d)
  *  update dependency mocha to v9.1.0 (c5a42273)
  *  update dependency eslint-plugin-import to v2.24.1 (daca09d4)
  *  update dependency @apidevtools/swagger-parser to v10.0.3 (ffdf61b8)
  *  update dependency jsdom to v17 (#9700) (41855375)
  *  update dependency eslint-plugin-import to v2.24.0 (23dafa20)
  *  update dependency lint-staged to v11.1.2 (d47bdde2)
  *  update dependency jsdom to v16.7.0 (9db28b4b)
  *  update dependency eslint to v7.32.0 (03a98f4d)
  *  update dependency mocha to v9.0.3 (40384fcb)
  *  update dependency lint-staged to v11.1.1 (7588aae1)
  *  update dependency lint-staged to v11.1.0 (cb5fe271)
  *  update dependency mocha to v9 (f43291f5)
  *  update dependency husky to v7 (702290c4)
  *  update dependency eslint to v7.31.0 (f5a53b7f)
  *  update dependency lint-staged to v11.0.1 (02101315)
*  up markdown/composer-default, fixes: #9708 (b74eefac)
*  incrementing version number - v1.17.2 (46be2046)
*  update changelog for v1.17.2 (5c9c0605)

##### Documentation Changes

*  some hook deprecation notices (6bc090f8)

##### New Features

*  add confirmation modal to topic event deletion (e803737a)
*  allow changing default search in (794bf01b)
*  #9705, use radio buttons for flag reasons (382a4c27)
*  Client-side hooks - replace window.trigger (#9679) (342503e0)
*  closes #9684, allow event deletion (358ad740)
*  replace eslint configs on server and client side to inherit rules from eslint-config-nodebb (f653a6ff)
*  re-add FontAwesome font for compatibility (a370c26f)
*  update to FontAwesome 5.15, resolve #6976 (41762e66)
*  removed registerAndLoginUserCallback local helper, added handling if a bad interstitial doesn't go away nor throw errors (70a04bc1)
*  updated email confirmation alert to more closely reflect email usage, remembering dismissal (bbbacd86)
*  allow requirejs modules to be awaited (58adb762)
*  show instructional modal after email change request (0e05cbe1)
*  return back to profile after editing email (324a12b6)
*  allow registration interstitial abort to also follow returnTo (b3c91641)
*  plumb current session id into email removal/confirmation flow, so all other sessions are revoked except for the current session (96398faa)
*  allow revokeAllSessions method to revoke all sessions except that which is passed in (new arg) (b0a4a1d3)
*  return generic 404 on invalid confirm code (f53fc1ad)
*  invites no longer require email (a917210c)
*  show different registration intersitial lead text on new account vs. existing (74aaa0a9)
*  removal of emailExists socket listener (12b2a979)
*  add loggedin/guest class to body (04b1f702)
*  convert _fireStaticHook to async function (auto-refactor by vscode) (21359eab)
*  store topic tags in topic hash (#9656) (4a56388e)
*  new hook `action:topics.loading` (in the same format as `action:posts.loading`) (e0db904b)
*  schedule deprecation for `action:category.loaded` and `action:category.loading`. Use `action:topics.loaded/ing` instead (8ae4c300)
*  internationalize API error messages (7036c375)
*  #9651, change category desc to multiline (5fd190f7)
* **emails:**
  *  pass req in to filter:registration.interstitial (afd2d8da)
  *  display current email in interstitial form (f5291999)
  *  upgrade script for includeUnverifiedEmails (50517020)
  *  +includeUnverifiedEmails ACP setting (be97aa6f)

##### Bug Fixes

*  lint (55693ec1)
*  topic event deletion (1ee92c28)
*  pluginPaths (0743554d)
*  #9730, show warning if plugin is active but not installed (13878e9f)
*  #9729, insert new posts after topic events (60bf5643)
*  #9719, only apply to non https (c354cde3)
*  #9727, addHandlers after hooks (77c3085a)
*  allow smaller than 5mins for admin relogin duration (a288f51f)
*  taskbar icon not pushed via composer/persona (3a81c8fd)
*  #9698, pass along query params in redirect (9de64bf5)
*  lint (8bf2896d)
*  remove unnecessary quote (093ac1c0)
*  parseInt tids (162ebacf)
*  #9681, update posts in queue if target tid is merged (0c816429)
*  email update interstitial to not error on empty email field (on new registration) (4a521ea2)
*  updated ACP > Manage > Users to handle users with no email address (824a72b2)
*  allowed reset and reset_notify emails to go out to unconfirmed email addresses (d5b5b7d5)
*  bug where confirmation email was sent to the old email address, not the new one (414d733d)
*  email validation flow, so that it actually works, fixed event logging bug, new email verification template (3bcd1f14)
*  accidental early return in confirmByCode, tests, race condition (caf89687)
*  test :shipit: (2c06ac9a)
*  failing test from d1959a2 (f71f2951)
*  #9668, add raw info to psql database page (6c47a060)
*  use hooks module instead of window trigger (acb11cc7)
*  tests (0960a814)
*  translate language keys if passed in to formatApiResponse (415416d2)
*  lint (ff78969c)
*  tests (55d7e558)
*  keep query string on redirects (47c8c692)
* **deps:**
  *  bump persona (12e7f8d5)
  *  update dependency nodebb-theme-persona to v11.2.1 (#9734) (2e1562b8)
  *  update dependency nodebb-theme-vanilla to v12.1.2 (#9735) (4bd66a7c)
  *  update dependency nodebb-theme-slick to v1.4.8 (#9732) (096c5a58)
  *  update dependency autoprefixer to v10.3.2 (d44e3a8e)
  *  update dependency nodebb-theme-persona to v11.2.0 (116f9cb5)
  *  update dependency ioredis to v4.27.8 (8461791a)
  *  update dependency nodebb-theme-persona to v11.1.3 (ec103ce8)
  *  update dependency sharp to v0.29.0 (626d5565)
  *  update dependency connect-mongo to v4.5.0 (ce6039f2)
  *  update dependency nodebb-theme-vanilla to v12.1.1 (de83f82e)
  *  update dependency nodebb-theme-persona to v11.1.2 (ee10ae04)
  *  update dependency yargs to v17.1.1 (38e38580)
  *  update dependency nodebb-theme-persona to v11.1.1 (47941418)
  *  update dependency mongodb to v3.6.11 (a0fd0268)
  *  update dependency yargs to v17.1.0 (181c20ba)
  *  update dependency ioredis to v4.27.7 (4c9d6b62)
  *  update theme versions for #9607 (3b34571d)
  *  update dependency postcss to v8.3.6 (ebdba8f1)
  *  update dependency html-to-text to v8 (3f24746c)
  *  update dependency yargs to v17 (1b6b1fe5)
  *  bump composer-default to v7 (51458c75)
  *  update dependency autoprefixer to v10.3.1 (0d3f74b7)
  *  update dependency nodebb-plugin-markdown to v8.14.2 (b6a84712)
  *  update dependency autoprefixer to v10.3.0 (72c9650f)
  *  update socket.io packages to v4.1.3 (f14df0d4)
  *  update dependency nodebb-plugin-composer-default to v6.5.34 (31dae04f)
  *  update dependency nodebb-theme-persona to v11.0.26 (ae14016e)
  *  update dependency nodebb-plugin-markdown to v8.14.1 (8b41684e)
* **emails:**
  *  broken test for api/user/email/:email (81611ae1)
  *  dont allow retrieving user data if showemail is false @julianlam (7d115c8e)
  *  registration tests, email no longer passed-in, API tests (confirm email for test accounts) (6694bdd5)
  *  don't automatically associate email during user creation if passed in at registration (e726048e)
  *  remove debug log (b4b65ecd)
  *  broken test due to sticky registration interstitial (ab9b6716)

##### Refactors

*  remove promisify from redis, ioredis supports promises nati… (#9728) (6659e95a)
*  get rid of async.waterfall/each (8fb53252)
*  remove unused async (42dbd402)
*  remove waterfall (6b6a7d4b)
*  move interstitials into its own file in `src/user/` (e95df2f0)
*  added user.email.remove method, updated email interstitial to handle email removal (ccf004f1)
*  client-side to use flag notes API (ef4e74bf)
*  fix wording (6ed7e937)
* **email:**  validation checking methods, +tests fix (087e6020)
* **emails:**
  *  more work in update email interstitial, interstitial skipping, email change on confirmation, deprecation of requireEmailConfirmation (69c96dd2)
  *  interstitial for adding/updating email (f365bc46)
  *  remove email validation on client and server side (7c1d1c77)

##### Code Style Changes

*  eslint (d2492ef4)
*  lint fix (340ccb24)
*  lint (52229172)

##### Tests

* **emails:**  fixing broken tests introduced by e5ff68acd (a3a3b10f)

#### v1.17.2 (2021-07-07)

##### Chores

* **deps:**
  *  update coverallsapp/github-action action to v1.1.3 (99c23037)
  *  update dependency eslint to v7.30.0 (725e70e9)
  *  update dependency coveralls to v3.1.1 (edefac96)
  *  update dependency eslint to v7.29.0 (2700f717)
  *  update dependency eslint to v7.28.0 (fac0bcbd)
  *  update dependency smtp-server to v3.9.0 (86723292)
  *  update dependency eslint-plugin-import to v2.23.4 (886d65f6)
  *  update dependency eslint-plugin-import to v2.23.3 (c3b0e2fa)
*  lint (2b42e7ed)
*  fix indentation (d07229aa)
*  up rewards (ca9ca876)
*  incrementing version number - v1.17.1 (0aad1312)
*  update changelog for v1.17.1 (1e6ed0ad)

##### Documentation Changes

*  add undoTimeout (2db77b0c)

##### New Features

*  add merge/fork hooks (c9348efb)
*  #9628, allow setting custom icon names (2fe30b6f)
*  #9617 update fa link (52596902)
*  add bodyClass to 500 page (46a454f1)
*  clear reset tokens on successful login (f9728aff)
*  add filter:categories.categorySearch (be19f27f)
*  allow nested properties on category page (#9601) (cc0cf99f)
*  show ip on acp manage users (8ea58432)
*  add undoTimeout to moving posts as well #9599 (e588948f)
*  make undoTimeout configurable, closes #9599 (05cc7ccb)
*  introduce boolean res.locals flag to bypass session reroll (used by session-sharing) (816856b0)
*  allow modifying default category privileges (57e46e41)
*  add filter:notifications.create (ac7b093f)
*  pass req.query to getUnreadData (3d5fef6e)
*  added GET user route for api v3 (d2960aeb)

##### Bug Fixes

* **docs:**  #9648 (e03782f2)
* **deps:**
  *  update dependency mongodb to v3.6.10 (f17625fb)
  *  update dependency nodebb-theme-persona to v11.0.25 (c11927c5)
  *  update dependency sortablejs to v1.14.0 (5ff9319f)
  *  update dependency nodebb-theme-persona to v11.0.24 (c7feea56)
  *  update dependency nodebb-plugin-composer-default to v6.5.33 (3611b04e)
  *  update dependency nodebb-plugin-markdown to v8.14.0 (e40f648f)
  *  update dependency nodebb-plugin-markdown to v8.13.1 (cf6fcc21)
  *  update dependency nodebb-plugin-composer-default to v6.5.32 (#9626) (90e3f5ac)
  *  update dependency nodebb-plugin-composer-default to v6.5.30 (#9624) (2060dc61)
  *  update dependency postcss to v8.3.5 (09aebbda)
  *  update dependency postcss to v8.3.4 (520050da)
  *  update dependency postcss to v8.3.3 (c7006ec6)
  *  update dependency ioredis to v4.27.6 (82b33dc4)
  *  bump persona (f4eb336a)
  *  update dependency postcss to v8.3.2 (88f21e91)
  *  update dependency postcss to v8.3.1 (71b4d634)
  *  update dependency ioredis to v4.27.5 (9f74caf6)
  *  update dependency connect-redis to v6 (#9590) (6632b2b6)
  *  update dependency ioredis to v4.27.4 (4ffd234f)
  *  update dependency nodebb-theme-persona to v11.0.21 (062928d2)
  *  update dependency mongodb to v3.6.9 (d8c64479)
  *  update dependency autoprefixer to v10.2.6 (3aeac357)
*  #9634, re-jig top bar of Admin > Manage > Users (b8964843)
*  hide private user data in api/v3/users/[uid] (97c8569a)
*  numThumb upgrade script (d9e2190a)
*  acp dashboard sometimes not loading on cold load (fee782c4)
*  #9636, sanitize all attributes in meta and link tags (84904976)
*  convert some hooks to use hooks module (09bac6bd)
*  #9627 (acdbd049)
*  #9629, translate content property of meta tags (561ce7d3)
*  prevent crash in expandObjBy #9618 (ab6f062f)
*  dont show system tags in whitelist dropdown to regular users (0d975bc4)
*  #9622 (#9623) (84e06575)
*  #9620, fix notif delay (73f40e96)
*  #9619, add group chat filter to /notifications (c92fc19b)
*  scope (3cd9434b)
*  #9615, catch exceptions in renderOverride (1eda538d)
*  purge uploaded images accordingly #9606 (#9611) (8168c6c4)
*  keep query params when switching chat (7b4c0a16)
*  accidental unnecessarily strict conditional that effectively rendered SSO state checking opt-in instead of opt-out (a2400f6b)
*  introduce artificial delay + delay fudging on invalid email during reset token generation (f6c14d6b)
*  #9605, expire all active reset tokens for a uid if that uid generates a new one (229f96f8)
*  lint (8c952aa3)
*  schema (39e13591)
*  pagination on acp users search (6695927e)
*  #9596, incorrect placeholder string in some translations (93d94564)
*  extra ')' (6f732611)
*  disallow editing of other users' notes (edcba61a)
*  #9592, check session (286644d0)
*  don't crash if session doesn't exist (3717df61)
*  lint (66cae54e)
*  improper use of filename extensions (16e0bca5)
*  return null (d8d6c989)
*  updates navigation menu user icon (f9b248b8)
*  returnOriginal deprecation (3fb74445)
*  error when trying to trim an object (48b8e3bb)
* **post-queue:**  moderatedCids is an array of numbers (#9631) (db65360c)

##### Performance Improvements

*  cache Topics.getTopicsTags (8e0561f2)
*  bypass getMultipleUserSettings (10ddfff3)

##### Tests

*  fixed broken tests from #9605, removed token clean on token usage as it is superceded by token clean on generation (+ associated test) (5c42b3ea)

#### v1.17.1 (2021-05-26)

##### Chores

* **deps:**
  *  update dependency grunt to v1.4.1 (0e37bbfd)
  *  update dependency jsdom to v16.6.0 (60170ad6)
  *  update dependency eslint to v7.27.0 (298af98d)
  *  update dependency eslint-plugin-import to v2.23.0 (1623ba4f)
  *  update commitlint monorepo to v12.1.4 (4a01313d)
  *  update commitlint monorepo to v12.1.3 (b82774c5)
  *  update dependency eslint to v7.26.0 (d1418210)
  *  update dependency lint-staged to v11 (1bf57d40)
  *  update dependency mocha to v8.4.0 (461e187b)
  *  update dependency eslint to v7.25.0 (32c20806)
  *  update dependency grunt to v1.4.0 (a30deef3)
*  incrementing version number - v1.17.0 (75f7972b)
*  update changelog for v1.17.0 (4c441a1b)

##### Documentation Changes

*  update API docs to better outline authentication options (6ef0c8e9)
*  update API authentication verbiage (d08d0c42)

##### New Features

*  keep query string when redirecting category (77dde41f)
*  add req.query to flags.list/getCount (3d6bdeb3)
*  add filter:flags.getFlagIdsWithFilters (d35c64b1)
*  #9559, set order help text (f5847f4f)
*  add filter:user.getWatchedCategories (4afca690)
*  pass req.query to getUserDataByUserSlug (518157d9)
*  #9508, add cluster support (94c12e37)
*  #9551 (a3d6c56e)
*  add template to hook (1f3e6601)
*  add filter:account.getPostsFromUserSet (a2442ee9)
*  automatically attempt reconnection on window focus (8cc61f11)
*  #9533, allow redirect in build hooks (f6b583bb)
*  add _hooks metadata object to all hooks that have object-type params (46899cca)
*  add filter:categories.copySettingsFrom (d8e4fd4c)
*  guard against multiple resolves (084c9851)
*  #9511 send notifications on accept/reject (b40fc4b6)
*  `hidden` class to FOUC (2bfa63ae)
*  add filter:middleware.autoLocale (a478dc7e)
*  remove sync hooks support (01956af4)

##### Bug Fixes

*  #9580, proper 404 when ajaxifying (9ebfdeb7)
*  lint (09f51792)
*  #9567 fix tests (951e71a0)
*  #9567, use regular 404 (5215c30a)
*  ioredis upgrade fix, maybe (1ce59508)
*  bug where interstitial errors were not properly passed to the front-end via req.flash (1d9cfe1e)
*  #9553, use same fields for user search results in acp (0551642a)
*  lint (e8c5c18a)
*  lint (ffa80163)
*  tests (fad5988e)
*  tests (074ee859)
*  wrong error message checked (a9bb1088)
*  #9507 session reroll causes socket.io to become confused (#9534) (ec6d1e23)
*  isObjectField(s) empty field (2c22b06f)
*  do not register SW for Safari until upstream fixes #9193 (ce5fea2a)
*  infinite scroll with small number of items #9524 (#9525) (cb1dd0a3)
*  #9519 unable to properly ajaxify to home on subfolder installs if anchor did not have a trailing slash (db48b952)
*  #9512, fix chat icon if no privileges (6ed8890c)
*  #9503, dont error in markUnread if room doesnt exist (308252f5)
*  use socket.request.headers (9e07efc1)
*  buildReqObject headers for socket.io calls (ed534f34)
* **deps:**
  *  update dependency sharp to v0.28.3 (963a9fe6)
  *  update dependency ioredis to v4.27.3 (075dab27)
  *  update dependency nodebb-theme-vanilla to v12.0.8 (#9574) (10290f54)
  *  update dependency mongodb to v3.6.8 (#9573) (64935787)
  *  update dependency postcss to v8.3.0 (ad4afd59)
  *  update dependency nodebb-theme-persona to v11.0.20 (403bcfac)
  *  update dependency nodebb-plugin-composer-default to v6.5.29 (8d7e4420)
  *  update dependency mongodb to v3.6.7 (f29e4e87)
  *  update dependency textcomplete to ^0.18.0 (9b7653cc)
  *  update socket.io packages to v4.1.2 (#9563) (ca7c77bc)
  *  update dependency nodebb-plugin-dbsearch to v5.0.2 (#9562) (2d0564cb)
  *  update dependency nodebb-theme-slick to v1.4.7 (bf4aa50c)
  *  update dependency nodebb-plugin-composer-default to v6.5.28 (4164b322)
  *  update socket.io packages to v4.1.1 (155a7fb6)
  *  update socket.io packages to v4.1.0 (53335677)
  *  update dependency sharp to v0.28.2 (4bc07a08)
  *  update dependency postcss to v8.2.15 (7770c2a1)
  *  update dependency nodebb-theme-persona to v11.0.19 (3145c7d5)
  *  update dependency nodebb-plugin-mentions to v2.13.11 (7e2ea4df)
  *  update dependency nodebb-plugin-markdown to v8.12.10 (2ac5a085)
  *  update dependency nodebb-plugin-markdown to v8.12.9 (ee3634cc)
  *  update socket.io packages to v4.0.2 (ff98f854)
  *  update dependency postcss to v8.2.14 (22ec1ea5)
  *  update dependency sitemap to v7 (0389dd96)
  *  update dependency nodebb-widget-essentials to v5.0.4 (19f1cbfc)
  *  update dependency nodebb-theme-persona to v11.0.18 (33d91fde)
  *  update dependency connect-redis to v5.2.0 (c0d54a06)
  *  update dependency postcss to v8.2.13 (831e5c26)
  *  update dependency postcss to v8.2.12 (38454df9)
* **#9508:**  switch to ioredis (#9545) (dd81dd03)

##### Refactors

*  cli/upgrade async/await (#9558) (ac86937c)
*  bubble other errors (0096cf17)

##### Reverts

*  sync hooks (5fe97b9c)

##### Tests

*  fix tests (1029a06a)
*  fix redis tests (4e490f60)
*  add test for undefined fields in getObjectsFields (92de49be)

#### v1.17.0 (2021-04-22)

##### Breaking Changes

*  add additional flag hooks [breaking] (00a68a95)
*  remove deprecated `User.emailConfirm` [breaking] (fb84c785)
*  remove deprecated plugin hook `filter:privileges:isUserAllowedTo` [breaking] (5a775e09)
*  remove deprecated plugin hook methods [breaking] (d41de481)
*  more removals of thumb specific backwards-compatibility [breaking] (cc0d562e)
*  remove deprecated `filter:admin/header.build` hook [breaking] (5f9f241e)
*  remove deprecated v2 style responses for thumbs upload route [breaking] (84dfdfe6)
*  remove deprecated getObject routes [breaking] (2ad0d0d0)
*  remove 'filters' and 'categories' from flag details API return [breaking] (8b72479f)
*  filtering logic of flags [breaking] (1603566b)
*  feature flag for auto-resolving a user's flags on ban [breaking] (6b1c97db)
*  allow interstitial callbacks to be async functions [breaking] (280285cd)

##### Chores

* **deps:**
  *  update dependency jsdom to v16.5.3 (0f249aa7)
  *  update dependency eslint to v7.24.0 (60c0c16f)
  *  update dependency husky to v6 (f155f326)
  *  update commitlint monorepo to v12.1.1 (b4d01388)
  *  update dependency jsdom to v16.5.2 (5e2e7a58)
  *  update dependency eslint to v7.23.0 (d600cd94)
  *  update dependency husky to v5.2.0 (77f551a4)
  *  update dependency jsdom to v16.5.1 (28ed579b)
  *  update dependency eslint to v7.22.0 (775c3b91)
  *  update dependency mocha to v8.3.2 (3ce731d8)
  *  update dependency jsdom to v16.5.0 (fd926d61)
  *  update dependency mocha to v8.3.1 (651c629f)
  *  update dependency husky to v5.1.3 (8791b44e)
  *  update dependency husky to v5.1.2 (5f061b94)
  *  update commitlint monorepo to v12 (42f7cd52)
  *  update dependency eslint to v7.21.0 (59518437)
  *  update dependency husky to v5.1.1 (2551295c)
  *  update dependency husky to v5.1.0 (dc06fe22)
  *  update dependency eslint to v7.20.0 (9ec0b2ed)
  *  update dependency mocha to v8.3.0 (73f07958)
  *  update dependency husky to v5 (d89ccf26)
  *  update dependency lint-staged to v10.5.4 (030ecffa)
  *  update dependency eslint to v7.19.0 (3696a199)
*  incrementing version number - v1.17.0-beta.5 (42c4f963)
*  fix indent (6406e527)
*  benchpress 2.4.1 (3403635c)
*  remove log (a1ee1a2a)
*  incrementing version number - v1.17.0-beta.4 (91992240)
*  bump composer-default (289bfc0b)
*  up themes (d14ba1f4)
*  remove node 10 (8d3ec234)
*  bump composer-default to 6.5.20 (33fbfdfe)
*  incrementing version number - v1.17.0-beta.3 (6e8b1bb9)
*  add multiparty dep (ef3ec96a)
*  incrementing version number - v1.17.0-beta.2 (0c1945dc)
*  incrementing version number - v1.17.0-beta.1 (31872aac)
*  bump composer (30954789)
*  bump deps (#9335) (b9fd2c87)
*  incrementing version number - v1.17.0-beta.0 (b61257ef)
*  incrementing version number - v1.16.3-beta.0 (477157cc)
*  extra console.log (1ae8dda8)
*  up composer (1c9acef6)
*  eslint max-len (cc9d6fd0)
*  eslint no-restricted-syntax (5c2f0f05)
*  eslint prefer-rest-params, prefer-spread (115d19e2)
*  eslint prefer-destructuring (23f212a4)
*  eslint object-curly-newline (8d1462ff)
*  eslint function-paren-newline (62869bae)
*  eslint no-var, vars-on-top (dab3b235)
*  eslint prefer-arrow-callback (b56d9e12)
*  eslint prefer-template (707b55b6)
*  eslint import/newline-after-import (4ee0f145)
*  eslint no-script-url (9f6a682c)
*  eslint no-bitwise (dad01e30)
*  eslint rules matching existing styles (58528d1a)
*  fallbacks (74be1a59)
*  deprecation notices for plugins using plugin old hook methods (3052256d)
*  add deprecation notice in comments for ajaxify.loadExtraScripts (8b09292e)
*  incrementing version number - v1.16.2 (ea7f8381)
*  update changelog for v1.16.2 (d3883d4b)

##### Documentation Changes

*  fixed typo (e7550673)
*  added comment re: #9305 (65c57c73)
*  update deprecation-removal version for plugin hook helper methods in 1.18.0 (15ba0abb)

##### New Features

*  lang strings (9b71b087)
*  rate limit file uploads (a9978fcf)
*  filter flags by username #8489 (#9451) (8faa6e45)
*  roll session identifier on login, as security best practice (697ed3bf)
*  allow different slugs (4494728c)
*  remove sort again (fd3bc605)
*  update  hook (f65d2162)
*  add reverse of recent to getSortedTopics (05f22361)
*  allow exists methods to work with arrays and single id (285aa365)
*  pass all data to filter:category.get (d16b45fd)
*  add action:posts.loaded (dbb59228)
*  rescheduling (editing ST) (#9445) (aa0137b1)
*  upgrade sharp (#9442) (f7f46e7c)
*  optional urlMethod param for loginStrategies (9e1f72a4)
*  add hooks to language loading (#9426) (344575dd)
*  doggy.gif (b06f0ea2)
*  allow adding sorted-list items from forms outside of modal (a3e95e79)
*  scheduled topics (#9399) (077330b7)
*  show link if category is a link (a94d9651)
*  make info page full width (dd12c83f)
*  allow optional fields argument on db.getObject(s) (#9385) (4327a09d)
*  closes #9380, add category filtering and topic tools to tag page (668508cc)
*  allow sync function (#9379) (34b9aaed)
*  allow filter functions that return promises or the data directly (e6c52cf2)
*  add resolve flag to post tools (52082e12)
*  hide revert button in ACP > Privileges until privileges change (4cbd13fd)
*  bring back static hook timeout (46270f9f)
*  upgrade connect-mongo, closes https://github.com/NodeBB/NodeBB/pull/9367 (3c60ccfd)
*  pass interstital errors to individual partials as well as to registerComplete (f71cb0e4)
*  add filter:plugins.firehook (5eb3132d)
*  copy default favicon if it doesn't exist (754283d3)
*  add missing translation keys (17184bfa)
*  allow missing (or non-array) middlewares argument in route helper methods (4b545085)
*  pass modified params, only affects filter hooks (e74df539)
*  add back topic id input (696c4895)
*  expose username validation logic to user lib, new hook `filter:username.check` (bfd512b9)
*  add $.deserialize to client side (e5133a78)
*  allow for settings.save/settings.load on client side (66196d2c)
*  remove promise-pollyfil (902a88c2)
*  category privilege API routes (c1b3079d)
*  change uploadCroppedPicture to use updateProfile as well (0af9d26f)
*  use updateProfile for picture change (a598abcd)
*  allow payload to be passed to emailer test method (1155b0c4)
*  add uid of user who created flag to action:flags.create (069ac60f)
*  new client-side hook `filter:api.options` to allow plugins to modify api requests (7d391d47)
*  keep notifs for one month, load 50 notifications instead of 30 (02f08111)
*  also pass in uid to `filter:email.prepare` (86b0c57d)
*  new hook `filter:email.prepare` (27ea3dcb)
*  new hook static:email.send (bf90d158)
*  show time info for upgrade scripts (14a6c349)
*  add dashboard sub-pages to ACP menu (73dc64d9)
*  recent logins sessions table in dashbaord subpage (2f89b0d7)
*  topics dashboard details subpage (e1ed514b)
*  update user list in dashboard/users on graph update (c57c7703)
*  show list of recent users in dashboard/users (cc938224)
*  req.query parsing and dynamically loading data instead (6fdcae73)
*  new hooks for notifications get/getCount (079a13d4)
*  allow hook unregistration, and temporary page-based hooks (d0136074)
*  report login statistics from analytics data, instead of its own zset (16d3c457)
*  track login sessions for admin dashboard reporting (9a9f366d)
*  track successful logins in analytics (504fd107)
*  pass user picture object into change_picture_modal (c96fd3b1)
*  add logout to invalid session (beb14273)
*  category search test (a592ebd1)
*  pass post object to filter:post.tools (ed3d9dcb)
*  allow defining a list of system tags (0e07f3c9)
*  add category search test, #9307 (bbaaead0)
*  add tag filter to getSortedTopics (9ce6f8ad)
*  ability to re-order topic thumbnails (7223074f)
*  add close button to topic thumbnail modal (db027170)
*  #9304, add category/topic/username to post queue notification emails (0738dae8)
*  add failing test for list append/prepend with list (#9303) (8f0386d9)
*  link to post-queue from topic event (a4b4a556)
*  post-queue topic event (8fd78ce5)
*  add post-queue cache (3f35fd33)
*  newsletter opt-in/out in UCP, closes #21 (3c7cd9a6)
*  load user posts/topics via xhr on infinitescroll (35954734)
*  #9294, put new categories at top (4b2bf12f)
*  add invalid event name to error message (670cde78)
*  new notifications load/loaded hooks on client side (7edc8f45)
*  pass req.session into buildReqObject (a6fa351b)
*  new hook `action:login.continue` (4f976390)
*  banned-users group (53e0d4d2)
*  #9109, ability to delete a post's diffs (eb642f40)
*  add .delete() method to api module (501441b7)
*  doc add description (cc560ca3)
*  add doc for query param (ed11e171)
*  #9234, add pagination to /api/recent/posts/:term? (fffdc4e0)
*  allow sorted-lists on multiple pages (d5d24594)
*  #9232, add profile picture into exported zip (f6cd2862)
*  new hook `filter:login.override`, deprecate `action:auth.overrideLogin` (b820d234)
*  guard password fields in login/register against accidental caps lock (4bb3b032)
*  ability to search categories, #8813 (34c42c6f)
*  restore action:script.load, allow modifying loaded module via static:script.init (05be1c66)
*  async/await redis connection (fdfbc902)
*  async/await psql connection (33bf1b0e)
*  add group name to csv event (672959c1)
* **user:**  icon background selector in change picture modal (95502124)
* **remountable-routes:**
  *  allow category and account routes to be remounted (9021f071)
  *  allow /admin and /post to be remountable (f01af62b)
* **topic-events:**
  *  topic events GET route in write API (dc84559d)
  *  server-side tests for topic events (449c379d)
  *  clear out topic events when a topic is purged (0d4a3775)
  *  client-side handling on topic event log (8e93bf73)
  *  handle newest_to_oldest sort in topic events, WIP (882e6a15)
  *  generic css for timeline-event (2293a07a)
  *  support for uids in topic event payloads (611d1f87)
  *  work in progress topic events logic and client-side implementation (ab2e1ecb)
* **hooks:**
  *  update action:ajaxify.end to use new hooks module (1d775721)
  *  client-side hooks module (01c9b184)

##### Bug Fixes

*  regress. rescheduling shouldn't add to sets that pinning removed… (#9477) (8b79c7f1)
*  logic is hard (4dd38446)
*  run in series (bc0ca61c)
*  wrong variable for cache (2e9efc0e)
*  accidentally committed this (13fa983e)
*  tests (eb240c90)
*  eslint (fa0c92a7)
*  use req.ip instead, since guests can upload as well (ea22cd30)
*  #9492, keep query params on redirect (36f119a9)
*  stripTags for editing sorted list items as well (93598982)
*  #9487, session data gathered during a session is lost upon login (1fee6a70)
*  failure on session reroll 🍣 test (f4c5050a)
*  registration interstitials not handling promise rejections properly (e845c34b)
*  stripHTMLTags for sorted list entries (75073c0e)
*  restore original behavior for up/downvoting when logged out (e50408b4)
*  let recent replies respect oldest/newest sort settings (60eed8d8)
*  #9483, fix events count display (6907837f)
*  escape flag reason (161081e9)
*  copy change on plugin activate to instruct admins to rebuild as well as restart (95d5359c)
*  updateCategoryTagsCount (2dc3283f)
*  #9473 (#9476) (036f935f)
*  #9474, load hooks on page load (1af34b43)
*  spec (d09cdc04)
*  #9466, don't call leaveRoom in maintenance mode (f32ea173)
*  exempt ST from being del/res via last main posts (#9468) (a0dd9080)
*  #9462, on install copy default favicon (784600d9)
*  #9463 (c5ae8a70)
*  #9465 (4041e786)
*  #9450 express session saved even if saveUninitialized explicitly passed in (9c52fd2e)
*  acp crash (cb53a64c)
*  #9447, include query params in previousUrl (536591f8)
*  thumb count not updated when uploading multiple thumbs at a time (1ad1787e)
*  change email button stays disabled if user submitted an invalid email (01f63e5d)
*  use app.logout() to clear session after deleting user (cfdef77b)
*  ./nodebb help with commander@7 (#9434) (2a03012e)
*  hide titleRaw for deleted topics as well (edf80cfb)
*  #9410, fix post queue (c5dda64f)
*  privilege tables (9052db93)
*  #9420, paginate after loading notifications (67b09cba)
*  hooks for alert animate, no more fadein/fadeout for reconnect alert (d9e20290)
*  #9414, use posts:view_deleted (e42b152f)
*  preserve order when changing parent (2ceda70a)
*  #9411 (3c4e93a3)
*  #9412 (cef58d1d)
*  #9406, update flag post tools (93c595d9)
*  typo in switch..case (d8ff9851)
*  #9404, show signatures if the target user has signature privilege (801570e4)
*  selector (ee69c1f8)
*  sorting when filtering by uid (75553b24)
*  allow local (and overridden) login strategies to pass Error objects back (98b72ca5)
*  category search not using uid (6aa60b63)
*  inf scroll with subfolder install (262e059f)
*  flicker on dashboard (2041b808)
*  #9398, crash on post flag (90d64fe1)
*  #9395, pass all data from client to Topics.reply (#9396) (a8f7b244)
*  lint (4ac38ab2)
*  #9394, fix guest handles (eb360351)
*  #9387, don't try to load undefined images (03e30634)
*  #9389, allow admins to add themselves to private groups (5c59354c)
*  #9386, add missing translation string (482641e3)
*  #9383, don't show deleted topic titles in inf scroll (e789fe8d)
*  #9378, crash on verifyToken if API Token settings not saved (null case error) (cc489708)
*  closes #9382, fix digest topic links (35700d16)
*  spec (1e1127bd)
*  regression from filter hook change (53f67ff3)
*  crash if unreadTopics is undefined (617f4730)
*  dont crash if login el doesnt exist (f45c0aab)
*  regression via c1b3079d93fb4c49ba62a4be5279b7bff8e5a54d (2a939aad)
*  change notification updateCount to use client-side hooks (84725130)
*  tests (39b0e0fb)
*  #9370, show correct teaser index if sorting is newest to oldest (9382fc6d)
*  don't copy if src doesn't exist (ebccc794)
*  #9362 best not to check file exists on every page load; copying favicon to uploads/system folder instead (771a8955)
*  #9362 (ad565495)
*  regression where login redirect for admin routes didn't go to local=1 (678e8f0f)
*  lint (f4f61b92)
*  if no in passed use "titles" to match header search (e787e6ea)
*  add back middleware.authenticateOrGuest (166d65a1)
*   request authentication called twice in account routes (e3b2c00d)
*  #9354, don't close quicksearch results if mouse is down on them (8a4c361e)
*  #9339, only log email errors once per digest, notification push (3aa26c4d)
*  winston.info (3f42d40c)
*  #9351 bad logic when inserting rows to privilege tables, also a missing tfoot :foot: (c5e25788)
*  app.parseAndTranslate to always return promise (c2650169)
*  bug where fallback window trigger was not firing if there were no hook listeners attached (1e579428)
*  bad assignment (c8b78654)
*  #9348 incorrect redirect via connect-ensure-login (fbe9215b)
*  bug where loginSeconds setting was ignored for local login (f806befd)
*  remove old dep (b58bacaf)
*  notif pruning (2737f653)
*  notification prune test (ca817631)
*  user icon text overflow in some cases (2b7d0b5a)
*  use components for toggleNavbar instead (114e3a1e)
*  allow interstitial callbacks to be functional (no cb required) (9bf94ad5)
*  don't publish before pubClient is connected (cdf5d18f)
*  remove unused async (48f1e265)
*  in setupPageRoute helper, buildHeader after plugin hooks have fired (984c9dd9)
*  timeago missing on table update (655e2c67)
*  wrong qs param, allow string to be passed to util.getDaysArray (f8e1a74c)
*  wrong call to sortedSetAdd (dbe5f702)
*  session not persisting to database in some scenarios (020f0b83)
*  allow hidden inputs in user settings page (beaac0a1)
*  use root context if buildAvatar context is undefined (b4c0b32b)
*  use bootbox module (fa91525a)
*  #9307, use _.flatten (25c8f026)
*  awaiting res.render in send404 controller > > A plugin wanted to use `response:rotuer.page` to 404 a specific page on some condition. res.render returns early in send404 and so must be awaited otherwise multiple responses will be sent (2fef4627)
*  do not overwrite `config.port` from URL, if it's already set (34096b73)
*  switch back to getSortedSetRange (8686fbfa)
*  settings v3 (91734a64)
*  another topic thumb test fix (782bef5e)
*  thumbs.associate logic fix + tests (7ebb6d30)
*  missing awaits, possible test fix (7665adf7)
*  #9301, dont call sitemapstream if there are no entries in categories/pages/topics.xml (9a6cf3d9)
*  properly incase its the same path (807b0d43)
*  numThumbs count on associate (76bcc0c9)
*  missing cache deletion calls for post-queue cache (1490b32d)
*  use of removed URL to get post data (36e8d251)
*  init topic events from webserver.js (b81508c4)
*  check null topics (b753c69c)
*  guard against null topics (58cd797e)
*  tests, new categories go to top now (fc90f32e)
*  #9292, messageobj.content already parsed (c953b1b3)
*  clear category cache on copy parent (765db86d)
*  delete category cache key on category create (ed3e9ce2)
*  typo (c61cc37b)
*  wait for event.log to finish before killing process (a5fa212f)
*  tests, only generate csrf_token on 404 gets (b6493f89)
*  #9287, generate csrf_token on 404 (94f72d60)
*  do not blindly escape a notification's bodyLong (783786cf)
*  pass jquery object in to action:notifications.loaded hook (16610b2d)
*  #9275, (0cca6893)
*  don't use global bootbox obj (cfa0d423)
*  remove console.log (550cd995)
*  move service worker back to relative_path/service-worker.js (fca17cb7)
*  spec (ab0ef442)
*  markread selector (a4878a5b)
*  position when scrolling up (3090a2ae)
*  cache key collision (e40af441)
*  tests breakage due to 67e3fb64981fe2310b17515e1f18c32021a5e983 (5c21c33e)
*  register returnTo logic to match login route (67e3fb64)
*  tests (492cbc62)
*  posts.uploads.sync dissociates uploaded thumbs of the main pid (f79aeef8)
*  update grammar on unban text (68da1c55)
*  privileges page - tweak icon position and width, group name wrapping (c729adeb)
*  autofocus on search field in ACP > Manage > Plugins (4af9c2fc)
*  openapi test specs (cabec378)
*  include admins (7c9674de)
*  include admins, limit to category mods, correct privilege name (eaf9d2e4)
*  http 200 test for api routes (bd583963)
*  invalid API call when unfollowing a user (58655e9a)
*  example (833c73e8)
*  #9127, scope service worker to relative_path for the forum (#9239) (2bc74cff)
*  update docs (4c12e0aa)
*  broken test after sorted-lists logic change (d6f60f45)
*  clear all locks on restart (9834f72f)
*  `action:admin.settingsLoaded` to use new hooks lib (5131eb6b)
*  crash on firing action hook that had no listeners registered (b0f5d5a5)
*  bug where `action:settings.sorted-list.loaded` fired early (1a04ec64)
*  regression where `filter:settings.set` no longer received sorted-lists (a8be6fb8)
*  #9231, fix redis pubsub connection (5bc1f5b4)
*  don't translate message on every ajaxify (a29dd21d)
*  tests (05c53394)
*  improper override of req.body.username in login logic (74199220)
*  full settings hash not passed through to action:settings.set (473d5f4a)
*  #9223, don't overwrite stmp settings (a5bf9779)
*  multiple sorted-lists do not save to the correct set (4029ec37)
*  pass module name to `static:script.init`, +comments (f8bf9e99)
*  handle delete and update for categories:name zset (e8429f50)
*  tests remove old routes (faeb6373)
*  removed object routes (d41ce873)
*  removed methods (647d3ba8)
*  incorrect return for Thumbs.get() if thumbs were disabled (7b090c58)
*  script failure if client-side page script does not exist (7da1b43f)
*  bug where `action:ajaxify.end` was never called if there were no init scripts (faf59603)
*  update js concatenation logic to bundle scripts.rjs into minfile regardless of build environment (8ff07bc1)
*  #7125, allow list for page route, configurable via plugin hook (f975063b)
*  error on flag list if no flag filters were saved in session (942d9247)
*  mod cid filter accidentally saved in session (35c92d0c)
*  more tests for #9217 (ce7c74b2)
*  tests for #9217 (f2a5cd0b)
*  missing return for #9217 (27cae0d5)
*  #9217, render 400 error page on bad access to /register (b2b1450e)
*  redis check compat tests (78896fc6)
*  registration completion overriding returnTo if it was already set (a186ea0f)
*  add missing user delete event types (5c1b7429)
*  missing option for user-deleteAccount on ACP Events page (1c420602)
* **deps:**
  *  update dependency html-to-text to v7.1.1 (427e4f47)
  *  update dependency redis to v3.1.2 (35a4d0be)
  *  update dependency validator to v13.6.0 (e3d5d8d7)
  *  update dependency nodebb-plugin-composer-default to v6.5.27 (1b846271)
  *  update dependency redis to v3.1.1 (286a63e3)
  *  update dependency nodebb-theme-persona to v11.0.17 (51d58ce6)
  *  update dependency nodebb-theme-vanilla to v12.0.7 (16a1ba57)
  *  update dependency postcss to v8.2.10 (31cec2de)
  *  update dependency nodebb-plugin-mentions to v2.13.9 (fe087806)
  *  update dependency mongodb to v3.6.6 (#9467) (4264b236)
  *  update dependency sharp to v0.28.1 (34cbc9e2)
  *  update dependency nodebb-theme-persona to v11.0.16 (a8330b6d)
  *  update dependency nodebb-theme-vanilla to v12.0.6 (c02310b8)
  *  update dependency nodebb-theme-persona to v11.0.15 (316c71d7)
  *  update socket.io packages to v4.0.1 (e7776f8d)
  *  update dependency redis to v3.1.0 (fd9ff334)
  *  update dependency nodebb-plugin-composer-default to v6.5.26 (#9446) (8d9afbc6)
  *  update dependency postcss to v8.2.9 (6f51c460)
  *  update dependency nodebb-theme-persona to v11.0.14 (#9443) (fecfcd81)
  *  update dependency nodebb-theme-persona to v11.0.13 (#9437) (e5cc6e40)
  *  update dependency nodebb-theme-slick to v1.4.6 (dfdb0050)
  *  update dependency nodebb-theme-persona to v11.0.11 (27de58f2)
  *  update dependency benchpressjs to v2.4.3 (382f75bc)
  *  update dependency nodebb-plugin-composer-default to v6.5.25 (24236718)
  *  update dependency nodebb-theme-vanilla to v12.0.5 (89973d80)
  *  update dependency nodebb-plugin-composer-default to v6.5.24 (dec34446)
  *  update dependency nodebb-theme-persona to v11.0.10 (f78b4ba6)
  *  update dependency nodebb-plugin-composer-default to v6.5.23 (#9422) (e35d0741)
  *  update dependency nodebb-theme-persona to v11.0.8 (124cb9d9)
  *  update dependency benchpressjs to v2.4.2 (1dddcb49)
  *  update dependency nodebb-plugin-mentions to v2.13.8 (d511216c)
  *  update dependency connect-mongo to v4.4.1 (29ff5bb9)
  *  update dependency nodebb-theme-persona to v11.0.7 (c5734063)
  *  update dependency nodebb-theme-vanilla to v12.0.4 (#9409) (870e6c2c)
  *  update dependency nodebb-theme-slick to v1.4.5 (#9408) (24be8642)
  *  update dependency nodebb-theme-persona to v11.0.6 (#9407) (b50739c1)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.9 (#9405) (9359cae9)
  *  update dependency nodebb-theme-persona to v11.0.5 (47b2b97f)
  *  update dependency nodebb-plugin-composer-default to v6.5.21 (#9401) (2f70ac5a)
  *  update dependency mongodb to v3.6.5 (fcd887fd)
  *  update dependency nodebb-plugin-composer-default to v6.5.19 (#9391) (1631f159)
  *  update dependency nodebb-plugin-composer-default to v6.5.17 (#9384) (8d401760)
  *  update dependency nodebb-theme-persona to v11.0.3 (27facadb)
  *  update dependency socket.io-redis to v6.1.0 (adaddde6)
  *  update dependency nodebb-plugin-composer-default to v6.5.16 (a98e92b4)
  *  update dependency nodebb-plugin-markdown to v8.12.7 (#9371) (56b0bfd5)
  *  update dependency nodebb-theme-vanilla to v12.0.2 (#9369) (8923d34c)
  *  update dependency nodebb-theme-persona to v11.0.2 (#9368) (fa71c483)
  *  update socket.io packages to v4 (#9363) (13f3c504)
  *  update dependency postcss to v8.2.8 (680cf5ef)
  *  update dependency nodebb-theme-persona to v10.5.17 (2645bf55)
  *  update dependency connect-mongo to v4.3.1 (59459074)
  *  update dependency connect-mongo to v4.3.0 (f388086a)
  *  update dependency autoprefixer to v10.2.5 (4f4cdacc)
  *  update dependency postcss to v8.2.7 (72db3754)
  *  update dependency nodebb-plugin-composer-default to v6.5.13 (017af7cb)
  *  update dependency jquery to v3.6.0 (dd6082a0)
  *  update dependency connect-mongo to v4.2.2 (ec0912cc)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.8 (#9337) (536bae70)
  *  update dependency nodebb-plugin-composer-default to v6.5.12 (2674de01)
  *  update socket.io packages to v3.1.2 (510eb1f9)
  *  update dependency nodebb-theme-persona to v10.5.16 (217d3afd)
  *  update dependency nodebb-plugin-emoji-android to v2.0.5 (e8209341)
  *  update dependency sharp to v0.27.2 (c5231f10)
  *  update dependency nodebb-theme-vanilla to v11.4.5 (8596dcc4)
  *  update dependency nodebb-theme-persona to v10.5.15 (753ab0a0)
  *  update dependency nodebb-theme-persona to v10.5.14 (ed503b80)
  *  update dependency nodebb-theme-persona to v10.5.12 (ddd8fa31)
  *  update dependency benchpressjs to v2.4.1 (4ee3a8e8)
  *  update dependency nodebb-theme-persona to v10.5.10 (7f8fd4b0)
  *  update dependency nodebb-theme-persona to v10.5.9 (5dd748c6)
  *  require xregexp 5.0.1 (86e911ba)
  *  update dependency xregexp to v5 (513cd1c3)
  *  update dependency nodebb-theme-persona to v10.5.8 (54b4dc1d)
  *  update dependency postcss to v8.2.6 (4d92af5a)
  *  update dependency nodebb-theme-persona to v10.5.7 (#9288) (c2459fd5)
  *  update dependency nodebb-plugin-composer-default to v6.5.10 (b312725f)
  *  update dependency nodebb-theme-persona to v10.5.6 (4599144f)
  *  update dependency nodebb-widget-essentials to v5.0.3 (#9284) (eb9f058f)
  *  update dependency nodebb-plugin-composer-default to v6.5.9 (6e14014b)
  *  update dependency nodebb-plugin-composer-default to v6.5.8 (674a31d1)
  *  update dependency nodebb-theme-slick to v1.4.3 (#9278) (d3923585)
  *  update dependency nodebb-theme-vanilla to v11.4.4 (#9279) (1f28e8c3)
  *  update dependency nodebb-theme-persona to v10.5.5 (#9277) (a7b46adc)
  *  update dependency connect-redis to v5.1.0 (#9276) (83a0b6b8)
  *  update dependency nodebb-theme-persona to v10.5.4 (#9270) (dc145284)
  *  update dependency nodebb-theme-vanilla to v11.4.3 (#9272) (2fda6774)
  *  update dependency nodebb-theme-slick to v1.4.2 (2b12905d)
  *  update dependency nodebb-theme-lavender to v5.2.1 (fb2f1143)
  *  update dependency nodebb-theme-slick to v1.4.1 (#9262) (2cfab367)
  *  update socket.io packages to v3.1.1 (#9253) (2147d386)
  *  update dependency postcss to v8.2.5 (1fa0d4f4)
  *  update dependency nodebb-plugin-emoji-android to v2.0.1 (42e365d9)
  *  update dependency nodebb-plugin-markdown to v8.12.6 (4fd6027b)
  *  update dependency nodebb-plugin-mentions to v2.13.7 (8a2fe3d9)
  *  update dependency nodebb-theme-vanilla to v11.4.2 (2326e9a6)
  *  update dependency nodebb-theme-persona to v10.5.3 (9245ffaf)
  *  update dependency nodebb-plugin-dbsearch to v4.2.0 (389690c3)
  *  update dependency nodebb-plugin-composer-default to v6.5.7 (13e12c95)
  *  update dependency json2csv to v5.0.6 (0aa8e03f)
  *  bump theme deps for #9244 (44019e28)
  *  update dependency mongodb to v3.6.4 (56e4e56b)
  *  update dependency nodebb-theme-persona to v10.5.1 (04411449)
  *  update dependency nodebb-theme-vanilla to v11.4.0 (#9238) (897d29ec)
  *  update dependency nodebb-theme-slick to v1.4.0 (#9237) (8e2deab4)
  *  update dependency nodebb-theme-persona to v10.5.0 (#9236) (4f842a79)
  *  update dependency nodebb-theme-lavender to v5.2.0 (47fd1634)
  *  update dependency nodebb-plugin-dbsearch to v4.1.3 (1e10ebfb)
  *  update dependency nodebb-plugin-composer-default to v6.5.6 (0e2b329b)
  *  update dependency autoprefixer to v10.2.4 (6c3b1fde)
  *  update dependency nodebb-plugin-markdown to v8.12.5 (05901fcd)
  *  update dependency nodebb-theme-persona to v10.4.1 (a9b3fb37)
  *  update dependency sharp to v0.27.1 (a90773a6)
  *  bump persona to get timeline style (ca14c0e2)
  *  update dependency postcss to v8.2.4 (5b2f0be0)
  *  update dependency autoprefixer to v10.2.3 (d99cb1cf)
  *  update dependency postcss-clean to v1.2.0 (4232d97b)
* **#9315:**  api v3 post, put, del JSON (0d59fe3d)
* **remountable-routes:**
  *  more fixes to remountable routes (9d17f397)
  *  bug with user routes remounting to itself (bc68e990)
* **#9252:**  pass site domain to nodemailer (#9254) (5e5d37c3)
* **topic-events:**
  *  topicEvents.init() test (aa8b84bb)
  *  repeated invocations of Posts.addTopicEvents caused dupes to be added to DOM (df2fdd56)
* **hooks:**
  *  bug where hook firing would fail if there were no listeners (efff8e2a)
  *  fallback handling for core invocations of hooks.fire (412d2858)

##### Other Changes

*  schema docs for new ACP dashboard subpage routes (0804d547)

##### Performance Improvements

*  increase batch size for notifs, run parallel (728ac5ff)
*  faster category tags upgrade script (0dad568c)
*  use setObjectBulk (95033ef7)
*  make upgrade script faster (a07509f7)
*  make upgrade script faster (0959b124)
*  cache base_url (cf4002bc)
*  single call to get digest topics, dont send duplicate topics (5ce28207)
*  single db call to add all uids (90d5c9da)
*  make digests a little bit faster (0185ea1b)
*  only load thumbs for topics that actually have thumbs (7eebcbdb)

##### Refactors

*  make debug handler async (1db8920b)
*  widgets (#9471) (397baf02)
*  style, no need to convert length to string (d00268c9)
*  deprecate action:script.load, use filter:script.load instead (d1685600)
*  remove uncessary check (f316c4d4)
*  remove async.each/reduce from hooks for better stack traces (d05d7091)
*  use hooks.fire (0d3979ef)
*  fix variable name (1982edfd)
*  account edit logic and template, closes #9364 (98bf4064)
*  automatically authenticate all requests setup through route helpers (#9357) (7da061f0)
*  async listen testSocket (0021c601)
*  remove startsWith/endsWith (48bc23c0)
*  app.parseAndTranslate to return promise if no callback passed (b5a6a314)
*  privileges, export modules directly (#9325) (293b7c26)
*  have Graph.init and Graph.update return promises (3fa2e3ce)
*  abstract out some client side dashboard code into modules, analytics subpages for users, topics, and logins (f561799f)
*  move picture change client-side logic to its own rjs module (28f6931e)
*  remove dupe code (5286f208)
*  thumbs.associate accepts both relative path and url in path arg (3e6640ef)
*  move post queue retrival code to posts.getQueuedPosts (36f20211)
*  call topic events init from within file itself (6074a0fb)
*  improvements (970bd06f)
*  update dom after diff deletion better (a2a7557c)
*  removed 3 lines (4447a64e)
*  use Map to track sorted lists in Settings.set() (65de2e76)
* **user:**  all plugins to change list of icon background colours (fbccf6e2)
* **remountable-routes:**
  *  rename `src/routes/accounts.js` to `src/routes/user.js` to better match the route prefix (1f28713f)
  *  allow certain route prefixes to be mounted elsewhere (92758ec5)
* **topic-events:**
  *  expose addTopicEvents method in topic posts lib (9559fad8)
  *  break out some logic in events.get into local modifyEvent method (cec3fc93)
  *  fire topic event logging in topics/tools instead, pass uid into payload (425eca14)
* **hooks:**
  *  deprecate `action:script.load` client-side hook (8e5687a4)
  *  better error handling (e7bd038d)

##### Reverts

*  revert tag sort (f9df6431)
*  change toPid truthy (56523aa1)
*  bring back backwards compat (a1c01446)

##### Code Style Changes

*  eslint (b5ce8d25)
* **remountable-routes:**  abstract removable routes code to a separate local fn (16c1d6e9)

##### Tests

*  remove logs (435067aa)
*  clear cache between runs, require middleware later in helpers (2ea468da)
*  log (d15e2710)
*  remove equals (354e0a82)
*  test times (2f401d7d)
*  log (80ef1082)
*  added test for session id reroll on login (a3a7ab3a)
*  add missing test (8ef38cb2)
*  double filter test (70a653d0)
*  admin/manage/users tests (0e67ab01)
*  fix spec for topic thumbs (4c078084)
*  added missing properties to topicObject (1d9ade4c)
*  added missing test file (b31f6dd2)
*  topic reordering tests (ad54b174)
*  additional tests for topic thumbs (50664487)
*  added more topic thumbnail tests (28b30134)
*  post diff deletion tests (72b050b4)
* **user:**  added additional tests for icon background colour (d3a9e76a)

#### v1.16.2 (2021-01-21)

##### Breaking Changes

*  unescape header navigation originalRoute [breaking] (6cb5888c)
*  allow override of local fns in login controller, 400 instead of 500 for wrong login type [breaking] (1cf0032d)

##### Chores

* **deps:**
  *  update dependency husky to v4.3.8 (a6f5de86)
  *  update dependency eslint to v7.18.0 (afbef95f)
  *  update dependency husky to v4.3.7 (d3e041e2)
*  incrementing version number - v1.16.2-beta.0 (43ff8e41)
*  incrementing version number - v1.16.1 (e3cd7a23)
*  update changelog for v1.16.1 (b6d71710)

##### New Features

*  add filter:email.cancel to allow plugins to cancel sending emails (c2e23706)
*  grant plugins the ability to specify options to the SSO handler (ab11435e)
*  add unread-count badge if navigator contains /flags route (c07e1e16)
*  handle HTTP 429 as a response code (8bbb3208)
*  add write API route for checking login credentials (56f929ed)
*  #8813, faster category search dropdown (072a0e32)
* **api:**  schema definition for new credential checking route (0da28432)

##### Bug Fixes

* **deps:**
  *  update dependency bootbox to v5 (#8751) (b5cb2f8b)
  *  update dependency nodebb-theme-persona to v10.3.19 (f16cdc9f)
  *  update socket.io packages to v3.1.0 (3d1224e1)
  *  update dependency nodebb-theme-slick to v1.3.8 (1901ecb2)
  *  update dependency sortablejs to v1.13.0 (36069da2)
  *  update dependency autoprefixer to v10.2.1 (5b3c48fd)
*  https://github.com/NodeBB/nodebb-plugin-webhooks/issues/3 (c608b0e8)
*  restored sanity checks for post move socket calls (d85ad10d)
*  don't chagne scrollTop if at the top of page (0fa4c11e)
*  #9206, fix double escaped arguments (1590cdf1)
*  regression caused by 77ab46686db62871f149419a368c35628453884e (f5fcd232)
*  don't crash if fullname is not a string (4fb90787)
*  #9204, bypass groupname length check for system group in upgrade script (00ba89b6)
*  add missing await (9938a139)
*  ssoState passed to strategies even if not called for (9b289eca)
*  use max (0a471b76)
*  keep 60 topics minimum on topic list (c30b40ab)
*  access checks for tags and thumbs get route (77ab4668)
*  #9194 global mods unable to pin or unpin topics (c0fb1cb5)
*  #9192, exit after logging error (ef16cd2e)
*  make sure inviter user exists (69419571)
*  #9178 missing language strings (and fallbacks) for post-queue (a407a51d)
*  #9185, fix string boolean values (89e6c75d)
*  test for topicThumbs (e817d5be)
*  #9184 proper relative_path usage in topic thumbs.get (66da6bcd)
*  #9169, re-adding v2-style behaviour so as to not break the API... yet (b742229e)
*  #9177, handled multiple deleted users properly (eaf62d39)
*  broken test caused by errant .pop(), missing await (4ede18ce)
*  missing error message (d83d40cf)
*  test for https://github.com/NodeBB/NodeBB/pull/9180 (8ece64ab)
*  #9176, limit description size (da546970)
*  broken test due to change in response code (9534d956)
*  return a user object, not an array of user objects (in v3 login check route) (97d678fd)
*  bad execution flow in utilities.login (8c86f5bc)
*  missing breadcrumbs in schema (87a7d85e)
*  random loadFiles added by errant vscode autocompletion (53422413)
*  add missing breadcrumb on /user/<slug>/categories (6cbb77af)
*  `--help` usage info (a51c5698)

##### Performance Improvements

*  use only required calls (f0dd302c)

##### Refactors

* **api:**
  *  post move to write API (966c4117)
  *  post diffs to use write API (e118e59c)
*  change var to const (1374e0ee)
*  single remove call (25ab99b9)
*  flags lib to have a separate getFlagIdsWithFilters method (6a1311b4)
*  split out logic dedicated to calculating unread counts, to a separate local method (03a0e72f)

##### Code Style Changes

*  update codeclimate config to be less sensitive to duplicate code blocks (fdf03472)

#### v1.16.1 (2021-01-06)

##### Chores

*  increase test timeout (0d7dfeeb)
*  incrementing version number - v1.16.1-beta.0 (5fcf3ea6)
*  add deprecation notice to topic thumb tpl value (05d8b3c3)
*  minor reordering of lines (8e5a413e)
*  incrementing version number - v1.16.0 (6d01fd50)
*  update changelog for v1.16.0 (1437c62f)
* **deps:**
  *  update dependency eslint to v7.17.0 (18ae7cf7)
  *  update dependency eslint to v7.16.0 (2610dfcf)
  *  update actions/setup-node action to v2 (#9115) (55a55ea2)
* **api:**  add deprecation notices re: #9123 (cdff8d28)

##### New Features

*  #9173, show installed plugin versions in ./nodebb plugins (8c31afae)
*  added note that you can now upload videos (4d6ddf6d)
*  automatically attempt socket.io reconnection on ajaxify (e5edbc6f)
*  #9135, don't try to reconnect forever (c1ecfd1e)
*  add confirmation modal when assigning admin:admins-mods privilege (d90aa958)
*  allow dashes in privilege group names (5b8558e9)
*  allow multiple privileges to be defined for a given admin socket call (3aa5beb8)
*  rename admin middleware header hook (fcc1e24a)
*  explicitly add filter:admin/header.build hook (75b1bbd0)
*  fix more tests, add more routes, update api test suite (cb32e32a)
*  add registration/complete route, fix some other tests (14c51e3c)
*  add missing schemas for various ACP settings routes (9de35ec5)
*  add missing schema for category update and deletion (d6de9253)
*  add schema for api ping routes (d85181e0)
*  normalize paths before comparison (df8d62ba)
*  additional test to ensure any new routes added to express have a corresponding schema doc (dbe85630)
*  update html-to-text closes https://github.com/NodeBB/NodeBB/pull/8810 (a2152dd1)
* **api:**
  *  closes #9123 category and topic routes migrated to Write API (edb8da1e)
  *  #9123, migrate rest of the getObject controllers to Write API (9ecfac9b)
  *  #9123, migrate /api/post/pid/:pid to Write API (e267f295)
  *  group ownership API route, switch client-side to use API route (32e36f7b)
  *  add schema for groups update route (98550d61)
  *  added schema for email unsubscribe token (4fc13377)
* **acp:**
  *  admin tags privilege (223f0a55)
  *  admins-mods privilege (fb46a8d9)
  *  added new admin privilege for groups management (da191341)

##### Bug Fixes

*  #9130, remove timestamp prefix from thumbnail names in API response (171017c3)
*  #9166 missing relative path in topic thumbs modal and topic list (b9ba44ed)
*  #9163, fix total connection count on ACP (1968bf50)
*  genericise .necro-post, bump persona to latest (041d45c3)
*  #9126, skip base64 and long values (33290850)
*   #9127, use assets path (3121215e)
*  inability for admins with setting privilege to save plugin settings (a555f024)
*  #9149, server-side handling of disableChatMessageEditing (895e3d93)
*  #9149, incorrect client-side `disableChatMessageEditing` value for admins/gmods (d27815a8)
*  #9151, dont use service worker for posts requests (20c1b684)
*  #9150, fix selector so it doesn't add img-responsive to profile pics (183cabe9)
*  tests (28740360)
*  dont show deleted posts in navigator (931105e6)
*  bug in api path existence test (501a7b77)
*  #9136, fix move topic/post timeout errors (2ef72a94)
*  bad assignment logic in middleware.renderHeader (34ccabe3)
*  #9113, wrong path separator used in thumbs.get (da4f9118)
*  email testing and settings change from ACP (2be396ff)
*  removing ability to specify deprecated topic 'thumb' on topic creation (713f029d)
*  #9129, event is fired on socket.io (b369dc88)
*  subfolder handling in tests (bbd97ccb)
*  .flat() not defined in v10, added debug router to exclusion list (6062039d)
*  all tests, wrap up work (f416dc17)
*  two more routes (9c2de86a)
*  api tests (b9a61d2d)
*  don't return deleted: 0 for ephemeral groups (600807fb)
*  send fewer items to client-side for ACP settings/email page (438fa5c8)
*  errors in write-api schema (c079051b)
*  broken tests from last round of fixes (990f1077)
*  bad error message for request body api test (a9629357)
*  modify backreference test to not check router.all() calls (7fc329de)
*  add missing token generation route to write api spec (eef052c1)
*  trigger action:posts.edited (b7b588f5)
* **deps:**
  *  update dependency autoprefixer to v10.2.0 (e445ae5a)
  *  update socket.io packages to v3.0.5 (fd045c67)
  *  update dependency nodebb-theme-persona to v10.3.16 (87e333b4)
  *  update dependency benchpressjs to v2.4.0 (4524f825)
  *  update dependency nodebb-theme-persona to v10.3.15 (189be9e0)
  *  update dependency nodebb-widget-essentials to v5.0.2 (1dd1d3b0)
  *  update dependency nodebb-widget-essentials to v5.0.1 (#9144) (f55dddb2)
  *  update dependency nodebb-plugin-composer-default to v6.5.5 (6d980d26)
  *  update dependency sharp to v0.27.0 (4919e596)
  *  update dependency nodebb-theme-persona to v10.3.12 (37b35f7d)
  *  update dependency nodebb-theme-persona to v10.3.11 (db4c6863)
* **tests:**  handle nested allOf blocks (77a5adb6)
* **api:**
  *  failing test due to missing file (3959a7bd)
  *  tests (80ee3dfb)
* **pwa:**  #9127 service-worker.js missing on subfolder installs (b8d4709e)

##### Refactors

* **openapi:**  update TopicObject component to reference TopicObjectSlim in its schema (fb3f3f72)
* **api:**
  *  deprecated groups update socket in favour of API lib (1cd2689c)
  *  update group deletion calls to use write API (e640a41a)
*  schema backreference test to use map instead of reduce, properly check write-api routes (878ee067)

##### Tests

*  changed test a bit to see what is going on (5f038dff)

#### v1.16.0 (2020-12-17)

##### Breaking Changes

*  enable topic thumbnails across the board [breaking] (9342d611)
*  #8808, remove utils.slugify (4a0d8833)

##### Chores

* **deps:**
  *  update dependency husky to v4.3.6 (2371b432)
  *  bump persona to 10.3.9 (91899329)
  *  bump composer to 6.5.1, re: #9067 (228cfa67)
  *  update dependency husky to v4.3.5 (48a31763)
  *  update dependency husky to v4.3.4 (cf5c482d)
  *  update dependency eslint to v7.15.0 (f4c4d671)
  *  update dependency lint-staged to v10.5.3 (3e6f7359)
*  appease codeclimate (9f62df15)
*  add comment for clarification (6037f5ee)
*  incrementing version number - v1.15.5 (57cd1343)
*  update changelog for v1.15.5 (b0299326)
* **i18n:**  fallbacks for new topic thumb keys (15f1a089)

##### New Features

*  add new client side hooks (a15ef53c)
*  remove max age since cache is cleared when thumbs change (ab96f526)
*  show alt text instead of images in teasers (#9107) (d28581eb)
*  migration of old topic thumbs to new format (74d73313)
*  allow plugins to override ACP relogin challenge (4c87f301)
*  add user.email.confirmByUid for sso plugins (80de572a)
*  add thumbs to category data return (24e754d1)
*  broken test for bad topic thumbs logic (ce8057f3)
*  clent-side modal for managing topic thumbs (a30c8ab5)
*  raise maximum thumb size to 512 (37c367d6)
*  associate topic thumbs with post uploads (for the mainPid) (1c5cdb51)
*  helper method to get thumbs by pid (cb7e4cda)
*  closes #9048, tests for topic thumbs routes, write API schema (59506833)
*  tests for topic thumbs (4152aa55)
*  server-side work for #9047 (ef7d6db9)
*  core work for #9042, thumb deletion now accepts uuids (b5d910f5)
*  more work on topic thumbs refactor (90497e3e)
*  expose uploaded thumbnails to client-side via API (1257aa98)
*  server-side routes for handling multiple topic thumbnails (7e9e08f7)
*  allow uploadThumb controller to be called in code (98cd9e35)
*  move upgrade script and make it shorter (60e7de0d)
*  allow clicks on navigator, clean dupe code (74274b60)
*  socket.io 3 changes (#8845) (1c45fa1b)
* **deps:**  update lavender to allow category sections (6d186be0)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-plugin-composer-default to v6.5.4 (#9120) (fff0cea6)
  *  update dependency nodebb-theme-slick to v1.3.7 (#9112) (30688b1b)
  *  update dependency nodebb-theme-lavender to v5.0.17 (#9111) (877f4673)
  *  update dependency nodebb-theme-vanilla to v11.3.10 (ff18cdfa)
  *  update dependency validator to v13.5.2 (#9094) (5d718348)
  *  update dependency nodebb-theme-vanilla to v11.3.9 (#9091) (f37dbeed)
  *  update dependency nodebb-plugin-composer-default to v6.5.3 (d036408d)
  *  update dependency nodebb-plugin-composer-default to v6.5.2 (b07fb9ab)
  *  bump composer-default to 6.5.0 (0db49121)
  *  update dependency autoprefixer to v10.1.0 (024d1fef)
  *  update dependency nodebb-theme-persona to v10.3.8 (#9084) (25f697b1)
  *  update socket.io packages to v3.0.4 (62463430)
  *  update dependency nodebb-theme-persona to v10.3.7 (c22cdb51)
  *  update dependency nodebb-theme-persona to v10.3.6 (#9077) (5937fbaf)
  *  update dependency nodebb-plugin-mentions to v2.13.6 (#9071) (a535350f)
  *  update dependency nodebb-theme-slick to v1.3.6 (#9072) (19c438c6)
  *  update dependency nodebb-widget-essentials to v5 (#9070) (d7f5efd9)
  *  update dependency nodebb-plugin-markdown to v8.12.4 (8fb814ba)
  *  update dependency nodebb-theme-persona to v10.3.5 (#9060) (0d082280)
  *  update dependency nodebb-theme-persona to v10.3.4 (#9059) (84e4e480)
  *  update dependency nodebb-theme-persona to v10.3.3 (3d7e2e1e)
  *  update dependency nodebb-theme-persona to v10.3.2 (#9056) (f49ce4ad)
  *  update dependency nodebb-theme-persona to v10.3.1 (#9054) (344caf5c)
  *  update dependency nodebb-theme-lavender to v5.0.15 (#9053) (e7d72d8a)
  *  update dependency nodebb-theme-persona to v10.3.0 (#9052) (dcd6fbaf)
*  api usage (feecd665)
*  #9117, lower query before search (4404e32e)
*  #9114, fix client side groups update for memberPostCids (3ed55799)
*  test (2dee3cbe)
*  don't check "select all" if there are no enabled checkboxes (3ba05755)
*  #9074, fix svg uploads (8f938eba)
*  #9100 topic thumbs in OG image tags (ab987408)
*  update version removal comments to 1.17 for some features (378a3a69)
*  postgres is slow:tm: (05dd8597)
*  derp? (f8dff94a)
*  attempted fix for psql test in topic thumbs (9a4ea04a)
*  use getSortedSetRange instead of getSortedSetsMembers (edf67f34)
*  tests (bd5c4a5c)
*  bad topic thumbs logic on local thumb upload (e83baa97)
*  #9092, Topic thumbnails do not work with third-party uploaders (3e54b70c)
*  move topic thumb tests to root level, so they actually get run by mocha (dd448e2b)
*  tests for topic thumbs (9681557f)
*  iteration logic bug (2170c400)
*  spec (ae943974)
*  changes to thumb resizing logic (67cf5e83)
*  use file lib instead of direct fs module access (08736b18)
*  added back missing topic thumb tests that were removed in last commit (c043cfeb)
*  tests (5ec3b3d0)
*  hack uploader to handle a response from v3 write api (41379e27)
*  #9055, non-standard API response from addThumbs route (340387c1)
*  do not allow thumb deletion route to arbitrarily delete other files in uploads folder (c09c238e)
*  missing file added (ef10b6b7)
*  references to since-removed Topics.thumbs.resizeAndUpload (1f0c1cd2)
*  #9041, remove Topics.thumbs.resizeAndUpload() (43dc3e3e)
*  #9040 (708b1c33)
*  spec (1949d20a)
*  #9085, dont prevent admins from deleting other users (0f480be6)
*  show errors when user delete fails (ff2aa17b)
*  dont start logout timer if adminReloginDuration is disabled (dd9ed236)
*  #9045, no post usage info if '/files/' path received (efa4eca0)
*  reconnectin no longer fires on socket.io 3 (13d5a144)
*  default values, clamp postsPerPage/topicsPerPage to max (1f32d387)
*  #9081, load raw settings before merging (9da0ed40)
*  #9068 (86f0f82b)
*  remove old utils.slugify tests (10cfdd4c)
*  dont strip tags (792e9e70)
*  #9065, settings v2/v3 conflict (91c20cec)
*  #9063, missing handler for passwordless accounts in admin.checkPrivileges middleware (970ccb5a)
*  timeago in navigation (a389a31b)
*  navigation fixes (163d1a39)
*  cache some jquery objects (73d2f51d)
*  add ev.cancelable (63d08395)
*  #9046, pretranslate string (790f4e45)
*  redirect external with absolute urls (648f6215)
*  external path for subfolder installs (458bfc0f)
* **spec:**  broken link to status component (d31aae16)

##### Performance Improvements

*  don't load thumbs if disabled globally, cache thumb results (2d5a224b)
*  dont build identical langs (bb6cc49c)

##### Refactors

*  topic thumbs lib to topics.thumbs (4fc9da81)

#### v1.15.5 (2020-12-03)

##### Chores

*  up persona (c111bde1)
*  incrementing version number - v1.15.4 (a1b658d9)
*  update changelog for v1.15.4 (252dddfc)

##### New Features

*  add socket connect/disconnect action hooks (fcb10ebd)
*  allow modifiying browser title on ajaxify (698718f8)

##### Bug Fixes

*  #9032 (64ac483d)
*  sso redirect on /login & /api/login (5d00b089)
*  use file lib instead of directly accessing fs (for Assert.path) (3ea66f84)
*  check uid as well (ef6c3b00)
*  #7597, fix progress bar of cover/profile uploads (7e867cf9)
* **deps:**  update dependency nodebb-plugin-spam-be-gone to v0.7.7 (#9039) (c7f2640a)

#### v1.15.4 (2020-12-02)

##### Chores

*  up persona (dde3171c)
*  fallbacks for nodebb.error (82ca3760)
*  fallbacks for nodebb.topic (5b269bc5)
*  remove test code (07fe959c)
*  incrementing version number - v1.15.3 (d1ae08fa)
*  update changelog for v1.15.3 (cf157c9b)

##### New Features

*  #9005, use timestamp in profile/cover images (5f0f476b)
*  #8983, update pin tooltip in topic (954dc5b7)
*  option to allow auto-joining of groups (optionally skip the "request membership" step) (685f3c6a)
*  user notification settings for group.leave event (c1a7968d)
*  add defaults for composer help (0cba2691)
*  #8900, postQueue setting for category (1eb5fabd)
*  #8960, update view count after merge (14bb0a44)
*  use correct code (557f0f56)
*  #8989, convert widget nav to dropdown (4c650aee)
*  add handler for 501 api response (007a3258)
*  add translation key for pin icon label with expiry (12b3aa0d)
*  add pinExpiry and pinExpiryISO to topic data (ad8e7700)
*  add cancel button to pin expiration modal (e1432caf)

##### Bug Fixes

*  #9032, fix login redirect for sso plugins (6f68f4d2)
*  #8962, dont show null for purged targets (86b7f8a5)
*  selector on hooks page (3488daa1)
*  notification on group.leave incorrectly showing "Guest has left X group" (f7558c60)
*  #9019, add missing lang strings (b46d2f93)
*  #9018 (e45b5cba)
*  #9015, add default value for dailyDigestFreq (0f1fc10f)
*  spec (cfb7b113)
*  #8997, don't send notifications if uids already in group (f7c738de)
*  #9002 ban templates not user friendly (4317cdea)
*  #9010, show rest of info even if clusterMonitor priv is not granted (202dcef4)
*  #9007 revoke old sessions after adding (d46740f8)
*  guests dont always have sid (70073653)
*  allow guests to see their replies immediately (a4fe4d3c)
*  privs headers (92d1b8a6)
*  pwd reset test (f25000cb)
*  #8991, logout on password reset, dont verify email if password expired (5080f357)
*  don't show topic search if no search privilege (8adbf54a)
*  #8998, allow guests to use write api to post/reply (3cd0c9a4)
*  guest handles to user displayname as well (5a137a0d)
*  timestamp in queue, add post queue strings (546f58bf)
*  #8992, set email:confirmed for first admin user (7f5efc3e)
*  typo in upgrade script, closes #8990 (80f0750b)
*  #8984, post-queue ux (1269103f)
*  order (9ab4fb41)
*  #8982, copy color on tag rename, dont copy if target exists (d3c04afb)
*  tests (b596e948)
*  api test (77a6dbac)
*  remove dupe (cbbda451)
*  csv test (3de692cd)
*  spec, remove old tests (4afdf8bc)
*  #8969, export csv to file (6e6a7a8f)
*  spec for /tag (88e5cda5)
*  #8980, fix lang string (f4d217d8)
*  #8979 (bf171adc)
*  #8971, disallow flags of privileged users (mods, gmods, admins) (1e7cf1cb)
*  #8974, with password login for approval queue (dadb2527)
*  #8974, dont show wrong message on register queue (fdca8b16)
*  #8973, fix timestamp on ban modal (5c3deb4b)
*  #8968, don't show topic search if search is not enabled (c8554b78)
*  flicker on tooltips if server call takes long time (4c7374ea)
*  missing select/clear all checkbox added to category privileges template (#8967) (a56a6577)
*  use package.name for theme.id (#8965) (ba3981e2)
*  winston usages (b8cafefc)
*  #8957 (414caac0)
*   dont go back after delete account actions (7e6427bc)
*  error message (47a19d67)
*  #8954, clear purged replies and toPids (#8959) (5bb5ec46)
*  #8955, popstate to purged topic should go to homepage (39dae0aa)
*  'already-deleting' error on subsequent account content deletions (21d6225c)
*  #8949, faster upgrade script (93863bb3)
* **deps:**
  *  update dependency nodebb-theme-vanilla to v11.3.8 (#9031) (18707940)
  *  update dependency nodebb-theme-slick to v1.3.5 (#9030) (4085f3e6)
  *  update dependency nodebb-theme-persona to v10.2.98 (#9029) (f7d60c43)
  *  update dependency nodebb-theme-persona to v10.2.97 (42b23a3b)
  *  update dependency nodebb-plugin-composer-default to v6.4.10 (#9025) (43bbfb67)
  *  update dependency nodebb-theme-vanilla to v11.3.7 (#9024) (3f597a55)
  *  update dependency nodebb-plugin-composer-default to v6.4.9 (#9023) (110186b9)
  *  update dependency nodebb-theme-slick to v1.3.4 (#9022) (8dc1437e)
  *  update dependency nodebb-theme-persona to v10.2.96 (#9021) (2c9cd286)
  *  update dependency nodebb-plugin-composer-default to v6.4.8 (#9017) (1f5f2e1d)
  *  update dependency nodebb-plugin-markdown to v8.12.3 (9004319e)
  *  update dependency validator to v13.5.1 (7b39cf4b)
  *  update dependency nodebb-theme-persona to v10.2.95 (#9001) (4ddab380)
  *  update dependency nodebb-theme-persona to v10.2.94 (#9000) (877d8554)
  *  update dependency nodebb-theme-persona to v10.2.93 (#8999) (c44d9d2f)
  *  update dependency nodebb-theme-persona to v10.2.92 (#8995) (346b91eb)
  *  update dependency nodebb-theme-vanilla to v11.3.6 (#8987) (6c980db1)
  *  update dependency nodebb-theme-persona to v10.2.91 (#8986) (8258536a)
  *  update dependency autoprefixer to v10.0.4 (#8985) (fad2d342)
  *  update dependency nodebb-plugin-markdown to v8.12.2 (f5714452)
  *  update dependency nodebb-theme-persona to v10.2.90 (5664807d)
  *  update dependency nodebb-theme-vanilla to v11.3.5 (19fe2493)
  *  update dependency nodebb-theme-persona to v10.2.89 (ad60bc06)
  *  update dependency autoprefixer to v10.0.3 (b2f0d38f)
  *  update dependency benchpressjs to v2.3.0 (6c316be4)
* **openapi:**
  *  spec for c1a7968d23f0809e7012edfccf49b193749998ec (69864b87)
  *  spec for 685f3c6aa6173383d6c31b87ed51cf8ed0ca44ce (1bb75e76)
* **acp:**
  *  #9008 undefined link for "no users browsing" state on dashboard (54dc449f)
  *  #9009 no-users-browsing untranslated on dashboard (286243cd)
* **spec:**
  *  from 6e6a7a8f8a9a75500ba1f336cabc882234212f88 (acb57666)
  *  breaking tests (88a60473)
  *  broken test due to canFlag addition (1b1205a9)

##### Refactors

*  remove old hack (73746bb4)
*  add TopicObjectSlim common schema (22715d54)
*  pin/lock threadTools to use topicCommand, rewrote topicCommand to match categoryCommand signature (15c6f32c)

#### v1.15.3 (2020-11-26)

##### Chores

*  bump persona (720170a9)
*  remove console.log (6a819944)
*  move topic route schema up two levels as slug and index are optional (ae402e21)
*  move category route schema up two levels as slug and index are optional (b3b501d7)
*  up persona (0ffc091b)
*  up persona (2f2f0ab7)
*  up persona (5c9ff18e)
*  add missing plugin hook deprecation warning (98a05e4d)
*  pin autoprefixer to latest (46eb7701)
*  incrementing version number - v1.15.3-beta.0 (28fa03bd)
*  up persona (81984285)
*  up slick (5f2fe883)
*  incrementing version number - v1.15.2 (5867a5b9)
*  update changelog for v1.15.2 (37965d45)
* **spec:**  replace ugly hack with another hack for optional properties (45a4f136)
* **deps:**
  *  update dependency lint-staged to v10.5.2 (db205e2e)
  *  update dependency eslint to v7.14.0 (80404216)

##### New Features

*  add topicOwnerPost #8778 (c037779f)
*  clear reset tokens on user delete (4f37eddc)
*  select/clear all checkboxes in privilege table (#8941) (00e75de7)
*  show ban reason and expiry in write api responses, if user is banned (afb26bfe)
*  automatically unban users in onSuccessfulLogin (6e5ec3f8)
*  #8925, #8924 (3f337b5d)
*  human readable uptime (672d4da0)
*  allow ACP API access to bearer tokens (3b1c03ed)
*  allow pins to expire (if set) (#8908) (046d0b16)
*  #8637 (903e9d82)
*  add displayname into user obj #8637 (#8909) (9ca44e6f)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-theme-persona to v10.2.87 (#8946) (167ab3a4)
  *  update dependency nodebb-theme-persona to v10.2.86 (#8945) (5af5cb85)
  *  update dependency nconf to ^0.11.0 (58152606)
  *  update dependency postcss to v8.1.10 (5363ebbb)
  *  update dependency nodebb-theme-persona to v10.2.85 (#8928) (abc32d62)
  *  update dependency postcss to v8.1.9 (d1cb5d48)
  *  update dependency postcss to v8.1.8 (b47a470b)
  *  update dependency nodebb-theme-vanilla to v11.3.4 (#8914) (589f7a56)
  *  update dependency nodebb-theme-persona to v10.2.80 (#8913) (38127b04)
  *  update dependency nodebb-theme-persona to v10.2.79 (#8907) (8e1b2458)
  *  update dependency nodebb-theme-persona to v10.2.75 (b9856179)
*  add topic uid to infinitescroll (6771ca15)
*  #8943, session mismatch modal thrown on login (race condition) (d5845169)
*  #8912 (ac734b83)
*  #8918 (e32cd31e)
*  basepath for r.js modules (3af4d13f)
*  test (61c6a762)
*  move meta.getServerTime call to admin namespace (1c0e8c16)
*  add client side check for userslug #8939 (f20c12ee)
*  #8939, fix username change notification getting filtered out (0ca40af8)
*  #8931, fix lang string (cf903e4e)
*  #8932, fix client side error when updating username (95a3f030)
*  bug with Topics.resizeAndUploadThumb not checking for extension validity (eab4ca71)
*  #8933 (2b73a14e)
*  #8929, fix popular, top rss feed urls (77f0bff5)
*  a derp (5dd3b031)
*  spec (b18e7e31)
*  improper handling of scheme-relative URLs in topic thumb logic (4ca62dc4)
*  https://github.com/NodeBB/NodeBB/pull/8685 (5fa09832)
*  on OP edit, call helper method to upload and resize thumb (f33a9185)
*  https://github.com/NodeBB/NodeBB/pull/8759 (9ee1fb49)
*  spec (c2bb6123)
*  guest displayname (1be08b2e)
*  show messages after app load (46acbfda)
*  restart on js changes in vendor (814771bd)
*  #8915, fix queue not being cleared after firing click events (6ef7e867)
*  spec, only call modifyUser on unique user objects (dbd814c2)
*  setting (ae5d4405)
*  spec (8d060065)
*  group userTitles translation escapes (e9585b9b)
*  remove params from error log (965671a9)
* **spec:**  always show thumb in topic response (493c568a)

##### Refactors

*  remove unused require (db1c140f)
*  move API banned response handler to separate internal method (906d7d73)
*  move plugin hook methods to plugin.hooks.* (6e2da996)
*  remove breaking change in pin expiry (ef3df47a)
*  use categoryCommand local method for pin/lock in category tools (#8917) (00aee84b)

#### v1.15.2 (2020-11-18)

##### Chores

*  incrementing version number - v1.15.2-beta.1 (20c05e80)
*  remove debug log (0a0b4661)
*  incrementing version number - v1.15.2-beta.0 (996174a1)
* **deps:**  update dependency smtp-server to v3.8.0 (5f5f0edb)

##### Documentation Changes

*  openapi schema for user/group exist check, session deletion (bcccb331)

##### New Features

*  #5274 (4e9b10ab)
*  #4456 (fb567a7a)
*  #8475, allow flagging self posts (a6afcfd5)
*  #7550, show message if post is queued when js is disabled (120999bf)
*  #8171, add oldCategory if topic is moved (35f932cd)
*  #8204, separate notification type for group chats (b44ddecd)
*  add test for custom translations (7928036a)
*  https://github.com/NodeBB/NodeBB/issues/8147 (1d6bcbeb)
*  invites regardless of registration type, invite privilege, groups to join on acceptance (#8786) (3ccebf11)
*  add nodejs version to issue template (29c2ca94)
*  allow groups to specify which cids to show member posts from (#8875) (8518404e)
* **api:**  account deletion routes for the Write API (#8881) (a0b7a823)
* **deps:**  benchpressjs@2.2.1 (#8887) (d30ea256)

##### Bug Fixes

*  #6407, fix feeds (fa4177c3)
*  navigation highlight (62b62821)
*  benchpress warnings (a87ccccc)
*  benchpress warnings (dfdc0c42)
*  internal helper method hasGlobalPrivilege, DRY (e1d7c4d8)
*  spec (2f4653a3)
*  #8884, remove header/footer cache (e4d2764d)
*  check tid in event handlers client side (9dac9630)
*  #8883 (f14e42d8)
*  #8872 missing admin/menu language key+fallback (fdab76f8)
*  run every hour, dont show message if average_time is 0 (51b7eca1)
*  add back test timeout for exports (b3e00489)
*  pass length to messaging checkContent hook (dc9668e4)
* **deps:**
  *  update dependency nodebb-theme-persona to v10.2.74 (#8905) (5f6137f0)
  *  update dependency nodebb-theme-persona to v10.2.73 (#8904) (c2019b7b)
  *  update dependency nodebb-plugin-composer-default to v6.4.7 (#8902) (b7b1f203)
  *  update dependency nodebb-theme-persona to v10.2.72 (#8903) (bee8cfe4)
  *  update dependency nodebb-theme-vanilla to v11.3.3 (422aa7f0)
  *  update dependency nodebb-theme-persona to v10.2.71 (3b6e71d5)
  *  update dependency nodebb-theme-persona to v10.2.70 (d6dd1cb6)
  *  update dependency nodebb-theme-slick to v1.3.2 (2ce1fcd3)
  *  update dependency nodebb-theme-vanilla to v11.3.2 (9f2d0d42)
  *  update dependency nodebb-theme-persona to v10.2.69 (15810643)
  *  update dependency sharp to v0.26.3 (84d54577)
  *  update dependency nodebb-plugin-mentions to v2.13.5 (dde9f189)
  *  update dependency json2csv to v5.0.5 (b63b7ae5)
  *  update dependency benchpressjs to v2.2.2 (d1e804aa)
  *  update dependency nodebb-theme-vanilla to v11.3.1 (#8878) (85aaeded)
  *  update dependency nodebb-theme-slick to v1.3.1 (bbfb276a)
  *  update dependency nodebb-theme-persona to v10.2.68 (ec70329a)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.6 (#8877) (45922fae)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.5 (#8876) (48e82520)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.4 (#8874) (eab27f23)

##### Refactors

*  client-side handlers for user invitations (d83eb7f8)
*  async/await controllers/index.js (5598130a)
*  less dupe code (8fbe8324)

##### Tests

*  new api test to ensure each path's parameters are defined in context (97842c43)
*  updated test name to be more specific (319cfeaa)

#### v1.15.1 (2020-11-11)

##### Chores

*  incrementing version number - v1.15.1-beta.0 (e033da8a)
*  fallback l10n for admin-settings-api (8368c25b)
* **deps:**
  *  update dependency eslint to v7.13.0 (bcbc0854)
  *  update dependency eslint-config-airbnb-base to v14.2.1 (d227fe9f)
  *  update commitlint monorepo to v11 (90bcfa6d)

##### New Features

*  #8864, add action:events.log (9c5c32d4)
*  show db info side by side (62c0454c)
*  add language keys for admin-settings-api (d32e4e02)
*  #8824, cache refactor (#8851) (f1f9b225)
*  move mkdirp to beforeBuild so it doesnt get called twice (6255874e)
*  group exists API call in write api (d2631922)
*  user exist route in write api (1446cec7)
*  new shorthand route /api/v3/users/bySlug/:userslug (60e1e99b)
*  allow passwords with length > 73 characters (#8818) (512f6de6)
*  #8821, allow guest topic views (9e3eb5d4)

##### Bug Fixes

*  #8869, dont escape category title,description twice (567c5f20)
*  refresh flags list on bulk action success (769aba0a)
*  test breakage from f300c933a50263039a57811f8cc716df39a138b0 (ee4d90f6)
*  remove some unnecessary jquery wrappers (9f7902ef)
*  send back jquery object to keep backwards compat (978f1ee0)
*  use header/footer cache in prod (a0164b1c)
*  add missing maxAge to cache (05a92885)
*  clear header-cache after each suite (3f5f38dd)
*  show msg on fail (255cf43e)
*  spec (fe63c6ae)
*  guest header/footer cache (2e446392)
*  #8846, possible fix (74951f59)
*  winston error message (16d03975)
*  permanent redirect on user api redirect shorthand (6b196a20)
*  user exist route needs no authentication (f2bb42c0)
*  #8840, don't crash if /compose route is called with no query params (c61dee4b)
*  XSS in event:banned messaging modal (f68bce86)
*  #8838, fix chat dropdown timestamps (78ee8332)
*  #8836, truncate fullname (76cd5b0f)
*  #8827, do not require admin:users privilege to ban users (891a1ea2)
* **deps:**
  *  update dependency nodebb-plugin-mentions to v2.13.4 (1460a7a8)
  *  update dependency diff to v5 (72d1b3cd)
  *  update dependency nodebb-theme-persona to v10.2.67 (#8847) (e250c3f1)
  *  update dependency json2csv to v5.0.4 (#8865) (ba7b23ac)
  *  update dependency postcss to v8.1.7 (#8866) (2946bb16)
  *  update dependency nodebb-theme-slick to v1.2.40 (#8863) (20f4fe08)
  *  update dependency nodebb-plugin-mentions to v2.13.3 (#8862) (c18f4491)
  *  update dependency benchpressjs to v2.1.0 (14ba6383)
  *  update dependency benchpressjs to v2.0.9 (381a32ab)
  *  update dependency mongodb to v3.6.3 (#8841) (7e273e77)
  *  update dependency nodebb-theme-persona to v10.2.66 (#8839) (00f90cd9)
  *  update dependency nodebb-plugin-mentions to v2.13.2 (#8835) (064c99cd)
  *  update dependency postcss to v8.1.6 (e0cf9740)
  *  update dependency @nodebb/socket.io-adapter-mongo to v3.1.1 (#8831) (40eb658b)
  *  update dependency @nodebb/mubsub to v1.7.1 (#8830) (7b8a5567)
  *  update dependency postcss to v8.1.5 (9f5ef9d0)
* **#8828:**  web install templates now compiled (#8832) (de5a21f1)
* **acp:**  max-height for plugin menu list (eec630f1)

##### Refactors

*  move session revocation route to write api (f300c933)
*  change Benchpress.parse to .render (#8856) (e128264b)

#### v1.15.0 (2020-11-04)

##### Breaking Changes

*  remove toolsVisible in post tools' menu [breaking] (7e7366be)

##### Chores

*  update changelog for v1.15.0-rc.5 (69f4d5ac)
*  incrementing version number - v1.15.0-rc.5 (4bd2788b)
*  add info log into tests (b6d86878)
*  update renovate config to automatically merge non-major version bumps #yolo (1c8b8ce1)
*  update changelog for v1.15.0-rc.4 (16882941)
*  incrementing version number - v1.15.0-rc.4 (57b49320)
*  update changelog for v1.15.0-rc.3 (2738041b)
*  incrementing version number - v1.15.0-rc.3 (6de7760a)
*  bump persona (e0b67817)
*  update changelog for v1.15.0-rc.2 (c3a7ab54)
*  incrementing version number - v1.15.0-rc.2 (7c084134)
*  update changelog for v1.15.0-rc.1 (4f49b3da)
*  incrementing version number - v1.15.0-rc.1 (943424b5)
*  update changelog for v1.15.0-rc.0 (aab5f018)
*  incrementing version number - v1.15.0-rc.0 (8d48455b)
*  update changelog for v1.15.0-beta.30 (39648722)
*  incrementing version number - v1.15.0-beta.30 (2dd3c962)
*  some optimizations for codeclimate (4a63c20a)
*  update changelog for v1.15.0-beta.29 (63696c40)
*  incrementing version number - v1.15.0-beta.29 (fca176d2)
*  refactor src/emailer.js (75459517)
*  update changelog for v1.15.0-beta.28 (fd975a66)
*  incrementing version number - v1.15.0-beta.28 (57f83162)
*  update changelog for v1.15.0-beta.27 (70673824)
*  incrementing version number - v1.15.0-beta.27 (78fad240)
*  lint notifications.js (4fc84e9f)
*  update changelog for v1.15.0-beta.26 (5e01d288)
*  incrementing version number - v1.15.0-beta.26 (62c44095)
*  up persona (ff8a833a)
*  up persona (4a0f54ae)
*  update changelog for v1.15.0-beta.25 (240a04b4)
*  incrementing version number - v1.15.0-beta.25 (1124d4ee)
*  up persona (032e6001)
*  update changelog for v1.15.0-beta.24 (72ab5ba1)
*  incrementing version number - v1.15.0-beta.24 (23ba071d)
*  up persona (5407bf48)
*  up persona (4c2eab4b)
*  up persona (91133b0f)
*  up persona (bcac0805)
*  up persona (9dc4db1f)
*  up persona (ba70a1bf)
*  update changelog for v1.15.0-beta.23 (e6ea208c)
*  incrementing version number - v1.15.0-beta.23 (61a04eb9)
*  update changelog for v1.15.0-beta.22 (59ee74c2)
*  incrementing version number - v1.15.0-beta.22 (9c9329ee)
*  update changelog for v1.15.0-beta.21 (8089542e)
*  incrementing version number - v1.15.0-beta.21 (966cdc13)
*  update changelog for v1.15.0-beta.20 (1650f303)
*  incrementing version number - v1.15.0-beta.20 (c8e57ec1)
*  update changelog for v1.15.0-beta.19 (9cde5105)
*  incrementing version number - v1.15.0-beta.19 (2eb7c284)
*  update changelog for v1.15.0-beta.18 (b2ca9686)
*  incrementing version number - v1.15.0-beta.18 (e096791e)
*  update changelog for v1.15.0-beta.17 (d6178158)
*  incrementing version number - v1.15.0-beta.17 (f1c28092)
*  update changelog for v1.15.0-beta.16 (e08297ff)
*  incrementing version number - v1.15.0-beta.16 (6043c9cb)
*  update changelog for v1.15.0-beta.15 (f878b92c)
*  incrementing version number - v1.15.0-beta.15 (10b94f9b)
*  update changelog for v1.15.0-beta.14 (5e60d092)
*  incrementing version number - v1.15.0-beta.14 (6ca4b86f)
*  update commitlint config (61a8c6f0)
*  update changelog for v1.15.0-beta.13 (ca8d492b)
*  incrementing version number - v1.15.0-beta.13 (bdd71c51)
*  update changelog for v1.15.0-beta.12 (0a242605)
*  incrementing version number - v1.15.0-beta.12 (b852c9b7)
*  update changelog for v1.15.0-beta.11 (f07ba866)
*  incrementing version number - v1.15.0-beta.11 (c1ce7391)
*  update changelog for v1.15.0-beta.10 (9c34eced)
*  incrementing version number - v1.15.0-beta.10 (f252d4d7)
*  update changelog for v1.15.0-beta.9 (affc7927)
*  incrementing version number - v1.15.0-beta.9 (8dc513da)
*  update changelog for v1.15.0-beta.8 (3b960c3b)
*  incrementing version number - v1.15.0-beta.8 (34bb869c)
*  update changelog for v1.15.0-beta.7 (e449ff9a)
*  incrementing version number - v1.15.0-beta.7 (fd917b8e)
*  update changelog for v1.15.0-beta.6 (a7f03b64)
*  incrementing version number - v1.15.0-beta.6 (a9019cbe)
*  update changelog for v1.15.0-beta.5 (0e90064e)
*  incrementing version number - v1.15.0-beta.5 (81e4c4df)
*  update changelog for v1.15.0-beta.4 (6c4aed8c)
*  incrementing version number - v1.15.0-beta.4 (f2726a6d)
*  update changelog for v1.15.0-beta.3 (11e2ccab)
*  incrementing version number - v1.15.0-beta.3 (39178c2d)
*  update changelog for v1.15.0-beta.2 (d8a9f1c3)
*  incrementing version number - v1.15.0-beta.2 (59b50d0a)
*  update changelog for v1.15.0-beta.1 (aeca19d5)
*  incrementing version number - v1.15.0-beta.1 (4fa57fbb)
*  incrementing version number - v1.15.0-beta.0 (bff80983)
*  incrementing version number - v1.14.3-beta.16 (d9a05035)
*  incrementing version number - v1.14.3-beta.15 (e2a253f2)
*  incrementing version number - v1.14.3-beta.14 (9500871e)
*  incrementing version number - v1.14.3-beta.13 (b5a2e4b6)
*  incrementing version number - v1.14.3-beta.12 (f4c986a7)
*  incrementing version number - v1.14.3-beta.11 (8618c32a)
*  incrementing version number - v1.14.3-beta.10 (fa341714)
*  incrementing version number - v1.14.3-beta.9 (9945c409)
*  incrementing version number - v1.14.3-beta.8 (b5dcce9c)
*  incrementing version number - v1.14.3-beta.7 (2531c44c)
*  incrementing version number - v1.14.3-beta.6 (97088f68)
*  incrementing version number - v1.14.3-beta.5 (a33a8a5a)
*  incrementing version number - v1.14.3-beta.4 (55b3e376)
*  incrementing version number - v1.14.3-beta.3 (5a5abf3c)
*  incrementing version number - v1.14.3-beta.2 (bbab183f)
*  incrementing version number - v1.14.3-beta.1 (2c06f6ac)
*  incrementing version number - v1.14.3-beta.0 (3f87d5f9)
*  update changelog for v1.14.2 (cd94c24a)
*  incrementing version number - v1.14.2 (1e4d683f)
*  update changelog for v1.14.2 (488e69fd)
* **deps:**
  *  update dependency mocha to v8.2.1 (35e725d1)
  *  update dependency lint-staged to v10.5.1 (2fa78e43)
  *  update dependency eslint to v7.12.1 (#8799) (224502d8)
  *  update dependency lint-staged to v10.5.0 (#8797) (1f2eca6a)
  *  update dependency eslint to v7.12.0 (#8791) (3108f628)
  *  update dependency lint-staged to v10.4.2 (#8773) (4bfd0087)
  *  update dependency eslint to v7.11.0 (#8747) (bb85c059)
  *  update dependency lint-staged to v10.4.1 (#8771) (08a240fa)
  *  update dependency mocha to v8.2.0 (#8772) (a471b1af)
  *  update dependency eslint-plugin-import to v2.22.1 (aacf8f22)
  *  update dependency eslint to v7.10.0 (#8687) (119ab719)
  *  update dependency lint-staged to v10.4.0 (2833624e)
  *  update dependency eslint to v7.9.0 (b1d781e8)
  *  update dependency eslint to v7.8.1 (#8597) (39110276)
  *  update dependency lint-staged to v10.3.0 (#8608) (dc1f1db9)
  *  update dependency mocha to v8.1.3 (#8588) (05efeff6)
  *  update dependency eslint to v7.8.0 (#8594) (e1b98142)
  *  update dependency lint-staged to v10.2.13 (efc30e97)
  *  update dependency mocha to v8.1.2 (#8579) (c722b0e5)
  *  update dependency grunt to v1.3.0 (df61d080)
  *  update commitlint monorepo to v9.1.2 (877cdfb9)
  *  update dependency eslint to v7.7.0 (#8564) (f1398da2)
  *  update dependency jsdom to v16.4.0 (#8554) (bb8f7c74)
  *  update dependency eslint-config-airbnb-base to v14.2.0 (#8396) (fde4f110)
  *  update dependency eslint-plugin-import to v2.22.0 (#8390) (788a8bfe)
  *  update dependency mocha to v8.1.1 (fe352eb1)
  *  update dependency eslint to v7.6.0 (#8540) (37418375)
  *  update dependency mocha to v8.1.0 (#8536) (72a78833)
  *  update dependency @apidevtools/swagger-parser to v10.0.1 (#8517) (8c498fa1)
  *  update dependency nyc to v15.1.0 (#8353) (c872bd8b)
  *  update dependency eslint to v7.5.0 (#8463) (b2be329c)
  *  update dependency jsdom to v16.3.0 (#8483) (82ada1bd)
  *  update dependency grunt to v1.2.1 (#8462) (b2dc6d60)
  *  update dependency @apidevtools/swagger-parser to v10 (9e2c3ce0)
* **writeapi:**  cleanup (f6782471)

##### New Features

*  add back error handling for a number of api calls (1afd2150)
*  #8823, remove hardcoded write concern (a338f527)
*  #8817, add login clientside hooks (715775a7)
*  use github actions for ci (#8811) (eddf4a4f)
*  allow mods/admins to see deleted posts on user profile (6e85920c)
*  rearrange buttons on manage/users (27016d22)
*  #8801, disable express compression by default (6ac73ccb)
*  allow passing subset of user settings on update route (ec03af7a)
*  wip, write api tests framework (b156b8b5)
*  add filter:category.getFields (88a07e69)
*  move postercount to topic hash (0db0231c)
*  add free and total mem usage to info (a7b6d0df)
*  new filter filter:teasers.configureStripTags (177a9610)
*  send 'Vary' header when ACAO header set (d68ffea8)
*  add filter.topics.getPostReplies (7a019494)
*  topic reply to use api lib (also + missing file) (21974a77)
*  send 401 for invalid-uid (ede9435f)
*  async/await admin/search (c913900e)
*  ignore test folder (2927509a)
*  send back 403 on no-privileges error (14f9d8b0)
*  refactor groups.delete (8ae1f81c)
*  move groups.join to api (d69e503d)
*  allow plugins to define api routes (9dd3cc04)
*  require https if nodebb is configured with https url (a4ba2389)
*  add nyc config (3326d80c)
*  change user search to use filters array (a2edb86d)
*  add filter (959314c9)
*  require csrf token if not using bearer token (1e07886f)
*  #8662, verified/unverified user groups (682e926c)
*  more fixes (700e1e43)
*  more work (40a05b70)
*  wip admin/users (b038ac07)
*  set unread false for guests (7beaf490)
*  add stack to deprecate message (01265d08)
*  add checkbox tests (d76229c0)
*  add test for serialize/deserialize form (e92d4719)
*  disable write api tests until fixed (ae5fb103)
*  #8734, add slugify module, deprecate utils.slugify (bddfcb58)
*  #8734, move bootstrap-tagsinput to package.json (f16c8268)
*  #8734, move deserialize/serialize to package.json (eab7489e)
*  #5964, #8734 remove colorpicker (948f2614)
*  #8734 remove unused files (c721625a)
*  #8734, move sortable to package.json (cc705e5e)
*  #8734, move bootbox to package.json (300a8755)
*  load jquery-form before using (3b231360)
*  #8734, jquery-ui, jquery-form, timeago (#8748) (fda2aedf)
*  remove unused textcomplete file (59311a63)
*  #8734, remove semver.browser (ae3a231f)
*  #8734, move slideout to package.json (2c1897b3)
*  #8734, move tinycon to package.json (9c157de0)
*  #8734, move visibilityjs to package.json (43589a74)
*  #8734, move nprogress to package.json (a46cbb62)
*  #8734 move r.js to package.json (aa08f882)
*  revoke user sessions above threshold (#8731) (b3ed26ac)
*  filter:settings.get plugin hook (c7d15dfa)
*  topic delete/restore/purge/(un)pin/(un)lock (da25ce4d)
*  add new api page to ACP menu (5fc7e7bf)
*  management of API tokens via ACP (49652e6f)
*  added DELETE /api/v1/categories/:cid route (3072de48)
*  added PUT /api/v1/categories/:cid route (e942ad81)
*  added POST /api/v1/categories route (dc666fd8)
*  added PUT/DELETE /api/v1/users/:uid/ban routes (a5af2dc8)
*  added POST and DELETE /api/v1/users/:uid/follow routes (b5bbcbae)
*  added PUT /api/v1/users/:uid/password route (7aed174e)
*  added DELETE /api/v1/users/:uid and DELETE /api/v1/users (a1ddc210)
*  added openapi.yaml file for BEST documentation (91b79f17)
*  added checkRequired middleware for API calls (7b6d43bc)
*  migrating write-api skeleton into core (ec5c48b1)
*  remove post/header selector (1542a5d7)
*  category filter on post queue (#8710) (5d9a8681)
*  #6594, add top/popular sections to digest email (#8709) (e60357d2)
*  dedicated sorting buttons for plugin ordering in ACP (1761e13d)
*  #8233, search sub categories (54737d30)
*  move service-worker.js into its own file (f4d76f1e)
*  analytics:maxCache setting in ACP (14ba1a6d)
*  #8695, allow sort for guests (ea0f3262)
*  up recommended size to 512x512 + ACP labels for PWA (9c5b6907)
*  upload maskable icon for PWA (6478b32d)
*  show top 5 trending plugins in new tab in Extend > Plugins (b12e8d63)
*  register service worker, #8126 (aa268d5e)
*  add theme-color meta tag for browser address bar (5172d731)
*  basic service worker, minimum requirement for for a2hs; see #8126 (f69697b3)
*  option in ACP to configure notification/email delay for chats (5b427a0c)
*  allow autocomplete to pass optional params to user.search (611f3c61)
*  upon plugin installation via ACP, check against nbbpm first (5ddf7022)
*  up benchpress (8e88ccd6)
*  add row highlighting for popular and unread (2cd5f959)
*  return to previous page and/or category after marking topic unread (48a8ec4a)
*  add missing lang key (bd9b6c99)
*  add number of posters to topic (83d4e7ef)
*  hightlight matches in quick search (f2f3ba49)
*  add loading indicator (d38c8722)
*  allow plugins to override tags and tag counts (81595095)
*  edit test (ccddbb15)
*  add x-posts/x-votes keys (23de5613)
*  allow adding nested replies to a target component (ddc0ac37)
*  hotkey "/" to open ACP search (43571bac)
*  ctr-s for save on privileges page too (763cec31)
*  ctrl-s now saves on settingsv1/v2 forms (80931423)
*  single href (6669b23d)
*  allow passing in container to threadTools (7148be2f)
*  expose calculateTopicPostCount and getChildrenTree (43742437)
*  allow custom req.query.filter on /unread /recent (de824007)
*  fullname search (#8641) (4be693f2)
*  sorted set lex test (9389749b)
*  add topicIndex to category page (c1c617b3)
*  up lavender/slick (34eb1bd2)
*  switch to using topic/select component for merge (f6d56466)
*  undo for posts move (762e9fe8)
*  #8626, new move posts modal (5a40d26b)
*  refactor app.js (5002e0f6)
*  remove global RELATIVE_PATH (19c44861)
*  remove app.template (3cd3b7a1)
*  remove global window.templates (630bac2a)
*  remove app.isConnected, use socket.connected (fddeb5c0)
*  use const/let (6fc31df0)
*  allow nbb to work with cloudflare rocket loader :rocket: (4d665955)
*  move code (53a5f151)
*  #8602, dont send emails to unconfirmed addresses (b6917b9d)
*  add partials/footer/js.tpl (94da9fe5)
*  add missing name to profile image upload (54b49725)
*  add action:user.removeCoverPicture (b0a75922)
*  add user data to action:user.removeUploadedPicture (962446a5)
*  add userData to action:user.delete (9542ef12)
*  force upgrade scripts for test (1b7ba2c8)
*  replace relative urls to absolute before sending email notifs (1e5981c0)
*  add client side action:flag.create (09de364e)
*  additional sorting options for flags (0c203517)
*  new filter hook prior to post queue addition (8cc36de2)
*  add replies to getPostSummaryByPids (a9dfc9a7)
*  add reply count to getPostSummaryByPids (de0f4aad)
*  theme work for #8580, closes #8580 (6e805c1b)
*  allow undo of topic move (abb5e81d)
*  added alert.timeoutfn (cd8e7963)
*  sort dependencies alphabetically (a4dbbc37)
*  up persona (af9f328c)
*  banning a user will resolve their post flags (354e6ccc)
*  theme changes for #8571 (5415c01c)
*  logic for bulk actions in flags list, #8571 (a3a22793)
*  expose global/admin privileges to all routes (4737f937)
*  additional tests for #8569 (e047b72c)
*  flags list sorting, closes #8569 (346db0d8)
*  up theme (bd557af2)
*  allow adding multiple users to group (35a538ec)
*  add filter:group.getOwnersAndMembers (f1e82b64)
*  pass uid into filter:flags.list (9c70b662)
*  added security policy for github (45c8de12)
*  up deps (b97b51a8)
*  one more test (a333cb6c)
*  tests for password change (ecda4ad8)
*  limit privileges column to superadmins only (0903eb4b)
*  use nodebb-scoped bootswatch (12edd18b)
*  use assetBaseUrl instead of hardcoding (6e918858)
*  load timeago strings client-side (558a2d73)
*  +assetBaseUrl, -l10BaseUrl, -requireBaseUrl (9adaccd0)
*  #8550, add upgrade script test (b61a4da5)
*  #8493, plugin helper for standardised link/button injection (0bbb813e)
*  show event/params on error (d6baf5c2)
*  introduce overridable l10nBaseUrl config value (def16f9e)
*  allow multiple empty lines (58933c4c)
*  remove administrator property from public routes (dfabd0a3)
*  focus username when modal is shown (4216c277)
*  add helmet middlewares (774e5d04)
*  more discrete commit-on-save instead of commit-on-change w/ confirm modals (#8541) (a716a552)
*  add ability to search groups in group details page (e7a502e0)
*  use category selector in category page (fb7bb8d4)
*  css fixes (560f3eb1)
*  add privileges shortcut to groups list (91411cc4)
*  allow passing groupName to user.search (f89ec205)
*  #8531, closes #8531 (292d4904)
*  allow direct link to flag from post tools, #8531 (c705e08a)
*  allow changing requirejs base url (c4829fd8)
*  ability to clear cache from acp (bbc7737e)
*  reduce amount of data loaded on acp admin page (8d8117ff)
*  remove require fallback for plugins (303bffdb)
*  remove /assets/stylesheet.css (762b0be4)
*  add node 14 (6250a2e2)
*  make category tools in acp a dropdown (24535a62)
*  series upload (37e56d94)
*  resolve flag on delete/purge/ban/delete account (8bd63f61)
*  8502, don't change topics sitemaps on every reply (e045436c)
*  allow building custom languages during dev (0a9ea91f)
*  add link-plugins.sh (cc86f079)
*  remove deprecated utils.walk (609e37a6)
*  consolidation of flags to reduce flagspam, #8510 (55b0e902)
*  change invalid language codes to default lang (3761f05c)
*  add npx, fixes ghfw (a294e1cd)
*  remove topics.async.getTopicData usage (ce6b20c4)
*  remove deprecated checkGlobalPrivacySettings (0cea7136)
*  remove deprecated isAdmin method (a0da2ba7)
*  remove file.isFileTypeAllowed (2cdb935f)
*  remove deprecated hooks (4eae927d)
*  update readme (9869064e)
*  up node version to 10 (b39e0140)
*  highlight privs row if group is added / navigating from group page (10e4ae62)
*  prevent navigation away from groups page if changes are unsaved (53f6139b)
*  quick access dropdown on groups page to access privileges page (2c83278f)
*  #8524, allow editing category of queued topic (844f2b4e)
*  remove js-enabled (ff3c3435)
*  remove js-enabled.css (ec057835)
*  dont load all subscribers at once (2a5f8ab2)
*  short more info (23a9a334)
*  #8521, allow editing title before posting from queue (2485a550)
*  show language when key isn't found (764969ab)
*  allow searching categories in ACP (1e7397b1)
*  #8509, don't scroll chat to bottom if user scrolled up (320008cd)
*  added quick link to edit privileges on the category edit page (06143ca7)
*  hide some filters behind 'more filters' button (9fb9185f)
*  collapsible daily flags graph (d52d7bdb)
* **acp:**  autocomplete user search for welcome notifications (d40779a4)
* **writeapi:**
  *  user settings API (c26f2b65)
  *  commented-out stub code for file upload (cfee431c)
  *  file deletion route (f870721f)
  *  admin settings update route (a55b3817)
  *  token generation/delete routes, ACP updates (2ec838fc)
  *  post bookmarking (0973feea)
  *  post voting (9942c248)
  *  post delete/restore/purge (414169fd)
  *  post editing (f66c2fb6)
  *  topic tags (1605e5e4)
  *  topic follow/ignore (9be56294)
  *  adding missing files (6096f74a)
  *  topic posting and replying (4c833d0b)
  *  added DELETE /groups/:slug/membership/:uid route (40dc1c38)
  *  added group joining and deletion (952dc211)
  *  abstracted ajax calls out to new api module (d044c322)
  *  added POST /api/v1/groups (ba345e53)
* **openapi:**
  *  schema validation for write api definitions file (87e3f26f)
  *  refactor into indiv. files to match API & tpl routing (ffbf2d6d)
  *  refactor into indiv. files to match API & tpl routing (84f5e4cf)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-plugin-composer-default to v6.4.6 (b44c7e96)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.3 (f06d4878)
  *  update dependency nodebb-theme-vanilla to v11.3.0 (0d80190f)
  *  update dependency textcomplete to ^0.18.0 (df5d66e5)
  *  update dependency nodebb-theme-persona to v10.2.65 (0c7d5860)
  *  update dependency jsesc to v3.0.2 (#8802) (c4431294)
  *  update dependency nodebb-plugin-composer-default to v6.4.5 (7d0d0005)
  *  update dependency nodebb-theme-persona to v10.2.63 (b3ca7de0)
  *  update dependency nodebb-theme-persona to v10.2.62 (#8798) (12c590ad)
  *  update dependency nodebb-plugin-mentions to v2.13.1 (#8790) (8353857b)
  *  update dependency nodebb-theme-persona to v10.2.61 (#8794) (9de8497d)
  *  update dependency benchpressjs to v2.0.8 (#8767) (3b88545b)
  *  update dependency sharp to v0.26.2 (#8765) (42aed15b)
  *  update dependency nodebb-rewards-essentials to v0.1.4 (#8764) (25c447df)
  *  update dependency nodebb-theme-persona to v10.2.60 (dcf72354)
  *  update dependency nodebb-plugin-mentions to v2.13.0 (#8758) (411fa8bc)
  *  update dependency nodebb-theme-persona to v10.2.59 (#8755) (cd34bfb1)
  *  update dependency nodebb-theme-persona to v10.2.58 (#8754) (a77ba71e)
  *  update dependency nodebb-plugin-composer-default to v6.4.4 (#8752) (0399ffaf)
  *  update dependency benchpressjs to v2.0.7 (#8733) (f8e2324c)
  *  update dependency nodebb-plugin-composer-default to v6.4.3 (#8750) (666064bf)
  *  update dependency nodebb-theme-persona to v10.2.57 (#8749) (1c94220b)
  *  update dependency nodebb-theme-persona to v10.2.56 (414fe19c)
  *  update dependency nodebb-theme-slick to v1.2.39 (1bc99411)
  *  bump vanilla/persona (944a7e0e)
  *  update dependency nodebb-theme-lavender to v5.0.14 (#8739) (43df4b8e)
  *  update dependency socket.io-client to v2.3.1 (#8700) (ba62ebb6)
  *  update dependency nodebb-theme-slick to v1.2.37 (#8741) (45aceb26)
  *  update dependency nodebb-theme-vanilla to v11.2.21 (#8740) (0c7af502)
  *  update dependency nodebb-theme-persona to v10.2.54 (#8736) (4207dde4)
  *  update dependency nodebb-theme-persona to v10.2.52 (#8735) (70c085ba)
  *  update dependency nodebb-theme-persona to v10.2.51 (#8729) (bae2eada)
  *  update dependency nodebb-theme-persona to v10.2.50 (#8727) (804729fc)
  *  update dependency nodebb-theme-persona to v10.2.49 (#8722) (b01bc2ae)
  *  update dependency nodebb-theme-persona to v10.2.48 (#8721) (01702613)
  *  update dependency nodebb-theme-persona to v10.2.47 (#8720) (04b1daac)
  *  update dependency nodebb-theme-persona to v10.2.46 (#8719) (ba906d7d)
  *  update dependency nodebb-plugin-composer-default to v6.4.2 (#8718) (229421ed)
  *  update dependency nodebb-plugin-composer-default to v6.4.0 (#8716) (b3a24f74)
  *  update dependency nodebb-plugin-mentions to v2.11.0 (#8714) (c95a3898)
  *  update dependency nodebb-theme-slick to v1.2.36 (#8713) (fc2795d3)
  *  update dependency nodebb-theme-vanilla to v11.2.20 (#8715) (2b0deeb7)
  *  update dependency nodebb-theme-persona to v10.2.45 (#8711) (f14b4945)
  *  update dependency nodebb-theme-persona to v10.2.43 (#8701) (1d0eaafb)
  *  update dependency nodebb-theme-persona to v10.2.42 (2a1da61c)
  *  update dependency nodebb-theme-vanilla to v11.2.18 (#8697) (9bdef707)
  *  update dependency nodebb-theme-slick to v1.2.34 (#8696) (3e2816ae)
  *  bump persona (f17d42ed)
  *  update dependency sanitize-html to v2 (1e5621c0)
  *  update dependency nodebb-theme-persona to v10.2.39 (#8684) (d0010c40)
  *  update dependency nodebb-theme-persona to v10.2.38 (#8683) (bb04f149)
  *  update dependency json2csv to v5.0.3 (30aa7e83)
  *  update dependency nodebb-theme-persona to v10.2.36 (#8680) (07172b6f)
  *  update dependency nodebb-theme-persona to v10.2.35 (#8679) (68a5e7e3)
  *  update dependency json2csv to v5.0.2 (5a2adb42)
  *  update dependency nodebb-theme-persona to v10.2.33 (#8675) (abe83773)
  *  update dependency nodebb-theme-persona to v10.2.31 (#8673) (80dbf97a)
  *  update dependency nodebb-plugin-composer-default to v6.3.57 (#8672) (7ecac97a)
  *  update dependency nodebb-theme-persona to v10.2.30 (#8671) (c8a75631)
  *  update dependency nodebb-theme-persona to v10.2.24 (#8663) (72cd5f13)
  *  update dependency postcss to v8.0.6 (#8657) (55921ccf)
  *  update dependency validator to v13.1.17 (#8659) (01232090)
  *  update dependency sharp to v0.26.1 (#8660) (b175d671)
  *  update dependency nodebb-widget-essentials to v4.1.2 (#8658) (dc0a4a49)
  *  postcss and autoprefixer version incompatibility (70d3ad02)
  *  update dependency nodebb-plugin-mentions to v2.10.0 (5ea172f9)
  *  update dependency autoprefixer to v10 (60679481)
  *  bump theme versions (685633d0)
  *  update dependency nodebb-plugin-composer-default to v6.3.56 (#8648) (8089387b)
  *  update dependency nodebb-theme-persona to v10.2.22 (c5ca2609)
  *  update dependency nodebb-theme-vanilla to v11.2.16 (8acdf3f6)
  *  update dependency nodebb-theme-persona to v10.2.21 (ed0469b5)
  *  update dependency nodebb-theme-vanilla to v11.2.15 (134ebba6)
  *  update dependency nodebb-theme-vanilla to v11.2.14 (31635e3e)
  *  update dependency nodebb-theme-persona to v10.2.20 (2a13e583)
  *  update dependency mongodb to v3.6.2 (#8634) (4969c869)
  *  update dependency nodebb-theme-vanilla to v11.2.13 (#8633) (8137cdc2)
  *  update dependency nodebb-theme-persona to v10.2.19 (#8632) (37e37c86)
  *  update dependency nodebb-theme-vanilla to v11.2.12 (#8628) (7ab87072)
  *  update dependency nodebb-theme-persona to v10.2.18 (#8627) (2740655d)
  *  update dependency nodebb-theme-vanilla to v11.2.11 (#8624) (fd6259c8)
  *  update dependency nodebb-theme-persona to v10.2.17 (#8623) (a1d310bd)
  *  update dependency nodebb-theme-slick to v1.2.30 (#8620) (251ea79b)
  *  update dependency nodebb-theme-persona to v10.2.16 (#8618) (0d85dc48)
  *  update dependency nodebb-theme-vanilla to v11.2.10 (#8619) (b52301b1)
  *  update dependency nodebb-theme-vanilla to v11.2.9 (#8616) (69373fde)
  *  update dependency nodebb-theme-persona to v10.2.15 (#8614) (3c0540c1)
  *  update dependency socket.io-redis to v5.4.0 (#8600) (5ba23f24)
  *  update dependency nodebb-theme-vanilla to v11.2.8 (#8599) (97e3543e)
  *  update dependency nodebb-theme-persona to v10.2.12 (#8598) (1bb0896e)
  *  update dependency nodebb-plugin-composer-default to v6.3.55 (#8606) (dfeb65bb)
  *  update dependency nodebb-plugin-markdown to v8.12.1 (27426c06)
  *  update dependency nodebb-theme-vanilla to v11.2.5 (64f4179a)
  *  update dependency nodebb-theme-persona to v10.2.10 (777419b2)
  *  update dependency sharp to v0.26.0 (#8578) (7ca967ee)
  *  update dependency ipaddr.js to v2 (49aeda01)
  *  update dependency nodebb-theme-lavender to v5.1.0 (87674d68)
  *  update dependency nodebb-theme-persona to v10.2.5 (8032c8bd)
  *  update dependency helmet to v4 (#8543) (ad68a338)
  *  update dependency mongodb to v3.6.0 (#8535) (4160e828)
  *  update dependency nodebb-theme-persona to v10.2.4 (#8544) (b30ecffb)
  *  update dependency nodebb-theme-persona to v10.2.1 (#8529) (7a59c2fc)
  *  update dependency nodebb-plugin-composer-default to v6.3.53 (d24a4bd3)
  *  bump themes (b714ed22)
  *  update dependency commander to v6 (#8518) (75fb2a47)
  *  update dependency archiver to v5 (#8523) (f1cc4e29)
  *  update dependency lru-cache to v6 (#8490) (2941b9f9)
  *  update dependency connect-redis to v5 (#8480) (9c17a677)
  *  update dependency nodebb-plugin-composer-default to v6.3.52 (#8522) (ac257a65)
  *  update dependency nodebb-theme-persona to v10.1.68 (#8520) (f06b1cec)
  *  update dependency nodebb-plugin-mentions to v2.9.3 (#8516) (b5df5766)
  *  update dependency nodebb-plugin-dbsearch to v4.1.2 (649c64e4)
  *  update dependency nodebb-plugin-mentions to v2.9.2 (91bdc12a)
  *  update dependency nodebb-plugin-composer-default to v6.3.51 (0e13fd0f)
*  check is banned in buildHeader (4b63f993)
*  undefined call (518d4fa1)
*  missing await (08ff4041)
*  client side crash when creating groups (5a2b14b7)
*  disallow registration attempts with password length > 4096 (c0f699e6)
*  missing await (4818ec37)
*  broken test (87bff6cd)
*  updated commitlint config to allow longer subjects, because nobody anywhere uses an email client that limits subject lines to 72 characters (a53d49a2)
*  restore old behaviour of empty json w/ 401 code in admin middleware (dda5d426)
*  deprecate middleware.isAdmin (15e0731d)
*  post editing not taking plugin hook results into account (4439864c)
*  #8805 define our own name for write API v3 (57ed6be7)
*  removed superfluous assignment (a08fb8e5)
*  createNewPosts to build tpl with ajaxify.data (0b6ef61e)
*  handle ACP category enable/disable states after call success (bff53de0)
*  remove setCategorySort and setTopicSort (a6a52430)
*  sort setting not using correct field name (9082062e)
*  update readme to include psql (2d29e603)
*  breaking test from 0db0231cff097a6e983683e61284a72d42bd594d (cc1c7220)
*  indentation (04185d94)
*  add back derpy 20 second sleep (8e7914ff)
*  missing method in test error output (3ebb3a34)
*  topic object in post editing data return (3c98cd3d)
*  bug where token generation route would fail on null case (618e0983)
*  typo (2e9f27d8)
*  return early for guests/spiders (203db47b)
*  #8789,cache meta.settings (156e1396)
*  spec (7a318352)
*  tests (63e07c94)
*  #8781 (db63f5e3)
*  reset button loading html (1a4c0dec)
*  #8779, fix move all (e6440c0d)
*  allow admins adding users to global moderators (1f43e98f)
*  incorrect logic for post history editable bool (a691be59)
*  [breaking] send configured config URL as origin if not custom (205a1030)
*  #8776 some users unable to restore old versions via history (7a8f7049)
*  #8595, dont save escaped data when renaming groups (b26e9b59)
*  keep sortBy while searching (3ee4936d)
*  autocomplete.user on search page (85cfe49d)
*  spec (cf474ab2)
*  sortby (7bddec93)
*  #8774 (b3619d3d)
*  #8732 (c107649b)
*  #8630, sort extra deps (e362c342)
*  missing doTopicAction, fix wrong api params (e78c498e)
*  test (8fd3c044)
*  appropriate 404 handling for write API calls (b6cce75d)
*  redis hget (b2ff1594)
*  reimplementing isPrivilegedOrSelfAndPasswordMatch (e98285db)
*  socket user bans (3f347baa)
*  broken tests from api change (222b4c95)
*  tests (7d86be2b)
*  handler for group.join (51a60d3d)
*  add missing file (d07f0081)
*  #8768 (4418ff07)
*  api bug where user profile editing continued even if not allowed (cc6e995e)
*  module build (bae0f343)
*  tests (b295d15e)
*  csrf token only on non-GET routes (20bb9c7e)
*  avatar selector (4b9444f1)
*  test (e6ea71c9)
*  timestamp (8c6a5591)
*  #8763 (331d236f)
*  lastonline again (a481024d)
*  caret (71d82ec8)
*  lastonline values (97628e2f)
*  upgrade script (1289c105)
*  cant join system groups (59bbede8)
*  tests (a411df13)
*  update server param to /api/v3 (0e0f1506)
*  typo (c68653d0)
*  testing openapi write tests (7aa4d104)
*  enable tests (7b2301ff)
*  test fix for write API (54e6003a)
*  password reset to invalidate all existing reset tokens for that uid (30b3fedc)
*  show more lines (ba2e1c4c)
*  #8756, pass missing req to mock (30d6a2b8)
*  #8757, allow all slashes in category route (1ee93848)
*  timeago test for dev/prod (7db224f6)
*  timeago test (cecdd291)
*  undefined api require, @julianlam (931d44b5)
*  watch tooltip (e2d407b7)
*  module name (aedd28e0)
*  pin sortablejs (8f436eb8)
*  admin jquerui requires (75c96686)
*  timeago locale switch (8c019a6a)
*  category RSS feed was displaying deleted topics (9a5b8a79)
*  #8734 make nprogress module (45e8a4d5)
*  regression caused by 754595172549ba39b406bd36fc3387d95782d84f (8af30a51)
*  dont allow adding duplicates to privileges page (12c8b1c2)
*  #8728, dont add admins to table (f259063f)
*  remove debug log (675a62da)
*  tests (adcadbb2)
*  bad merge w/ category ACP page (cb9369f1)
*  bad logic in group assertion middleware (8e89f34d)
*  errors thrown if no password sent in to profile edit route (7757f965)
*  bug where middlewares seemingly ran in parallel (549ca110)
*  follow route to match spec (db5c5b2c)
*  missing one property in openapi doc (af2e424f)
*  error handling with POST /api/v1/users (d8879d21)
*  use POST call for user creation in ACP (58043e07)
*  user creation POST route returns user data, updated openapi spec (bba2a463)
*  selector, so it doesnt effect suggested topics (7138d433)
*  use proper api url (264818e5)
*  tests, get latest release tag recursively (8eb62e22)
*  use app.parseAndTranslate instead of benchpress.parse (fc603a53)
*  sorted list delete button (20e0cc5c)
*  unable to register async method as response hook listener (dde5b6b8)
*  dont allow sorting pinned topics on recent (b955fd36)
*  use console.info instead of console.log for sw registration (3c7f79cb)
*  spec (7cd83b9a)
*  spec (6924eb6c)
*  test (cb2f6f7c)
*  dont let mods load postqueue for a cid they are not a mod of (7bf6d3b8)
*  show disabled categories in admin&mods (2ea9768e)
*  prevent mutiple highlighted rows on category/topic pages (60afb110)
*  spec (fbd85680)
*  do not show TOC if fewer than 2 headings (f1de084d)
*  params cached in autocomplete module (caa8c00f)
*  #8686, deprecate `plugin.json/library` (#8705) (017af63f)
*  updating minimum node version in readme (d3951ebe)
*  update "install plugins" link to go to the download tab (5441651e)
*  overflow on submitPluginUsage field (c56236f0)
*  #8699 tags route is case sensitive, though tags are not (38f88fc5)
*  early button/anchor clicks do nothing (8437130e)
*  early button/anchor clicks do nothing (966d3f76)
*  error on `reset -p` if plugin is not active (7f58e3ab)
*  manifest test + remove duplicate test (bf3c1c08)
*  typo in getCompatiblePlugins (07af6213)
*  typo (54705cc4)
*  manifest - use absolute URL for start_url (31528a52)
*  prefer webmanifest extension over json (46800b66)
*  update notification delay ACP help text (4c1e717b)
*  #8681 change owner modal's search should check if user is banned (b6f2f0e5)
*  add img-responsive to post queue post items (f8032cd0)
*  language key in reset password (2ad33058)
*  issue where the last flag filter could not be removed (0fffe289)
*  multiword match highlight (f8ef380b)
*  tooltip placement on navbar search (82ab6cd3)
*  rogue tooltip on navbar profile icon (683c01b0)
*  #8580, @julianlam (445a840b)
*  topic count on category page if filter is author (bbf6889e)
*  match api when modifying ajaxify.data.deleted (int, not bool) (703ac1b6)
*  lock/unlock toggle issue (9a7c3c68)
*  #8665, trim email before checking validity (ac43cd8b)
*  editing posts saving uncessary data (e72fe259)
*  api spec (654d5830)
*  #8640, add bookmarks to intFields (4f14dc7a)
*  change user tooltip container to content (02a48e1c)
*  auth tests (fe2dc310)
*  #8656, rename /api/me to /api/self (af43f0e4)
*  add user tooltips to body (047c4148)
*  tests (22cd2654)
*  use correct topic count for category (220297d5)
*  clear old value on focus (42298fe6)
*  skip elements if they dont have proper index (c9c9dd2f)
*  call to reskin (99f24c59)
*  move necro-post to be in-line with posts (44309ee6)
*  tests, because redis is TOO FAST (4fca7938)
*  remove old test (5e8c3761)
*  client side crash if there are no topics (a8e18fdb)
*  #8418 (38d3982b)
*  typo (08912361)
*  tests (65d049c6)
*  check if unread_tids are followed (2d5bd153)
*  openapi (e9094094)
*  dont use hardcoded fontawesome icons for lock pin (632793b0)
*  #8629 and change undo timeout to 10 seconds (65d94a3b)
*  alert_id selector (2bebdf01)
*  use text-right (a78e1df9)
*  remove lang keys, remove sounds menu (a34b685c)
*  lavender version (8a752364)
*  tests (e3a0b4b1)
*  wider widget area (4bace773)
*  bypass nbbpm for now (33c1bd5f)
*  #8432, add CSP frame-ancestors (46ab2711)
*  allow setting maximumAboutMeLength to 0 (4588e521)
*  additional commit for CF rocket loader (a38784f5)
*  stack trace (4031a8ca)
*  #8604 (a2638976)
*  don't toggle elements if there is no inputEl (57f67e2b)
*  don't crash on outdated redis instances (896fe9d6)
*  update post-queue hook names (0e58d2b8)
*  accept/reject in post-queue instead of accept/delete (694f4b2b)
*  new openapi def for replies addition (b5871275)
*  #8582 (9f9164a9)
*  debug logging :dog: (fb3b4a02)
*  ip-blacklist not working after #8580 (56101ae5)
*  ip-blacklist not working after #8580 (c681b4b2)
*  post-queue not working after #8580 (dc5bd760)
*  #8411 missing language sources for ip-blacklist/post-queue (a93e1955)
*  removed invalid options for the sendmail transport (#8576) (2b785628)
*  missing localisation for topic move error (bacee6b4)
*  select all checkbox does not re-enable bulk actions button (5d60dce3)
*  dupes in unread followed topics (55533b11)
*  wrong data passed to getCategories (39f4bbaa)
*  openapi spec (4f7cfd53)
*  api spec (c4ad14cb)
*  username, email history disappering if content was deleted (91d9333a)
*  up composer (9fd37753)
*  package-install clobbering scoped nodebb plugins (840cb510)
*  empty "manage" menu showing in ACP (4b0cb26b)
*  hide nodebb version in ACP for non-superadmins (cc268605)
*  change how admin middlewares are exported (f00595b3)
*  one less return, to appease codeclimate (ae68a254)
*  inability to access /admin if not superadmin (03bd76de)
*  #8560, fix old upgrade script (29e3ab24)
*  use promises in privilege save (9cbe9389)
*  overzealous click handler on flag list row (7a5daff4)
*  +comment, -debug log (9608b44f)
*  multiple alerts in the same millisecond overwrite each other (589216e7)
*  reintroduce 20s delay for api tests (56393795)
*  client-side error in flags/detail (b2271eb6)
*  #8570 (7daba7dd)
*  sorting the flags list by newest is not considered a filter (3efe2362)
*  flag list tests due to breaking change in API (360aa00d)
*  no-widgets messaging in ACP + copy (334be113)
*  #8568 perPage not acting like a filter (cabe62a0)
*  #8562 (31c2b7d9)
*  progress bar clobbering upgrade script name (2adae879)
*  tweak upgrade script progress bar to only update 100 times in total (ac75c9a0)
*  navigation title unescape upgrade script tweak (80a2a700)
*  new language key for error handling (7456a0e3)
*  upgrade scripts not run properly if schemaDate is present (de8eebbd)
*  #8556, catch errors from admin check (bfaf648e)
*  upgrade script for 1.15.0 (32682738)
*  improper targetUid check during password change (16cee1b0)
*  #8547, remove old deps during upgrade (#8557) (1d170e0c)
*  #8558, only navigate if user is in same topic (79e847d4)
*  upgrade script (231d34d0)
*  don't allow duplicate upgrade script names (8887f0ed)
*  tests (d6297b28)
*  send hard 404 instead of soft 404 for missing modules (9f3b7811)
*  #8549 send 308 Permanent Redirect on topic/category shortlinks (68f8d6e3)
*  remove default helmet (c39c5113)
*  map instead of forEach in privileges save (a7071bb8)
*  remove duplicate configuration for helmet-hsts (0f10e083)
*  don't process invalid topics, fallback to 0 score (335169f2)
*  tests (6924a222)
*  #8539, enforce content checks for post queue (bb224184)
*  bug; additional reports could be added by the same user repeatedly (0f2b6f1f)
*  #8538, go to first unread instead of last read (519e6659)
*  #8533, validate and retry password during setup (0d698a07)
*  #8534, dont show modal on search (9e80a9ef)
*  language string (9f346c53)
*  api test (8415d2f0)
*  tests (9df871be)
*  tests (69fb1527)
*  reverse uid checks (7331faed)
*  acp view category button if category is a link (2dfe9d49)
*  remove old test (52718ce0)
*  #8515, fix login redirect on subfolder (5e5815f0)
*  tests (f48d1556)
*  #4695, remove new notif alert (fd4c3cda)
*  too small sortable handle for ACP>Manage>Categories (8473e165)
*  less fixes for category dropdown (db07dd85)
*  move check inside lock (57135761)
*  #7351, display less errors with location and error message (d1cb405d)
*  use shorter git url, #8527 (345fd72b)
*  cursor for category select (4c90fac4)
*  api docs for admin/manage/groups/x (8769e28b)
*  edge case in test (b9cff577)
*  api tests (42af4b57)
*  #8500, allow regular users select topics on unread (7260646d)
*  don't crash if content is undefined (4658121a)
*  crash if csrfToken does not exist (a3c8d456)
*  try again (6f889c9c)
*  more tests (a46adb3f)
*  tests (65395ae5)
*  tests (72c60d19)
*  tests (67ca5e32)
*  #8508, dont allow moving topics if not moderator of target category (36531511)
*  composer textarea placeholder l10n /cc @pitaj (1e14af45)
* **openapi:**
  *  final fixes to schemas (14e5c24e)
  *  users.yaml (16873800)
  *  moved write-api to public/openapi (49994f3a)
  *  test for new trending plugins in ACP (3fbddbe2)
  *  tests (d935f036)
  *  new api definition (8ff09630)
* **writeapi:**
  *  more tweaks to schema files (b2e9e3e0)
  *  fix components, + tag object schema (9f9e3c15)
  *  missing files for tests (a4f3270f)
  *  normalizing data (1392d064)
  *  tests (b092f65d)
  *  added examples to all parameter objects in schema (93f65f89)
  *  tests (ebcb664b)
  *  tests (229eb2c2)
  *  tests (b8703ba9)
  *  tests (41f55b7a)
  *  calls to profile editing routes 200 even if user DNE (8e7baac6)
  *  client-side group join API call (68ecf41e)
  *  authenticate middleware logic to work better with await (fd67355b)
* **refactor:**
  *  patching helpers.tryRoute for API routes, some re-org (d15d9e44)
  *  merging write-api auth middlewares with core middlewares (f6433ef2)
* **bug:**  #8611, custom route logic corrected (#8612) (64a457a4)
* **docs:**  updating changelog (6e34b9ef)

##### Performance Improvements

*  reorder async calls (93bdfe2f)

##### Refactors

*  simpler check in user.blocks.filter (a02ae6f5)
*  remove usage of middlewares (266d7587)
*  remove /users/{uid}/settings/{setting} route (aa8faf58)
*  api test suite to accept methods other than GET (843aff58)
*  remove unnecessary wrapper (a512d994)
*  remove console.log, extra require (75024c35)
*  show more lines of stack trace (ea31f505)
*  posts api (d9a16855)
*  post restore/delete/purge (272e73da)
*  merge post.edit (9738e202)
*  deprecate socket.emit('users.search') use api route (2279e372)
*  api categories (083c74e0)
*  remove sockets.reqFromSocket (bc880ee0)
*  topic follow/ignore to use api lib (9ee3cb9b)
*  topic tools' actions to use api lib (68d6818b)
*  topic creation to use api lib (40598b36)
*  setupApiRoute signature (bf480ee5)
*  remove unused middleware (688d7a2c)
*  user bans to use api lib (2d252f2f)
*  move groups.leave, fix some tests (e367c540)
*  change password/user follow to use api lib (960e925e)
*  user deletion to use api lib (430e7f58)
*  socket profile update to use api lib (77481947)
*  socket profile update to use api lib (31ae8a83)
*  user create and profile update to use api lib (23086dae)
*  use single function for api code (5e2caf19)
*  async/await src/user/approval (43afe7ff)
*  async/await install/web.js (3881ac30)
*  async/await (1fd2eba6)
*  use app.render (d89477ca)
*  api module (3673accd)
*  api module returns promise, error-first cb if cb passed in (a784d10f)
*  remove unused search call (dd7424e5)
*  switch to using slugify module (dc29f4dc)
*  require style (c954db84)
*  middleware.assert.* (8ecef7b8)
*  rewrite modules/api.js in AMD style (a905d7f0)
*  remove posts.tools.purge (ed092bf6)
*  shared constants (#8707) (1aa336d8)
*  post edit (16039b11)
*  expose new method for appending moderation note (29b357bc)
*  socket posts delete/restore/purge so tid is not necessary (#8607) (f743f920)
*  ip-blacklist and post-queue language files (4dc6e64a)
*  moved ip-blacklist and post-queue styles/tpls to themes (b6b94a56)
*  changed way middleware was exported (cf2f1e95)
*  remove util.promisify calls (01899459)
*  change pwd change logic (846b7d24)
*  rewrite src/upgrade.js with async/await (33c5988c)
*  change incrementViewCount and markAsRead to async/await (2c35d0ba)
*  for codeclimate (2ee62483)
*  rewrite src/install with async/await (776e34a8)
*  removed rather redundant flag reporters zset (6c00ec84)
*  flags object in post tools (fcdbdf63)
*  pass only needed data (f1974fb9)
*  startup (c54b6b9c)
*  get rid of bind calls (af91c26a)
*  setting codeclimate to A (bc26883a)
*  make msg pretty (8ddc8dd1)
*  flag sanity checks, +feat: flag limits (e3e55f25)
* **writeapi:**
  *  update route prefix to api/v3, default error option (3ea1aa47)
  *  post.tools.purge no longer a method (5e2a3ea6)

##### Code Style Changes

* **openapi:**
  *  break write API routes into individual files (dbb4cfe9)
  *  move schemas and responses out of write.yaml (ffac3c79)
*  updates to openapi files (2928b9b8)
*  allowing some es6 features client-side (e1c40b27)
*  linting (cdb79488)

##### Tests

* **openapi:**  missing commonprops addition (0dc55bbc)

#### 1.14.3 (2020-07-08)

##### Bug Fixes

*  improper targetUid check during password change (c2477d9d)

#### 1.14.2 (2020-07-15)

##### Chores

*  incrementing version number - v1.14.2 (1e4d683f)
*  update changelog for v1.14.2 (488e69fd)
*  up theme (63fb2ad7)
*  incrementing version number - v1.14.2-beta.1 (9d1465d0)
*  up theme (15aabfd3)
*  up theme (599c5015)
*  incrementing version number - v1.14.2-beta.0 (fca4ee31)
*  incrementing version number - v1.14.1 (31203b16)
*  update changelog for v1.14.1 (d4c16086)
* **deps:**  update commitlint monorepo to v9.1.1 (0ca7e28a)

##### New Features

*  logic for flag note editing, #8499 (14417209)
*  logic for flag note deletion, #8499 (f85a45c7)
*  #8460, export groups members as csv (00d39fb3)
*  pass connection options to socket.io-adapter-mongo (393f19b4)
*  #8023, allow wildcard search for uid/email (3dcf5387)
*  up composer (6235b31c)
*  #8427, daily downvote limits (c513b88d)
*  warn user if whitelisted tags are less than minTags (4adbf87c)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-plugin-mentions to v2.9.1 (c54287fe)
  *  update dependency nodebb-plugin-mentions to v2.9.0 (7730e7da)
  *  update dependency nodebb-theme-persona to v10.1.62 (#8485) (4e9743ab)
  *  update dependency nodebb-plugin-composer-default to v6.3.49 (#8479) (ab244ca6)
*  #8499 (65240a17)
*  #8500 (5e984d10)
*  invalid session error modal during logout (2286ee2a)
*  #8488 (b3a88331)
*  category search in selector (46a66863)
*  groups.updateCover (73ddf1cb)
* **docs:**  bad changelog (60bf488f)

##### Other Changes

*  update changelog for v1.14.2" (e085c846)
* flag.showModal on flag modal appearance (3379d65f)
* NodeBB/NodeBB (2fba0a14)
*  update changelog for v1.14.1" (26c74409)

#### 1.14.1 (2020-07-08)

##### Chores

*  incrementing version number - v1.14.1 (31203b16)
*  update changelog for v1.14.1 (d4c16086)
*  incrementing version number - v1.14.1-beta.3 (e8ecef6b)
*  incrementing version number - v1.14.1-beta.2 (b8d9b6b1)
*  incrementing version number - v1.14.1-beta.1 (be85123a)
*  incrementing version number - v1.14.1-beta.0 (c279875a)
*  incrementing version number - v1.14.0 (bb73d6a4)
*  update changelog for v1.14.0 (cffae0f1)

##### New Features

*  add tools to recent/unread (#8477) (658dd03b)
*  fire new hooks on chat message editing (4f51838d)
*  add back redis tests (bdc4d9e7)
*  remove redis test (8461a179)
*  use covered query (057b783d)
*  add js-enabled.css to list of preloaded css files (da29b947)
*  zscan (#8457) (723fe8e8)
*  fix blocksCount not being returned on user profile (bd228d5e)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-theme-persona to v10.1.60 (#8478) (14eafcb6)
  *  bump nodebb-plugin-composer-default to 6.3.48 (943a344a)
  *  update dependency nodebb-plugin-dbsearch to v4.1.1 (#8476) (9f06f12c)
  *  update dependency nodebb-plugin-composer-default to v6.3.47 (#8473) (857900f1)
  *  update dependency nodebb-plugin-dbsearch to v4.1.0 (#8471) (eb51cfd4)
  *  update dependency nodebb-theme-persona to v10.1.59 (#8468) (ee38e05d)
  *  update dependency nodebb-widget-essentials to v4.1.1 (#8466) (519e035d)
  *  update dependency @nodebb/socket.io-adapter-mongo to v3.0.1 (#8464) (412ca4ae)
*  #8474 (c2ca02df)
*  show stack properly (7b04d897)
*  editing chat messages does not go through content sanity checks (9a6b87d2)
*  don't show blocked users under nested replies (d6c619cf)
*  tests (87dd6c83)
*  handle scan/zscan returning duplicate elements on redis (746222d6)
*  #8467, fix url to merged topic in subfolder installs (9eb748b9)
*  openapi (5f1865c0)
*  openapi (65c0adc7)
*  dont allow searching by email/ip if not privileged (ac6b571e)
*  missing backgroundImage #8386 (fef04fcf)
*  dont allow searching by ip/banned/flagged for regular users (02ac44cc)
*  admin privileges client-side regression (f3441fce)
*  only add blocksCount for self and admins (59a2ace6)
*  tests (fd20e5c6)
*  better changelog (f992af05)
* **tests:**
  *  another shot in the dark (8853cd1a)
  *  shot in the dark (9458d90b)
* **openapi:**  tests (c468942f)

##### Other Changes

*  update changelog for v1.14.1" (26c74409)
* //github.com/NodeBB/NodeBB (0d9461b1)
* //github.com/NodeBB/NodeBB (ace312e0)
* post.changeOwner (b60e1cbf)

##### Reverts

*  bad changelog (a761e31f)

#### 1.14.0 (2020-07-02)

##### Chores

*  incrementing version number - v1.14.0 (bb73d6a4)
*  update changelog for v1.14.0 (cffae0f1)
*  bump persona (19f9af94)
*  latest translations and fallbacks (22879633)
*  incrementing version number - v1.13.3 (ee583e80)
*  bump persona (d2bd746c)
*  incrementing version number - v1.13.2 (beafd613)
* **deps:**
  *  update dependency smtp-server to v3.7.0 (e80100b5)
  *  update dependency eslint to v7.3.1 (#8417) (33492744)
  *  update commitlint monorepo to v9 (569b7664)
  *  update dependency lint-staged to v10.2.11 (157e7444)
  *  update dependency lint-staged to v10.2.10 (102a6004)
  *  update dependency mocha to v8 (#8393) (f4bace03)
  *  update dependency eslint to v7.2.0 (cd1375cb)
  *  update dependency eslint-plugin-import to v2.21.1 (4b577a52)
  *  update dependency lint-staged to v10.2.9 (#8369) (124125f7)
  *  update dependency lint-staged to v10.2.8 (331b1a85)
  *  update dependency lint-staged to v10.2.7 (d1df0826)
  *  update dependency mocha to v7.2.0 (ecaa9b76)
  *  update dependency eslint to v7.1.0 (e62d892a)
  *  update dependency lint-staged to v10.2.6 (78d562b3)
  *  update dependency lint-staged to v10.2.4 (a26011e7)
  *  update dependency eslint to v7 (28df9aba)
  *  update dependency coveralls to v3.1.0 (5ed4a108)
  *  pin dependency @apidevtools/swagger-parser to 9.0.1 (51eccef5)
  *  update dependency husky to v4.2.5 (30a25983)
  *  update dependency husky to v4.2.4 (0a650118)
  *  update dependency lint-staged to v10.1.3 (a9e68639)
  *  update dependency nyc to v15.0.1 (#8231) (a3789e28)
  *  update dependency lint-staged to v10.1.2 (#8235) (e1919c90)
  *  update dependency lint-staged to v10.1.1 (944a6f58)
  *  update dependency lint-staged to v10.1.0 (30bd233b)
  *  update dependency eslint-config-airbnb-base to v14.1.0 (811c3aee)
  *  update dependency jsdom to v16.2.2 (c5a7242d)
  *  update dependency eslint-plugin-import to v2.20.2 (b92c1600)
  *  update dependency lint-staged to v10.0.10 (0ad4b556)
  *  update dependency coveralls to v3.0.11 (14458087)
  *  update dependency smtp-server to v3.6.0 (22681945)
  *  update dependency mocha to v7.1.1 (#8215) (c5356541)
  *  update dependency grunt to v1.1.0 (#8214) (b0864e7c)
  *  update dependency husky to v4.2.3 (#8162) (776fe9d2)
  *  update dependency lint-staged to v10.0.8 (#8180) (13d8f6f1)
  *  update dependency eslint-plugin-import to v2.20.1 (#8081) (4cdb3131)
  *  update dependency jsdom to v16.2.1 (#8165) (fbd95a50)
  *  update dependency husky to v4.2.2 (#8160) (f4ed35c9)
  *  update dependency jsdom to v16 (#8114) (1037de02)

##### Documentation Changes

*  updated changelog (146388aa)

##### New Features

*  polish for user blocks UX (6cb31791)
*  #8450, next/prev link tags on /unread /recent (eb9704f8)
*  allow flagging of user acounts from post tools menu (6931f29d)
*  closes #8440, allow configuring max topic count (e09ab3dc)
*  add missing translation key (bffb830d)
*  #3783, min/max tags per category (c718b729)
*  use tags partial instead of post_bar (0482fb29)
*  hide elements if search element is a direct child of dropdown (4f6b6c56)
*  increase wait (6aecc177)
*  move export functions into child processes (8383992d)
*  display stack trace on winston.error (e80379dc)
*  show more relevant snippets (f70d1648)
*  #8412 breadcrumbs for ip-blacklist/post queue/flags (35a06a84)
*  show editor in post diffs if available (f909ed25)
*  #8408 flags' quick assignment (d5af9769)
*  bump themes, closes #8406 (cb5ba76b)
*  allow post diffs to be restored, #8406 (58b3d608)
*  add missing translation (3a80a165)
*  up composer (96cb94dc)
*  more search changes (6349fa03)
*  more merge/search fixes (4b38533b)
*  merge changes (bb3aa540)
*  more search & merge fixes (5fd05dc9)
*  merge improvements wip (c4bdeae0)
*  #8387 expose global and admin privs to flags detail page (4acb3fb2)
*  redirect /me to user profile (3be4d5f7)
*  #8384 options to delete account, content, or both (4d60eac6)
*  account content deletion, closes #8381 (67aca822)
*  add missing language files for #8347 (656b391f)
*  privileges for Admin Control Panel (#8355) (a82e9bd7)
*  add buildHeaderAsync (#8367) (842b8abb)
*  #8360 flag quick actions for delete/restore/purge (8ea16348)
*  #8349, remove user posts from queue if user is deleted (5a2b5154)
*  up plugins (5b009e07)
*  add results into results container (9ffcb6f7)
*  quick search changes (f12d448e)
*  move quick search into search module (bb1a56f0)
*  fix session mismatch errors by clearing cookie on logout (#8338) (5781a2dc)
*  add getSortedSetMembers (0009f54e)
*  add privilege give/rescind hooks (#8336) (ec5582b5)
*  filter followed tids by category (f3afba61)
*  use getSortedSetsMembers to load followed tids (1b9e8928)
*  add batch size to cursors (a015af4a)
*  up cache size (9600ede5)
*  tweak intersection code, add tests (4ee3543e)
*  change to contains to match scoped modules (6108064e)
*  improve grunt restart/rebuild speed (cb662e15)
*  don't overwrite req.query.lang if it exists (4263efa0)
*  convert queries so they used indices directly (12c6bc2e)
*  cookie SameSite property (ae2db423)
*  if only one value is passed used faster function (2587112f)
*  closes #8316, add more data to export profile (f0323b6c)
*  throw error if uid is missing for update (1d3fa3bc)
*  ignore mongodb playground file (a219285e)
*  parse quick search tpl even if no results (765b8156)
*  match hook property to topic property (0e58fa33)
*  add methods for adding/removing tags from topics (bfad4572)
*  write-api update, WIP (9fd5c439)
*  closes #8308, edit post notif for watched topic posts (a73c755b)
*  add null tests for sorted sets (edf9fe3b)
*  Add hooks for user blocks (#8296) (c4545381)
*  allow activating additional plugins for testing via config.json (a969c5ce)
*  move plugin tests to separate file (3a23ddab)
*  remove node14 for now (a72e4429)
*  reduce infinite scroll area (3fcbd691)
*  manifest.json improvements from #8126 (#8264) (6e5ebb61)
*  show error if json is invalid (15345627)
*  moved component specs into separate files (cd506557)
*  added UserObject, UserObjectFull, Breadcrumb, Pagination component (64d79fe5)
*  added some summary and descriptions (ae3e90d6)
*  add some descriptions (442c018e)
*  common schema (eade13f9)
*  openapi component (1af5507a)
*  add page query param to docs (9987813f)
*  tag route doc (bbddaadf)
*  local redoc view on development mode only (1136a369)
*  added auto-generated, slimmed-down openapi 3.0 file for read api (7b155dab)
*  add parent cids to body class (23571224)
*  add 2 hooks for modifying privileges (d080c7b0)
*  add user ip to admin/dev/info (5e91a67e)
*  change option name (cba5b23e)
*  add no-build to ./nodebb setup (476f6717)
*  add awaitable socket.emit (4083a6e3)
*  settings sorted list (#8170) (3c9689a5)
*  guard against accidental ommision (79737c53)
* **docs:**  updated changelog (87c1687d)
* **openapi:**
  *  merging openapi-test branch into master (8387178b)
  *  move all commonprops out for commonprops component (65c78de6)
  *  added template to commonprops (2425f453)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-plugin-composer-default to v6.3.46 (5a713d85)
  *  update dependency nodebb-plugin-mentions to v2.8.3 (#8449) (bbd85049)
  *  update dependency nodebb-plugin-mentions to v2.8.0 (d40720f9)
  *  update dependency nodebb-plugin-composer-default to v6.3.44 (#8436) (c1991abe)
  *  update dependency winston to v3.3.3 (#8431) (6a8f54fd)
  *  update dependency nodebb-theme-persona to v10.1.55 (#8434) (a860a793)
  *  update dependency nodebb-theme-vanilla to v11.1.30 (#8435) (272b4992)
  *  update dependency nodebb-theme-vanilla to v11.1.29 (#8429) (b5a68a44)
  *  update dependency nodebb-theme-persona to v10.1.54 (#8428) (3ffb6fde)
  *  update dependency winston to v3.3.2 (54310d69)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.2 (11244348)
  *  update dependency winston to v3.3.1 (#8421) (fd628570)
  *  #8412 bump themes (365996e7)
  *  bump persona/vanilla, closes #8408 (225cac18)
  *  update dependency sharp to v0.25.4 (#8403) (3c3e1515)
  *  update dependency nodebb-theme-vanilla to v11.1.25 (#8405) (90446365)
  *  update dependency nodebb-theme-persona to v10.1.50 (#8404) (44273a64)
  *  update dependency mongodb to v3.5.9 (#8402) (90570660)
  *  update dependency nodebb-plugin-composer-default to v6.3.43 (78b7382c)
  *  update dependency validator to v13.1.1 (#8397) (2ae68f9b)
  *  update dependency validator to v13.1.0 (#8391) (ad6e3634)
  *  update dependency nodebb-theme-vanilla to v11.1.24 (#8395) (eec03de8)
  *  update dependency nodebb-theme-persona to v10.1.49 (#8394) (90846740)
  *  update dependency postcss to v7.0.32 (87ce31d1)
  *  update dependency nodebb-plugin-composer-default to v6.3.41 (dde830db)
  *  update dependency nodebb-plugin-composer-default to v6.3.40 (#8388) (cf0f8f64)
  *  bump themes, closes #8387 (e97a2b71)
  *  bump themes (ccac6a35)
  *  update dependency nodebb-theme-persona to v10.1.46 (#8382) (036e6ef5)
  *  update dependency nodebb-theme-vanilla to v11.1.21 (#8383) (7caeb273)
  *  update dependency nodebb-plugin-composer-default to v6.3.39 (aeefc60b)
  *  update dependency nodebb-plugin-composer-default to v6.3.37 (7f6ff0b1)
  *  update dependency nodebb-plugin-composer-default to v6.3.36 (6b2ea077)
  *  update dependency nodebb-plugin-composer-default to v6.3.35 (2d582df7)
  *  update dependency nodebb-theme-persona to v10.1.45 (#8372) (771ea194)
  *  update dependency nodebb-theme-vanilla to v11.1.20 (#8373) (f8ee981b)
  *  update dependency socket.io-redis to v5.3.0 (#8370) (d2463bb4)
  *  update dependency nodebb-theme-vanilla to v11.1.19 (f6ad9605)
  *  update dependency nodebb-theme-persona to v10.1.44 (cb28e6cf)
  *  update dependency nodebb-plugin-composer-default to v6.3.34 (#8357) (d7ab0894)
  *  update dependency nodebb-plugin-composer-default to v6.3.33 (c4047179)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.1 (27ab36ac)
  *  update dependency nodebb-theme-persona to v10.1.43 (#8343) (dabff972)
  *  update dependency mongodb to v3.5.8 (#8342) (8224127f)
  *  update dependency nodebb-theme-persona to v10.1.40 (#8332) (a20af6e2)
  *  update dependency nodebb-plugin-spam-be-gone to v0.7.0 (cc206b4d)
  *  bump composer-default (827d42a9)
  *  bump composer-default (a665881b)
  *  update dependency nodebb-plugin-composer-default to v6.3.29 (bf8a2c2e)
  *  update dependency postcss to v7.0.30 (#8288) (a532e2bb)
  *  update dependency sharp to v0.25.3 (0437ecc2)
  *  update dependency nodebb-plugin-composer-default to v6.3.28 (#8309) (f246057a)
  *  update dependency nodebb-plugin-composer-default to v6.3.27 (#8307) (6d57d844)
  *  #8298 bump persona (158d9231)
  *  update dependency nodebb-plugin-composer-default to v6.3.25 (89d17647)
  *  update dependency jquery to v3.5.1 [security] (#8281) (a69f0b29)
  *  update dependency nodebb-rewards-essentials to v0.1.3 (#8289) (919034a7)
  *  update dependency mongodb to v3.5.7 (#8279) (25d509c4)
  *  actually, swagger-parser is a dev dependency (d09c6ae0)
  *  missing @apidevtools/swagger-parser (f1720735)
  *  update dependency nodebb-theme-persona to v10.1.37 (#8258) (b0c30ceb)
  *  update dependency archiver to v4 (28777f67)
  *  update dependency mongodb to v3.5.6 (#8256) (49236067)
  *  bump dependencies (#8239) (e68156e1)
  *  update dependency jsesc to v3.0.1 (#8243) (92b55ef5)
  *  update dependency jsesc to v3 (bb70cebb)
  *  update dependency pg to v8 (#8227) (ac98775f)
  *  update dependency validator to v13 (f497ee62)
  *  update dependency sharp to v0.25.2 (#8220) (dd660c87)
  *  bump markdown (ee6cb412)
  *  update dependency mongodb to v3.5.5 (#8205) (5535c50c)
  *  update dependency sitemap to v6 (#8198) (2052f14c)
  *  update dependency nodebb-plugin-composer-default to v6.3.23 (6d98d5a1)
  *  update dependency sharp to v0.25.1 (#8199) (21e91c91)
  *  update dependency nodebb-plugin-composer-default to v6.3.22 (#8193) (e01f05e3)
  *  update dependency nodebb-theme-slick to v1.2.29 (#8177) (9daa21ff)
  *  update dependency nodebb-theme-vanilla to v11.1.16 (#8178) (7d6a983b)
  *  update dependency nodebb-theme-persona to v10.1.35 (#8176) (3acc24b0)
  *  update dependency sharp to v0.24.1 (#8164) (7cc63f7d)
  *  update dependency mongodb to v3.5.3 (#8161) (4b907137)
  *  update dependency nodebb-widget-essentials to v4.1.0 (#8159) (a5f3c2a2)
  *  update dependency request to v2.88.2 (#8158) (7fde180a)
  *  update dependency redis to v3 (#8152) (ef964b11)
  *  update dependency rimraf to v3.0.2 (#8153) (d8efc6b6)
*  don't show in unreplied if score is null (fd400a00)
*  lint (0d0b9513)
*  upgrade script to unescape navigation titles (37b6b8fd)
*  test (f0ce309d)
*  show controls @julianlam (023de94e)
*  #8437, #8433 (e53a18f2)
*  copy settings showing empty category selection (ed4b5caf)
*  don't init autocomplete if user doesn't have privs (8482a54a)
*  only allow valid uids (00d8ce26)
*  tests (f03ca086)
*  vulnerability in cover and admin uploads (#8419) (48b41deb)
*  reverse tabnabbing exploit in post images (040e6a9a)
*  follower count going out of sync with real follower count (2bcf7f72)
*  test lock for user create (#8415) (bef37e27)
*  add mising timestamp (f0526bff)
*  ban (bfd7eafe)
*  remove use of 'hidden' class in navbar toggling (5a367ecb)
*  bug where category privs page thought it was on admin (2515aa77)
*  #8410 (b3115ea8)
*  tests breaking due to #8406 (d5578c99)
*  add missing translations (42466d3c)
*  #8401, #8237 (7ed1a014)
*  add timestamp to initial username history (18d89239)
*  crash in export posts if post content is undefined (53a9517d)
*  messaging unread (0041c024)
*  whitespace (a024cc13)
*  typo (0595e710)
*  #8392, clear group member cache when group is renamed (89b01024)
*  return false (8591f5d2)
*  language (a255c8f6)
*  #8386, use backgroundImage everywhere (8627bee5)
*  prevent logout form from submitting (d92032da)
*  missing space in ACP menu dropdown (daeceb45)
*  #8385 (942cc4b1)
*  acp language keys from #8347 not updated in tx config (9ae7fd3e)
*  #8363, dont break history (50703db8)
*  #8363, go to hash when entering topic (0c265a41)
*  #8374, revert event delete (30cc83c0)
*  new language tag for select_tags (09184f40)
*  remove duplicate link to manage/tags in settings/tags (260a482c)
*  tests (3a078f59)
*  handle search tag permission as well (1b5d5425)
*  checking correct permissions for user search (#8371) (f6b92d24)
*  change event name so it doesnt trigger complete event (7786187e)
*  clear error log before checking (75b3a81d)
*  #8323, let admins send validation emails without timeout (e603ebc0)
*  #8352, remove webfonts (#8354) (de7ec47f)
*  more tests (da90fd56)
*  tests due to 0633ad327 (98dffa3a)
*  retry failed setObject calls (2c9e8657)
*  acp menu items (0633ad32)
*  re-jigged tags acp pages (a83f4259)
*  move checks into timeout (47d73a2a)
*  #8339, add missing translation (a9315aee)
*  don't explode if server sends `checkSession` (84c20f91)
*  eliminate unnecessary try..catch (f0e59c14)
*  test breakages from 8d995d1eb609837e4e6e4c77cd855766830378fa (a66fe013)
*  #8320, dont load moderators separately for each category (0a31e3e6)
*  show stack trace on startup errors (11bb6abb)
*  don't trigger quick search if val doesn't change (d6c2764f)
*  prevent duplicate search triggers (6f78113e)
*  user faster method if sorting by smallest set (3ec05eea)
*  add txt to list of default allowed file extensions (01bff2ae)
*  search post snipets incase content is plain text (ada45a34)
*  derp includes (d484731d)
*  another test fix (f2907908)
*  tests (feb748a4)
*  tests on redis (7a801aba)
*  tests, handle no sessions (8bf980cb)
*  #8318, clean expired sessions on login and get (a0d76ff0)
*  tests (a032e12b)
*  #8317 (81e33b93)
*  #8142 invalid session warning if server-side session destroyed (526b3cd9)
*  check privileges before exporting post/topic data (5fd81c5c)
*  exporting posts (dfae664e)
*  undefined uid when downloading posts (bdda0222)
*  #8311, fix allowUserHomePage value (1ba6929c)
*  dont crash if topic is null (e20ad5c5)
*  if category in selector has url use it (1f992cf3)
*  convert cids to string for comparison (c47a1c4d)
*  missing await (97c086ab)
*  add missing schema item (4e14cb57)
*  category selector disabled categories (337be368)
*  #8305, don't use null values (6a5e86dc)
*  #8302, send string to writeFileSync (d09bd2cf)
*  winston showing json object (7d081843)
*  sortable topics even if only 1 pinned topic (6765de3d)
*  #8298, use class name added by jQueryUI instead (dd2bc189)
*  topic search shortcut for macs (f2c725c6)
*  #8297, uids.length is different than topics.length (0431d75f)
*  #8297 guest handles shown in category.tpl (fcb81cb8)
*  only add to set if numRecentReplies>0 (16a98eaf)
*  #8293, don't show error if there are no self messages (be305410)
*  failing tests @julianlam (ecd622fd)
*  #3321, run plugin tests for installed plugins (a6bb9f43)
*  remove deprecated mocha.opts (3d0db963)
*  spec (84383d39)
*  #8290, if there are no filters go to ?reset=1 (9839346e)
*  #8283, update gdpr link again (2d076344)
*  add missing await (4f1128fd)
*  #8287, dont readd user after deletion (9d153fd3)
*  missing await (4d6b2ec3)
*  #8286, rescind notif when its resolved/rejected (0391856d)
*  #8284, parse ToS on register (0ca84bd9)
*  #8283, point to official site (17d664e0)
*  jquery xhtml violations (275e837b)
* #8274 Don't escape HTML in manage users (#8275) (4855f1de)
*  crash in topic controller (0c7c70ed)
*  crash when res.locals.linkTags is undefined (7cab2b0f)
*  #8272 user link in digest email (e80b8101)
*  tag of /api/unread/total (9ffdab02)
*  response hook logic (5a1c6ee7)
*  remove upload picture test (avatars) (6edf02d4)
*  remove tests related to group covers, as route is gone (442fe65f)
*  #8269, return array of topics from hook (4eafe0f0)
*  remove dead picture upload code #8260 (ef52461f)
*  path.resolve to logs file (5bcaf715)
*  only trigger infinitescroll on scroll end (ba6d3fd3)
*  wrong data returned in available.groups (c7ea84a2)
*  no focus on find user modal (1b425ef1)
*  accidental fp precision on flag and acp dash graphs (bcbf98aa)
*  #8232, unresolvable session mismatch on register cancel (f2f6fbf1)
*  pin jquery to 3.4.1, #8252 (e440d617)
*  #8249, don't send move notifications for deleted posts/topics (d77036db)
*  missing descriptions for common properties (7b31fb34)
*  some definitions in read API spec (03739b6f)
*  tagged all routes in read api spec (455d42bc)
*  override ACAO header for read API spec file (240d9091)
*  throw error if topic does not exist (59cf0e80)
*  hookname (e93578b8)
*  #8230, add hook getUserDataByUserSlug (0d1b5a7f)
*  ignore case for group details route (15d6975e)
*  lint (740e598a)
*  lint (8e23dec8)
*  #8221, fix parent selection (08031730)
*  invite properly (071506eb)
*  admins not seeing invite button (8f4b99a4)
*  #8217, add missing lang key (0b5fac75)
*  #8206 first message in chat has false `newSet` (93acd139)
*  #8203, fix user invites refreshing page (2f9c7c62)
*  #8202, filter non-existing users in search by uid (f07f4f8e)
*  notification bodyShort truncated if there is a comma in topic title (266061c3)
*  hsts max-age missing translation (b67af70d)
*  call next (80f1bcad)
*  try travis fix again (05bee629)
*  try fixing psql on travis (bc9e92a1)
*  dont let regular users see other users watched categories (cf6eadb9)
*  also fix updating bookmark if sorting is newest_to_oldest (6e5de39b)
*  #8188, fix bookmark if sorting is newest_to_oldest (32ada7c4)
*  duplicate ID + label (ac241fb8)
*  #8184 global mods unable to revoke other user sessions (f0db240a)
*  return null if field does not exist (e72a29b3)
*  #8179, limit length of location/website/fullname, check grouptitle (14e78667)
*  tag key (32636755)
*  #8175 (bc93b567)
*  #8168 re-allowing slashes in homePageRoute (667608a0)
*  tweak to session validation in addHeaders (eddbd868)
*  only call clearCookie for logged in users (630f5d5b)
*  #6422, update deleted/restored messages (06703408)
*  #8163, prevent account deletion (4d0636f8)
*  register (5a0c7c14)
*  #8157, update recent tid when post is moved (e7495440)
*  tests (b73aa84d)
*  move start/stop every iteration (dd3893b1)
*  #8154, move start/stop every iteration (300c04ce)
*  #8154, respect stop (690bb69d)
*  #8156 dont allow loading members from hidden groups (f23bc347)
*  #8155, don't validate name on update if groupName didn't change (03a02e5d)
*  return correct number of suggested topics (236e1e68)
*  #8151, don't crash if taskbar doesn't have element (2e794801)
*  logic for determining dailyStats hour vars (398f0120)
*  fix daily analytics being one day off (9ecdb92f)
*  remove debug line (0b9ad416)
*  no decimal places for category analytics (14655f87)
*  #8142, broken site if no server-side session (#8148) (d6e3f3f0)
*  #8144 pluginHooks in maintenance mode middleware (0885ec68)
* **openapi:**
  *  tests for #8412 (4cae893f)
  *  api change for #8387 (6a969442)
  *  schema for new flags api (a0e243ee)
  *  broken tests (45dfeeb0)
  *  v14 test fix (23a0b8c5)
  *  remove account and group upload routes (d342a28c)
  *  more fleshing out (058a15db)
  *  fleshed out admin routes (bae88e08)
  *  added some descriptions (ab4bd7e1)
  *  added PostsObject component (2395d2be)
  *  finished moving all category objects out (23dd2727)
  *  changed some descriptions (c939f8c6)
  *  added CategoryObject component (55d0a9ff)
  *  removed repeated breadcrumb blocks in favour of $ref (646fac1e)
  *  remove all repeated pagination blocks in favour of (ac579f9d)
  *  removed warning for category mods route (1cf62095)
  *  normalising the file for programmatic updates (3a5c6e07)
* **style:**
  *  more switch..case (6b1d1acb)
  *  switch..case (922d49be)
  *  enforcing "better" indentation for switch..case (d135b6f7)
* **docs:**  added titles to all routes (aa4ae78b)

##### Other Changes

* id, category fields (2355d9d5)
* //github.com/NodeBB/NodeBB (c3c8b19a)
* //github.com/NodeBB/NodeBB (0ddfb6b0)
* //github.com/NodeBB/NodeBB (d1c1cb2c)
* //github.com/NodeBB/NodeBB (79a7f892)
* user.getFields to match topic/posts (a680a95e)
* //github.com/NodeBB/NodeBB (b459592a)
* //github.com/NodeBB/NodeBB (066b442e)
* //github.com/NodeBB/NodeBB (fd6bf0c9)
* //github.com/NodeBB/NodeBB (c1d8b9bb)
* middleware.renderHeader (2727f472)
* //github.com/NodeBB/NodeBB (69a87933)
* uploadFile (7f24200c)
*  #8142 invalid session warning if server-side session destroyed" (e327d124)
*  ''}) (2a00b0e9)
* //github.com/NodeBB/NodeBB (8c8cdc99)
* categories.getRecentTopicReplies (aad0880f)
*  #8298 (2e57d8ac)
* post.updatePostVoteCount (b25b51bd)
* //github.com/NodeBB/NodeBB (5e140454)
* categories.updateRecentTid (6c59683b)
* categories.updateRecentTid (51933c1f)
* router.page, dep. filter variant (0053e779)
* flags as well (5ebcdb18)
*  crash when res.locals.linkTags is undefined" (fe03effe)
* //github.com/NodeBB/NodeBB (87a6ff0d)
*  cnpm and pnpm (#8222) (e6a1741c)
* //github.com/NodeBB/NodeBB (7ae76477)
*  openapi component" (683e5851)
*  override ACAO header for read API spec file" (c82a2637)
* password.change (00e299e9)
* topic.tools.load (5aa76cdf)
*  #8154, move start/stop every iteration" (4abe5eb7)
* **deps:**  update dependency nodebb-plugin-mentions to v2.8.0" (5c7d37c0)

##### Refactors

*  make code climate happier? (0d112b36)
*  shorter code (af790e3f)
*  shorter code (e8f0da6e)
*  change name to privileges to match other apis (2100a03c)
*  making rendering of header and footer async functions (023942da)
*  remove general menu from ACP (#8347) (a51fff8b)
*  use getSortedSetMembers (7d484fc0)
*  src/flags.js because codeclimate (cf00cda0)
*  flags detail page (8d995d1e)
*  move code (3b6d57e4)
*  remove console.log (40b5cbab)
*  shorter function (7e429884)
*  match core field name pinned (478ed6c1)
*  getUsersCSV to use batch lib (1efb238a)
*  reorganized socket.io admin modules (e1c6c3b2)

##### Reverts

*  bad changelog (a761e31f)

#### 1.13.3 (2020-05-08)

##### Chores

*  incrementing version number - v1.13.3 (ee583e80)
*  bump persona (d2bd746c)
*  incrementing version number - v1.13.2 (beafd613)
* **deps:**
  *  update dependency coveralls to v3.1.0 (5ed4a108)
  *  pin dependency @apidevtools/swagger-parser to 9.0.1 (51eccef5)
  *  update dependency husky to v4.2.5 (30a25983)
  *  update dependency husky to v4.2.4 (0a650118)
  *  update dependency lint-staged to v10.1.3 (a9e68639)
  *  update dependency nyc to v15.0.1 (#8231) (a3789e28)
  *  update dependency lint-staged to v10.1.2 (#8235) (e1919c90)
  *  update dependency lint-staged to v10.1.1 (944a6f58)
  *  update dependency lint-staged to v10.1.0 (30bd233b)
  *  update dependency eslint-config-airbnb-base to v14.1.0 (811c3aee)
  *  update dependency jsdom to v16.2.2 (c5a7242d)
  *  update dependency eslint-plugin-import to v2.20.2 (b92c1600)
  *  update dependency lint-staged to v10.0.10 (0ad4b556)
  *  update dependency coveralls to v3.0.11 (14458087)
  *  update dependency smtp-server to v3.6.0 (22681945)
  *  update dependency mocha to v7.1.1 (#8215) (c5356541)
  *  update dependency grunt to v1.1.0 (#8214) (b0864e7c)
  *  update dependency husky to v4.2.3 (#8162) (776fe9d2)
  *  update dependency lint-staged to v10.0.8 (#8180) (13d8f6f1)
  *  update dependency eslint-plugin-import to v2.20.1 (#8081) (4cdb3131)
  *  update dependency jsdom to v16.2.1 (#8165) (fbd95a50)
  *  update dependency husky to v4.2.2 (#8160) (f4ed35c9)
  *  update dependency jsdom to v16 (#8114) (1037de02)

##### Documentation Changes

*  updated changelog (146388aa)

##### New Features

*  allow activating additional plugins for testing via config.json (a969c5ce)
*  move plugin tests to separate file (3a23ddab)
*  remove node14 for now (a72e4429)
*  reduce infinite scroll area (3fcbd691)
*  manifest.json improvements from #8126 (#8264) (6e5ebb61)
*  show error if json is invalid (15345627)
*  moved component specs into separate files (cd506557)
*  added UserObject, UserObjectFull, Breadcrumb, Pagination component (64d79fe5)
*  added some summary and descriptions (ae3e90d6)
*  add some descriptions (442c018e)
*  common schema (eade13f9)
*  openapi component (1af5507a)
*  add page query param to docs (9987813f)
*  tag route doc (bbddaadf)
*  local redoc view on development mode only (1136a369)
*  added auto-generated, slimmed-down openapi 3.0 file for read api (7b155dab)
*  add parent cids to body class (23571224)
*  add 2 hooks for modifying privileges (d080c7b0)
*  add user ip to admin/dev/info (5e91a67e)
*  change option name (cba5b23e)
*  add no-build to ./nodebb setup (476f6717)
*  add awaitable socket.emit (4083a6e3)
*  settings sorted list (#8170) (3c9689a5)
*  guard against accidental ommision (79737c53)
* **openapi:**
  *  merging openapi-test branch into master (8387178b)
  *  move all commonprops out for commonprops component (65c78de6)
  *  added template to commonprops (2425f453)

##### Bug Fixes

*  #8302, send string to writeFileSync (d09bd2cf)
*  winston showing json object (7d081843)
*  sortable topics even if only 1 pinned topic (6765de3d)
*  #8298, use class name added by jQueryUI instead (dd2bc189)
*  topic search shortcut for macs (f2c725c6)
*  #8297, uids.length is different than topics.length (0431d75f)
*  #8297 guest handles shown in category.tpl (fcb81cb8)
*  only add to set if numRecentReplies>0 (16a98eaf)
*  #8293, don't show error if there are no self messages (be305410)
*  failing tests @julianlam (ecd622fd)
*  #3321, run plugin tests for installed plugins (a6bb9f43)
*  remove deprecated mocha.opts (3d0db963)
*  spec (84383d39)
*  #8290, if there are no filters go to ?reset=1 (9839346e)
*  #8283, update gdpr link again (2d076344)
*  add missing await (4f1128fd)
*  #8287, dont readd user after deletion (9d153fd3)
*  missing await (4d6b2ec3)
*  #8286, rescind notif when its resolved/rejected (0391856d)
*  #8284, parse ToS on register (0ca84bd9)
*  #8283, point to official site (17d664e0)
*  jquery xhtml violations (275e837b)
* #8274 Don't escape HTML in manage users (#8275) (4855f1de)
*  crash in topic controller (0c7c70ed)
*  crash when res.locals.linkTags is undefined (7cab2b0f)
*  #8272 user link in digest email (e80b8101)
*  tag of /api/unread/total (9ffdab02)
*  response hook logic (5a1c6ee7)
*  remove upload picture test (avatars) (6edf02d4)
*  remove tests related to group covers, as route is gone (442fe65f)
*  #8269, return array of topics from hook (4eafe0f0)
*  remove dead picture upload code #8260 (ef52461f)
*  path.resolve to logs file (5bcaf715)
*  only trigger infinitescroll on scroll end (ba6d3fd3)
*  wrong data returned in available.groups (c7ea84a2)
*  no focus on find user modal (1b425ef1)
*  accidental fp precision on flag and acp dash graphs (bcbf98aa)
*  #8232, unresolvable session mismatch on register cancel (f2f6fbf1)
*  pin jquery to 3.4.1, #8252 (e440d617)
*  #8249, don't send move notifications for deleted posts/topics (d77036db)
*  missing descriptions for common properties (7b31fb34)
*  some definitions in read API spec (03739b6f)
*  tagged all routes in read api spec (455d42bc)
*  override ACAO header for read API spec file (240d9091)
*  throw error if topic does not exist (59cf0e80)
*  hookname (e93578b8)
*  #8230, add hook getUserDataByUserSlug (0d1b5a7f)
*  ignore case for group details route (15d6975e)
*  lint (740e598a)
*  lint (8e23dec8)
*  #8221, fix parent selection (08031730)
*  invite properly (071506eb)
*  admins not seeing invite button (8f4b99a4)
*  #8217, add missing lang key (0b5fac75)
*  #8206 first message in chat has false `newSet` (93acd139)
*  #8203, fix user invites refreshing page (2f9c7c62)
*  #8202, filter non-existing users in search by uid (f07f4f8e)
*  notification bodyShort truncated if there is a comma in topic title (266061c3)
*  hsts max-age missing translation (b67af70d)
*  call next (80f1bcad)
*  try travis fix again (05bee629)
*  try fixing psql on travis (bc9e92a1)
*  dont let regular users see other users watched categories (cf6eadb9)
*  also fix updating bookmark if sorting is newest_to_oldest (6e5de39b)
*  #8188, fix bookmark if sorting is newest_to_oldest (32ada7c4)
*  duplicate ID + label (ac241fb8)
*  #8184 global mods unable to revoke other user sessions (f0db240a)
*  return null if field does not exist (e72a29b3)
*  #8179, limit length of location/website/fullname, check grouptitle (14e78667)
*  tag key (32636755)
*  #8175 (bc93b567)
*  #8168 re-allowing slashes in homePageRoute (667608a0)
*  tweak to session validation in addHeaders (eddbd868)
*  only call clearCookie for logged in users (630f5d5b)
*  #6422, update deleted/restored messages (06703408)
*  #8163, prevent account deletion (4d0636f8)
*  register (5a0c7c14)
*  #8157, update recent tid when post is moved (e7495440)
*  tests (b73aa84d)
*  move start/stop every iteration (dd3893b1)
*  #8154, move start/stop every iteration (300c04ce)
*  #8154, respect stop (690bb69d)
*  #8156 dont allow loading members from hidden groups (f23bc347)
*  #8155, don't validate name on update if groupName didn't change (03a02e5d)
*  return correct number of suggested topics (236e1e68)
*  #8151, don't crash if taskbar doesn't have element (2e794801)
*  logic for determining dailyStats hour vars (398f0120)
*  fix daily analytics being one day off (9ecdb92f)
*  remove debug line (0b9ad416)
*  no decimal places for category analytics (14655f87)
*  #8142, broken site if no server-side session (#8148) (d6e3f3f0)
*  #8144 pluginHooks in maintenance mode middleware (0885ec68)
* **deps:**
  *  #8298 bump persona (158d9231)
  *  update dependency nodebb-plugin-composer-default to v6.3.25 (89d17647)
  *  update dependency jquery to v3.5.1 [security] (#8281) (a69f0b29)
  *  update dependency nodebb-rewards-essentials to v0.1.3 (#8289) (919034a7)
  *  update dependency mongodb to v3.5.7 (#8279) (25d509c4)
  *  actually, swagger-parser is a dev dependency (d09c6ae0)
  *  missing @apidevtools/swagger-parser (f1720735)
  *  update dependency nodebb-theme-persona to v10.1.37 (#8258) (b0c30ceb)
  *  update dependency archiver to v4 (28777f67)
  *  update dependency mongodb to v3.5.6 (#8256) (49236067)
  *  bump dependencies (#8239) (e68156e1)
  *  update dependency jsesc to v3.0.1 (#8243) (92b55ef5)
  *  update dependency jsesc to v3 (bb70cebb)
  *  update dependency pg to v8 (#8227) (ac98775f)
  *  update dependency validator to v13 (f497ee62)
  *  update dependency sharp to v0.25.2 (#8220) (dd660c87)
  *  bump markdown (ee6cb412)
  *  update dependency mongodb to v3.5.5 (#8205) (5535c50c)
  *  update dependency sitemap to v6 (#8198) (2052f14c)
  *  update dependency nodebb-plugin-composer-default to v6.3.23 (6d98d5a1)
  *  update dependency sharp to v0.25.1 (#8199) (21e91c91)
  *  update dependency nodebb-plugin-composer-default to v6.3.22 (#8193) (e01f05e3)
  *  update dependency nodebb-theme-slick to v1.2.29 (#8177) (9daa21ff)
  *  update dependency nodebb-theme-vanilla to v11.1.16 (#8178) (7d6a983b)
  *  update dependency nodebb-theme-persona to v10.1.35 (#8176) (3acc24b0)
  *  update dependency sharp to v0.24.1 (#8164) (7cc63f7d)
  *  update dependency mongodb to v3.5.3 (#8161) (4b907137)
  *  update dependency nodebb-widget-essentials to v4.1.0 (#8159) (a5f3c2a2)
  *  update dependency request to v2.88.2 (#8158) (7fde180a)
  *  update dependency redis to v3 (#8152) (ef964b11)
  *  update dependency rimraf to v3.0.2 (#8153) (d8efc6b6)
* **openapi:**
  *  v14 test fix (23a0b8c5)
  *  remove account and group upload routes (d342a28c)
  *  more fleshing out (058a15db)
  *  fleshed out admin routes (bae88e08)
  *  added some descriptions (ab4bd7e1)
  *  added PostsObject component (2395d2be)
  *  finished moving all category objects out (23dd2727)
  *  changed some descriptions (c939f8c6)
  *  added CategoryObject component (55d0a9ff)
  *  removed repeated breadcrumb blocks in favour of $ref (646fac1e)
  *  remove all repeated pagination blocks in favour of (ac579f9d)
  *  removed warning for category mods route (1cf62095)
  *  normalising the file for programmatic updates (3a5c6e07)

##### Other Changes

*  #8298 (2e57d8ac)
* post.updatePostVoteCount (b25b51bd)
* //github.com/NodeBB/NodeBB (5e140454)
* categories.updateRecentTid (6c59683b)
* categories.updateRecentTid (51933c1f)
* router.page, dep. filter variant (0053e779)
* flags as well (5ebcdb18)
*  crash when res.locals.linkTags is undefined" (fe03effe)
* //github.com/NodeBB/NodeBB (87a6ff0d)
*  cnpm and pnpm (#8222) (e6a1741c)
* //github.com/NodeBB/NodeBB (7ae76477)
*  openapi component" (683e5851)
*  override ACAO header for read API spec file" (c82a2637)
* password.change (00e299e9)
* topic.tools.load (5aa76cdf)
*  #8154, move start/stop every iteration" (4abe5eb7)

##### Refactors

*  match core field name pinned (478ed6c1)
*  getUsersCSV to use batch lib (1efb238a)
*  reorganized socket.io admin modules (e1c6c3b2)

#### 1.13.2 (2020-02-05)

##### Chores

*  incrementing version number - v1.13.2 (71f4607d)
*  bump themes (027f3f22)
*  bump vanilla (236a1730)
*  bump persona (82ace391)
*  incrementing version number - v1.13.1 (cc6758a0)
* **deps:**
  *  update dependency eslint to v6.8.0 (#8062) (15783213)
  *  update dependency nyc to v15 (#8094) (976e26a9)
  *  update commitlint monorepo (#8100) (eb4a1a57)
  *  update dependency lint-staged to v10.0.7 (#8132) (cdfbcbb9)
  *  update dependency mocha to v7 (#8106) (b370333c)
  *  update dependency husky to v4 (dd440ce9)
  *  update dependency lint-staged to v10.0.1 (66992a55)
  *  update dependency lint-staged to v10 (d74eecfb)

##### Documentation Changes

*  updated changelog (2edc6960)

##### New Features

*  add test for isOnline (66febb80)
*  add test for change post owner (df2c7851)
*  check flag values on save (assignee and state) (#8122) (8e5a2276)

##### Bug Fixes

*  admin relogin (a5ef6b53)
*  #8135 (c35a21d7)
*  handle mkdirp0.5->1.0x so it doesn't break upgrade (1e50616c)
*  #8134, upgrade mkdirp to 1.0.x (87225a90)
*  onSuccessfulLogin not working (111ed802)
*  #8139, dont allow restore if not deleted by self (8c48f94b)
*  use view_deleted when filtering, closes #8137 (9969dd63)
*  escape invalid rules (d927b763)
*  add missing await (3cca929a)
*  missing await in SocketPosts.changeOwner (0ae1eb4f)
*  #8133, check if user is in room before removing (23810cc6)
*  add missing await (cd1fa27a)
*  missing await (f799f017)
*  dont return flag data to client (418c174d)
*  check if user has read priv before flagging (51236df4)
*  restrict getUsersInRoom to members (1f13ab8a)
*  remove unused conditional, dont add dupe messages (3077eb94)
*  tests for messaging (ecc579a2)
*  #8127 user join system message duplicated (594cd7e1)
*  background-size in taskbar images (106c141f)
*  tests, was using hardcoded message id (1b08f376)
*  typo in #8116 (8bb5e71e)
*  build step defaults to series instead of parallel (3fac09b1)
*  escape system message, don't allow editing system messages (6a63c1a1)
*  escape register query param (c8fb7f92)
*  delete upload (8c6a7954)
*  check uploadName (153b1a0e)
*  #8120, bubble errors from static hooks (01d1ae78)
*  escape bootswatchSkin and homepageRoute (b0f3e48a)
*  change owner missing await (3e525576)
*  hsts always enabled (e3952674)
*  escape topic.thumb (b7a57996)
*  #8112, don't crash hook returns no data (4eb9652a)
*  escape config.userLang/acpLang, don't allow invalid language codes (e06c1bfc)
*  group create/join/update name validation (61da8c29)
*  don't crash if groupData is missing (48f08627)
*  #8105, fix export json on page load (5a8217de)
*  #8103, fix advanced menu not displaying in ACP (52774531)
*  meta description missing if url doesn't have post index (10989ccc)
*  create user modal instantly closing (c1b1ee61)
*  login with weak password (9d074731)
*  dont check password strength on login (f6d7a24a)
* **deps:**
  *  update dependency connect-redis to v4.0.4 (#8143) (16ab641d)
  *  update dependency rimraf to v3.0.1 (#8138) (726ba71c)
  *  update dependency validator to v12.2.0 (#8136) (f07b4bfa)
  *  update dependency nodebb-theme-persona to v10.1.34 (#8140) (6d7131fb)
  *  update dependency nodebb-theme-persona to v10.1.31 (#8129) (c510a2c4)
  *  update dependency mongodb to v3.5.2 (#8092) (0e49cfb9)
  *  update dependency sharp to v0.24.0 (#8121) (16e8f496)
  *  update dependency nodebb-plugin-composer-default to v6.3.21 (#8119) (ca10f8f0)
  *  update dependency nodebb-widget-essentials to v4.0.18 (#8111) (df5e3a73)

##### Other Changes

* NodeBB/NodeBB (b959c24a)
* //github.com/NodeBB/NodeBB (ee4304b4)
* //github.com/NodeBB/NodeBB (bfaba895)
*  save disableLeave (#8123) (09d55581)
* //github.com/NodeBB/NodeBB (842916ea)

##### Refactors

*  messaging (30c50361)

#### 1.13.1 (2019-12-19)

##### Chores

*  incrementing version number - v1.13.1 (d1e0672f)
*  incrementing version number - v1.13.0 (c38b2d23)
* **deps:**
  *  update dependency husky to v3.1.0 (#8046) (c3418c26)
  *  update dependency coveralls to v3.0.9 (#8067) (0aeee144)
  *  update dependency eslint to v6.7.0 (32cfe96f)
  *  update dependency coveralls to v3.0.8 (#8054) (8ba26104)

##### Documentation Changes

*  updated changelog (94499da3)

##### New Features

*  better output for cli plugins list, closes #8075 (4fc69443)
*  #5272, allow changing user groups from manage users page (05c9fe27)
*  merge social authentication into plugins menu in ACP (f9a8ebfc)
*  convert middleware.isAdmin to async/await (efd1e88b)

##### Bug Fixes

*  #8085, fix cookie name (dec157d6)
*  #8058, fix incorrect digest setting display in ACP (1b992d82)
*  remove select version (6a17e32d)
*  travis config (3ae98300)
*  travis :dog: (3731dc4e)
*  #8078, dont mark notifications read without a mergeId (a8df6d62)
*  #8077, show continue chat on all profile pages (7af1c873)
*  profile showing posts from deleted topics (2679f37d)
*  #8073, configurable necroThreshold (4d669783)
*  allow members to search as well (b323df2f)
*  #8069, dont show hidden groups in search (c2cd7de8)
*  missing await (33fd4a1c)
*  #8064, break-word on post-queue (1bda92e3)
*  #6711 (7ed002a1)
*  #8061, don't crash if there is a network problem (de404102)
*  #8059, properly mark topic unread when using mark unread for all (a688aaae)
*  #8042, dont show errors after clearing form (3811e0a3)
*  unhandled promise rejection error on reset error (51073772)
*  #8050, fix redirect after registration (366ad5cd)
*  make _csrf a secure cookie if the website is using https (#8045) (0efe27b1)
*  #8034 (0a96c923)
*  serialize (a2545204)
*  show login fields if user has local password (1eca5b3d)
*  use the correct attribute name for widgets (6c404b81)
* **deps:**
  *  update dependency semver to v7 (483d7535)
  *  update dependency nodebb-theme-vanilla to v11.1.12 (610ecf35)
  *  update dependency sharp to v0.23.4 (#8076) (eb18c182)
  *  update dependency nodebb-theme-persona to v10.1.30 (0514383a)
  *  update dependency nodebb-plugin-markdown to v8.11.0 (702ca164)
  *  update dependency connect-mongo to v3.2.0 (2aef7a5b)
  *  update dependency mongodb to v3.3.5 (#8065) (68118e43)
  *  update dependency nodebb-theme-persona to v10.1.29 (#8057) (34933091)
  *  update dependency sharp to v0.23.3 (#8044) (6fa88823)
  *  update dependency validator to v12.1.0 (#8055) (488ea394)
  *  update dependency nodebb-theme-slick to v1.2.28 (#8041) (b3511f71)
  *  update dependency nodebb-theme-vanilla to v11.1.11 (#8040) (d567c4ae)
  *  update dependency nodebb-theme-persona to v10.1.28 (#8039) (6c87bed5)
  *  update dependency nodebb-plugin-dbsearch to v4.0.7 (#8038) (1e2e16b4)

##### Refactors

*  async/await middleware (a227cbe3)
*  change to const/let (3454a24b)
*  shorter returns (cec00795)

### 1.13.0 (2019-11-13)

##### Chores

*  incrementing version number - v1.13.0 (c38b2d23)
*  incrementing version number - v1.12.2 (810e2c0b)
* **deps:**
  *  update dependency jsdom to v15.2.1 (9d946d1c)
  *  update dependency eslint to v6.6.0 (d0e428e9)
  *  update dependency lint-staged to v9.4.2 (#7954) (d108c7d0)
  *  update dependency mocha to v6.2.2 (#7984) (e31a47cd)
  *  update dependency coveralls to v3.0.7 (#7961) (9b308e4b)
  *  update dependency jsdom to v15.2.0 (#7971) (9b4e9882)
  *  update dependency husky to v3.0.9 (fd5095a3)
  *  update dependency husky to v3.0.8 (88cae415)
  *  update dependency lint-staged to v9.4.1 (a2a7bb3d)
  *  update node.js to v8.16.1 (f9ad826b)
  *  update node:8.16.0 docker digest to bb12612 (48cc317c)
  *  update dependency eslint to v6.5.1 (da12e947)
  *  update dependency husky to v3.0.7 (10a30e66)
  *  update commitlint monorepo to v8.2.0 (ddd4e039)
  *  update dependency mocha to v6.2.1 (b172d106)
  *  update dependency lint-staged to v9.2.3 (ccccba81)
  *  update dependency coveralls to v3.0.6 (#7820) (2b1f840e)
  *  update dependency husky to v3.0.3 (cbede89a)
  *  update dependency lint-staged to v9 (f2e4664d)
  *  update dependency eslint-plugin-import to v2.18.2 (#7779) (57b2a553)
  *  update dependency eslint to v6.1.0 (#7783) (7257e6b2)
  *  update dependency husky to v3.0.2 (7ad72b32)
  *  update node:8.16.0 docker digest to c671dc2 (e76214a2)
  *  update dependency mocha to v6.2.0 (d43f5dcf)
  *  update node:8.16.0 docker digest to 310db2a (c46a0772)
  *  update dependency husky to v3.0.1 (28151f86)
  *  update dependency eslint-plugin-import to v2.18.1 (9fda2c1f)
  *  update commitlint monorepo to v8.1.0 (f73468d5)
  *  update dependency coveralls to v3.0.5 (5b746d53)
  *  update dependency husky to v2.7.0 (1d0fd028)
  *  update dependency eslint to v6.0.1 (77347d0a)
  *  update dependency husky to v2.6.0 (fc69e891)
  *  update dependency eslint-plugin-import to v2.18.0 (744e4428)
  *  update dependency husky to v2.5.0 (4960b925)
  *  update dependency lint-staged to v8.2.1 (2fa68e3b)
  *  update node:8.16.0 docker digest to 06adec3 (fc224cca)
  *  update dependency husky to v2.4.1 (17ec8fde)
  *  update node:8.16.0 docker digest to d5ad3f5 (f9e99fa3)
  *  update node:8.16.0 docker digest to 75b524a (5995834b)
  *  update node:8.16.0 docker digest to b9a98ae (fca6d794)
  *  update dependency lint-staged to v8.2.0 (376390c4)
  *  update dependency husky to v2.4.0 (3d2ec0bb)
  *  update dependency coveralls to v3.0.4 (c360e0c2)
  *  update dependency eslint-plugin-import to v2.17.3 (eac4e2f1)
  *  update node:8.16.0 docker digest to 957cab2 (cc6fa97c)
  *  update commitlint monorepo to v8 (80532831)

##### Documentation Changes

*  updated changelog (183b0ed3)

##### New Features

*  displaying one-click unsubscribe link in email footer (#8024) (df139928)
*  #7467, pass query params when redirecting to posts (480a64aa)
*  use helpers.setupAdminPageRoute (b5a30006)
*  wip, better digest handling (+ eventual digest resend logic) (#7995) (645d6472)
*  add action:messaging.save (ac5c560c)
*  #7957, allow post queue based on group (1cedc4a0)
*  add filter:topics.unreadCutoff (e020b85b)
*  Add filter:topic.delete and filter:topic.restore (#7946) (#7989) (989107d9)
*  no more session cookie for guests (#7982) (cf7e0cfd)
*   Implement WICG change-password-url (#7072) (#7990) (df1efe5f)
*  log errors from mubsub (b01a47cb)
*  upgrade to sitemap5 (#7980) (d6792188)
*  #7964, change all categories at once (485fbd2f)
*  closes #7952, translate widget-settings (990508a5)
*  remove ability to delete events from acp (554e6711)
*  resetting theme will reset skin (03827fa6)
*  disable timeout on launch route (4bc77d06)
*  add new hook to get custom category tids for unread (b1926054)
*  adding filter:login.check and loginFormEntry[] for the filter:login.build hook (#7861) (94810fd6)
*  #7932, redirect to group details after creation (2444ed5c)
*  add new hook filteR:topics.getSortedTids (b93c826d)
*  bypass cropper for gifs (9a756004)
*  deprecate file.isFileTypeAllowed (ffe3670f)
*  send notification to group owners when someone leaves (ed122364)
*  add failing test for pagination (#7924) (22b02f14)
*  refactor getSortedSetRange to allow big arrays (b602c044)
*  add new test (1e5246f9)
*  add rss feed url for tags (bbc2e956)
*  add sm2x avatar class #7813 (35a4ca2f)
*  #7090, abililty to hide widgets (71cd602d)
*  #7760, body-parser config (5de6d885)
*  actually cache duh (f05c1dae)
*  cache tags:topic:count (63bd252f)
*  increase search timeouts (1789ecb4)
*  make handleSearch public (ebe5ed22)
*  increase size of local cache (b81405a8)
*  don't hardcode numberic fields in user search (09410ff1)
*  allow only watching core (451c7fd4)
*  client-side taskbar.update method, deprecates .updateTitle() (9b09ee0e)
*  option to restrict group leaving, closes #7770 (1796b65d)
*  preserver querystring when changing category sort (ad96b0e0)
*  html sanitization on all filter:parse.* hooks, closes #7872 (2580306d)
*  up socket.io-adapter-mongo (3d2cb628)
*  update LESS to v3.x, #7855 (#7867) (aea04de0)
*  up psql socket.io adapter (b565e568)
*  add client side hook for quick search&normal search (f31d30cd)
*  allow floating pinned topics to top in getSortedTopics (1d7e0c63)
*  promisify recent.getData (6f7ab586)
*  faster initial stat loading (89cd31ed)
*  cache stats, mongo count sucks (cb50b3f4)
*  dashboard stats (3ff6e1bb)
*  add filter:search.getPosts (aeb44faf)
*  add image and imageClass to post summaries (80bd52fc)
*  #7842, make isInvited, isPending work with uids (fa268556)
*  convert search controller to async/await (acf12e3d)
*  notification on membership acceptance, closes #7835 (1a2a381a)
*  additional events logged for various group actions (1ce33faa)
*  async (e6353486)
*  async/await controllers/admin/dashboard (32ea04a8)
*  async/await admin/controllers (72590b34)
*  async/await (7beef91c)
*  async/await refactor (3cc7ec63)
*  async/await controllers/accounts (a3541d88)
*  rewrite getRawPost to async/await (b734defb)
*  added new filter hook filter:post.getRawPost (973075cf)
*  convert categories controller to async/await (e9fd49e2)
*  new client-side hooks for chat minimize and close (3d3fa865)
*  test psql without defineProperty (#7815) (af1f7249)
*  fire updateRemainingLength hook for chats (af968c6a)
*  send pids into filter:post.getFields hook (0e07ffa1)
*  move cache tpl (65fc0612)
*  async refactor (3a9d83a4)
*  move group privs above user, add labels (47e30a67)
*  widgets/index.js (dec8040c)
*  use promise version (4d6b6871)
*  #7743, meta/dependencies (1c2540d3)
*  #7743, widgets/admin (96ebe7b5)
*  #7743, meta/languages and languages (c02686bf)
*  added filter:tags.getAll plugin hook (66aa443b)
*  #7743, events (102d4b02)
*  #7743 meta/errors (97d7a850)
*  get rid of async.eachSeries (99cf47ee)
*  #7743 meta/tags.js (7b908639)
*  #7743 meta/templates.js (79eed9ae)
*  #7743 navigation (764a2b12)
*  #7743 account/posts controller (e72f3e4f)
*  #7743 finish topics controller (9b3f4b98)
*  #7743, webserver (0d047f4e)
*  #7743 meta/themes.js (7dc0eaf0)
*  #7743, meta/sounds (a15c50bf)
*  #7743 , meta/cachebuster, meta/configs (7f72181e)
*  convert src/messaging/* to async/await (#7778) (756a717e)
*  #7743 meta/blacklist (fcf8fd51)
*  #7743 meta/index (69860e58)
*  #7743 plugins (c126cd85)
*  #7743 plugins/data (f5f5f76b)
*  dont waste whitespace (17f843f9)
*  switch to promise.all (34d85b52)
*  #7743, privileges (faccb191)
*  #7743 , search.js (6d3a92b8)
*  shorter name (8e75646a)
*  cache group:members for priv groups (daed76d5)
*  #7743 finish groups (72def7df)
*  #7743, groups/index, invite, leave,membership (a39ca51e)
*  #7743,groups/index,join (d5342a40)
*  #7743, groups/delete,ownership,posts,user (fcd4445a)
*  #7743 groups/cover,create,data (5e8614e1)
*  #7743, finish post module (c0c6c652)
*  #7743 posts/diff, posts/edit (c4bb467e)
*  #7743, posts module (1b2b308a)
*  #7743, finish user module (a51ec591)
*  #7743 (6fea46b6)
*  #7743 (cd80c263)
*  #7743 (0a690c57)
*  #7743 (1c5fad6d)
*  #7743 (fe4c0481)
*  #7743 categories (fcf3e077)
*  #7743, user/digest, user/email, user/follow (c610eb14)
*  #7743, user/create, user/data, user/delete (d6e36c31)
*  #7743 , user/block, user/categories (4541caa4)
*  #7743 notifications (6f738c2b)
*  remove unused code, add 2 tests (cd2e68cb)
*  #7743 user/ban, up mubsub (1970214a)
*  #7743, user/approval, user/auth (b24ce976)
*  #7743, posts/votes (8ef75be3)
*  #7743 posts (e1ecc36d)
*  #7743 user/admin.js (2c335955)
*  add utils.promiseParallel (4170abfd)
*  #7743, posts/user.js (0a6cfb37)
*  added new admin option newbiePostEditDuration (#7737) (8a6a58ee)
*  returning category data in tags page (75ff4d7d)
*  ACP analytics API route (#7725) (a0c0ef1b)
*  closes #7718 (ee4d78ca)
*  add status to post summaries (41bc6ca2)
*  use arrow functions (3100d803)
*  ability to sort watched topics, closes #3735 (f24c14d7)
*  use fewer system resources to draw the progress bar (d0ee312c)
*  removed series from upgrade script (23fb904f)
*  remove duped zadds, these are already in topics.onNewPostMade (cb51c239)
*  log data on error (f8a7cf73)
*  cleanup, use bulk (198d0587)
*  #7707, added sortedSetAddBulk (3ecd703e)
*  change widget-* to data-widget-* (#7703) (13efbc99)
*  shorter setsCard (3780a58f)
*  show best & latest posts on profile (b53a60c2)
*  use db.sortedSetsAdd (7e54d7aa)
*  use db.sortedSetsAdd (29a124c4)
*  dont log action:plugins.fireHook (a7600b4b)
*  upgrade to connect-mongo 3.0.0, closes #7693 (ebfc369a)
*  add hook for user notifications, closes #7672 (ede060a6)
*  user/notifications refactor (580f7860)
*  send new post/topic event in batches (8c331088)
*  allowing count to be passed to ./nodebb events (f6d3cc0e)
*  awaitable websockets (#7645) (aee47b29)
*  hooks can now return promise or call callbacks (a6436716)
*  fallback strings for ACP events (99120676)
*  design revamp of ACP events page (#7664) (c7f95cce)
*  optimize group rename (48538b28)
*  allow multiple scores in sortedSetsAdd (31ccc860)
*  optimize copy privileges (0dca13e9)
*  on category search reveal children and parents (0721bee1)
*  async3 upgrade (#7639) (4d9bc30d)
*  #7627, close chat on ajaxify on mobile (6cebc7f0)
*  update meta tags on ajaxify (#7580), fixes #7544 (a41769e6)

##### Bug Fixes

* **deps:**
  *  update dependency mongodb to v3.3.4 (#8032) (2093418d)
  *  update dependency nodebb-theme-vanilla to v11.1.10 (c01699f7)
  *  update dependency nodebb-theme-persona to v10.1.27 (182397b1)
  *  update dependency nodebb-plugin-spam-be-gone to v0.6.7 (#8027) (c2565a2f)
  *  update dependency nodebb-theme-slick to v1.2.27 (#8020) (7122bdc7)
  *  update dependency nodebb-theme-persona to v10.1.26 (#8019) (73d9752e)
  *  update dependency connect-mongo to v3.1.2 (#8013) (bfea9d39)
  *  update dependency postcss to v7.0.21 (#7998) (ef5f6714)
  *  update dependency nodebb-plugin-composer-default to v6.3.17 (#8009) (e1e2d20c)
  *  update dependency sharp to v0.23.2 (#8005) (420f9fe4)
  *  update dependency nodebb-theme-persona to v10.1.25 (#8012) (cb91e756)
  *  update dependency connect-mongo to v3.1.1 (#8006) (7655265c)
  *  update dependency connect-mongo to v3.1.0 (#7994) (401d1eed)
  *  bump persona (6155c460)
  *  update dependency nodebb-theme-persona to v10.1.23 (#7986) (9bd6f686)
  *  update dependency nodebb-theme-persona to v10.1.22 (#7965) (bf6ae6d6)
  *  update dependency nodebb-rewards-essentials to v0.1.2 (#7962) (692d94bf)
  *  update dependency nodebb-theme-persona to v10.1.21 (#7956) (1a150d8f)
  *  update dependency nodebb-plugin-spam-be-gone to v0.6.6 (#7944) (cffbb325)
  *  update dependency nodebb-theme-persona to v10.1.20 (#7943) (9589fa32)
  *  update dependency nodebb-theme-persona to v10.1.19 (#7942) (0d629f06)
  *  update dependency connect-redis to v4.0.3 (#7933) (2856333d)
  *  update dependency spider-detector to v2 (310039e8)
  *  update socket.io packages to v2.3.0 (764ed7f8)
  *  update dependency sharp to v0.23.1 (#7928) (17437897)
  *  update dependency nodebb-plugin-dbsearch to v4.0.6 (#7918) (44cd7189)
  *  update dependency nodebb-plugin-composer-default to v6.3.16 (#7917) (d8fe6e42)
  *  update dependency nodebb-plugin-composer-default to v6.3.15 (#7916) (c5e5e24b)
  *  update dependency nodebb-plugin-composer-default to v6.3.14 (#7914) (e18392ab)
  *  update dependency nodebb-theme-persona to v10.1.18 (#7906) (8ed80bcb)
  *  update dependency nodebb-rewards-essentials to v0.1.1 (#7905) (5b8bb3e4)
  *  update dependency connect-redis to v4 (#7869) (8b7f6566)
  *  update dependency nodebb-plugin-mentions to v2.7.3 (#7899) (b2423bae)
  *  update dependency nodebb-plugin-mentions to v2.7.2 (#7898) (a3120a62)
  *  update dependency nodebb-plugin-dbsearch to v4.0.5 (#7896) (106c20e2)
  *  update dependency nodebb-plugin-composer-default to v6.3.13 (#7895) (fa251ece)
  *  update dependency nodebb-plugin-mentions to v2.7.1 (8c2fc577)
  *  update dependency nodebb-plugin-composer-default to v6.3.12 (#7889) (429e124f)
  *  update dependency nodebb-plugin-composer-default to v6.3.11 (#7888) (516b62ea)
  *  update dependency nodebb-plugin-composer-default to v6.3.10 (6a4a9e26)
  *  update dependency nodebb-plugin-dbsearch to v4.0.4 (#7883) (12ba589d)
  *  update dependency postcss to v7.0.18 (c75f3d27)
  *  update dependency nodebb-theme-persona to v10.1.17 (317c6771)
  *  update dependency nodebb-theme-vanilla to v11.1.8 (6e9caddc)
  *  update dependency nodebb-plugin-composer-default to v6.3.9 (effe3989)
  *  update dependency nodebb-plugin-mentions to v2.7.0 (b69769bb)
  *  update dependency benchpressjs to v2 (#7876) (9149db1f)
  *  update dependency nodebb-plugin-composer-default to v6.3.8 (793c5eaa)
  *  update dependency nodebb-plugin-composer-default to v6.3.7 (57de99d2)
  *  update dependency mongodb to v3.3.2 (#7871) (4ee2c090)
  *  update dependency nodebb-plugin-spam-be-gone to v0.6.5 (#7865) (8ce2a5fc)
  *  update dependency mongodb to v3.3.1 (#7862) (0dfce49f)
  *  update dependency connect-pg-simple to v6 [security] (#7864) (e4b5d0b4)
  *  update dependency nodebb-plugin-mentions to v2.6.1 (a1210985)
  *  update dependency nodebb-plugin-mentions to v2.6.0 (cdccc646)
  *  update dependency rimraf to v3 (#7843) (2f02edbc)
  *  update dependency rimraf to v2.7.1 (#7838) (cf2504f8)
  *  update dependency nodebb-theme-persona to v10.1.16 (#7848) (ca7ba9be)
  *  update dependency nodebb-theme-persona to v10.1.15 (#7845) (b1c0beb7)
  *  update dependency nodebb-theme-persona to v10.1.14 (#7837) (661284cf)
  *  update dependency nodebb-theme-persona to v10.1.13 (eaea6f63)
  *  update dependency sitemap to v4 (d3d677da)
  *  update dependency commander to v3 (7a5dbd9f)
  *  update dependency mongodb to v3.3.0 (360e172e)
  *  update dependency nodebb-plugin-markdown to v8.10.4 (61f9be99)
  *  update dependency nodebb-plugin-markdown to v8.10.3 (d860f8c7)
  *  update dependency sharp to v0.23.0 (#7806) (2258452c)
  *  update dependency nodebb-theme-persona to v10.1.12 (#7799) (b9aac424)
  *  update dependency nodebb-plugin-dbsearch to v4 (#7797) (d98313b5)
  *  update dependency nodebb-plugin-dbsearch to v3.0.8 (#7796) (ef734b62)
  *  update dependency nodebb-theme-persona to v10.1.11 (8b1fc5c8)
  *  update dependency nodebb-theme-vanilla to v11.1.7 (ba1bb528)
  *  update dependency nodebb-theme-vanilla to v11.1.6 (#7784) (7a88c4cc)
  *  update dependency nodebb-theme-slick to v1.2.26 (#7782) (e074b0bf)
  *  update dependency nodebb-theme-persona to v10.1.10 (#7781) (4f20b4d3)
  *  update dependency nodebb-plugin-composer-default to v6.3.6 (3fdc638b)
  *  update dependency connect-redis to v3.4.2 (8a11193f)
  *  update dependency nodebb-plugin-mentions to v2.5.4 (45223cde)
  *  update dependency nodebb-plugin-markdown to v8.10.2 (86546232)
  *  update dependency nodebb-theme-persona to v10.1.9 (#7759) (c1660a1a)
  *  update dependency nodebb-plugin-dbsearch to v3.0.7 (#7758) (efedd621)
  *  update dependency nodebb-plugin-composer-default to v6.3.5 (7f4b1043)
  *  update dependency nodebb-theme-vanilla to v11.1.5 (#7756) (15e01d12)
  *  update dependency nodebb-theme-persona to v10.1.8 (#7755) (19679608)
  *  update dependency nodebb-theme-persona to v10.1.7 (#7754) (3cb6cfe8)
  *  update dependency nodebb-plugin-composer-default to v6.3.3 (8394a0fd)
  *  update dependency nodebb-theme-vanilla to v11.1.4 (#7741) (43ce5f8a)
  *  update dependency nodebb-theme-persona to v10.1.5 (27da2325)
  *  update dependency validator to v11.1.0 (#7738) (bd09ba92)
  *  bump composer-default (851424a7)
  *  update dependency nodebb-theme-persona to v10.1.4 (f426e105)
  *  update dependency nodebb-plugin-composer-default to v6.2.16 (#7723) (fb087029)
  *  update dependency nodebb-theme-persona to v10.1.3 (413259a2)
  *  update dependency nodebb-theme-lavender to v5.0.11 (#7705) (208c821e)
  *  update dependency nodebb-theme-vanilla to v11.1.3 (#7714) (e0b2ae8d)
  *  update dependency nodebb-theme-slick to v1.2.25 (#7713) (af7ecd2f)
  *  update dependency nodebb-theme-persona to v10.1.2 (#7712) (e5733f40)
  *  update dependency nodebb-plugin-mentions to v2.5.3 (26ff02dc)
  *  update dependency nodebb-theme-persona to v10.1.1 (4e513cf3)
  *  update dependency nodebb-theme-vanilla to v11.1.2 (c2887505)
  *  update dependency nodebb-theme-vanilla to v11.1.1 (#7700) (b3ed89f5)
  *  update dependency nodebb-theme-slick to v1.2.24 (#7699) (629b5ce3)
  *  update to eslint@6 (289dada5)
  *  update dependency nodebb-plugin-emoji to v3 (15020b46)
  *  update dependency nodebb-plugin-emoji to v3 (6b43d26f)
  *  update dependency nodebb-theme-persona to v10.1.0 (fc89516e)
  *  update dependency nodebb-theme-vanilla to v11.1.0 (c9689f11)
  *  update dependency nodebb-theme-persona to v10.0.1 (#7687) (ada8f22e)
  *  update dependency nodebb-theme-vanilla to v11.0.1 (#7688) (6db3604e)
  *  update dependency nodebb-theme-vanilla to v11 (89fea9d3)
  *  update dependency nodebb-theme-persona to v10 (0a7778bd)
  *  update dependency nodebb-theme-lavender to v5.0.10 (#7682) (e1e4abeb)
  *  update dependency nodebb-plugin-markdown to v8.10.0 (de046297)
  *  update dependency postcss to v7.0.17 (ae891390)
  *  update dependency nodebb-rewards-essentials to v0.0.14 (#7671) (3f4f8afa)
  *  update dependency mongodb to v3.2.7 (#7665) (988cbb63)
  *  update dependency nodebb-plugin-composer-default to v6.2.15 (e21246a9)
  *  update dependency nodebb-theme-persona to v9.1.38 (#7652) (d202be5b)
  *  update dependency nodebb-theme-vanilla to v10.1.34 (#7653) (e3308659)
  *  update dependency nodebb-theme-vanilla to v10.1.33 (#7651) (6f70397b)
  *  update dependency nodebb-theme-persona to v9.1.37 (#7650) (d43bdb41)
  *  update dependency async to v3.0.1 (#7649) (3b8e6e15)
  *  update dependency mongodb to v3.2.6 (#7616) (3f21096d)
  *  update dependency validator to v11 (a3d42404)
  *  update dependency nodebb-plugin-composer-default to v6.2.14 (#7635) (b174c2d2)
  *  update dependency nodebb-theme-vanilla to v10.1.32 (#7631) (85ca5b19)
  *  update dependency nodebb-plugin-composer-default to v6.2.13 (d1f29e26)
  *  update dependency nodebb-plugin-spam-be-gone to v0.6.3 (#7614) (20fa751c)
*  crash if post doesn't have topic data (eabc6f47)
*  don't touch objects that don't have the required fields (e52ecfaf)
*  add missing await to sendValidationEmail (f4381ba3)
*  #8007 added tfoot to clear new group button (dee1d447)
*  tests (e3c9dafa)
*  #8018, allow absolute urls in notification.path (0037a038)
*  #8010, fix isBanned call (59242d31)
*  #8003, check children recursively (c4e58160)
*  dont show delete topics on unread (b91c4790)
*  #8000, tweak wording; password reset success (3952849f)
*  parseInt cutoff (0e5e47f4)
*  lint (4b8897d9)
*  convert param to string in slugify (441dd86d)
*  cli/reset.js (#7979) (f9f85fc4)
*  #7977, fix undefined url (#7978) (95a372df)
*  passwords always expiring upon login (ddf3812c)
*  #7974 (#7976) (ca3be1f3)
*  delete follower/followingCount as well (d72b0d16)
*  event tests (0da4f7ee)
*  #7958, give rewards one by one (3775301f)
*  rewards page acp not loading rewards (88818a5b)
*  #7929, use fixed bootswatch (dd202931)
*  #7960, dont try to save size for non images (f272daaf)
*  #7941, validate some input fields (565f9726)
*  don't show deleted topics on unread (661a0f50)
*  #7951, don't send notification for system messages (c01b0fbd)
*  #7953, allow icon only group badges (5b458fc7)
*  remove 0 fields (ac4a5004)
*  remove unused data from post/topic/user hashes (75bcb0f4)
*  groups not visible on widget panes (205d3f9d)
*  new nav items will show group select (c5f7b66c)
*  move post and change owner (f402d727)
*  404 on new groups with spaces (b19f0a68)
*  #7940, run upgrade scripts on startup (7823144b)
*  #7949, delete old user notifs (38322ec3)
*  tests (6fb29e84)
*  check threshold before setting bookmark (f983f536)
*  mongo collection stats (4e28e575)
*  #7947, disable unused cookie (91e8e390)
*  #7945, show watched categories in ignored categories (c9bf6d0f)
*  db.init calls (18bf865d)
*  #7938, escape username in registration queue (d5dda26f)
*  #7901, handle group names that are translation keys (3455c27a)
*  fix the order of groups on user profile (41f8da2e)
*  #7935, ACP digest wording (54c9f877)
*  #7934, return tids (10f168b8)
*  tests (3caa387a)
*  tests (9c051386)
*  remove jquery (95ab0712)
*  picture not showing up in change modal (13c87059)
*  profile page meta tags getting escaped twice (7effc892)
*  missing await (2150701f)
*  potential for XSS here (40f131a6)
*  account/categories (7a0f6074)
*  redis tests (1f054c7e)
*  #7921, dont create wrong entries in db for flag (a651d154)
*  #7913, dont allow urls in fullname/location, validate birthday (babb9d7c)
*  upgrade scripts (bd026cb1)
*  only allow png/jpg/bmp in cover/profile images (96ab8d05)
*  #7919, add useUnifiedTopology (910b9b88)
*  crash in feed (873ec519)
*  lang key (795d4183)
*  time cutoff and lang string (5b8550f0)
*  returned data (87f6ac59)
*  dont send all category data back to recent&unread  etc (955e00fd)
*  #7912 (ecf39727)
*  only return necessary data for categories (307abaa8)
*  dont crash if callback is undefined (e0fec866)
*  #7800, dont crash on resize (781b3f1a)
*  change params (de461968)
*  remove dupe code (9b151b23)
*  #7894, translate log in to view (2a5fe2b8)
*  minor typo (b99279a8)
*  #7893, check private upload setting (0843497d)
*  #7892, handle string 'true'/'false' (77cb4b55)
*  dont show deleted topics in digest (4652c68b)
*  #7824, update timeago settings on userlanguage change (3887fc67)
*  don't move theme/plugin to top if its already active (acd95764)
*  #7853, dissociation on post purge (30a86ed5)
*  added comment back (0c4cd840)
*  inability for plugins to actually alter parser sanitization config (fe452762)
*  htmlentity instead of url encoding for room rename system message (9b8ac89e)
*  page count for filters (e291a609)
*  #7866, show correct title based on digest interval (547bb496)
*  #7780 (21e81f96)
*  pinned tids showing on page > 1 (f2912e9f)
*  #7860, allow running single upgrade scripts from plugins (a4dec7e3)
*  reset should not automatically build assets (a67762bc)
*  update morgan and lodash (2b1912a9)
*  #7842, groups.invite works with an array of uids (1e0190ab)
*  #7844, add uid to events, log plugin install/uninstall events (592d9c82)
*  removed console.logs (c44bf48c)
*  broken tests from 71b205a889da1ee8dd326b0891d122a522084f54 (f736f0b3)
*  typo (c6c13725)
*  category description getting translated in ACP (647713f3)
*  #7791 (71620519)
*  #7831, fix pagination (014e3153)
*  remove empty line (292bbe34)
*  remove useless catchs and empty line (5fce4558)
*  #7823, fix topic move readding pids when topic is deleted (fd5f9822)
*  #7826, fix order of categories on recent dropdown (3ecac97d)
*  redis pubsub not being required correctly (8d4f2086)
*  mongo.close using wrong client (186321e6)
*  digest not sending topics (bc6f22eb)
*  #7816, adding GDPR and TOU interstitials earlier on route reloading (52a2e5d6)
*  #7809, dont check postDelay if submitting from queue (9780f5b9)
*  newPostEditDuration (2abe244b)
*  #7789 (6a289fba)
*  #7798, fix nested post selection (666e0eaf)
*  #7788, fix on topic move and new post (8bf40d04)
*  #7788, fix another edge case (053ff510)
*  topicData passed to action:topic.edit (b10ad7b6)
*  derpy catch (ce912886)
*  #7788 No new posts (#7793) (3c32d860)
*  user urls in subfolder install (6a486e35)
*  #7765 (0b498acd)
*  tests (87552c55)
*  revert requires (3dd806dc)
*  #7763, parse about me on all profile pages (f8d34101)
*  status and groupTitle, if its not set (e2e33dfb)
*  don't return promise (2f0a331f)
*  socket.io methods calling callbacks twice if method returns promise (44a33520)
*  tests (87b1148f)
*  tests (930ffd07)
*  #7601 removed check for another user when sending messages (0e8ee31b)
*  mongodb tests (3b24de4c)
*  getTopicsFromSet (13aaf07b)
*  #7762, allow array for isBanned (9eb1fcd4)
*  add flag for change post owner (46639be3)
*  sitemap ajaxify (9f78bd7a)
*  #7751, make necro separator a partial (2b70e86f)
*  #7748, if reputation system is disabled, dont check min reputation (7b95ebbb)
*  remove left over code, use proper names (0ac49d63)
*  compatibility conditional (fba67196)
*  private upload img replacement should happen before img wrapping (16aae517)
*  #7423 private uploads are linked to login page, for guests (49e3a368)
*  typo (f3440ebf)
*  #7722, hsts deprecation warnings (8b1dadb7)
*  upgrade script #7720 (accf48f3)
*  indents (a5de54f8)
*  remove debug code that should not have made it in (af17c6e3)
*  dont display post tools if there are no options (708df46e)
*  output span in buildAvatar helper instead of div (69fae1a7)
*  restore uid in teasers userObj (67b8cb89)
*  dont allow edit if post is deleted by someone else (667bc67f)
*  dont show delete posts on profile (e48c7cd7)
*  on new post add it to cid::uid::pids (6a7bc1c5)
*  #5570, create per category user post zsets (a39f0ef5)
*  restrict drag drop to pin icon, closes #7702 (e1c05e59)
*  remove dupe code (68e5d7ad)
*  get uids directly for csv (39ee3980)
*  typo (a251032f)
*  id/for (b4cc8d88)
*  #7659 add option to change cookie link url (25ea6347)
*  middle vertical-align for .avatar elements (1894cd9b)
*  dependency checker always triggering dep upgrade, hopefully (c241551d)
*  #7483, show latest undeleted message as teaser (644504ff)
*  #7567, allow invite and approval at the same time (4b843ba1)
*  #7625, on group rename update nav/widget items (5b85ed31)
*  psql error (8d319e42)
*  try to fix psql :dog: (2e6b562f)
*  no need for moderate bit for global mods and admins (8aef689f)
*  attribute name so it works for both templates (ebb32e78)
*  #7647, fix getModeratorUids (64679b37)
*  #7644 (5cd9e1bf)
*  bad usage of async requisition (603c5262)
*  7638, returnTo accidentally saved into user hash (f321b426)
*  #7634, make strip exif configurable (157b921e)
*  #7636, use reputation threshold for post queue (a8409fbd)
*  #7623, wait for lastonline to update on /users (63e5d383)
*  https://github.com/barisusakli/nodebb-plugin-dbsearch/issues/53 (e65ddc98)
*  #7593, unable to set account password if no password set (80c0d579)
*  incorrect pathname format for app.previousUrl (a97e97b9)
*  #7598, use notice element instead of alert (106d52a4)
*  #7620, allow adding new fields into user objects for posts (a8e65205)
*  #7629, new filter hook for room rename (7ba4a864)
*  #7628, log email send errors (7a4b68e8)
*  {username} not working in notification.tpl (f55cc667)
*  do not prevent nbb from starting (3b0459a0)
*  #7624, default open state on stateless flags (91f0bce6)
*  #7431, add /unread link to topic route (15391da5)
*  #7619 (35d10f76)
*  #7618 save pathname into app.previousUrl ins. of entire url (7e5cb72a)
*  handle missing timestamps (172e6888)
*  broken test for meta tags on ajaxify (b70e03a7)
*  #7613 (15ce23da)
*  #7600, removing nbsp from email CTAs (#7606) (f552cea5)
*  #7604 shortened CTA text and added custom text for some notifs (#7605) (b32da57f)
* **style:**
  *  requiring parens in block bodies (29f96b19)
  *  updated code to follow new eslint recommendations (09212309)

##### Refactors

*  use arrow function (6b3eb014)
*  async/await (02d38caf)
*  remove log, topics.exists (f8c8038a)
*  async/await (dc8d721c)
*  async/await mongo (1f0c6f3d)
*  async/await socket.io/index (603908c1)
*  async/await image.js (c5ffd8cc)
*  remove var (05e753c7)
*  async/await flags.js (ac6eb31c)
*  async/await flags (0ced71be)
*  shorter map (572bc297)
*  remove logs (03971049)
*  dont modify key (7e7ea7a6)
*  remove logs (e32a5546)
*  async/await flags (9ee1a882)
*  shorter, new Date doesnt throw (625b0815)
*  remove temp var (b842057f)
*  async/await file (f9d6912b)
*  async/await analytics (223c108c)
*  change to const (5505628c)
*  returned fields (86b16629)
*  async/await emailer (63bd3fc5)
*  async/await routes/feeds (ec3b5dd9)
*  async/await rewards (b110aec6)
*   async/await socket.io (a7d2b8a1)
*  async/await (52b2d670)
*  async/await (75d7ae92)
*  async/await socket.io/topics (5c2afe5e)
*  async/await controllers/user.js (3c6c40b1)
*  async/await uploads (5c0266d8)
*  move tos parsing to /tos (3e2ed21d)
*  remove commented out code (ec98945a)
*  async/await controllers/authentication (b9105ef9)
*  remove async from isPasswordValid, function is sync (22f80116)
*  make categories.buildForSelectCategories non async (6cda3698)
*  remove dupe code (a4d84a66)
*  async/await socket.io/posts (e93ef0d7)
*  async/await socket.io/admin (88dfbf21)
*  socket.io/admin/categories async/await (71e50bbf)
*  admin groups.join socket async/await (4588a4fd)
*  password async/await (dd8386d9)
*  sitemap to async/await (0164e51f)
*  remove hook assign (d3727207)
*  async/await users (f9a804e0)
*  remove empty line (19b63bfa)
*  remove vars (69333f59)
*  async/await controllers (2c4f0446)
*  async/await controllers/tags (53624885)
*  async/await (f15c7f12)
*  globalmods/groups (0722cc47)
*  controllers/category.js (bd8736db)
*  use arrow func (27c27b49)
*  async/await controllers/api (4eaa630b)
*  async/await admin/controllers (6f375482)
*  async/await, remove dupe code for homepage routes (c9250a01)
*  async/await for src/socket.io/groups.js (71b205a8)
*  rewrote SocketPosts.getRawPost in await style (08530bb3)
*  replace avatar conditional code with buildAvatar helper (#7681) (25238899)

##### Reverts

*  accidental removal of some needed translation source strings (868dedd1)

#### 1.12.2 (2019-05-15)

##### Chores

*  incrementing version number - v1.12.2 (22db818e)
*  bump themes #7576 (d349754d)
*  bump themes (59bdc970)
*  bump themes (abcca134)
*  bump themes (551b18cd)
*  incrementing version number - v1.12.1 (dd973abe)
* **deps:**
  *  update dependency lint-staged to v8.1.7 (dc6b49ca)
  *  update commitlint monorepo (9998e86b)
  *  update dependency jsdom to v15.1.0 (fcd6dc88)
  *  update dependency mocha to v6.1.4 (3ff8154b)
  *  update node:8.16.0 docker digest to b5484d1 (6421f10f)
  *  update dependency husky to v2.3.0 (c20e3313)
  *  update dependency nyc to v14.1.1 (#7584) (9047210c)
  *  update dependency eslint to v5.16.0 (692e2ead)
  *  update dependency nyc to v14 (9210baf5)
  *  update dependency husky to v2.2.0 (8a018a5f)
  *  update dependency lint-staged to v8.1.6 (4e39caf8)
  *  update dependency husky to v2.1.0 (65ff0bbd)
  *  update dependency husky to v2 (e81a1dbb)
  *  update dependency eslint-plugin-import to v2.17.2 (#7546) (c1fb17f9)
  *  update dependency jsdom to v15 (#7556) (d4d8d98f)
  *  update dependency jsdom to v14.1.0 (#7555) (ca694fd1)
  *  update node.js to v8.16.0 (#7554) (f10708e7)
  *  update dependency eslint-plugin-import to v2.17.1 (69dd8e4d)
  *  update dependency mocha to v6.1.2 (b7169772)

##### Documentation Changes

*  updated changelog (93b688d0)

##### New Features

*  let theme know downvoting is disabled, closes https://github.com/NodeBB/NodeBB/pull/7568 (bd94fbc2)
*  closes #7583 (cf5aeace)
*  #7319 (9385c8e3)
*  add node12 to travis (1a7036a6)
*  allow file uploading on registration interstitial (ddffc904)
*  #7527 (ba5e1eaa)
*  #7515 (c38db4f7)

##### Bug Fixes

*  #7599 image size measurement erroring out on missing path (0d86781c)
*  #7590 updated chat and post edit and delete timeout labels in ACP (4f0dc443)
*  tests (3a7e99a5)
*  #7586, switchTimeagoLanguage shouldn't discriminate against languages w/o shorthands (1703233f)
*  #7576 "Disable password changes" can be sidestepped (50260e13)
*  if editing password is disabled in ACP, prevent direct access via route/socket  (related: #7576) (e114b16d)
*  #7582 (c9ca72d0)
*  #7461 (96cb29aa)
*  increase batch size (3d938e7b)
*  #7564 (bf6fc502)
*  group cover upload not working for s3 upload (#7571) (8945ebcb)
*  test (b9903120)
*  #7539 (c940a733)
*  #7565 (07e9b67e)
*  #7464 (32cf07d7)
*  #7147 (fe6d64cc)
*  #7424 (f86d74d8)
*  #7562 (09681e6c)
*  node12 tests (8775e7e6)
*  add post queue to /compose POST route (c6cd6c57)
*  remove redis object cache (4df925e7)
*  #7545 (74038849)
*  failing test from 00552d7183f0416a0caa113fe2f1e658659648f7 (9bf3517d)
*  fire filter:register.complete for users approved via registration queue (00552d71)
*  #7540 (8778f00b)
*  more graceful error handling and output for cli/reset (d3ebda73)
*  #6438 only apply whitelist when fields request empty (#7528) (808c4909)
* **deps:**
  *  update dependency nodebb-theme-vanilla to v10.1.31 (#7589) (a9f9d19b)
  *  update dependency nodebb-theme-persona to v9.1.36 (#7588) (bd86e58d)
  *  update dependency mongodb to v3.2.4 (#7581) (26d6d0be)
  *  update dependency postcss to v7.0.16 (10a47a29)
  *  update dependency nodebb-theme-persona to v9.1.33 (#7563) (7c4201f2)
  *  update dependency sharp to v0.22.1 (#7561) (288a25f0)
  *  update dependency nodebb-plugin-composer-default to v6.2.12 (#7538) (a54f8f00)
  *  update dependency mongodb to v3.2.3 (97a7f02f)

#### 1.12.1 (2019-04-10)

##### Chores

*  incrementing version number - v1.12.1 (dd973abe)
*  comment cleanup (6bed51ef)
*  bump persona (1f4db132)
*  bump themes, fix: https://github.com/NodeBB/NodeBB/issues/7446 (0d19bb3d)
*  incrementing version number - v1.12.0 (d87f8c52)
* **deps:**
  *  update dependency lint-staged to v8.1.5 (ae17481d)
  *  update node:8.15.1 docker digest to 918f0be (5f787d73)
  *  update node:8.15.1 docker digest to 3d43ad1 (ea77ad4e)
  *  update dependency grunt to v1.0.4 (a9130fad)
  *  update dependency eslint to v5.15.3 (d2932cf6)
  *  update dependency mocha to v6.0.2 (#7408) (1c671c32)
  *  update dependency eslint to v5.15.1 (d8486e88)
  *  update node:8.15.1 docker digest to c151597 (2cb0bdea)
  *  update dependency jsdom to v14 (a967253a)

##### Documentation Changes

*  updating changelog (9aeb291e)

##### New Features

*  #7515 (ac889db1)
*  update unban logic/invocation and refactor User.bans module (3fbb6faf)
*  add original sessionID to static:user.loggedOut (abe4abb6)
*  #7501 (2ee2cd52)
*  allow multiple cids for getActiveUsers (81306fff)
*  manual password expiry. closes #7471 (24dcae21)
*  #7358 (7211dde7)

##### Bug Fixes

*  don't crash if templateData is undefined (eb2c3e56)
*  clear children before building tree (397e062a)
*  upgrade script date (4f3ca4d8)
*  #7519 (ed91d3f2)
*  #7517 (e479fad7)
*  #7470 Properly handle recompilation of email templates (75ae29c1)
*  resolve CORS error on uploading via URL (3871a02c)
*  #7461 (dbc4d840)
*  #7491 (8cc1864a)
*  #7476 (4db0efe3)
*  #7508 (b52dba5c)
*  escape search snippet closes #7506 (e906bea4)
*  #7490 once again (3ec9fc40)
*  #7502 (3304ffe9)
*  #7503 (1f3554ff)
*  #7493, adding robots noindex meta tag to compose and reset routes (6415ba82)
*  #7490, handling of image sizes if no size saved in db (86e1cdd5)
*  #7494 (8f55ab13)
*  #6911, email throttling options set (63e16ec0)
*  throttling email output to 2 messages every second, fixes #6911 (33a1bf6c)
*  #7469 missing email logos, occasionally (8d62ead3)
*  #7487 (fddb783e)
*  #7485 (78e0b983)
*  move upload_url to prestart so it is defined in upgrade scripts (ad2d7a69)
*  #7342 (cead89f0)
*  #7477 (240f563a)
*  #7473 (c289b904)
*  #7378 (c37b2f2e)
*  #7454 (dcdd41c7)
*  #7472 (962b7f73)
*  remove async.series, dont crash if postAtIndex is undefined (dd8d4f20)
*  tests (c12e1d19)
*  #7468 (b4a9bb10)
*  #7444 Re-factor handling of og:image tags (#7463) (697a6597)
*  tests (45d7e37a)
*  callbacks (b48b6d75)
*  return early if keys is empty (7addc5a0)
*  return early if keys is empty (b3962c16)
*  prevent infinite loops if category is already in children (b71e0eb1)
*  #7448 (4732bed3)
*  return early if there are not blocked uids (73d14e45)
*  #7008 (756dfd8a)
*  typo (f9d92db5)
*  tests (e71ae80c)
*  #7406 (cbfbcee5)
*  #7432 (777ca032)
*  change user/system cpu usage (aecdf739)
*  strip exif data on image uploads (5eaa14e7)
* **deps:**
  *  update dependency nodebb-theme-persona to v9.1.29 (e5c12a49)
  *  update dependency nodebb-plugin-composer-default to v6.2.11 (30b042b8)
  *  update dependency nodebb-plugin-composer-default to v6.2.10 (cf180e09)
  *  update dependency html-to-text to v5 (b39ce25c)
  *  update dependency semver to v6 (8662aa95)
  *  update dependency spdx-license-list to v6 (447cf66b)
  *  update dependency nodebb-widget-essentials to v4.0.17 (#7489) (0f9cb86d)
  *  update dependency mongodb to v3.2.2 (#7482) (357f931c)
  *  update dependency nodemailer to v6 (0274c2bd)
  *  update dependency sharp to v0.22.0 (#7466) (c3261415)
  *  update dependency nodebb-theme-slick to v1.2.23 (#7460) (c20cd528)
  *  update dependency nodebb-theme-vanilla to v10.1.25 (fe30e06d)
  *  update dependency nodebb-theme-persona to v9.1.27 (5c605392)
  *  update dependency connect-redis to v3.4.1 (02804fe9)
  *  update dependency nodebb-plugin-composer-default to v6.2.9 (#7442) (80293146)
  *  update dependency nodebb-theme-vanilla to v10.1.23 (#7438) (48dd3c5b)
  *  update dependency nodebb-theme-slick to v1.2.22 (#7437) (3f4ae4b0)
  *  update dependency nodebb-theme-persona to v9.1.25 (#7436) (9887bb4f)
  *  update dependency nodebb-plugin-composer-default to v6.2.8 (#7435) (c18f2e1f)

### 1.12.0 (2019-03-06)

##### Chores

*  incrementing version number - v1.12.0 (d87f8c52)
*  incrementing version number - v1.11.2 (757bff27)
* **deps:**
  *  update node:8.15.1 docker digest to 287b8a5 (0b8d1833)
  *  update node.js to v8.15.1 (ae89db28)
  *  update dependency mocha to v6 (#7387) (30bdb1a1)
  *  update dependency coveralls to v3.0.3 (#7397) (cf74904c)
  *  update dependency eslint to v5.14.1 (4df9c206)
  *  update dependency jsdom to v13.2.0 (cb5e3d83)
  *  update node:8.15.0 docker digest to a8a9d8e (edcb5314)
  *  update dependency nyc to v13.3.0 (a78f5da5)
  *  update dependency lint-staged to v8.1.4 (18c90913)
  *  update dependency eslint to v5.14.0 (9d8d2d0d)
  *  update commitlint monorepo (aed5b29d)
  *  update dependency eslint-plugin-import to v2.16.0 (e0fa6965)
  *  update dependency @commitlint/cli to v7.4.0 (362d9397)
  *  update dependency lint-staged to v8.1.1 (96644350)

##### Documentation Changes

*  updated changelog (aec2f210)

##### New Features

*  admin/groups style change (2b6f1a05)
*  add process cpu usage to admin (db477538)
*  pass options to digest (23da3009)
*  revamp email templates to be more style agnostic (#7375) (f32a9922)
*  lower search timeout (fc830c0f)
*  quick search (8a0e1280)
*  add vote status to getPostData API call (eafe76de)
*  make topic search a function (d2b83967)
*  quick search (c01d43e0)
*  check overide (ba90bf31)
*  check CI failure (f2d7f75e)
*  logging password resets and errors into event log (0c09b740)
*  add `action:alert.new`, `action:alert.update` hooks (daadcc48)
*  allow themes to define custom classes for categories via filter:admin.category.get (5031bfe8)
*  show more unread notifs (d75a0d77)
*  pass topic creation data to action:topic.save (cd2f72fb)
*  textcomplete over jquery-textcomplete, closes #7309 (02a8ed9b)
*  new hook filter:privileges.posts.edit (f659ef4d)
*  new hook type: `response` (a23854e3)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-theme-persona to v9.1.24 (0f2d3181)
  *  update dependency nodebb-plugin-composer-default to v6.2.7 (#7411) (9ebc900a)
  *  bump markdown (82c8ee3f)
  *  bump markdown (7ce5a81f)
  *  bump persona (a0b71f09)
  *  update dependency nodebb-theme-vanilla to v10.1.21 (#7404) (699eddcb)
  *  update dependency nodebb-theme-persona to v9.1.22 (#7403) (d87751ea)
  *  update dependency nodebb-theme-persona to v9.1.21 (#7401) (f721155d)
  *  update dependency nodebb-theme-slick to v1.2.21 (#7398) (f6e55651)
  *  update dependency nodebb-widget-essentials to v4.0.14 (#7399) (f812e0b7)
  *  update dependency nodebb-theme-persona to v9.1.19 (#7392) (deff7b34)
  *  update dependency nodebb-plugin-composer-default to v6.2.6 (#7389) (fab32a49)
  *  update dependency nodebb-theme-persona to v9.1.18 (042b81a0)
  *  update dependency nodebb-theme-persona to v9.1.17 (#7379) (546e04e1)
  *  update dependency nodebb-plugin-composer-default to v6.2.5 (#7374) (d0874f34)
  *  update dependency async to v2.6.2 (#7365) (264eadde)
  *  update dependency nodebb-plugin-composer-default to v6.2.4 (30ff4582)
  *  update dependency nodebb-theme-persona to v9.1.16 (65df6711)
  *  update dependency nodebb-plugin-markdown to v8.9.0 (07b29d59)
  *  bump contenteditable to v0.1.1, #7325 (fbbe2ab7)
  *  update dependency nodebb-plugin-composer-default to v6.2.3 (#7341) (176efb5f)
  *  update dependency nodebb-theme-persona to v9.1.15 (#7295) (8f69ffd4)
  *  update dependency nodebb-theme-slick to v1.2.20 (#7197) (a82bd3d0)
  *  update dependency nodebb-theme-lavender to v5.0.9 (#7322) (b350be27)
  *  update dependency nodebb-plugin-composer-default to v6.2.2 (99f82fb3)
  *  update dependency winston to v3.2.1 (#7317) (7e872d32)
  *  update dependency nodebb-plugin-markdown to v8.8.8 (#7314) (9cf81afe)
  *  update dependency nodebb-plugin-dbsearch to v3.0.6 (#7305) (d48ef6d8)
  *  update dependency nodebb-plugin-dbsearch to v3.0.5 (#7304) (57e3f162)
  *  update dependency nodebb-theme-vanilla to v10.1.19 (#7301) (443dcee4)
  *  update dependency winston to v3.2.0 (#7299) (6f957cb9)
  *  update dependency nodebb-plugin-spam-be-gone to v0.6.0 (247ac828)
*  #7413 (684175f7)
*  #7414 (e331f6b5)
*  l2spread @baris nib (0360f6e1)
*  restored email logo to all outgoing emails (6c1f9c3c)
*  die hydra!!! (ad6c8dcc)
*  incorrect teaserPost logic (97313508)
*  normalized font sizes for paragraphs in digest (43c4eb23)
*  removed notification subheader translation string (6f272e34)
*  broken 50% border radius on emails, failing tests (d3a10628)
*  hook names getting objectified by winston (6472a065)
*  failing tests from revamped-emails branch (3a7f1c19)
*  #7395 (03305db8)
*  mounting of all-route middlewares to router instead of app (d722f3b8)
*  incorrect returnTo set in registerComplete (f972f752)
*  search.api not working on subfolder (158f68eb)
*  tests for #7385 (7a534453)
*  #7385 better handling for errors in Adv>Databases (57069a5c)
*  no relative path needed in req.session.returnTo (949b10f1)
*  don't refresh page when enabling/disabling categories (d5ece9a4)
*  #7373 (c2e7ae7f)
*  autocomplete not triggered if chat switched (ab0e547d)
*  #7366 (6c2f48f1)
*  #7357 (45c322ae)
*  #7359 (2996a5dc)
*  re-introducing indeterminate checkbox state to ACP privs (e8f3c256)
*  #7354 (c6ad8fae)
*  uid check (efd7d953)
*  uid checks (c24dcf78)
*  only allow numbers as scores (#7356) (5917dec2)
*  #7231, missing success alert on group name change in ACP (0fffcb38)
*  remove debug logs (fe63fca8)
*  don't use same db as prod values (39e35275)
*  database 0 was being replaced with undefined because 0 is falsy (bcd62586)
*  #7352 (2e2c3ac1)
*  #7261, banned users still get digests (aca05560)
*  #7346, panel-header widget colours in ACP (91a7b907)
*  #7350 (8c68780e)
*  eslint failure from daadcc4889a91b9bbd279d49db348610cc079ccc (96b6ce1f)
*  prevent crash if results.stats or results.serverStatus is undefined (fab52b84)
*  move `action:alert.update` to after translator (d864da1a)
*  #7098 (fc6767e1)
*  #7232 (70d9c6c4)
*  #7229 (e59b907d)
*  #7339 (12c58990)
*  #7338 (8e3bf581)
*  dont crash if userData is undefined #7262 (56a493d8)
*  #7240 (a2f08e7d)
*  give default privs on new install to guests/spiders (cd120990)
*  #6806 (c72da559)
*  #7334 (ae779ea4)
*  closes #7217 (9d1fcf4e)
*  merge post notifs (6e69a9ab)
*  don't crash if body doesn't have `skin-` (f6cfbbb5)
*  #7324 (c7abf07a)
*  allow regular groups to local login (0366cfd8)
*  #7316 (5353960a)
*  #7306 (8aebe884)
*  #7312 (7a4a8ea4)
*  #7311, missing dependencies (263e58df)
*  #7300 (920efad0)
*  #6848 (70f8b418)
*  #7298 privilege header misalignment (df6f75eb)
*  #7211 (cf918078)
*  #7215 (7a9780f6)
*  #7296, local login privilege available to registered-users only (7fb3c168)
*  #7094 (d03220cd)

#### 1.11.2 (2019-01-24)

##### Chores

*  incrementing version number - v1.11.2 (757bff27)
*  incrementing version number - v1.11.1 (2104877c)
* **deps:**
  *  update node:8.15.0 docker digest to cb66110 (1719cd77)
  *  update dependency eslint-plugin-import to v2.15.0 (f7191eb9)
  *  update dependency eslint to v5.12.1 (d928c54d)
  *  update dependency @commitlint/cli to v7.3.2 (6ae2b972)
  *  update node.js to v8.15.0 (ac39fe90)
  *  update dependency eslint to v5.12.0 (f96ef7bb)
  *  update commitlint monorepo to v7.3.1 (50594118)
  *  update dependency smtp-server to v3.5.0 (00063708)
  *  update dependency husky to v1.3.1 (719995a4)
  *  update dependency eslint to v5.11.0 (#7151) (26f3bdbf)
  *  update dependency husky to v1.3.0 (eb606281)
  *  update dependency jsdom to v13.1.0 (60e9430b)
  *  update dependency eslint to v5.10.0 (#7084) (dae861da)
  *  update dependency husky to v1.2.1 (63f4b569)
  *  update node:8.14.0 docker digest to dd2381f (7449ae3e)
  *  update node.js to v8.14.0 (8a5a031d)
  *  update dependency lint-staged to v8.1.0 (dd7f8a14)
  *  update dependency husky to v1.2.0 (aee21628)
  *  update node:8.12.0 docker digest to 5dae8ea (0ef451dd)
  *  update dependency husky to v1.1.4 (95d6ab06)
  *  update dependency eslint to v5.9.0 (92441794)
  *  pin dependencies (b0483f21)
  *  update dependency eslint-config-airbnb-base to v13 (#6599) (64b9dabf)
  *  update node.js to v8.12.0 (fa3afbd2)
  *  update dependency husky to v1.1.3 (6cee5b8e)
  *  update dependency lint-staged to v8.0.4 (9d258668)
  *  update dependency lint-staged to v8.0.3 (aaa6fe9e)
  *  update dependency lint-staged to v8 (95d7a5fa)
  *  update dependency jsdom to v13 (52f141c9)
* **husky:**  setting up husky as recommended in docs (e8a3d929)

##### Documentation Changes

*  updated changelog for v1.11.1 (c04e192d)

##### New Features

*  new hook filter:user.logout (63061ffd)
*  explicit handling of SSO success and failure (059a4be2)
*  additional options for SSO plugins (2b9322e1)
*  get rid of disk access (ed5d2d6d)
*  support for one-click unsubscribe from email clients (#7203) (70a87d43)
*  added new hook `static:sockets.validateSession` (#7189) (0263b4da)
*  #7120 (f4ea2c43)
*  #7032 (0c1ac4d6)
*  small fixes (fef7e13c)
*  name topic controller (b9b9d8b2)
*  header (0cb9bba4)
*  more naming (ae0fe5e8)
*  give the rest of the middlewares names (f88db22c)
*  give names to more middlewares (fdfbcc6e)
*  give names to middlewares (53793e16)
*  change sortedSetsScore (d2c2d56f)
*  Allow getting logfile path from config (#7044) (f3e8e065)
*  remove uid:<uid>:ignored:cids (#7099) (263c9180)
*  cache category tag whitelist (78fa7340)
*  make user cards look less derpy (31bb2ae9)
*  added new middleware authenticateOrGuest (4fba1492)
*  closes #7070 (7ca62b83)
*  added README.md in languages folder (648964fa)
*  up composer (7eee8e1d)
*  allow array results (54c127d1)
*  #7023 (f581c052)
*  close #7002, console message if mismatched origins (89c025d1)
*  added changelog file to root of repo (e89b4fca)
*  enabling commitlint (c58a41ed)
*  allow disabling of GDPR features via ACP toggle, closes #6847 (4919e9ef)
* **deps:**  update bootstrap to v3.4.0 (#7106) (d1ea5d15)
* **email:**  don't escape html in notification bodies. (#7042) (d7c55bc3)

##### Bug Fixes

*  test (bc41848a)
*  #7235 (7064fd06)
*  use ACP config value for checking online status (ef0e7808)
*  log error to prevent headers already sent (a22a3a98)
*  #7289 timeago shorthand toggle fails on non-existant language (cee47f78)
*  #7276 improper request for client-noskin.css (5ee173c2)
*  #7274 incorrect handling of client script 404s (831d0795)
*  #7270 Flags graph label not translatable (8ceb35f5)
*  #7266 body does not contain skin class (f122fc44)
*  generate timeago codes from files (7524d3c3)
*  removal of timeago fallback middleware (#7259) (c831ff0d)
*  post queue notifs (ac655564)
*  added missing translation and error state for password change (51b5fb98)
*  #7236, header search stops working after header update (3859d417)
*  #7226, added placeholder styling for fa-nbb-none (87c2d108)
*  escape hook method (9328eeca)
*  #7216, hide taskbar on chat modal invocation on mobile (a70db885)
*  #7208 (428f587c)
*  #7054 (a662f118)
*  #7209 (b9833483)
*  missing notification (1a3838e1)
*  #7193, closes #7194 (7809ba28)
*  #https://github.com/barisusakli/nodebb-plugin-dbsearch/issues/49 (6f1fb4eb)
*  #7187 (28459d04)
*  #7176, FUOC on app.reskin() (954af0f0)
*  #7174 (9aa1aa68)
*  #7181 (0d409610)
*  #7142 (8da3b2a4)
*  #7179 (03299736)
*  #7169 Fixed logout being broken (b0eaa858)
*  #7167, composer and chat not closing on logout (629b3554)
*  shorter function (43e7cc0a)
*  #7162 (2da0a657)
*  uid filtering (72afc180)
*  dont crash if default cover is invalid (41fb5cca)
*  #7136 socket.disconnect() now called on invalid session (8e9de540)
*  RTL not respected when changed in user settings, related to #7146 (4873a339)
*  #7146 Better RTL handling on (de-)authentication (d81e0a5f)
*  #7118, invoking autoLocale middleware on logout (900f0a0b)
*  closes #6784 (#7137) (7fb29f42)
*  7100 (ab81cca7)
*  #7139 (3917022a)
*  #7116 (7e828404)
*  #7138 (29a85aec)
*  lint (b47f939b)
*  #7091, #7093 (69e0dbbf)
*  #7131 (d31684e8)
*  remove cache (b2a74b41)
*  loop (60390c01)
*  #7124 (4650a760)
*  unread badge (9f506268)
*  move the check to get methods (99e0895e)
*  #7115 (989879a6)
*  #6979 (29b63ae7)
*  upgrade script key (0eef3e1c)
*  remove log (00afc5b3)
*  #7108 (81697390)
*  dont save data for non-positive uids (62f01a83)
*  #7103 (f103390a)
*  dont update cid:<cid>:tids:votes if topic is pinned (2f57a4b9)
*  #7102 (d117df77)
*  #7102 (85a07e99)
*  don't explode if there is no css el (74d0e88d)
*  db info page (26ccd8f6)
*  logAttempt conditional (a6c8e0ab)
*  #7087, server-side protection against guest blocks (33d4956b)
*  don't crash in flags.validate if user blocked target (81aa3a0b)
*  dont send empty strings (555c092f)
*  #7085 (fe0f95a2)
*  #7086 (e55fb437)
*  wrong variable #7085 (71163421)
*  admins&mods when there are mutliple lines of users (de437e36)
*  refreshing settings page on save if language changed (ed46c5e2)
*  not calling authenticate middleware on resource direct access routes (eeaee8cc)
*  #7038, autoLocale logic not playing nicely with no-refresh auths (#7059) (5f3d1c76)
*  #7074 (2604cf63)
*  #7071 buildSkinAsset won't rebuild continuously (a07d9898)
*  #7063, logout code should do hard page nav to / or data.next (6df5668e)
*  #7061 (eab297bd)
*  skin not changing after login or logout, #7038 (28a1fa78)
*  #7040 (a63ddbe2)
*  #7041 (ec0c50d4)
*  #7043 (8d7c3897)
*  add missing render function (cb7c2d8c)
*  #7033 (8808a033)
*  #7037 (b86f1556)
*  #6991, add timeout for version Github request (43c3bb02)
*  #7030 (58d4376f)
*  added admin/manage/uploads to tx config (7357926f)
*  #7013, add cache buster to js-enabled.css (f6b92c1d)
*  removal of scroll anchoring code in favour of browser handling (98c14e0e)
*  custom navigation item not showing groups (d9452bf3)
*  flags detail page crash if reporter blocks author (d027207f)
*  #6922, skin assets not including plugin LESS files (a5022ce4)
*  #6921, allow square brackets in usernames (da10ca08)
*  interstitial redirects failing if done via ajaxify (3c8939a8)
*  username trim on login, closes #6894 (157bea69)
* **deps:**
  *  update dependency nodebb-widget-essentials to v4.0.13 (#7293) (22cbcc3e)
  *  update dependency mongodb to v3.1.13 (1aadbc3c)
  *  update dependency postcss to v7.0.14 (4d64de76)
  *  #7271, updating autoprefixer to latest version (a7af0198)
  *  #7270 (b48f1b4d)
  *  update dependency sharp to v0.21.3 (#7267) (8a64667f)
  *  theme upgrades for #7266 (5607261c)
  *  update dependency mongodb to v3.1.12 (eeab7d20)
  *  update dependency mongodb to v3.1.11 (#7252) (b5f188b6)
  *  update dependency validator to v10.11.0 (77dc8fc7)
  *  update dependency nodebb-plugin-composer-default to v6.1.21 (2fbb2614)
  *  update dependency postcss to v7.0.12 (f1842295)
  *  update dependency postcss to v7.0.11 (57bec2fb)
  *  update dependency sharp to v0.21.2 (8f3c4b09)
  *  update dependency postcss to v7.0.10 (82475fe5)
  *  update dependency postcss to v7.0.9 (f171c169)
  *  update dependency nodebb-theme-vanilla to v10.1.15 (ea059e89)
  *  update dependency nodebb-theme-persona to v9.1.10 (96482569)
  *  update dependency nodebb-theme-persona to v9.1.9 (bbe05043)
  *  update dependency nodebb-theme-vanilla to v10.1.14 (6cc5dbc8)
  *  update dependency nodebb-theme-persona to v9.1.8 (e5443690)
  *  update dependency pg-cursor to v2 (29acad42)
  *  update dependency diff to v4 (#7198) (84e228bb)
  *  update dependency nodebb-plugin-mentions to v2.5.2 (#7199) (0a647316)
  *  update dependency nodebb-plugin-markdown to v8.8.7 (90b4d40e)
  *  update dependency rimraf to v2.6.3 (f4cc3122)
  *  update dependency spider-detector to v1.0.19 (#7177) (0faba325)
  *  update dependency nodemailer to v5 (4993b03c)
  *  update dependency json-2-csv to v3 (80cee665)
  *  update dependency nodebb-plugin-composer-default to v6.1.20 (07bf0b98)
  *  update dependency nodebb-theme-persona to v9.1.7 (#7161) (c68d4ae8)
  *  update dependency nodebb-plugin-composer-default to v6.1.19 (#7159) (07af46ea)
  *  update dependency nodebb-plugin-composer-default to v6.1.18 (#7158) (584b45fc)
  *  update dependency validator to v10.10.0 (#7152) (8003bed8)
  *  update dependency nodebb-plugin-mentions to v2.5.0 (792dce14)
  *  update dependency nodebb-theme-persona to v9.1.6 (#7141) (325b0293)
  *  update dependency nodebb-plugin-dbsearch to v3.0.4 (ddd07c1a)
  *  update dependency nodebb-widget-essentials to v4.0.12 (#7133) (f614a44d)
  *  update dependency nodebb-plugin-mentions to v2.4.0 (9ab31d7e)
  *  update dependency postcss to v7.0.7 (7ef8c3fd)
  *  update dependency sharp to v0.21.1 (#7082) (bf75f3e3)
  *  update dependency nodebb-theme-vanilla to v10.1.13 (#7114) (fc5598b9)
  *  update dependency nodebb-theme-slick to v1.2.19 (#7113) (56ad43aa)
  *  update dependency nodebb-theme-persona to v9.1.5 (#7112) (953f8fe5)
  *  update dependency nodebb-plugin-composer-default to v6.1.17 (3bcfd7fc)
  *  update dependency nodebb-theme-persona to v9.1.4 (b6ad5fd4)
  *  update dependency nodebb-plugin-markdown to v8.8.6 (#7079) (46fb365d)
  *  update dependency nodebb-theme-persona to v9.1.3 (#7075) (d2aea57a)
  *  update dependency nodebb-theme-persona to v9.1.2 (42e792ab)
  *  update dependency nodebb-theme-persona to v9.1.1 (#7069) (bdb33056)
  *  update dependency postcss to v7.0.6 (6b5428c5)
  *  update dependency nodebb-plugin-composer-default to v6.1.14 (#7058) (e48ed6e0)
  *  update dependency nodebb-plugin-composer-default to v6.1.13 (#7057) (ada1d6d0)
  *  update dependency nodebb-plugin-composer-default to v6.1.12 (#7056) (9f9f72da)
  *  update dependency nodebb-plugin-composer-default to v6.1.11 (#7055) (89acb896)
  *  update dependency nodebb-theme-slick to v1.2.18 (#7049) (b6cb77c1)
  *  update dependency nodebb-theme-slick to v1.2.17 (#7048) (7334c45b)
  *  update dependency nodebb-theme-slick to v1.2.16 (#7047) (1cb1af0c)
  *  update dependency connect-mongo to v2.0.3 (#7046) (d0d0c7f0)
  *  update dependency nodebb-plugin-dbsearch to v3.0.3 (#7035) (adb1b5f3)
  *  update dependency lru-cache to v4.1.5 (#7031) (887582eb)
  *  update dependency socket.io to v2.2.0 (b9d49867)
  *  update dependency socket.io-client to v2.2.0 (824bd541)
  *  update dependency nodebb-plugin-dbsearch to v3.0.2 (#7028) (11f1b409)
  *  update dependency nodebb-plugin-dbsearch to v3.0.1 (#7027) (e71f443c)
  *  update dependency nodebb-theme-vanilla to v10.1.12 (cf928f44)
  *  update dependency nodebb-theme-persona to v9.1.0 (179be9ed)
  *  update dependency nodebb-theme-persona to v9.0.63 (#7019) (68ae3eb6)
  *  update dependency nodebb-plugin-markdown to v8.8.5 (d3ab7d1b)
  *  update dependency nodebb-theme-persona to v9.0.60 (#6984) (cbd50a80)
  *  update dependency nodebb-theme-vanilla to v10.1.10 (#6982) (4c769487)
  *  update dependency nodebb-theme-slick to v1.2.15 (#6981) (acaf1a05)
  *  update dependency nodebb-theme-persona to v9.0.59 (#6980) (5863bb2c)
  *  update dependency lru-cache to v4.1.4 (#6977) (375ab769)
  *  update dependency connect-mongo to v2.0.2 (#6975) (e1597b83)
  *  update dependency nodebb-plugin-markdown to v8.8.4 (84d1013d)
  *  update dependency nodebb-plugin-composer-default to v6.1.8 (fee7e336)
  *  update dependency nodebb-plugin-markdown to v8.8.3 (b182a195)
  *  update dependency nodebb-plugin-composer-default to v6.1.7 (#6966) (1101f327)
  *  update dependency nodebb-theme-persona to v9.0.58 (#6964) (6ade156b)
  *  update dependency mongodb to v3.1.10 (#6962) (662215fa)
  *  update dependency nodebb-theme-persona to v9.0.57 (#6956) (1bf1a439)
  *  update dependency nodebb-theme-persona to v9.0.55 (#6955) (e06683f7)
  *  update dependency nodebb-plugin-composer-default to v6.1.6 (c51ceaf0)
  *  update dependency nodebb-theme-persona to v9.0.54 (bb940b01)
  *  update dependency nodebb-plugin-mentions to v2.2.12 (#6936) (e12a803b)
  *  update dependency nodebb-theme-vanilla to v10.1.9 (#6935) (b480c321)
  *  update dependency nodebb-theme-slick to v1.2.14 (#6934) (9cdd5316)
  *  update dependency nodebb-theme-persona to v9.0.53 (#6933) (9ee1c2f8)
  *  update dependency nodebb-plugin-dbsearch to v2.0.23 (#6931) (dba1db9c)
  *  update dependency jsesc to v2.5.2 (511b4edc)
  *  update dependency validator to v10.9.0 (032caafa)
  *  update dependency spdx-license-list to v5 (a639b6b8)
  *  update dependency nodebb-theme-vanilla to v10.1.8 (eb0a322d)
  *  update dependency nodebb-theme-persona to v9.0.52 (6566a0cb)
  *  update dependency nodebb-plugin-dbsearch to v2.0.22 (#6916) (7808e58c)
  *  update dependency mongodb to v3.1.9 (#6914) (9a9f2af9)
  *  update dependency nodebb-theme-persona to v9.0.51 (e2274fe0)
  *  update dependency nodebb-theme-slick to v1.2.13 (3005428d)
  *  update dependency nodebb-theme-persona to v9.0.50 (#6902) (22140a20)
  *  update dependency nodebb-plugin-markdown to v8.8.2 (0b4c9a80)
  *  update dependency nodebb-theme-vanilla to v10.1.7 (3150a2fc)
  *  update dependency nodebb-theme-slick to v1.2.12 (#6881) (9bcda7f7)
  *  update dependency nodebb-theme-persona to v9.0.49 (#6880) (e0dc00da)
  *  update dependency nodebb-theme-persona to v9.0.48 (2b6f5eec)
* **i18n:**  pushed notifications source to tx, pulled fallbacks (8dd8370b)
* **uploads:**  ugly filenames on uploaded asset downloading (f96208a0)
* **acp:**
  *  small UI fixes for ACP privileges category selector (#6946) (57b39d5b)
  *  hard-to-discover dropdown selector in ACP (b3f96d28)
* **l10n:**  some translations (34cbd1fc)

##### Other Changes

* //github.com/NodeBB/nodebb-theme-persona/issues/363 (702be3f6)
* //github.com/NodeBB/NodeBB/issues/6433 (7e00d6b9)
*  #6408 (f0f30041)
*  #6425 (fbf52407)
* //github.com/NodeBB/NodeBB/issues/6073 (5da24b41)
*  #5862, setting chat list height even if no message list is present (bc9a1250)
* //github.com/Schamper/nodebb-plugin-poll/issues/86 (c0f39032)

##### Refactors

*  use loash when possible (#7230) (e1ca2d81)

##### Code Style Changes

*  lint fix (fbe6ccd7)
* **eslint:**
  *  match operator-linebreak preferences (ba619c7e)
  *  newlines in public/src as well (f7bd398e)
  *  enforcing newline on chained calls (95cc27f1)

#### 1.11.1 (2018-12-14)

##### Chores

*  incrementing version number - v1.11.1 (2104877c)
* **deps:**
  *  update dependency husky to v1.2.1 (63f4b569)
  *  update node:8.14.0 docker digest to dd2381f (7449ae3e)
  *  update node.js to v8.14.0 (8a5a031d)

##### New Features

*  Allow getting logfile path from config (#7044) (f3e8e065)
*  remove uid:<uid>:ignored:cids (#7099) (263c9180)
*  cache category tag whitelist (78fa7340)
*  make user cards look less derpy (31bb2ae9)
*  added new middleware authenticateOrGuest (4fba1492)
*  closes #7070 (7ca62b83)
*  added README.md in languages folder (648964fa)
*  up composer (7eee8e1d)
*  allow array results (54c127d1)
*  #7023 (f581c052)
*  close #7002, console message if mismatched origins (89c025d1)
*  added changelog file to root of repo (e89b4fca)
* **email:**  don't escape html in notification bodies. (#7042) (d7c55bc3)

##### Bug Fixes

*  #7108 (81697390)
*  dont save data for non-positive uids (62f01a83)
*  #7103 (f103390a)
*  dont update cid:<cid>:tids:votes if topic is pinned (2f57a4b9)
*  #7102 (d117df77)
*  #7102 (85a07e99)
*  don't explode if there is no css el (74d0e88d)
*  db info page (26ccd8f6)
*  logAttempt conditional (a6c8e0ab)
*  #7087, server-side protection against guest blocks (33d4956b)
*  don't crash in flags.validate if user blocked target (81aa3a0b)
*  dont send empty strings (555c092f)
*  #7085 (fe0f95a2)
*  #7086 (e55fb437)
*  wrong variable #7085 (71163421)
*  admins&mods when there are mutliple lines of users (de437e36)
*  refreshing settings page on save if language changed (ed46c5e2)
*  not calling authenticate middleware on resource direct access routes (eeaee8cc)
*  #7038, autoLocale logic not playing nicely with no-refresh auths (#7059) (5f3d1c76)
*  #7074 (2604cf63)
*  #7071 buildSkinAsset won't rebuild continuously (a07d9898)
*  #7063, logout code should do hard page nav to / or data.next (6df5668e)
*  #7061 (eab297bd)
*  skin not changing after login or logout, #7038 (28a1fa78)
*  #7040 (a63ddbe2)
*  #7041 (ec0c50d4)
*  #7043 (8d7c3897)
*  add missing render function (cb7c2d8c)
*  #7033 (8808a033)
*  #7037 (b86f1556)
*  #6991, add timeout for version Github request (43c3bb02)
*  #7030 (58d4376f)
* **deps:**
  *  update dependency nodebb-plugin-composer-default to v6.1.17 (3bcfd7fc)
  *  update dependency nodebb-theme-persona to v9.1.4 (b6ad5fd4)
  *  update dependency nodebb-plugin-markdown to v8.8.6 (#7079) (46fb365d)
  *  update dependency nodebb-theme-persona to v9.1.3 (#7075) (d2aea57a)
  *  update dependency nodebb-theme-persona to v9.1.2 (42e792ab)
  *  update dependency nodebb-theme-persona to v9.1.1 (#7069) (bdb33056)
  *  update dependency postcss to v7.0.6 (6b5428c5)
  *  update dependency nodebb-plugin-composer-default to v6.1.14 (#7058) (e48ed6e0)
  *  update dependency nodebb-plugin-composer-default to v6.1.13 (#7057) (ada1d6d0)
  *  update dependency nodebb-plugin-composer-default to v6.1.12 (#7056) (9f9f72da)
  *  update dependency nodebb-plugin-composer-default to v6.1.11 (#7055) (89acb896)
  *  update dependency nodebb-theme-slick to v1.2.18 (#7049) (b6cb77c1)
  *  update dependency nodebb-theme-slick to v1.2.17 (#7048) (7334c45b)
  *  update dependency nodebb-theme-slick to v1.2.16 (#7047) (1cb1af0c)
  *  update dependency connect-mongo to v2.0.3 (#7046) (d0d0c7f0)
  *  update dependency nodebb-plugin-dbsearch to v3.0.3 (#7035) (adb1b5f3)
  *  update dependency lru-cache to v4.1.5 (#7031) (887582eb)
  *  update dependency socket.io to v2.2.0 (b9d49867)
  *  update dependency socket.io-client to v2.2.0 (824bd541)
  *  update dependency nodebb-plugin-dbsearch to v3.0.2 (#7028) (11f1b409)
  *  update dependency nodebb-plugin-dbsearch to v3.0.1 (#7027) (e71f443c)
* **i18n:**  pushed notifications source to tx, pulled fallbacks (8dd8370b)

##### Code Style Changes

* **eslint:**  match operator-linebreak preferences (ba619c7e)

### 1.11.0 (2018-11-28)

##### Chores

* **deps:**
  *  update dependency lint-staged to v8.1.0 (dd7f8a14)
  *  update dependency husky to v1.2.0 (aee21628)
  *  update node:8.12.0 docker digest to 5dae8ea (0ef451dd)
  *  update dependency husky to v1.1.4 (95d6ab06)
  *  update dependency eslint to v5.9.0 (92441794)
  *  pin dependencies (b0483f21)
  *  update dependency eslint-config-airbnb-base to v13 (#6599) (64b9dabf)
  *  update node.js to v8.12.0 (fa3afbd2)
  *  update dependency husky to v1.1.3 (6cee5b8e)
  *  update dependency lint-staged to v8.0.4 (9d258668)
  *  update dependency lint-staged to v8.0.3 (aaa6fe9e)
  *  update dependency lint-staged to v8 (95d7a5fa)
  *  update dependency jsdom to v13 (52f141c9)
* **husky:**  setting up husky as recommended in docs (e8a3d929)

##### New Features

*  enabling commitlint (c58a41ed)
*  allow disabling of GDPR features via ACP toggle, closes #6847 (4919e9ef)

##### Bug Fixes

* **deps:**
  *  update dependency nodebb-theme-vanilla to v10.1.12 (cf928f44)
  *  update dependency nodebb-theme-persona to v9.1.0 (179be9ed)
  *  update dependency nodebb-theme-persona to v9.0.63 (#7019) (68ae3eb6)
  *  update dependency nodebb-plugin-markdown to v8.8.5 (d3ab7d1b)
  *  update dependency nodebb-theme-persona to v9.0.60 (#6984) (cbd50a80)
  *  update dependency nodebb-theme-vanilla to v10.1.10 (#6982) (4c769487)
  *  update dependency nodebb-theme-slick to v1.2.15 (#6981) (acaf1a05)
  *  update dependency nodebb-theme-persona to v9.0.59 (#6980) (5863bb2c)
  *  update dependency lru-cache to v4.1.4 (#6977) (375ab769)
  *  update dependency connect-mongo to v2.0.2 (#6975) (e1597b83)
  *  update dependency nodebb-plugin-markdown to v8.8.4 (84d1013d)
  *  update dependency nodebb-plugin-composer-default to v6.1.8 (fee7e336)
  *  update dependency nodebb-plugin-markdown to v8.8.3 (b182a195)
  *  update dependency nodebb-plugin-composer-default to v6.1.7 (#6966) (1101f327)
  *  update dependency nodebb-theme-persona to v9.0.58 (#6964) (6ade156b)
  *  update dependency mongodb to v3.1.10 (#6962) (662215fa)
  *  update dependency nodebb-theme-persona to v9.0.57 (#6956) (1bf1a439)
  *  update dependency nodebb-theme-persona to v9.0.55 (#6955) (e06683f7)
  *  update dependency nodebb-plugin-composer-default to v6.1.6 (c51ceaf0)
  *  update dependency nodebb-theme-persona to v9.0.54 (bb940b01)
  *  update dependency nodebb-plugin-mentions to v2.2.12 (#6936) (e12a803b)
  *  update dependency nodebb-theme-vanilla to v10.1.9 (#6935) (b480c321)
  *  update dependency nodebb-theme-slick to v1.2.14 (#6934) (9cdd5316)
  *  update dependency nodebb-theme-persona to v9.0.53 (#6933) (9ee1c2f8)
  *  update dependency nodebb-plugin-dbsearch to v2.0.23 (#6931) (dba1db9c)
  *  update dependency jsesc to v2.5.2 (511b4edc)
  *  update dependency validator to v10.9.0 (032caafa)
  *  update dependency spdx-license-list to v5 (a639b6b8)
  *  update dependency nodebb-theme-vanilla to v10.1.8 (eb0a322d)
  *  update dependency nodebb-theme-persona to v9.0.52 (6566a0cb)
  *  update dependency nodebb-plugin-dbsearch to v2.0.22 (#6916) (7808e58c)
  *  update dependency mongodb to v3.1.9 (#6914) (9a9f2af9)
  *  update dependency nodebb-theme-persona to v9.0.51 (e2274fe0)
  *  update dependency nodebb-theme-slick to v1.2.13 (3005428d)
  *  update dependency nodebb-theme-persona to v9.0.50 (#6902) (22140a20)
  *  update dependency nodebb-plugin-markdown to v8.8.2 (0b4c9a80)
  *  update dependency nodebb-theme-vanilla to v10.1.7 (3150a2fc)
  *  update dependency nodebb-theme-slick to v1.2.12 (#6881) (9bcda7f7)
  *  update dependency nodebb-theme-persona to v9.0.49 (#6880) (e0dc00da)
  *  update dependency nodebb-theme-persona to v9.0.48 (2b6f5eec)
*  added admin/manage/uploads to tx config (7357926f)
*  #7013, add cache buster to js-enabled.css (f6b92c1d)
*  removal of scroll anchoring code in favour of browser handling (98c14e0e)
*  custom navigation item not showing groups (d9452bf3)
*  flags detail page crash if reporter blocks author (d027207f)
*  #6922, skin assets not including plugin LESS files (a5022ce4)
*  #6921, allow square brackets in usernames (da10ca08)
*  interstitial redirects failing if done via ajaxify (3c8939a8)
*  username trim on login, closes #6894 (157bea69)
* **uploads:**  ugly filenames on uploaded asset downloading (f96208a0)
* **acp:**
  *  small UI fixes for ACP privileges category selector (#6946) (57b39d5b)
  *  hard-to-discover dropdown selector in ACP (b3f96d28)
* **l10n:**  some translations (34cbd1fc)

##### Code Style Changes

* **eslint:**
  *  newlines in public/src as well (f7bd398e)
  *  enforcing newline on chained calls (95cc27f1)

