v25.13.0
26 Mar 2025
Thank you to all the contributors who made this release possible!
### Features
- **language:** add french bitoduc (@TristanMarion) ([#6400](https://github.com/monkeytypegame/monkeytype/pull/6400)) ([818e72fec](https://github.com/monkeytypegame/monkeytype/commit/818e72fecc2df2205c02ecaf90a99b4095bdc308))
- **account page:** change test activity graph starting day depending on the browser locale (@fehmer) ([#6385](https://github.com/monkeytypegame/monkeytype/pull/6385)) ([978878c18](https://github.com/monkeytypegame/monkeytype/commit/978878c180c95f5ae2b5b4ddf5888f75e3f1126e))
- **language:** add crimean tatar latin and cyrillic (@WhiteSun13) ([#6369](https://github.com/monkeytypegame/monkeytype/pull/6369)) ([821478e61](https://github.com/monkeytypegame/monkeytype/commit/821478e6176c2ad7094413dd6ccc6d13a03b8cdb))
- **language:** add bosnian (@aitchz) ([#6350](https://github.com/monkeytypegame/monkeytype/pull/6350)) ([828e6bfc9](https://github.com/monkeytypegame/monkeytype/commit/828e6bfc9e12f97b5ba452a0501c3fd692e4b930))
- **langugae:** add arabic_egypt (@byseif21) ([#6337](https://github.com/monkeytypegame/monkeytype/pull/6337)) ([785d6efef](https://github.com/monkeytypegame/monkeytype/commit/785d6efef54f29296b6ea8fb0f9ca8d0516a3b05))
- **theme:** add Phantom (@Cybertaco360) ([#6348](https://github.com/monkeytypegame/monkeytype/pull/6348)) ([f63b966e2](https://github.com/monkeytypegame/monkeytype/commit/f63b966e2c0cfd0c03ebd6526d6ceb2d5ef20037))
- **font:** add Geist and Geist Mono (@extoci) ([#6379](https://github.com/monkeytypegame/monkeytype/pull/6379)) ([fec3e316f](https://github.com/monkeytypegame/monkeytype/commit/fec3e316ffe9c57ee57c38a8504734ac4d7fffa1))
- **layout:** add Sword (@5quiwyrm) ([#6366](https://github.com/monkeytypegame/monkeytype/pull/6366)) ([8fa99d87d](https://github.com/monkeytypegame/monkeytype/commit/8fa99d87d05c90a5ed349fe9ff4dde150c7c09a6))
- **layout:** add Ergopti (@adrienm7) ([#6352](https://github.com/monkeytypegame/monkeytype/pull/6352)) ([220f2b8cb](https://github.com/monkeytypegame/monkeytype/commit/220f2b8cb79d5ec3963a784051426a52b27de0d0))
### Improvements
- update maintenance/server down message based on instatus api ([bf7f2ccfa](https://github.com/monkeytypegame/monkeytype/commit/bf7f2ccfa8d0a8041b96175ccdab0e12e1318f6c))
- **result page:** clicking on daily leaderboard rank opens the leaderboards page the user is on (@fehmer) ([#6380](https://github.com/monkeytypegame/monkeytype/pull/6380)) ([cef3ff57c](https://github.com/monkeytypegame/monkeytype/commit/cef3ff57c72678d927d8411b592f49cbd965151f))
- **language:** add more keywords and chars to code_pascal (@fau) ([#6341](https://github.com/monkeytypegame/monkeytype/pull/6341)) ([ee665c200](https://github.com/monkeytypegame/monkeytype/commit/ee665c200b04fc9d12bb2123ed2b9f1283d875dd))
- notify the user if custom text saving failed due to local storage being full ([c8a04fa8e](https://github.com/monkeytypegame/monkeytype/commit/c8a04fa8e43ffcc90b3e12b139fb70dff19d9c71))
- **leaderboard:** show typing speed in selected unit (@fehmer) ([#6328](https://github.com/monkeytypegame/monkeytype/pull/6328)) ([02c48fc50](https://github.com/monkeytypegame/monkeytype/commit/02c48fc50d2a7837b612b1231568af76b90b985b))
- leaderboard showing times in utc and local time (@fehmer) ([#6332](https://github.com/monkeytypegame/monkeytype/pull/6332)) ([8193569a0](https://github.com/monkeytypegame/monkeytype/commit/8193569a01e3e09c7b8f6796896f80277b311b04))
- **quotes:** add quotes in various languages (@SoulPancake, @CedricBaaklini, @HotDog640) ([#6365](https://github.com/monkeytypegame/monkeytype/pull/6365), [#6360](https://github.com/monkeytypegame/monkeytype/pull/6360), [#6331](https://github.com/monkeytypegame/monkeytype/pull/6331)) ([5ba8f007e](https://github.com/monkeytypegame/monkeytype/commit/5ba8f007e25db4221fcffe49144a6606becbd799), [66ea0294e](https://github.com/monkeytypegame/monkeytype/commit/66ea0294e32389d6c610cc547371220031574ac3), [b52391ec7](https://github.com/monkeytypegame/monkeytype/commit/b52391ec7b7f54ec5bff83885f5188a7d23f0b11))
### Fixes
- quote length ([80a2492a0](https://github.com/monkeytypegame/monkeytype/commit/80a2492a068e54269834a6454986d785257507ab))
- **language:** remove rustlang "box" keyword (@Huterenok) ([#6397](https://github.com/monkeytypegame/monkeytype/pull/6397)) ([ad5c07767](https://github.com/monkeytypegame/monkeytype/commit/ad5c0776793b17ab7b547f9162ff0cf42821fdcb))
- **language:** fixed Marathi not showing up in the language list (@agokule) ([#6395](https://github.com/monkeytypegame/monkeytype/pull/6395)) ([fc1602b1e](https://github.com/monkeytypegame/monkeytype/commit/fc1602b1efd4312b83d5e461769d0153a6111b9d))
- sign up only working on the second attempt ([313897d0d](https://github.com/monkeytypegame/monkeytype/commit/313897d0d1c052655879ba345729f7ef5999df40))
- **theme:** adjust error colors in ms cupcakes theme ([a3bd06950](https://github.com/monkeytypegame/monkeytype/commit/a3bd06950ba08702b4a8efde078d083ef67348d8))
- scroll to top button remaining visible on the test page ([f84f8508c](https://github.com/monkeytypegame/monkeytype/commit/f84f8508ca658bb640d4f0df79b87ba4e6cfa6f9))
- validation errors when switching leaderboard modes ([334abc293](https://github.com/monkeytypegame/monkeytype/commit/334abc293309b458412e6d535397b8c9d76c10e3))
- errors when applying result filter presets ([518049e00](https://github.com/monkeytypegame/monkeytype/commit/518049e00de3408a595a72705282e4ede0aa535c))
- **commandline:** blur active element after closing the modal to hide balloons ([25dada50e](https://github.com/monkeytypegame/monkeytype/commit/25dada50ebdbd83b2c4e2afd9b09fe7c4b9427a9))
- **leaderboards:** user button navigating to the wrong page (@fehmer) ([#6334](https://github.com/monkeytypegame/monkeytype/pull/6334)) ([aaa519bc8](https://github.com/monkeytypegame/monkeytype/commit/aaa519bc8d6438f5ede8f17676d985faca7fb6de))
- **leaderboards:** bottom go to page button not working ([e4baedee0](https://github.com/monkeytypegame/monkeytype/commit/e4baedee097e1a8dc63fa0a1115f9f974ccdac66))
- **leaderboards:** user button navigating to the wrong page ([853605af2](https://github.com/monkeytypegame/monkeytype/commit/853605af24ee98064d97aa2cfed08aaa21109876))
- **quotes:** update or remove quotes reported by users ([97224ea9b](https://github.com/monkeytypegame/monkeytype/commit/97224ea9b286331ead349a8710b36a8dc2fb87c3))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** add alias to command ([0c1b3509e](https://github.com/monkeytypegame/monkeytype/commit/0c1b3509e12d3efa67139ffa4b5401d75f86e5bb))
- **impr:** cache leaderboard collection size to improve performance ([4bfe6c9bf](https://github.com/monkeytypegame/monkeytype/commit/4bfe6c9bf7559ab624fbe7bdf3b3562dcd5bea3f))
- **impr:** parse username locally before querying the server ([7f4cf7614](https://github.com/monkeytypegame/monkeytype/commit/7f4cf76141924d7ccdc5259ea6a5ac26caf5e6c5))
- **impr:** error handling on user deletion (@fehmer) ([#6363](https://github.com/monkeytypegame/monkeytype/pull/6363)) ([e647d875f](https://github.com/monkeytypegame/monkeytype/commit/e647d875f01a1dfe0dfefedaa2b21292840e73f9))
- **impr(server):** better leaderboard request validation schema ([420d049a5](https://github.com/monkeytypegame/monkeytype/commit/420d049a59561b664d816a39e7606071526cda38))
- **impr:** use zod schema for url parameters on leaderboard (@fehmer) ([#6305](https://github.com/monkeytypegame/monkeytype/pull/6305)) ([7747db8d8](https://github.com/monkeytypegame/monkeytype/commit/7747db8d84bed5b576759b247be6be58adf696f3))
- **fix:** local development using docker not working with pnpm (@fehmer) ([#6401](https://github.com/monkeytypegame/monkeytype/pull/6401)) ([b1d75fb07](https://github.com/monkeytypegame/monkeytype/commit/b1d75fb0776641888cf1577853ff3b37455ab3d5))
- **fix(daily leaderboard):** schema issues when switching languages ([0833e1efc](https://github.com/monkeytypegame/monkeytype/commit/0833e1efc7aff5a747c6047dd2094c27c7517af1))
- **fix:** protect against stored xss in custom background url (@fehmer) ([#6355](https://github.com/monkeytypegame/monkeytype/pull/6355)) ([9e3f79538](https://github.com/monkeytypegame/monkeytype/commit/9e3f795380df50688400de91c5914507723c2d29))
- **fix:** handle firebase rate limit when requesting email verification ([bd7f06be9](https://github.com/monkeytypegame/monkeytype/commit/bd7f06be9a675b6463a5f8b0d11647e58ba2ea54))
- **fix:** default snapshot and config not actually cloning (@miodec) ([#6333](https://github.com/monkeytypegame/monkeytype/pull/6333)) ([b84f40011](https://github.com/monkeytypegame/monkeytype/commit/b84f400113de6978dd32c7e6fe3010e8309bc944))
- **docs:** add orderedByFrequency to the language adding guide ([daa366884](https://github.com/monkeytypegame/monkeytype/commit/daa3668848afc957ee3cbcc24d7d8da0eb77a40d))
- **ci:** use full_name instead ([a94a6db75](https://github.com/monkeytypegame/monkeytype/commit/a94a6db75a401b37aa01e87c0bbbe97a1ee63fd0))
- **ci:** pretty fix fix attempt ([44955bf75](https://github.com/monkeytypegame/monkeytype/commit/44955bf750b55031e1db85feefa4eef7ba5aaace))
- **ci:** fix prettier workflow (@fehmer) ([#6371](https://github.com/monkeytypegame/monkeytype/pull/6371)) ([b7c4166ab](https://github.com/monkeytypegame/monkeytype/commit/b7c4166ab6e15c37de648817b1ff785191ec6bf1))
- **build(deps-dev):** bump vite from 6.0.11 to 6.0.12 in /frontend ([#6405](https://github.com/monkeytypegame/monkeytype/pull/6405)) ([5002075db](https://github.com/monkeytypegame/monkeytype/commit/5002075dbd55b2e6030547dd180ae399488da300))
- **build:** fix openapi spec path for docs & stats endpoints on dev (@NadAlaba) ([#6343](https://github.com/monkeytypegame/monkeytype/pull/6343)) ([932d0e166](https://github.com/monkeytypegame/monkeytype/commit/932d0e166ec99d805c3a6bffdd6f14e718cdecad))
- **chore:** trim branch string ([b9916b8b8](https://github.com/monkeytypegame/monkeytype/commit/b9916b8b8d56ac149c84552254f3534f75a6a8dc))
- **chore:** minify json files (@fehmer) ([#6404](https://github.com/monkeytypegame/monkeytype/pull/6404)) ([d181406e3](https://github.com/monkeytypegame/monkeytype/commit/d181406e3186f0fcea9c94d51d651f76074135ff))
- **chore:** remove logs, cache is fine ([d56713005](https://github.com/monkeytypegame/monkeytype/commit/d56713005391337f100eab49f537f5c8557cd010))
- **chore:** ugly console log to check if the cache is working for sure ([33977b71e](https://github.com/monkeytypegame/monkeytype/commit/33977b71e652135fa13badadfba79402d2e9ee71))
- **chore(workflows):** use correct name of action input (@NadAlaba) ([#6378](https://github.com/monkeytypegame/monkeytype/pull/6378)) ([6686834ee](https://github.com/monkeytypegame/monkeytype/commit/6686834eeb3a1615d3c43fcf4b6db0a544bd5edf))
- **chore(workflows):** use specific version of add-remove-label-action (@NadAlaba) ([#6368](https://github.com/monkeytypegame/monkeytype/pull/6368)) ([2e1c7eb96](https://github.com/monkeytypegame/monkeytype/commit/2e1c7eb967058f310bddc7c339d500b314c1f641))
- **chore:** update error message ([880dfb344](https://github.com/monkeytypegame/monkeytype/commit/880dfb34420c5aba2bd77b9682ebd4296f9fce89))
- **chore(workflows):** update deprecated action and remove duplicate workflow message (@NadAlaba) ([#6344](https://github.com/monkeytypegame/monkeytype/pull/6344)) ([195b9d840](https://github.com/monkeytypegame/monkeytype/commit/195b9d840206a3fde5eebf7a30f8f2518b168951))
- **chore:** fix version in docker publish workflow (@fehmer) ([#6339](https://github.com/monkeytypegame/monkeytype/pull/6339)) ([572de8a24](https://github.com/monkeytypegame/monkeytype/commit/572de8a2472f31012f889c92b5911ee3230ef043))
- **chore:** update mongodb version to 5.0.13 (@fehmer) ([#6364](https://github.com/monkeytypegame/monkeytype/pull/6364)) ([4d4de260d](https://github.com/monkeytypegame/monkeytype/commit/4d4de260d9d21336ad9294c691deb49173c50689))
- **chore:** fix test ([9bbcf40f4](https://github.com/monkeytypegame/monkeytype/commit/9bbcf40f455f2f241eff5ca4d6f6eacffe60dad4))
- **chore:** temporary object log to track down an error ([71b5f2875](https://github.com/monkeytypegame/monkeytype/commit/71b5f2875fa2338a4aa3d295e1b9c7f4507d5919))
- **chore:** update error messages ([f5f445362](https://github.com/monkeytypegame/monkeytype/commit/f5f4453624ced1329f30db64af24903fb6d06ca7))
- **chore:** lowercase word ([b9928f03c](https://github.com/monkeytypegame/monkeytype/commit/b9928f03c0b593321705d5e9dc5bb60c419bdc18))
- **chore:** add branch check in release script (@fehmer) ([#6338](https://github.com/monkeytypegame/monkeytype/pull/6338)) ([9e13f2452](https://github.com/monkeytypegame/monkeytype/commit/9e13f2452ad72719a61329774521e9654dd83768))
- **chore:** reorder code ([61e0fd159](https://github.com/monkeytypegame/monkeytype/commit/61e0fd1590df2b7788e57104df41ad11eabb64cd))
v25.10.0
04 Mar 2025
Thank you to all the contributors who made this release possible!
### Features
- **languages:** add Kabyle 200, 1k, 2k, 5k, 10k (@BoFFire) ([#6325](https://github.com/monkeytypegame/monkeytype/pull/6325)) ([1b5529cca](https://github.com/monkeytypegame/monkeytype/commit/1b5529ccaa59eb4c7b0740950bae1846c80db9aa))
- **language:** add Thai 20k (@jnx03) ([#6324](https://github.com/monkeytypegame/monkeytype/pull/6324)) ([366f62ac8](https://github.com/monkeytypegame/monkeytype/commit/366f62ac88baaaf3c04b1852cc2229215ebd8fba))
- **theme:** add solarized osaka (@H4-MM-3R) ([#6287](https://github.com/monkeytypegame/monkeytype/pull/6287)) ([94a320eb2](https://github.com/monkeytypegame/monkeytype/commit/94a320eb26ad3e3288a2a3b72088cca5c7650c14))
- **language:** add code_jule (@adamperkowski) ([#6282](https://github.com/monkeytypegame/monkeytype/pull/6282)) ([6b8236516](https://github.com/monkeytypegame/monkeytype/commit/6b8236516f07f4d701debc3c78bd355fb936f505))
- leaderboard scroll to users position when using the user button (@fehmer) ([#6285](https://github.com/monkeytypegame/monkeytype/pull/6285)) ([0b840d2b6](https://github.com/monkeytypegame/monkeytype/commit/0b840d2b6b403703c7be194e121766b2004f0540))
### Improvements
- **quotes:** Add Chinese Quotes (@YuxOfficial) ([#6245](https://github.com/monkeytypegame/monkeytype/pull/6245)) ([60cee0cd4](https://github.com/monkeytypegame/monkeytype/commit/60cee0cd4c33b32c16ad407dc559409e4e6ffb28))
- **language:** add more vim commands to the word list (@soycarlo99) ([#6330](https://github.com/monkeytypegame/monkeytype/pull/6330)) ([823e9e068](https://github.com/monkeytypegame/monkeytype/commit/823e9e06853c1ca8078c219ae2b72739a9c010f6))
- validate tag name on tag creation and rename (@fehmer) ([#6264](https://github.com/monkeytypegame/monkeytype/pull/6264)) ([95967ef4f](https://github.com/monkeytypegame/monkeytype/commit/95967ef4f123b079f917784d23338c9a5ce2b0c4))
- remember last opened leaderboard in local storage (@fehmer) ([#6304](https://github.com/monkeytypegame/monkeytype/pull/6304)) ([5acdc6d36](https://github.com/monkeytypegame/monkeytype/commit/5acdc6d364f5b0b45b59b6887f88ec74f85d17a1))
- make leaderboard requests in parallel ([c0d254d2d](https://github.com/monkeytypegame/monkeytype/commit/c0d254d2daff2e5c0292113fe817500efda2598f))
### Fixes
- legacy test settings urls not importing correctly (@fehmer) ([#6314](https://github.com/monkeytypegame/monkeytype/pull/6314)) ([4a22c0647](https://github.com/monkeytypegame/monkeytype/commit/4a22c0647b99c00070601f841876c13c2eec7e90))
- Remove invalid words from Greek lang (@sledgehammer999) ([#6300](https://github.com/monkeytypegame/monkeytype/pull/6300)) ([3a5b3783f](https://github.com/monkeytypegame/monkeytype/commit/3a5b3783f25a6614ab1b001c47d83ee2b39a9ae3))
- **challenge:** Slow and Steady Challenge not verifying correctly (@AnnaBuchholz) ([#6319](https://github.com/monkeytypegame/monkeytype/pull/6319)) ([12ab49ce2](https://github.com/monkeytypegame/monkeytype/commit/12ab49ce21864734e3646739049e08fe673314fe))
- **account page:** tidy up highest wpm description (@cosmatevs) ([#6329](https://github.com/monkeytypegame/monkeytype/pull/6329)) ([b375636c9](https://github.com/monkeytypegame/monkeytype/commit/b375636c9950e47dbab186fcf6c13d3fed9ee384))
- **result page:** clicking on daily leaderboard rank not navigating to the leaderboards page ([04797b281](https://github.com/monkeytypegame/monkeytype/commit/04797b281f3c96ca9ef13fbabccd8f13072adab6))
- **docker:** fix configuration endpoint, add configuration export (@fehmer) ([#6317](https://github.com/monkeytypegame/monkeytype/pull/6317)) ([642c03abd](https://github.com/monkeytypegame/monkeytype/commit/642c03abdcdd1c6f88c66238e788b7d1920086ab))
- remove deprecated galite layout (@almk-dev) ([#6302](https://github.com/monkeytypegame/monkeytype/pull/6302)) ([566ec0416](https://github.com/monkeytypegame/monkeytype/commit/566ec04162d58d8b4ece5f5c5d2770e22420256e))
- view leaderboards command not working (@iwmywn) ([#6301](https://github.com/monkeytypegame/monkeytype/pull/6301)) ([39a235abe](https://github.com/monkeytypegame/monkeytype/commit/39a235abe589a0dd774bf68fb5fc56ff3b39620d))
- rounding issues causing daily leaderboard to be out of order sometimes (@fehmer) ([#6303](https://github.com/monkeytypegame/monkeytype/pull/6303)) ([7be66e9cb](https://github.com/monkeytypegame/monkeytype/commit/7be66e9cb371bb5c656b20d08acd05e4b0e738df))
- **punctuation:** Add period instead of semicolon for Greek lang (@sledgehammer999) ([#6299](https://github.com/monkeytypegame/monkeytype/pull/6299)) ([73182d450](https://github.com/monkeytypegame/monkeytype/commit/73182d450fb653703b0cbed6b2af9a1bf8d80d7b))
- daily leaderboards not showing current rank ([1bb15af19](https://github.com/monkeytypegame/monkeytype/commit/1bb15af1904a77d68d24a87bf9c5d8a5a6306ddc))
- remove seldomly used punctuation mark from Greek lang (@sledgehammer999) ([#6297](https://github.com/monkeytypegame/monkeytype/pull/6297)) ([d363cb393](https://github.com/monkeytypegame/monkeytype/commit/d363cb39331611f12460d3b2d8f99255a5619c06))
- daily leaderboard worker not giving XP to users (@fehmer) ([#6292](https://github.com/monkeytypegame/monkeytype/pull/6292)) ([598e167f9](https://github.com/monkeytypegame/monkeytype/commit/598e167f9b2983ef83a6921034f42555ba43b44a))
- remove user from XP leaderboard if opt-out, reset or deleted (@fehmer) ([#6290](https://github.com/monkeytypegame/monkeytype/pull/6290)) ([8bc23b7c3](https://github.com/monkeytypegame/monkeytype/commit/8bc23b7c3d430990226d3128253718e1cf1f576d))
- leaderboard keeping pagination after switching language (@fehmer) ([#6291](https://github.com/monkeytypegame/monkeytype/pull/6291)) ([0dd044baa](https://github.com/monkeytypegame/monkeytype/commit/0dd044baaed2bb01177bb81e1567b5fe04c98c9b))
- past leaderboard not fetching the users rank (@fehmer) ([#6289](https://github.com/monkeytypegame/monkeytype/pull/6289)) ([8a41ccee9](https://github.com/monkeytypegame/monkeytype/commit/8a41ccee970edfbed34013cd3eb522c1d5ad346f))
- remove function getFunctionsFromActiveFunboxes because it does not work (@fehmer) ([#6288](https://github.com/monkeytypegame/monkeytype/pull/6288)) ([7edbd95e9](https://github.com/monkeytypegame/monkeytype/commit/7edbd95e9ea12a8bcb9e51af7b9c4ec00c52f8a5))
- nospace being active for all tests ([9f677f332](https://github.com/monkeytypegame/monkeytype/commit/9f677f332459af6b54b3b77d85a7c881b498e60a))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** log failed worker queue jobs (@fehmer) ([#6295](https://github.com/monkeytypegame/monkeytype/pull/6295)) ([05271d694](https://github.com/monkeytypegame/monkeytype/commit/05271d69465c493b636f418e978129c3ea89dc9e))
- **fix:** errors not being logged into the database (@fehmer) ([#6323](https://github.com/monkeytypegame/monkeytype/pull/6323)) ([50f6bd418](https://github.com/monkeytypegame/monkeytype/commit/50f6bd418c21346f355f473707f0963d341e6ca2))
- **refactor:** use bearer auth instead of uid auth for tests (@fehmer) ([#6318](https://github.com/monkeytypegame/monkeytype/pull/6318)) ([660d856f9](https://github.com/monkeytypegame/monkeytype/commit/660d856f9617c36784f3b13e5d430206c690123c))
- **ci:** anticheat shouldnt block ci if force ci labels are present ([7d7118f74](https://github.com/monkeytypegame/monkeytype/commit/7d7118f7443c2045fee0c0f42e1461a213d1d70e))
- **test:** fix tests not awaiting expect with resolves or rejects (@fehmer) ([#6308](https://github.com/monkeytypegame/monkeytype/pull/6308)) ([41b02155f](https://github.com/monkeytypegame/monkeytype/commit/41b02155f251e6525b9936c2ddb26b93fb7e6606))
- **build:** use tsup instead of esbuild for packages (@fehmer) ([#6309](https://github.com/monkeytypegame/monkeytype/pull/6309)) ([2b2d1a153](https://github.com/monkeytypegame/monkeytype/commit/2b2d1a153ea6e2d1d757bfefc5ad7c87fd7f912e))
- **chore(self hosting):** run selfhosted backend in prod mode (@fehmer) ([#6326](https://github.com/monkeytypegame/monkeytype/pull/6326)) ([f80dde4c8](https://github.com/monkeytypegame/monkeytype/commit/f80dde4c89ecc863391b765ed44220d8b07aad18))
- **chore:** typo in backend Dockerfile comment (@mihail-8480) ([#6315](https://github.com/monkeytypegame/monkeytype/pull/6315)) ([ff2b354bb](https://github.com/monkeytypegame/monkeytype/commit/ff2b354bb3390095f08bb41867e2ee75cf5a9632))
- **chore:** move vscode extension recommendations to workspace file (@fehmer) ([#6310](https://github.com/monkeytypegame/monkeytype/pull/6310)) ([41ee26a72](https://github.com/monkeytypegame/monkeytype/commit/41ee26a725cf309a0c26dc38c4bea4d8afc3c9db))
- **chore:** add data-nosnipppet to warnings ([4aec38484](https://github.com/monkeytypegame/monkeytype/commit/4aec3848423b0124c408fb8d669c6302c24b8539))
- **chore:** forward the exit code returned by the ssh command ([7b80bf80a](https://github.com/monkeytypegame/monkeytype/commit/7b80bf80a9156cbdd7c3ab710b7c45845cb90322))
- **chore:** update version string format ([ba940232a](https://github.com/monkeytypegame/monkeytype/commit/ba940232a0a21c191e2f983de5ca357684589d34))
v25.8.0
20 Feb 2025
Thank you to all the contributors who made this release possible!
### Features
- **layout:** add galite (@almk-dev) ([#6273](https://github.com/monkeytypegame/monkeytype/pull/6273)) ([6920f9d7d](https://github.com/monkeytypegame/monkeytype/commit/6920f9d7d430e1f787b9826f16cdb46a695f4424))
- leaderboards remake, weekly xp leaderboards (@miodec) ([#6250](https://github.com/monkeytypegame/monkeytype/pull/6250)) ([01dee3fe1](https://github.com/monkeytypegame/monkeytype/commit/01dee3fe159275de7b9acbe3be9c0ad88a5d0327))
- **layout:** colemak_wide keyboard layout (@papersacculos) ([#6260](https://github.com/monkeytypegame/monkeytype/pull/6260)) ([4ce62db84](https://github.com/monkeytypegame/monkeytype/commit/4ce62db8402264d08fb070c41c463e479749f402))
- **layout:** add panini, panini wide (@flarefin) ([#6247](https://github.com/monkeytypegame/monkeytype/pull/6247)) ([365e9bb30](https://github.com/monkeytypegame/monkeytype/commit/365e9bb305ae9bcfe1fae28be7d0ecc0a9d024f0))
- **language:** add bulgarian latin (@ShinniUwU) ([#6226](https://github.com/monkeytypegame/monkeytype/pull/6226)) ([d8ca4161d](https://github.com/monkeytypegame/monkeytype/commit/d8ca4161dd3dcf9391bc777153c1f0a98eeac21e))
### Improvements
- **quote:** add quotes in various languages (@thedev0ps, @Dmskrzh, @WormholeDragon, @pipinthedev, @enfantsauvage95, @a5tw) ([#6271](https://github.com/monkeytypegame/monkeytype/pull/6271), [#6276](https://github.com/monkeytypegame/monkeytype/pull/6276), [#6278](https://github.com/monkeytypegame/monkeytype/pull/6278), [#6224](https://github.com/monkeytypegame/monkeytype/pull/6224), [#6253](https://github.com/monkeytypegame/monkeytype/pull/6253), [#6231](https://github.com/monkeytypegame/monkeytype/pull/6231)) ([14d423e08](https://github.com/monkeytypegame/monkeytype/commit/14d423e088d77a7f2f120b46df5ee1241e9e456a), [ba7bf22d0](https://github.com/monkeytypegame/monkeytype/commit/ba7bf22d09c98436fdc1a09149b3bd9d2badaab1), [9ff723ba9](https://github.com/monkeytypegame/monkeytype/commit/9ff723ba9f173dddfe71e0f20dce7bfc83a71eec), [02de52558](https://github.com/monkeytypegame/monkeytype/commit/02de52558e5cba622091fcd8b65f92fd40cae884), [46374198e](https://github.com/monkeytypegame/monkeytype/commit/46374198e39e15ce8a88a87675ce38e43c531101), [2da2a673c](https://github.com/monkeytypegame/monkeytype/commit/2da2a673cc386a1d7d45e8329df72d9246027322))
### Fixes
- **language:** spelling and translation errors for Frisian (@M3R14M) ([#6263](https://github.com/monkeytypegame/monkeytype/pull/6263)) ([2c8fec3f8](https://github.com/monkeytypegame/monkeytype/commit/2c8fec3f8396a0291087ea8005bac6b8c44646b2))
- **font:** CommitMono not working (@fehmer) ([#6252](https://github.com/monkeytypegame/monkeytype/pull/6252)) ([62a152410](https://github.com/monkeytypegame/monkeytype/commit/62a15241044697fb1671efc7379ea3c622c7a210))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** use preload for vendor.css and fonts (@fehmer) ([#6234](https://github.com/monkeytypegame/monkeytype/pull/6234)) ([cad977ec8](https://github.com/monkeytypegame/monkeytype/commit/cad977ec89e9f4fc4cb337a4e9b5a8559bb08e85))
- **impr:** make uncaught error notifications important on dev ([31529a3b2](https://github.com/monkeytypegame/monkeytype/commit/31529a3b2b36096d2744a6cc74819f3caa40998b))
- **impr:** add X-Compatibility-Check header to all responses (@fehmer) ([#6262](https://github.com/monkeytypegame/monkeytype/pull/6262)) ([e7685c586](https://github.com/monkeytypegame/monkeytype/commit/e7685c5861f82cef302a5eb6f9e5b9a801215982))
- **fix:** trim new email when updating email ([535700f0c](https://github.com/monkeytypegame/monkeytype/commit/535700f0c5861171bb4bad5538c8f699f154ca3f))
- **fix:** update csp entries for redocly (@fehmer) ([#6265](https://github.com/monkeytypegame/monkeytype/pull/6265)) ([fd6bf18a4](https://github.com/monkeytypegame/monkeytype/commit/fd6bf18a4cc66dacff1f4cb83fbe0066e594d4c0))
- **refactor:** refactor british english (@fehmer) ([#6277](https://github.com/monkeytypegame/monkeytype/pull/6277)) ([f7190a5ea](https://github.com/monkeytypegame/monkeytype/commit/f7190a5eae3739377bdad634e53d5f25877f52cd))
- **refactor:** use validation on email update modal (@fehmer) ([#6272](https://github.com/monkeytypegame/monkeytype/pull/6272)) ([09eb1a2b0](https://github.com/monkeytypegame/monkeytype/commit/09eb1a2b0e61826f43d2912445740c15d82abcb0))
- **refactor:** refactor iteration over funboxes (@fehmer) ([#6275](https://github.com/monkeytypegame/monkeytype/pull/6275)) ([8c20b6c4f](https://github.com/monkeytypegame/monkeytype/commit/8c20b6c4f1f0ab96109793f49bd947fe4a76f652))
- **refactor:** refactor iteration over funboxes (@fehmer) ([#6275](https://github.com/monkeytypegame/monkeytype/pull/6275)) ([ef5263d64](https://github.com/monkeytypegame/monkeytype/commit/ef5263d64605ab9a019e4586ce9c4a56dee5dc37))
- **refactor:** make some input and corrected props private ([8c7ee8bc2](https://github.com/monkeytypegame/monkeytype/commit/8c7ee8bc2687ff6566481057380f2f5ab9b08982))
- **refactor:** move active word state to test-state ([a0a09cc14](https://github.com/monkeytypegame/monkeytype/commit/a0a09cc14152fbd38c302054a2958a11c6d8a3f1))
- **refactor:** use tsRestFetchApi in ts-rest-adapter (@fehmer) ([#6259](https://github.com/monkeytypegame/monkeytype/pull/6259)) ([4102e4cc2](https://github.com/monkeytypegame/monkeytype/commit/4102e4cc24d537dd6eb0937b54e189ae299b87c0))
- **refactor:** better detection of ZodError (@fehmer) ([#6258](https://github.com/monkeytypegame/monkeytype/pull/6258)) ([a2d91f2a7](https://github.com/monkeytypegame/monkeytype/commit/a2d91f2a73a0e8f4687c53ddc793dcab783ba78a))
- **chore:** hopefully fix seo issues ([2ed8341eb](https://github.com/monkeytypegame/monkeytype/commit/2ed8341eb5972d45979d09cca3778298618e1d85))
- **chore(deps-dev):** bump esbuild from 0.23.0 to 0.25.0 in /packages/esbuild-config ([#6256](https://github.com/monkeytypegame/monkeytype/pull/6256)) ([b734f71cd](https://github.com/monkeytypegame/monkeytype/commit/b734f71cd213a03d1d619550e77b65a25d0734a1))
- **chore:** add captcha to the forgot password modal ([a0c471a28](https://github.com/monkeytypegame/monkeytype/commit/a0c471a28eb9d26f651f148c7140d1354e885955))
- **chore:** update @redocly/cli (@fehmer) ([#6255](https://github.com/monkeytypegame/monkeytype/pull/6255)) ([60f664117](https://github.com/monkeytypegame/monkeytype/commit/60f664117f3fc2c78b361a87317a89e336faf10f))
- **chore(deps-dev):** bump vitest from 2.0.5 to 2.1.9 ([#6242](https://github.com/monkeytypegame/monkeytype/pull/6242)) ([ae9c3ca00](https://github.com/monkeytypegame/monkeytype/commit/ae9c3ca00392dc4fd8871562b3a288b0e65d101f))
v25.7.0
08 Feb 2025
Thank you to all the contributors who made this release possible!
### Improvements
- **saved custom texts:** add message to remind user that custom texts are only stored locally ([badfb07ae](https://github.com/monkeytypegame/monkeytype/commit/badfb07ae835e3c182aba6d400674d75d125db34))
- allow multiple funboxes with css (@notTamion, @miodec, @fehmer) ([#6017](https://github.com/monkeytypegame/monkeytype/pull/6017)) ([a4b7c00ef](https://github.com/monkeytypegame/monkeytype/commit/a4b7c00ef97beaf0eeef4e0841d212c27512aaa8))
This allows for some absolutely nasty combinations (like nausea mirror choo choo) - play around with it to see what combinations you can come up with!
### Fixes
- result submit error if a test was repeated before submitting ([3af1f66df](https://github.com/monkeytypegame/monkeytype/commit/3af1f66dfb2d5c1c356cd92ef32eb2be2994fb56))
- fix error handling in parseWithSchema (@fehmer) ([#6229](https://github.com/monkeytypegame/monkeytype/pull/6229)) ([12e150072](https://github.com/monkeytypegame/monkeytype/commit/12e150072b87e906053a037b33b5e9803c9796f3))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **style(dark note theme):** fix roundness variable affecting account menu (@WarningImHack3r) ([#6238](https://github.com/monkeytypegame/monkeytype/pull/6238)) ([a3bbf218f](https://github.com/monkeytypegame/monkeytype/commit/a3bbf218f42ccb1297763e2d1a1404a72a4d5564))
- **style(settings):** rework section links to follow website style ([f7df16ac8](https://github.com/monkeytypegame/monkeytype/commit/f7df16ac8e0efaa364af29562d9ba18fbecb66eb))
- **refactor:** move normalize and fontawesome to vendor.css (@fehmer) ([#6233](https://github.com/monkeytypegame/monkeytype/pull/6233)) ([a4b6c17cd](https://github.com/monkeytypegame/monkeytype/commit/a4b6c17cd0146c837514393bbad76868fddcb1d8))
- **refactor:** update setting automaticallyOpenTestResults in workspace file (@fehmer) ([#6232](https://github.com/monkeytypegame/monkeytype/pull/6232)) ([3719ac049](https://github.com/monkeytypegame/monkeytype/commit/3719ac0496cb7bbf6d41dd5bcb02f44a052088e1))
- **chore:** shorter description to hopefully fix google description ([935602a85](https://github.com/monkeytypegame/monkeytype/commit/935602a859414e6624a2775ffa7ab19d460d47c5))
- **chore:** hopefully stop google from putting the test words into website description ([3d36b6aa7](https://github.com/monkeytypegame/monkeytype/commit/3d36b6aa7ac999b457ecad1cff81b91cb6af83ec))
v25.6.0
03 Feb 2025
Thank you to all the contributors who made this release possible!
### Features
- **layout:** add focal (@rbscholtus) ([#6196](https://github.com/monkeytypegame/monkeytype/pull/6196)) ([845babd2a](https://github.com/monkeytypegame/monkeytype/commit/845babd2a3d6a74145c162837927705129401b88))
- **theme:** add github (@KevinRnbrg) ([#6193](https://github.com/monkeytypegame/monkeytype/pull/6193)) ([c36952af3](https://github.com/monkeytypegame/monkeytype/commit/c36952af37ed5a71921d71a37b99d44e446b0abc))
- **language:** add nepali romanized (@anuzpandey) ([#6182](https://github.com/monkeytypegame/monkeytype/pull/6182)) ([70e42c773](https://github.com/monkeytypegame/monkeytype/commit/70e42c773c55f0421ff8f986fe80ae87c5c05bd5))
- **language:** add zulu (@aitchz) ([#6180](https://github.com/monkeytypegame/monkeytype/pull/6180)) ([f06c86005](https://github.com/monkeytypegame/monkeytype/commit/f06c86005310e0f848c6e3a4c2a64542dc6c9b1c))
### Improvements
- **language:** remove word from english 10k (@stop-png) ([#6215](https://github.com/monkeytypegame/monkeytype/pull/6215)) ([99fd3d722](https://github.com/monkeytypegame/monkeytype/commit/99fd3d722bda56fcab6ac0aa1e273874c121845a))
- **quote:** add quotes in various languages (@freshleaf1095, @potsaweSe, @zev18) ([#6227](https://github.com/monkeytypegame/monkeytype/pull/6227), [#6191](https://github.com/monkeytypegame/monkeytype/pull/6191), [#6188](https://github.com/monkeytypegame/monkeytype/pull/6188)) ([e56b866c8](https://github.com/monkeytypegame/monkeytype/commit/e56b866c84c17f1bfef4acb9b6b0350141df377b), [649f9d2dd](https://github.com/monkeytypegame/monkeytype/commit/649f9d2dd453dca7eee2d7f56ce0b4075f2a60ce), [0b33e0589](https://github.com/monkeytypegame/monkeytype/commit/0b33e05890d9f281075d2c6ce58e99912ce79b09), [812e9e734](https://github.com/monkeytypegame/monkeytype/commit/812e9e73488321bff61e1aad709f32c6aacff3b8))
### Fixes
- **language:** moved british spellings to britishenglish file (@AnnaBuchholz) ([#6208](https://github.com/monkeytypegame/monkeytype/pull/6208)) ([28fcf1ab4](https://github.com/monkeytypegame/monkeytype/commit/28fcf1ab4f49157e9f03b12ae644e295f4de3ca4))
- **result:** mobile tooltip alignment (@HariramakrishnanK) ([#6205](https://github.com/monkeytypegame/monkeytype/pull/6205)) ([86cb17be8](https://github.com/monkeytypegame/monkeytype/commit/86cb17be8263bf33dd7185542272af7ba7a6290a))
- **profile:** incorrect instruction on how to set streak hour offset (@wclxb) ([#6190](https://github.com/monkeytypegame/monkeytype/pull/6190)) ([4dfd10a03](https://github.com/monkeytypegame/monkeytype/commit/4dfd10a035432cf2984a447e46494459ae76368c))
- remove inappropriate words from english25k (@dag330) ([#6189](https://github.com/monkeytypegame/monkeytype/pull/6189)) ([73be759b5](https://github.com/monkeytypegame/monkeytype/commit/73be759b55614192582d4ba75484f5d79904b3a0))
- email schema mismatch between frontend and backend ([3ce9e6341](https://github.com/monkeytypegame/monkeytype/commit/3ce9e63410c78bcedbe32e26af8e5c8e3f08f906))
- dont award discord roles if user opted out of leaderboards ([93a744b4e](https://github.com/monkeytypegame/monkeytype/commit/93a744b4eed11f6fe29be5dcf6e70b0a9f2db1be))
- only send ban event to the bot if the user was actually banned ([219b41302](https://github.com/monkeytypegame/monkeytype/commit/219b41302e60e3e2d70a928e09bc9f93704c1952))
- auto ban event not sending a task to the discord bot ([2000cd92c](https://github.com/monkeytypegame/monkeytype/commit/2000cd92c6a4d5573da3883943ae72c8e736e7e6))
- quote spelling ([1c879201c](https://github.com/monkeytypegame/monkeytype/commit/1c879201cdc949cb40a1d9a09edbd47078c3fa1e))
- reset composition state to false on test restart ([05a1272c5](https://github.com/monkeytypegame/monkeytype/commit/05a1272c5cfd97e0bcb8ffcb1d7bac7ef0bd76af))
- blind mode not working in dark note theme (@fehmer) ([#6186](https://github.com/monkeytypegame/monkeytype/pull/6186)) ([a0b12690f](https://github.com/monkeytypegame/monkeytype/commit/a0b12690f908655234ee4923afd914d489318665))
- **language:** remove british english words (@AnnaBuchholz) ([#6187](https://github.com/monkeytypegame/monkeytype/pull/6187)) ([c351489db](https://github.com/monkeytypegame/monkeytype/commit/c351489dbf6955bdd30745d180865643e75f9064))
- quote lengths script ([85a39df78](https://github.com/monkeytypegame/monkeytype/commit/85a39df785bd5ae9f4aa47dbfe018f82f2442ffe))
- live test stats not aligned in tape mode ([18a5922b2](https://github.com/monkeytypegame/monkeytype/commit/18a5922b257152912fd1d9c13423e23ab4a80229))
- offline mode not working ([bc999c2ab](https://github.com/monkeytypegame/monkeytype/commit/bc999c2ab350fd69b7fcef94e41f3c89e19936b2))
- **presets:** missing config group definitions breaking partial presets ([0f612257a](https://github.com/monkeytypegame/monkeytype/commit/0f612257aa62c2abbec9080ae15b248fd82a3635))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** better email changing logs ([3a065313b](https://github.com/monkeytypegame/monkeytype/commit/3a065313bf525a86d311d33ab22c050b708b4fb7))
- **style:** make sure theme buttons cant be full width which causes hover isssues ([5ce574d0c](https://github.com/monkeytypegame/monkeytype/commit/5ce574d0cd16b814055beaa2161e0bf719ce2c3c))
- **refactor:** use vendor css from npm package (@fehmer) ([#6206](https://github.com/monkeytypegame/monkeytype/pull/6206)) ([750a83da5](https://github.com/monkeytypegame/monkeytype/commit/750a83da5945866ba355815fdaa5da3c13b6f31c))
- **refactor:** replace JSON.parse with parseJsonWithSchema (@dev-mohit06) ([#6207](https://github.com/monkeytypegame/monkeytype/pull/6207)) ([3510ea976](https://github.com/monkeytypegame/monkeytype/commit/3510ea976099e4032f0e214eef523a2d6859945b))
- **refactor:** add cleanup function to animated modals ([64cc59116](https://github.com/monkeytypegame/monkeytype/commit/64cc59116c59b8b1add4727a1e020d03e521c16f))
- **refactor:** config group definitions ([c8fd68a60](https://github.com/monkeytypegame/monkeytype/commit/c8fd68a6011d852da8c6ffd1b8a3a6b7e323cde2))
- **ci:** move prettier to its own workflow (@miodec) ([#6198](https://github.com/monkeytypegame/monkeytype/pull/6198)) ([00e130969](https://github.com/monkeytypegame/monkeytype/commit/00e130969a6613a91cf605aa2961f51992e1afc8))
- **ci:** fix permission ([bb3a99861](https://github.com/monkeytypegame/monkeytype/commit/bb3a99861fe96a7ecf4a31758f87c3b8057c6e29))
- **ci:** update permissions ([b4d8a5f96](https://github.com/monkeytypegame/monkeytype/commit/b4d8a5f965609295773ae81a08530d3fbdb2b23f))
- **ci:** use different action for removing label ([bbf0aa65b](https://github.com/monkeytypegame/monkeytype/commit/bbf0aa65b7f425c7c1dd40f1fe6390f13132615c))
- **ci(pretty fix):** use correct head ref ([e10444d20](https://github.com/monkeytypegame/monkeytype/commit/e10444d2010b936babe27d9e252f78ddbdf3a4e5))
- **ci:** run pretty fix only on changed files ([e4517ebed](https://github.com/monkeytypegame/monkeytype/commit/e4517ebede2e4c7b399a7c05aaafc21383c21189))
- **ci:** run prettier write on pr label change ([90590a331](https://github.com/monkeytypegame/monkeytype/commit/90590a331df84511d8ad738614077820543e8b11))
- **ci:** limit permissions for the update labels workflow (@fehmer) ([#6200](https://github.com/monkeytypegame/monkeytype/pull/6200)) ([c469ddddf](https://github.com/monkeytypegame/monkeytype/commit/c469ddddffc8f32e3c80cb6d82b5c1dc76c3deff))
- **ci:** Limit permissions for the docker publish workflow (@fehmer) ([#6199](https://github.com/monkeytypegame/monkeytype/pull/6199)) ([fc6564289](https://github.com/monkeytypegame/monkeytype/commit/fc6564289cc8eb850e83d5eaaa523c5d2075b8d1))
- **chore:** add logs to debug issue ([0b3f5aaa1](https://github.com/monkeytypegame/monkeytype/commit/0b3f5aaa162105f0823441bbcfd7c9d5d22e7bd6))
- **chore:** remove war related words from russian lists ([bb480f896](https://github.com/monkeytypegame/monkeytype/commit/bb480f8966db858fcf86be654aefe8052d489590))
- **chore:** upgrade to vite 6 (@miodec) ([#6214](https://github.com/monkeytypegame/monkeytype/pull/6214)) ([1f771e3a0](https://github.com/monkeytypegame/monkeytype/commit/1f771e3a09b3e11551e43a26ff626a7f82be93a9))
- **chore:** bump turbo version ([16e92d35c](https://github.com/monkeytypegame/monkeytype/commit/16e92d35cfec09b017bcf79bacfa183e62d2c4d0))
- **chore:** bump eslint version ([edd290317](https://github.com/monkeytypegame/monkeytype/commit/edd29031711dc34e450269ba754591a50de40694))
v25.3.0
13 Jan 2025
Thank you to all the contributors who made this release possible!
### Features
- **language:** add urdish (@aitchz) ([#6168](https://github.com/monkeytypegame/monkeytype/pull/6168)) ([3d182296d](https://github.com/monkeytypegame/monkeytype/commit/3d182296d5a22858a25a3851a15dd7e3b6bf1844))
- **font:** add parkinsans (@binekrasik) ([#6166](https://github.com/monkeytypegame/monkeytype/pull/6166)) ([57cb80c5f](https://github.com/monkeytypegame/monkeytype/commit/57cb80c5fa1e588338a01dc8dee2378a45b3aa1f))
- **language:** add tatar 200, 1k, 5k and 9k (@psq4) ([#6075](https://github.com/monkeytypegame/monkeytype/pull/6075)) ([027b47f8a](https://github.com/monkeytypegame/monkeytype/commit/027b47f8ac386ae3fbe6f7882226dd7f00f02f87))
### Improvements
- **language:** move british spellings from language files to british english mode (@AnnaBuchholz) ([#6157](https://github.com/monkeytypegame/monkeytype/pull/6157)) ([dd475ef11](https://github.com/monkeytypegame/monkeytype/commit/dd475ef1152093773e5061cc6cadb44913adaa26))
- **language:** russian list improvements (@psq4) ([#6074](https://github.com/monkeytypegame/monkeytype/pull/6074)) ([af6438826](https://github.com/monkeytypegame/monkeytype/commit/af643882625acba75249c740676d3917f6f126ed))
- **quote:** add quotes in various languages (@boessu) ([#6175](https://github.com/monkeytypegame/monkeytype/pull/6175)) ([10510d236](https://github.com/monkeytypegame/monkeytype/commit/10510d236f54da94b67d52724439559d8224d47f))
### Fixes
- **quotes:** remove english quotes in french file (@raffaeldp) ([#6172](https://github.com/monkeytypegame/monkeytype/pull/6172)) ([31830d5fe](https://github.com/monkeytypegame/monkeytype/commit/31830d5fe429476a32ff99dd7ae33ceb0cab46fc))
- **language:** swiss german 1k typos (@boessu) ([#6171](https://github.com/monkeytypegame/monkeytype/pull/6171)) ([4f6bd4178](https://github.com/monkeytypegame/monkeytype/commit/4f6bd41786d4413ced2d6b0542317e29848f3a01))
- **language:** azerbaijani typos (@J3ikar) ([#6164](https://github.com/monkeytypegame/monkeytype/pull/6164)) ([565fa5138](https://github.com/monkeytypegame/monkeytype/commit/565fa513805b168a20a280f5441c87da5394a568))
- funbox classes not cleared ([ebebd7694](https://github.com/monkeytypegame/monkeytype/commit/ebebd7694bc3615c9c50b88ed0e72c48048a1452))
- mini list stats alignment when tape mode is off ([b1fa682f3](https://github.com/monkeytypegame/monkeytype/commit/b1fa682f32cb65d30936e330d84a679fe4f2f4dc))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **fix:** tape margin default value should be 50, not 10 ([da70476a5](https://github.com/monkeytypegame/monkeytype/commit/da70476a5a7b27ebc387ef740ad84671cfabb6a4))
v25.2.0
06 Jan 2025
Thank you to all the contributors who made this release possible!
### Features
- add tape margin ([c9789d6b1](https://github.com/monkeytypegame/monkeytype/commit/c9789d6b1b25ea3012b980536c46ebaee980338f))
This setting allows you to change the horizontal position of the caret when using tape mode. By default it remains in the center as usual (so, 50%). You can shift it to the left by lowering this value, or to the right by increasing it.
- **language:** add tamil old (@VIZL-23) ([#6141](https://github.com/monkeytypegame/monkeytype/pull/6141)) ([599488db5](https://github.com/monkeytypegame/monkeytype/commit/599488db51102c3a994ec0bce0941bdb18bb36b3))
- **result page:** open daily leaderboard when clicking the daily leaderboard rank (@theiereman) ([#6133](https://github.com/monkeytypegame/monkeytype/pull/6133)) ([759829a6f](https://github.com/monkeytypegame/monkeytype/commit/759829a6fbff0a99b6e72ca28a7f797aede6e4d5))
### Improvements
- **language:** rework uzbek lists (@Sonotoki-da) ([#6116](https://github.com/monkeytypegame/monkeytype/pull/6116)) ([92103f7cc](https://github.com/monkeytypegame/monkeytype/commit/92103f7ccff693407fb3cc8fdd2362c285aa18d9))
- center mini stats when using tape mode (@notTamion) ([#6100](https://github.com/monkeytypegame/monkeytype/pull/6100)) ([0c8d156be](https://github.com/monkeytypegame/monkeytype/commit/0c8d156be25e0ae1245c366452f975f27bde026b))
- **quote:** add quotes in various languages (@rmenai, @ItsDrike, @aitchz) ([#6144](https://github.com/monkeytypegame/monkeytype/pull/6144), [#6143](https://github.com/monkeytypegame/monkeytype/pull/6143), [#6131](https://github.com/monkeytypegame/monkeytype/pull/6131)) ([b490056e3](https://github.com/monkeytypegame/monkeytype/commit/b490056e36d1a46784d709f99719974b52c32090), [d535b0723](https://github.com/monkeytypegame/monkeytype/commit/d535b07234fe10a3c43cacb203f8337c6e303608), [e6c800b12](https://github.com/monkeytypegame/monkeytype/commit/e6c800b1286e074f253d8333aa5a11c61e61b9e4), [44fbf6228](https://github.com/monkeytypegame/monkeytype/commit/44fbf62282630598a560f8672977f8b15248dadc))
### Fixes
- funbox plus x not working with custom text using pipe delimiter (@fehmer) ([#6155](https://github.com/monkeytypegame/monkeytype/pull/6155)) ([9c0635ea6](https://github.com/monkeytypegame/monkeytype/commit/9c0635ea6837899d8bfb06326e2d1e38d435ebb2))
- **quotes:** fix typo in German quote (@MapManagement) ([#6154](https://github.com/monkeytypegame/monkeytype/pull/6154)) ([94c219efb](https://github.com/monkeytypegame/monkeytype/commit/94c219efb71f1771fcd4f1eb1e8744dccf531381))
- **language:** fix khmer language rendering by adding missing 'ligatures' property (@Earpengai) ([#6132](https://github.com/monkeytypegame/monkeytype/pull/6132)) ([aa7b9d347](https://github.com/monkeytypegame/monkeytype/commit/aa7b9d347f558397de3b2eb7b30ae13f208bf5ce))
- some funboxes not working if reduced motion is preferred (@fehmer) ([#6104](https://github.com/monkeytypegame/monkeytype/pull/6104)) ([e2684c925](https://github.com/monkeytypegame/monkeytype/commit/e2684c925c9fc7b1382fa7bb4be01e524f28393d))
- **words generator:** unnecessairly lowercasing words when funboxes alter word generation ([8e38eae9b](https://github.com/monkeytypegame/monkeytype/commit/8e38eae9bc6f08348d4c2979ba63527ecb12e193))
- tape mode not centering words on window resize ([a2f6c1f83](https://github.com/monkeytypegame/monkeytype/commit/a2f6c1f8329e50d626e99bd4b81ef9573b4fdc4c))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** dont allow taking blocklisted names via update account name ([2a6af862e](https://github.com/monkeytypegame/monkeytype/commit/2a6af862e743580b1654096da2ccf1a4950a3623))
- **test:** fix tests being broken in 2025 ([c73c41751](https://github.com/monkeytypegame/monkeytype/commit/c73c4175193fe93c786191d3dde8de8fcafe1791))
v24.52.0
23 Dec 2024
Last relase of the year! Sorry I've been a bit slow with updates and merging PRs lately - I promise I will get around to reviewing them. Merry christmas and happy new year!
---
Thank you to all the contributors who made this release possible!
### Features
- **language:** add Khmer (@Earpengai) ([#6128](https://github.com/monkeytypegame/monkeytype/pull/6128)) ([81baa911b](https://github.com/monkeytypegame/monkeytype/commit/81baa911bc1ca2ec78d63be8ff39f6213b368e16))
- **layout:** add zenith (@ibrab000) ([#6127](https://github.com/monkeytypegame/monkeytype/pull/6127)) ([955bb50bd](https://github.com/monkeytypegame/monkeytype/commit/955bb50bd87e1382d66b11afed7cd9dedbfc7d0a))
- **language:** add code_typst (@iggedi-ig-ig) ([#6117](https://github.com/monkeytypegame/monkeytype/pull/6117)) ([772e4a1d0](https://github.com/monkeytypegame/monkeytype/commit/772e4a1d014c096e9723574bea347ec0581045e7))
- **language:** add galician (@psq4) ([#6078](https://github.com/monkeytypegame/monkeytype/pull/6078)) ([741bdf7c8](https://github.com/monkeytypegame/monkeytype/commit/741bdf7c81724b167010a37235ca6feb9da01d13))
- **funbox:** add underscore_spaces funbox (@spurkus) ([#6094](https://github.com/monkeytypegame/monkeytype/pull/6094)) ([aa58a733a](https://github.com/monkeytypegame/monkeytype/commit/aa58a733a726b481741eb895723f4914116e79b1))
- **funbox:** add ALL CAPS ([52fda9d8e](https://github.com/monkeytypegame/monkeytype/commit/52fda9d8ed66d5dd1899162fc1826d85af89210a))
- **language:** add portuguese 1k (@Samunals) ([#6025](https://github.com/monkeytypegame/monkeytype/pull/6025)) ([33be339a6](https://github.com/monkeytypegame/monkeytype/commit/33be339a6032dd9b23c4519f44ad08b062f0c994))
### Improvements
- **quotes:** grammar fix for English quote 192 (@mak448a) ([#6118](https://github.com/monkeytypegame/monkeytype/pull/6118)) ([775908026](https://github.com/monkeytypegame/monkeytype/commit/775908026fd9b9940caf7b90c98500fb70832c2b))
- **quote:** add quotes in various languages (@herfave, @petieken, @kennethlg) ([#6083](https://github.com/monkeytypegame/monkeytype/pull/6083), [#6114](https://github.com/monkeytypegame/monkeytype/pull/6114), [#6079](https://github.com/monkeytypegame/monkeytype/pull/6079)) ([0a9928c41](https://github.com/monkeytypegame/monkeytype/commit/0a9928c411295cee5f7dd054b37f8cccac8a07bc), [4baae8fe3](https://github.com/monkeytypegame/monkeytype/commit/4baae8fe37ae1b4938d7f59d0ab2ec6b35427fbc), [7d53e9eba](https://github.com/monkeytypegame/monkeytype/commit/7d53e9eba3ab63c85ce1b9665a0505fb2f18a229), [e994e846b](https://github.com/monkeytypegame/monkeytype/commit/e994e846b194e868dcfa529735a1b2cd12773dee))
### Fixes
- **simple modal:** improve error message for auth/invalid-credential when reauthenticating ([5d11df3eb](https://github.com/monkeytypegame/monkeytype/commit/5d11df3eb70c6df4d04a81cdd3c49f2cc8052f99))
- remove tailing space and non-break space from various languages (@fehmer) ([#6105](https://github.com/monkeytypegame/monkeytype/pull/6105)) ([9992d793a](https://github.com/monkeytypegame/monkeytype/commit/9992d793a7f43640e4f30ce02435480e84320d14))
- crt not applied to typo hints (@fehmer) ([#6103](https://github.com/monkeytypegame/monkeytype/pull/6103)) ([a67804746](https://github.com/monkeytypegame/monkeytype/commit/a67804746db8c62a8f516425994b5a02ef8266e0))
- **language:** remove non-polish word ([a1397b798](https://github.com/monkeytypegame/monkeytype/commit/a1397b798130818bd457292180bebc688ce47541))
- css funboxes not being applied when logging in ([a670438bb](https://github.com/monkeytypegame/monkeytype/commit/a670438bb98931ed7f62780293f8eb5dddfddd07))
- test not failing if min speed check failed on the last second ([f0a7b8272](https://github.com/monkeytypegame/monkeytype/commit/f0a7b82725a1409e4ecc317dbec188d6cbd544c0))
- **funbox:** css not cleared when toggling funbox ([f0debe6ee](https://github.com/monkeytypegame/monkeytype/commit/f0debe6eee69faedb65a66b9e9ba973dc94f6245))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **refactor:** move parseJsonWithSchema to utils package (@fehmer) ([#6109](https://github.com/monkeytypegame/monkeytype/pull/6109)) ([353fc14b4](https://github.com/monkeytypegame/monkeytype/commit/353fc14b4ee19ac9c129ff0886f7d21bcafaf9b9))
- **refactor:** ready function now awaits config to be loaded to avoid concurrency issues ([baaea3349](https://github.com/monkeytypegame/monkeytype/commit/baaea33490e889c987844771de64a1fa9202e097))
- **chore:** only check for inconsistent test duration in timed tests, shorter than 120s ([b52bb010b](https://github.com/monkeytypegame/monkeytype/commit/b52bb010b7e71c116715f2f623b6865d1c96a6d2))
- **chore:** add additional isAuthenticated check in case user logs out during the request ([c18feb074](https://github.com/monkeytypegame/monkeytype/commit/c18feb07481af6152c445327105876760ed95dd0))
- **chore:** fix typo (@m4dd0c) ([#6121](https://github.com/monkeytypegame/monkeytype/pull/6121)) ([2431ae3af](https://github.com/monkeytypegame/monkeytype/commit/2431ae3afa27a171090a183e77024d511990d026))
- **chore:** add more stats to result data export ([545441481](https://github.com/monkeytypegame/monkeytype/commit/54544148124966fb6bc9114a10b296bfa1435eca))
v24.49.0
04 Dec 2024
Thank you to all the contributors who made this release possible!
### Features
- **language:** add bashkir (@psq4) ([#6076](https://github.com/monkeytypegame/monkeytype/pull/6076)) ([4f0b582a0](https://github.com/monkeytypegame/monkeytype/commit/4f0b582a0cc7bf687f424de900b5e358926c4b58))
- **layout:** add turkish e (@jirmu) ([#6069](https://github.com/monkeytypegame/monkeytype/pull/6069)) ([a3916cb0c](https://github.com/monkeytypegame/monkeytype/commit/a3916cb0cb1870eafd57509ea3e102af1a682ffe))
- **language:** add tibetan and tibetan 1k (@lobnor2) ([#6032](https://github.com/monkeytypegame/monkeytype/pull/6032)) ([f187212cf](https://github.com/monkeytypegame/monkeytype/commit/f187212cf3349c5a89bbd6a8b0e3f0bab4a44e45))
- **layout:** add dusk (@luminespire) ([#6064](https://github.com/monkeytypegame/monkeytype/pull/6064)) ([794555f19](https://github.com/monkeytypegame/monkeytype/commit/794555f19c07f9288c964de7e907c41c78d01676))
- **layouts:** added Kuntum, Kuntem and snorkle (@5quidwyrm) ([#6061](https://github.com/monkeytypegame/monkeytype/pull/6061)) ([a91c95254](https://github.com/monkeytypegame/monkeytype/commit/a91c95254a86a7cf9cedc2635bd35d7088e59ce2))
- **lang:** add amharic 1k and amharic 5k (@akuna444) ([#6055](https://github.com/monkeytypegame/monkeytype/pull/6055)) ([aba935448](https://github.com/monkeytypegame/monkeytype/commit/aba935448f5084e7436fd54c392851a3e04d3a43))
### Improvements
- **quote:** add quotes in various languages (@TheFrenchTechMan) ([#6039](https://github.com/monkeytypegame/monkeytype/pull/6039)) ([4c4e82312](https://github.com/monkeytypegame/monkeytype/commit/4c4e82312e3094f4990c91c3192a6730623e6079))
### Fixes
- **language:** remove british spelling of `counselling` from english 10k (@aoi-buh) ([#6084](https://github.com/monkeytypegame/monkeytype/pull/6084)) ([a75f0d3b3](https://github.com/monkeytypegame/monkeytype/commit/a75f0d3b306134e48e45463b14157b40eb451882))
- **language:** remove catalan opening punctuation (@Perseus333) ([#6035](https://github.com/monkeytypegame/monkeytype/pull/6035)) ([7aceed87b](https://github.com/monkeytypegame/monkeytype/commit/7aceed87b429160d186a8e8270e4572185b6a61f))
- **language:** remove cyryllic characters from esperanto lists ([ca21b8dc3](https://github.com/monkeytypegame/monkeytype/commit/ca21b8dc3ae092af2b7140e1e0deeece8bc73130))
- **languages:** ligatures not being displayed correctly in sinhala ([bfcc9138f](https://github.com/monkeytypegame/monkeytype/commit/bfcc9138f7727f90c28c2ade535d1e711e117823))
- custom mode limit breaking show all lines in some cases ([edf71da1c](https://github.com/monkeytypegame/monkeytype/commit/edf71da1c37d0bf77add75e845f21a42c51a4253))
- **custom:** crash when trying to start a custom text with a lot of sections containing a lot of words ([a5c9433c3](https://github.com/monkeytypegame/monkeytype/commit/a5c9433c3bb007582c625f4ab98f62fa6db134ea))
- home and end keys not ignored during test, causing desync ([a3e3de47f](https://github.com/monkeytypegame/monkeytype/commit/a3e3de47f5db1b3f562680d8f9e7c440ad932fdf))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **fix:** remove the duplicate manifest tag (@malkiii) ([#6088](https://github.com/monkeytypegame/monkeytype/pull/6088)) ([44defe174](https://github.com/monkeytypegame/monkeytype/commit/44defe17424ed75b8a229d384702227afd364687))
- **fix(custom text):** limit being set to incorrect value when using pipe delimiter and simple text mode ([114105171](https://github.com/monkeytypegame/monkeytype/commit/1141051716933007aca8953d15b44d00ae12b072))
- **refactor:** move funboxes to a shared package (@miodec) ([#6063](https://github.com/monkeytypegame/monkeytype/pull/6063)) ([fdadb4ae8](https://github.com/monkeytypegame/monkeytype/commit/fdadb4ae83cfa16b2d8f8666d265b705b71071e7))
- **chore(deps):** bump dawidd6/action-download-artifact from 2.11.0 to 6 (@dependabot) ([#6073](https://github.com/monkeytypegame/monkeytype/pull/6073)) ([4ccc7fee0](https://github.com/monkeytypegame/monkeytype/commit/4ccc7fee0dcc70da1e990ba7a404eea4595d5498))
- **chore:** add debug log to addWord function ([294847d38](https://github.com/monkeytypegame/monkeytype/commit/294847d3890b91ebe3c213b81451fddaaabe8465))
v24.47.0
19 Nov 2024
Thank you to all the contributors who made this release possible!
### Features
- **lang:** add croatian_1k language (@Ivek21) ([#6014](https://github.com/monkeytypegame/monkeytype/pull/6014)) ([221e70650](https://github.com/monkeytypegame/monkeytype/commit/221e70650ac6ef85852071f80e11c45592a9caaa))
- **input:** add 'code unindent on backspace' for code languages (@notTamion) ([#5991](https://github.com/monkeytypegame/monkeytype/pull/5991)) ([dea95a243](https://github.com/monkeytypegame/monkeytype/commit/dea95a243cf147818b0ee19fd17957e033518eb9))
- **language:** add code fortran (@slammon) ([#6009](https://github.com/monkeytypegame/monkeytype/pull/6009)) ([ed489448f](https://github.com/monkeytypegame/monkeytype/commit/ed489448f59da112da20d396c45125b946b66fbf))
- **layouts:** add gallium v2 matrix ([fe2f43ded](https://github.com/monkeytypegame/monkeytype/commit/fe2f43dedf86951e3bc77cc108e6c8cb9418b5e6))
- **lang:** add quenya (@Nifle-CGE) ([#5967](https://github.com/monkeytypegame/monkeytype/pull/5967)) ([3ed27104e](https://github.com/monkeytypegame/monkeytype/commit/3ed27104e4067506d41fa94d24c453fb265a112f))
### Improvements
- **layouts:** add basic support for thumb alpha keys (@zigotica) ([#6023](https://github.com/monkeytypegame/monkeytype/pull/6023)) ([50639faa1](https://github.com/monkeytypegame/monkeytype/commit/50639faa1d9f6e9c47158767cdaf7a26c2509b9a))
- **read ahead:** show words after correcting typo with backspace (@notTamion) ([#6006](https://github.com/monkeytypegame/monkeytype/pull/6006)) ([bbfafc1cc](https://github.com/monkeytypegame/monkeytype/commit/bbfafc1cc575631407bb6e27d971b86fa30d18f7))
- remove report button when viewing your own public profile ([a5cd1d38e](https://github.com/monkeytypegame/monkeytype/commit/a5cd1d38e4b14430e54241da53b09af184d0fc96))
- **quote:** add quotes in various languages (@ricountzero, @omaeda, @arthvr9, @ricountzero, @Samunals, @theendlesswatch, @luis-cvqz, @CoolerFred) ([#6045](https://github.com/monkeytypegame/monkeytype/pull/6045), [#6044](https://github.com/monkeytypegame/monkeytype/pull/6044), [#5999](https://github.com/monkeytypegame/monkeytype/pull/5999), [#5995](https://github.com/monkeytypegame/monkeytype/pull/5995), [#5972](https://github.com/monkeytypegame/monkeytype/pull/5972), [#5981](https://github.com/monkeytypegame/monkeytype/pull/5981), [#5977](https://github.com/monkeytypegame/monkeytype/pull/5977), [#5976](https://github.com/monkeytypegame/monkeytype/pull/5976)) ([52571882a](https://github.com/monkeytypegame/monkeytype/commit/52571882ade7e9cddfeda1cca51fba51da66c283), [6b9f7fcff](https://github.com/monkeytypegame/monkeytype/commit/6b9f7fcff19fe83cabc5cc9011da047e46161f30), [9306e1ecf](https://github.com/monkeytypegame/monkeytype/commit/9306e1ecf5db921b828d84b0ad8e3157dcda1d02), [3df9ca480](https://github.com/monkeytypegame/monkeytype/commit/3df9ca4808f8eb62559f47efe6f6b766cf8ca673), [8ea40b44f](https://github.com/monkeytypegame/monkeytype/commit/8ea40b44f2369bba7c4cd8d0f8396cd17d26e5d5), [273650031](https://github.com/monkeytypegame/monkeytype/commit/273650031021b7394d7eee4591c38edd364d9994), [c75c6d8ea](https://github.com/monkeytypegame/monkeytype/commit/c75c6d8ea1442d233ce8ca3c70dbd55869207a3b), [e524b6311](https://github.com/monkeytypegame/monkeytype/commit/e524b631110cb685ceec6120021e3558743c515b))
### Fixes
- **language:** grammatical fixes in turkish list (@jirmu) ([#6046](https://github.com/monkeytypegame/monkeytype/pull/6046)) ([27eef9d93](https://github.com/monkeytypegame/monkeytype/commit/27eef9d939e5e68c049bfa07747d981c9ba55fd6))
- result screen showing pb mismatch when bailing out of long tests ([23948f0d9](https://github.com/monkeytypegame/monkeytype/commit/23948f0d9fb3d191df3815b8b1853afb54fe010c))
- **commandline:** running wrong command on mobile or when not moving the mouse ([e21a205c0](https://github.com/monkeytypegame/monkeytype/commit/e21a205c0a5660145abbd6f5081bee3560b1c87d))
- balloon message clipping on the result page ([527d65702](https://github.com/monkeytypegame/monkeytype/commit/527d65702a497a4449ba0e54247b4a7ef3d05107))
- **language:** removed non-french from the french language files (@theiereman) ([#6033](https://github.com/monkeytypegame/monkeytype/pull/6033)) ([05d88af73](https://github.com/monkeytypegame/monkeytype/commit/05d88af73298c73f30a4158d12790edb39c6b7cf))
- **key tips:** "off" shown instead of "tab + enter" when quick restart is disabled (@mrtianjin829) ([#6036](https://github.com/monkeytypegame/monkeytype/pull/6036)) ([de546aefe](https://github.com/monkeytypegame/monkeytype/commit/de546aefec922ca7d35014007420d3ab41c325d7))
- correct spelling in revoke all tokens modal (@Andotrium) ([#6013](https://github.com/monkeytypegame/monkeytype/pull/6013)) ([cd8043f83](https://github.com/monkeytypegame/monkeytype/commit/cd8043f832a7c2e7e073366e0094a05bd375d35a))
- account button avatar not cleared when signing out ([2ecd9802a](https://github.com/monkeytypegame/monkeytype/commit/2ecd9802a4c8d14b5121d97497f009e057d8b437))
- adding missing toki pona word (@anakojm) ([#5997](https://github.com/monkeytypegame/monkeytype/pull/5997)) ([5a125c91e](https://github.com/monkeytypegame/monkeytype/commit/5a125c91e64bbceb3e0d456e664162d967d2fb20))
- resolve fps counter showing increased fps when opened multiple times (@blru) ([#5990](https://github.com/monkeytypegame/monkeytype/pull/5990)) ([bf1f3202f](https://github.com/monkeytypegame/monkeytype/commit/bf1f3202fbbc120b553e1ce1ccf0917c58b7762c))
- **custom mode:** remove space at beginning of custom text lines (@notTamion) ([#5993](https://github.com/monkeytypegame/monkeytype/pull/5993)) ([ab7cf0b38](https://github.com/monkeytypegame/monkeytype/commit/ab7cf0b3825354c9b1f2507251e7ced710eca886))
- server sometimes rejecting valid funbox combinations ([edbb4d445](https://github.com/monkeytypegame/monkeytype/commit/edbb4d44516b4055fbc64b521f303fbff0bee58c))
- offline banner sometimes not being hidden when coming back online ([d448af8d6](https://github.com/monkeytypegame/monkeytype/commit/d448af8d6f08ec3839213802e98890d8631b4014))
- **result word history:** incorrect words not being underlined ([61862571f](https://github.com/monkeytypegame/monkeytype/commit/61862571f41b7167e9b98759f19ad3e81b9a5d78))
- input history for characters outside BMP not displaying correctly ([8859c557b](https://github.com/monkeytypegame/monkeytype/commit/8859c557be5044664288bf7977c4f7b0f563f80c))
- **result page:** last word in words mode missing input history ([ab729e61f](https://github.com/monkeytypegame/monkeytype/commit/ab729e61f14aaa9d3df68c94bb8546559580f2c2))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **fix:** profile being shown in incorrect structure when no social links were present in the profile data ([64cbbfcfc](https://github.com/monkeytypegame/monkeytype/commit/64cbbfcfc4dad750a084d5b9a4881e2e4658bac0))
- **refactor(keymap):** rework how space keys and layout indicator are handled ([cc7a2be28](https://github.com/monkeytypegame/monkeytype/commit/cc7a2be286c9326b767b8d7a72394b3e5f8c8e45))
- **chore:** remove TS nightly from the list of recommended extensions ([ba30b0d57](https://github.com/monkeytypegame/monkeytype/commit/ba30b0d578a3f16565a6ebe3e6f95566335c2626))
- **chore(about page):** small typo (@weather7774) ([#6024](https://github.com/monkeytypegame/monkeytype/pull/6024)) ([ab2ea8b35](https://github.com/monkeytypegame/monkeytype/commit/ab2ea8b3538d3a208b8bd03df6c2b2424a5da2fe))
- **chore(deps-dev):** bump happy-dom from 13.4.1 to 15.10.2 in /frontend ([#6012](https://github.com/monkeytypegame/monkeytype/pull/6012)) ([083db409c](https://github.com/monkeytypegame/monkeytype/commit/083db409ce2df0723206cf286168da70b9d6423f))
- **chore:** missing custom theme increase on frontend side ([3b792e875](https://github.com/monkeytypegame/monkeytype/commit/3b792e87588d97648c9dc810ef87f4028d3df251))
- **chore:** increase custom theme limit ([d4e14da02](https://github.com/monkeytypegame/monkeytype/commit/d4e14da02cca4ed2feca73b943126ea26c26cac6))
- **chore:** remove unnecessary code ([5d83198ee](https://github.com/monkeytypegame/monkeytype/commit/5d83198ee2fcb265d6aeeacb77217e308a5da543))
- **chore:** bump slim-select ([2ec5e0a89](https://github.com/monkeytypegame/monkeytype/commit/2ec5e0a89826d607b647c1657b2823bdb31095ef))
v24.42.0
16 Oct 2024
Thank you to all the contributors who made this release possible!
### Features
- **layout:** add haruka (@inscapist) ([#5957](https://github.com/monkeytypegame/monkeytype/pull/5957)) ([48bca0a4d](https://github.com/monkeytypegame/monkeytype/commit/48bca0a4d2e696655382ed62fd63ffc484a8bbb7))
- **layout:** add Whix2 by Ec0vid (@lumenn) ([#5923](https://github.com/monkeytypegame/monkeytype/pull/5923)) ([9b0231a46](https://github.com/monkeytypegame/monkeytype/commit/9b0231a46a7bd9b17189c2b12b3003e434ef7266))
- **lang:** add code odin (@MarcinKuder) ([#5921](https://github.com/monkeytypegame/monkeytype/pull/5921)) ([3b2cde851](https://github.com/monkeytypegame/monkeytype/commit/3b2cde851809ca84b29b864193846ee664db60e4))
- **language:** add Dockerfile (@rammba) ([#5926](https://github.com/monkeytypegame/monkeytype/pull/5926)) ([006af5aff](https://github.com/monkeytypegame/monkeytype/commit/006af5aff88fe94f5e4ac4ad97d1688b365a02e0))
### Improvements
- validate username on name update before sending to the server (@fehmer) ([#5961](https://github.com/monkeytypegame/monkeytype/pull/5961)) ([31d1d51d6](https://github.com/monkeytypegame/monkeytype/commit/31d1d51d6eafabe5329cab7d44185e8281d3a2cb))
- **commandline:** when using single list mode, press the up arrow to repeat previous command ([9f7aeac5a](https://github.com/monkeytypegame/monkeytype/commit/9f7aeac5af64938c321ebac8aa076d2e1144fd50))
- **custom text:** add option to not remove zero width characters ([2ffa2ba33](https://github.com/monkeytypegame/monkeytype/commit/2ffa2ba33ecd49659832b8209245ed0b5151e7f0))
- monkey now types with the same hand as the user (@ShaneBerhoff) ([#5930](https://github.com/monkeytypegame/monkeytype/pull/5930)) ([ac639348c](https://github.com/monkeytypegame/monkeytype/commit/ac639348cab3911c06827432776729f80df691e6))
- **command line:** add 'ctrl p' and 'ctrl n' navigation key binds (@xaskii) ([#5949](https://github.com/monkeytypegame/monkeytype/pull/5949)) ([0a8aac26c](https://github.com/monkeytypegame/monkeytype/commit/0a8aac26c2838f1d72ad4f057369205c647f46fb))
- don't allow retrying saving result if its a duplicate result ([2c7bb9488](https://github.com/monkeytypegame/monkeytype/commit/2c7bb9488f92545fc256143ab2ae821c9d828f7d))
- **code go:** add more keywords to Golang (@rammba) ([#5918](https://github.com/monkeytypegame/monkeytype/pull/5918)) ([fa58e090d](https://github.com/monkeytypegame/monkeytype/commit/fa58e090db77fb7dfb98d3db6315bf94f4e8e7b9))
- **code csharp:** add commonly used C# terms (@rammba) ([#5916](https://github.com/monkeytypegame/monkeytype/pull/5916)) ([245c09bc0](https://github.com/monkeytypegame/monkeytype/commit/245c09bc0b6f21e51997f81a1feda6c563bd8135))
- **xp bar:** improve styling and positioning, make breakdown skip more responsive ([072c191f8](https://github.com/monkeytypegame/monkeytype/commit/072c191f81ea84a6524fdc0418dd990394e1ca80))
- **quote:** add quotes in various languages (@MapManagement, @266-750Balloons, @rojadesign) ([#5945](https://github.com/monkeytypegame/monkeytype/pull/5945), [#5946](https://github.com/monkeytypegame/monkeytype/pull/5946), [#5904](https://github.com/monkeytypegame/monkeytype/pull/5904)) ([740200b3e](https://github.com/monkeytypegame/monkeytype/commit/740200b3e14488be0ae76385b467921b795892ce), [eb50eeef2](https://github.com/monkeytypegame/monkeytype/commit/eb50eeef228e019d5f9888a145c77b6b4716b97b), [6bf1cb867](https://github.com/monkeytypegame/monkeytype/commit/6bf1cb8672c888fefac62ffa9210b052d680ec31))
### Fixes
- unable to enable some layouts due to an incorrect schema ([5e35892e4](https://github.com/monkeytypegame/monkeytype/commit/5e35892e4756188dd842747b0e35bada004d1c83))
- sometimes unable to open practice words modal from the commandline ([0a285641b](https://github.com/monkeytypegame/monkeytype/commit/0a285641b2e94d9e99bcc7b53920a5c20f37e3c6))
- allow only one funbox changing capitalisation (@fehmer) ([#5959](https://github.com/monkeytypegame/monkeytype/pull/5959)) ([c7751d905](https://github.com/monkeytypegame/monkeytype/commit/c7751d90519383ce3f183bc334ab03e7e74bab5d))
- **commandline:** don't trigger hover/exec functions if commandline is closing ([4f541da11](https://github.com/monkeytypegame/monkeytype/commit/4f541da111c2091e1c534ec99571a02c28918f82))
- **quotes:** korean quotes grammar (@perssphere07) ([#5950](https://github.com/monkeytypegame/monkeytype/pull/5950)) ([06604684c](https://github.com/monkeytypegame/monkeytype/commit/06604684c8353da2ea316f1434f891300e6c6c38))
- **keymap:** next mode not working after pressing enter ([efd8f0061](https://github.com/monkeytypegame/monkeytype/commit/efd8f00610c4e726f3e0e80cf77a7a169f17bc9d))
- **layout:** typo in middlemak and middlemak-nh (@toast-riot) ([#5932](https://github.com/monkeytypegame/monkeytype/pull/5932)) ([0c7adabe7](https://github.com/monkeytypegame/monkeytype/commit/0c7adabe7fd02b857a4fcea84cdaf2c81c5cd8b3))
- xp bar misalignment ([840c0c23b](https://github.com/monkeytypegame/monkeytype/commit/840c0c23b792c09fbabe9f14d90836d019fc772b))
- handling of characters outside the BMP (@fehmer) ([#5911](https://github.com/monkeytypegame/monkeytype/pull/5911)) ([f9409e3fc](https://github.com/monkeytypegame/monkeytype/commit/f9409e3fcf4452fe2a5005d25eaec4dbc0b8aeec))
- apply reduced motion to xp bar (@fehmer) ([#5917](https://github.com/monkeytypegame/monkeytype/pull/5917)) ([344896395](https://github.com/monkeytypegame/monkeytype/commit/34489639522c8d613b1decbd4b17139c5270bf5a))
- xp bar not reaching 100% on level up ([78ffb9ef9](https://github.com/monkeytypegame/monkeytype/commit/78ffb9ef9fbf09c01445a1b190fa7b9ddc801aa3))
- xp breakdown not working in firefox when using crt ([8daca636b](https://github.com/monkeytypegame/monkeytype/commit/8daca636b1df2159c307df306929d528a12fa8e4))
- **quote:** update or remove quotes reported by users ([d541598dd](https://github.com/monkeytypegame/monkeytype/commit/d541598dd59765e614ca83ac40e217d9c6be8782))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(serbian):** add more attributes to Serbian files (@rammba) ([#5925](https://github.com/monkeytypegame/monkeytype/pull/5925)) ([529d42498](https://github.com/monkeytypegame/monkeytype/commit/529d4249822f92b7b721e2f59b77b74336b0ccd0))
- **impr(backend):** consider incomplete tests when checking result spacing ([73f802299](https://github.com/monkeytypegame/monkeytype/commit/73f80229924e60a3c7886dcb89f2f25fac483774))
- **impr(dev):** log when result was validated ([b70930ab0](https://github.com/monkeytypegame/monkeytype/commit/b70930ab0415578d1df686fca55b2399e0d01811))
- **impr(dev options):** add button to test xp bar ([3393e2708](https://github.com/monkeytypegame/monkeytype/commit/3393e27083fb55c8a72fae5f84feb9d9981ac912))
- **impr:** stop propagation of escape events ([52d84836c](https://github.com/monkeytypegame/monkeytype/commit/52d84836cfa9a79e374e274032b1deede7609d0b))
- **impr:** set level text to the starting value when animating xp bar ([d4c1ca268](https://github.com/monkeytypegame/monkeytype/commit/d4c1ca2687eac34fb21e8634f21e9c6b2545d9ae))
- **fix:** public profile link broken after updating account name ([f93812211](https://github.com/monkeytypegame/monkeytype/commit/f9381221170275ae634929d30280ae32bf74e863))
- **refactor(build):** optimize dockerfiles (@ilolm) ([#5955](https://github.com/monkeytypegame/monkeytype/pull/5955)) ([ebf98f15f](https://github.com/monkeytypegame/monkeytype/commit/ebf98f15f63534a584444967d5cd1dd2fdcd6510))
- **refactor(caps warning):** remove boolean flip which could cause flipped state issues ([1c2f04eed](https://github.com/monkeytypegame/monkeytype/commit/1c2f04eed8c6a2efc8af2cf17c2c94c06527741a))
- **refactor(xp bar):** move code to its own file ([db319b172](https://github.com/monkeytypegame/monkeytype/commit/db319b17280177bc1b05a934c653bd3fffb56348))
- **chore:** remove console logs ([063a6901a](https://github.com/monkeytypegame/monkeytype/commit/063a6901a61ede9d58bb51eb07d64083bd7b5bbb))
- **chore:** upgrade express ([a7664d46e](https://github.com/monkeytypegame/monkeytype/commit/a7664d46ea049a46efbfcd96caece74588ddf693))
- **chore:** move comment ([7ed56db4e](https://github.com/monkeytypegame/monkeytype/commit/7ed56db4e0eca137ff79dd0c2d9d02ccbbcec29a))
- **chore:** remove debug code ([08fbee545](https://github.com/monkeytypegame/monkeytype/commit/08fbee54569b83f12b01912dcdc41a2a5dc7f0e1))
- **chore:** updated scatman quote (@DanielGrenehed) ([#5912](https://github.com/monkeytypegame/monkeytype/pull/5912)) ([0ede4aee6](https://github.com/monkeytypegame/monkeytype/commit/0ede4aee6c2ef5515098099b0ec81486e8d226e3))
v24.39.0
23 Sep 2024
Thank you to all the contributors who made this release possible!
### Features
- reduce motion if prefered by the operating system / browser (@fehmer) ([#5866](https://github.com/monkeytypegame/monkeytype/pull/5866)) ([0b854af30](https://github.com/monkeytypegame/monkeytype/commit/0b854af30e3518cc4894649d890603ecd5d5ecd1))
- **layout:** add night (@luminespire) ([#5901](https://github.com/monkeytypegame/monkeytype/pull/5901)) ([f360452c5](https://github.com/monkeytypegame/monkeytype/commit/f360452c50859448d994de03e2a26cb02d02a498))
- **layout:** add the rain layout (@ibrab000) ([#5899](https://github.com/monkeytypegame/monkeytype/pull/5899)) ([0f3485f9e](https://github.com/monkeytypegame/monkeytype/commit/0f3485f9e8dad20afc07456b1e529bf1cf899afd))
### Improvements
- **custom text:** remember custom text settings between sessions ([2dcb1072e](https://github.com/monkeytypegame/monkeytype/commit/2dcb1072e16f6b2363a00385d780f9a435cd6062))
- **commandline:** add back commands that quickly practise missed and slow words ([11aeb313e](https://github.com/monkeytypegame/monkeytype/commit/11aeb313ef2b90843ecbe7dff5987508fa2f6aaa))
- show xp gain details as list after completing a test (@fehmer, @miodec) ([#5895](https://github.com/monkeytypegame/monkeytype/pull/5895)) ([d9788a15e](https://github.com/monkeytypegame/monkeytype/commit/d9788a15e7a63060bcb6e9fb5e860da771730b58))
- **quote:** add quotes in various languages (@Gogo200202, @Gogo200202, @Gogo200202) ([#5910](https://github.com/monkeytypegame/monkeytype/pull/5910), [#5903](https://github.com/monkeytypegame/monkeytype/pull/5903), [#5898](https://github.com/monkeytypegame/monkeytype/pull/5898)) ([8d6f2b4ed](https://github.com/monkeytypegame/monkeytype/commit/8d6f2b4edc0663d7eab51416973f3bdd3f1d5759), [fc2a1064f](https://github.com/monkeytypegame/monkeytype/commit/fc2a1064fb339eb5e6c1fd0d66bc334112e0a338), [1d7e7bbb9](https://github.com/monkeytypegame/monkeytype/commit/1d7e7bbb91b78026b2cc914c05d7ec5d2c9818c7))
### Fixes
- random theme is applied over custom theme (@fehmer) ([#5900](https://github.com/monkeytypegame/monkeytype/pull/5900)) ([921ecb113](https://github.com/monkeytypegame/monkeytype/commit/921ecb113f522fc2e85534768b1aadfb2fb162c5))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(local storage with schema):** add fallback value copy to migrate parameters ([09ce4bd67](https://github.com/monkeytypegame/monkeytype/commit/09ce4bd6725bf1c668ab4b8253e9d76f0eae3e97))
- **refactor:** remove global type namespaces (@miodec) ([#5907](https://github.com/monkeytypegame/monkeytype/pull/5907)) ([b6bd5ba2b](https://github.com/monkeytypegame/monkeytype/commit/b6bd5ba2b4d2d441c4e09ceec2ad42b24e10d097))
- **refactor:** move common util functions to a package (@miodec) ([#5894](https://github.com/monkeytypegame/monkeytype/pull/5894)) ([1509a675b](https://github.com/monkeytypegame/monkeytype/commit/1509a675b85aa407eb04118e37743cd165b9a474))
- **chore(workspace):** move contracts back to the packages folder ([f23ea56fe](https://github.com/monkeytypegame/monkeytype/commit/f23ea56fe0ea5bbab0785ca878b6bf72d3e8cb6a))
v24.38.0
18 Sep 2024
Thank you to all the contributors who made this release possible!
### Features
- **languages:** add Slovenian 1k and 5k word lists (@anzepintar) ([#5889](https://github.com/monkeytypegame/monkeytype/pull/5889)) ([eb03bea62](https://github.com/monkeytypegame/monkeytype/commit/eb03bea626e3daf90e41d05e52c5b59fe3536a83))
- **layout:** add the inqwerted layout (@aoi-buh) ([#5880](https://github.com/monkeytypegame/monkeytype/pull/5880)) ([c75ba9a2b](https://github.com/monkeytypegame/monkeytype/commit/c75ba9a2ba883ab9343bf29da01be4af74aaf145))
### Fixes
- dark note theme dots being too big (@fehmer) ([#5893](https://github.com/monkeytypegame/monkeytype/pull/5893)) ([dd657acb2](https://github.com/monkeytypegame/monkeytype/commit/dd657acb241a2034ac8880acf778e28bbf39608e))
- **quote:** update or remove quotes reported by users ([0a9f08bc5](https://github.com/monkeytypegame/monkeytype/commit/0a9f08bc50eca5816dd6b74f566702fe8f45e1da))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **dev:** add function and tests to get a message from an error ([07d94a6d1](https://github.com/monkeytypegame/monkeytype/commit/07d94a6d1c57a153b869a43eb25c94e32d796369))
- **refactor:** enable no-unsafe-member-access (@miodec) ([#5887](https://github.com/monkeytypegame/monkeytype/pull/5887)) ([7e703028b](https://github.com/monkeytypegame/monkeytype/commit/7e703028bd621b3c86bcfeeaa540be65baf30968))
- **refactor:** enable no-unsafe-call rule (@miodec) ([#5883](https://github.com/monkeytypegame/monkeytype/pull/5883)) ([ceedf8ace](https://github.com/monkeytypegame/monkeytype/commit/ceedf8ace2241fb28ea7cec26b884f85cd9641ff))
- **ci:** add missing forward slash to shebang (@unrealapex) ([#5897](https://github.com/monkeytypegame/monkeytype/pull/5897)) ([8becb9fa9](https://github.com/monkeytypegame/monkeytype/commit/8becb9fa96bbf9e9874fb9df4f1225ead3ec1d61))
- **chore(deps-dev):** bump vite from 5.1.7 to 5.2.14 in /frontend ([#5896](https://github.com/monkeytypegame/monkeytype/pull/5896)) ([94c6ee74e](https://github.com/monkeytypegame/monkeytype/commit/94c6ee74edc20ed5ae120773cda9859ba3ea58e0))
- **chore:** upgrade slim-select (@miodec) ([#5884](https://github.com/monkeytypegame/monkeytype/pull/5884)) ([8b2c1723a](https://github.com/monkeytypegame/monkeytype/commit/8b2c1723a885c69fcc21d4d7b5217a432afe860d))
- **chore:** upgrade turbo ([2a0a5b408](https://github.com/monkeytypegame/monkeytype/commit/2a0a5b408cc38a678328c2ff44e281416ebb9c4d))
- **chore:** upgrade octokit/rest ([05c22a941](https://github.com/monkeytypegame/monkeytype/commit/05c22a9417523bcaab2643314e96d7b2082b56af))
v24.37.0
13 Sep 2024
Thank you to all the contributors who made this release possible!
### Features
- **language:** add javascript react language (@bdsqqq) ([#5873](https://github.com/monkeytypegame/monkeytype/pull/5873)) ([604fc208e](https://github.com/monkeytypegame/monkeytype/commit/604fc208eae8fe6e23fba9455d5ddcda379b56f1))
- **settings:** allow partial presets (@amarnathsama, @miodec, @fehmer) ([#5813](https://github.com/monkeytypegame/monkeytype/pull/5813)) ([8a6c81669](https://github.com/monkeytypegame/monkeytype/commit/8a6c81669e8853ab32cd1f708c58a5432066424b))
- **themes:** add suisei theme (@moonbamijam) ([#5820](https://github.com/monkeytypegame/monkeytype/pull/5820)) ([14277538c](https://github.com/monkeytypegame/monkeytype/commit/14277538c307a5b2a0d03b183418e45304278846))
### Improvements
- **language:** add common javascript words, symbols and functions (@bdsqqq) ([#5869](https://github.com/monkeytypegame/monkeytype/pull/5869)) ([dd93fdbf0](https://github.com/monkeytypegame/monkeytype/commit/dd93fdbf029b3cecf1404a90b69f217d4907f4c9))
- dont save results shorter than 1 second ([89016d390](https://github.com/monkeytypegame/monkeytype/commit/89016d390d7c8186eb61cc0e974e8cec699773fe))
### Fixes
- **quote search:** search service not building in code_javascript quotes (@NadAlaba) ([#5876](https://github.com/monkeytypegame/monkeytype/pull/5876)) ([f9bd7d778](https://github.com/monkeytypegame/monkeytype/commit/f9bd7d778b1554a4a8388807b5d3a6521f3fe542))
- lower accuracy requirement for accounts that have opted out of the leaderboards ([3478c21aa](https://github.com/monkeytypegame/monkeytype/commit/3478c21aa9b16ac012ebf30166dc18dff62396e4))
- multi-line words causing issues in ui scrolling and tape mode (@NadAlaba, @Miodec) ([#5857](https://github.com/monkeytypegame/monkeytype/pull/5857)) ([618d53ebf](https://github.com/monkeytypegame/monkeytype/commit/618d53ebff1f4b6ca7cb743702d6fd0100e7587e))
- unable to update profile with missing values (@fehmer) ([#5859](https://github.com/monkeytypegame/monkeytype/pull/5859)) ([9c083f239](https://github.com/monkeytypegame/monkeytype/commit/9c083f2397ff1aafbe12e106f2fe2072d57ff3b2))
- result filters defaults invalid (@fehmer) ([#5860](https://github.com/monkeytypegame/monkeytype/pull/5860)) ([6de9ad6e1](https://github.com/monkeytypegame/monkeytype/commit/6de9ad6e1ccb3164965fedfdc01329bc74207015))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **feat(dev):** add deepclone util function (@miodec) ([#5882](https://github.com/monkeytypegame/monkeytype/pull/5882)) ([70842599a](https://github.com/monkeytypegame/monkeytype/commit/70842599a937d63d1a49daf1ec1ce29195bb8f18))
- **impr:** use ts-rest for webhook endpoints (@fehmer, @miodec) ([#5871](https://github.com/monkeytypegame/monkeytype/pull/5871)) ([4f75a00cb](https://github.com/monkeytypegame/monkeytype/commit/4f75a00cb3a5325c99384bdaee7c3a03fc15371c))
- **impr:** move configuration checks to contracts (@fehmer) ([#5851](https://github.com/monkeytypegame/monkeytype/pull/5851)) ([b315836de](https://github.com/monkeytypegame/monkeytype/commit/b315836deefc51fcbeaab15b105e486fdc6c5971))
- **impr(dev):** add hotfix script ([f6a27b2d1](https://github.com/monkeytypegame/monkeytype/commit/f6a27b2d1886dd79ba26d1e2eae94f0e9401c851))
- **impr:** move permission checks to contracts (@fehmer, @miodec) ([#5848](https://github.com/monkeytypegame/monkeytype/pull/5848)) ([c7b3e2c91](https://github.com/monkeytypegame/monkeytype/commit/c7b3e2c916ee11c163feb60096caf9df942427d7))
- **fix:** unnecessary assertion ([e655aa741](https://github.com/monkeytypegame/monkeytype/commit/e655aa741aa960d99cfdc79c122447a31f45ad08))
- **fix:** unresolved ts type ([38d8ac721](https://github.com/monkeytypegame/monkeytype/commit/38d8ac7212da93e196af1df026cec384249ddca6))
- **fix(server):** get personal bests request mode2 should be optional ([d5fb24fb1](https://github.com/monkeytypegame/monkeytype/commit/d5fb24fb12dd2930e6ff3c2d9a043a5407d77e67))
- **refactor:** move file ([fa3ae6668](https://github.com/monkeytypegame/monkeytype/commit/fa3ae6668e24f916ab09ec3830c84c894a4a5f30))
- **refactor:** enable no-unsafe-assignment rule (@miodec) ([#5874](https://github.com/monkeytypegame/monkeytype/pull/5874)) ([955eeae2a](https://github.com/monkeytypegame/monkeytype/commit/955eeae2a7659d9541fc4a54d1dff8a4ea433c40))
- **refactor:** remove leftover code from ts-rest migration (@fehmer) ([#5875](https://github.com/monkeytypegame/monkeytype/pull/5875)) ([e19b3e3e8](https://github.com/monkeytypegame/monkeytype/commit/e19b3e3e8b5f9fa1fb8a0e8e4c37abb28a63c4e2))
- **refactor:** use css for heatmap colors (@fehmer) ([#5879](https://github.com/monkeytypegame/monkeytype/pull/5879)) ([98acf7561](https://github.com/monkeytypegame/monkeytype/commit/98acf756136e9be0f628e824bb0654cbf18fd7b4))
- **refactor:** enable no-unsafe-argument rule (@miodec) ([#5872](https://github.com/monkeytypegame/monkeytype/pull/5872)) ([93d6fff89](https://github.com/monkeytypegame/monkeytype/commit/93d6fff895fbd2574fa5691170f00a09ec59e366))
- **refactor:** rework rate limiting (@fehmer) ([#5845](https://github.com/monkeytypegame/monkeytype/pull/5845)) ([b06b9f73e](https://github.com/monkeytypegame/monkeytype/commit/b06b9f73e52645ee384f9065ff293de5e0a73951))
- **chore(deps):** bump express from 4.19.2 to 4.20.0 in /backend ([#5867](https://github.com/monkeytypegame/monkeytype/pull/5867)) ([c6daef0e9](https://github.com/monkeytypegame/monkeytype/commit/c6daef0e9d8799a15f03bc2150a91b827dc27fd5))
v24.36.0
06 Sep 2024
Thank you to all the contributors who made this release possible!
### Features
- **layout:** add the scythe layout (@forusu) ([#5854](https://github.com/monkeytypegame/monkeytype/pull/5854)) ([5f695b422](https://github.com/monkeytypegame/monkeytype/commit/5f695b422953a87a4fcb7bdcb7b69c40c7263210))
- **funbox:** add instant messaging (@fehmer) ([#5850](https://github.com/monkeytypegame/monkeytype/pull/5850)) ([77c1e8e29](https://github.com/monkeytypegame/monkeytype/commit/77c1e8e298042b4dd303e55d4a227ce09c3c463b))
### Improvements
- **settings:** add hints to tag buttons on mouseover (@fehmer) ([#5849](https://github.com/monkeytypegame/monkeytype/pull/5849)) ([8e0a6c341](https://github.com/monkeytypegame/monkeytype/commit/8e0a6c3417713cfd6bca3e6e1a94345a8472c8df))
- **quote:** add quotes in various languages ([#5832](https://github.com/monkeytypegame/monkeytype/pull/5832)) ([02490213d](https://github.com/monkeytypegame/monkeytype/commit/02490213d6c46987e7a6266f9418da4b225f4b6b))
### Fixes
- **caret:** getting last letter top in long multiline words (@NadAlaba) ([#5856](https://github.com/monkeytypegame/monkeytype/pull/5856)) ([cbaefbf21](https://github.com/monkeytypegame/monkeytype/commit/cbaefbf21010824fb0a602622fc1ecf88958f56e))
- **zen mode:** issues when changing tape mode and other caret issues (@NadAlaba) ([#5824](https://github.com/monkeytypegame/monkeytype/pull/5824)) ([661c13881](https://github.com/monkeytypegame/monkeytype/commit/661c1388124c986adf6f86ae50ae559c576646f4))
- cookie modal not being shown for new users ([8ddb23ac4](https://github.com/monkeytypegame/monkeytype/commit/8ddb23ac403655f00a593d1c3797682e08017ff6))
- words flashing when line jumping in some modes ([cc00295a5](https://github.com/monkeytypegame/monkeytype/commit/cc00295a5dc3332273b36b4df7e5d89e054704a8))
- **presets:** auto-switch theme checkbox values not loaded correctly (@amarnathsama) ([#5826](https://github.com/monkeytypegame/monkeytype/pull/5826)) ([253efb734](https://github.com/monkeytypegame/monkeytype/commit/253efb73406ba0607dab387a7a02e4b05ce91b9c))
- **release script:** not updating root `package.json` version + not supporting some shells (@NadAlaba) ([#5825](https://github.com/monkeytypegame/monkeytype/pull/5825)) ([faf522f21](https://github.com/monkeytypegame/monkeytype/commit/faf522f21f15d6e1abdd520e2882feab6bd005e5))
- **language:** duplicate word ([13eab0713](https://github.com/monkeytypegame/monkeytype/commit/13eab071391682fdf4ee8637ecccb79f8975248b))
- **language:** typos in english medical ([8a6d0a649](https://github.com/monkeytypegame/monkeytype/commit/8a6d0a64948fb5813fa676b14e8cab03b39d48c6))
- **funbox:** earthquake and simon says not working correctly (@fehmer) ([#5823](https://github.com/monkeytypegame/monkeytype/pull/5823)) ([8bef02f73](https://github.com/monkeytypegame/monkeytype/commit/8bef02f7393ca250cdaff1e5b9c20177a3372654))
- **sever:** wrong rate limiter being used for result post ([6e43e1c4d](https://github.com/monkeytypegame/monkeytype/commit/6e43e1c4dc6cf9dfe2a2a79fa44aa36c2070f64a))
- caps lock state sometimes being out of sync ([a6232beea](https://github.com/monkeytypegame/monkeytype/commit/a6232beea505125cec528cfe0d2c4c882f97d1b6))
- **sign up:** false positive typo warning when using hotmail.com ([d957e7afe](https://github.com/monkeytypegame/monkeytype/commit/d957e7afec98e590d7b498b5012c231cbbb5fe35))
- **funbox:** choo choo not working ([abdd66a27](https://github.com/monkeytypegame/monkeytype/commit/abdd66a27b174deaa8573dada2a91c8a2665e1b5))
- remove 2 misspelled words from english_450k (@pasanflo) ([#5809](https://github.com/monkeytypegame/monkeytype/pull/5809)) ([a53d60207](https://github.com/monkeytypegame/monkeytype/commit/a53d60207c36389d6ae2ac69923b7a1edbd1f7c5))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** use tsrest for user endpoints (@fehmer) ([#5815](https://github.com/monkeytypegame/monkeytype/pull/5815)) ([259894ab9](https://github.com/monkeytypegame/monkeytype/commit/259894ab9f635e966f343ccd50a7746d6858647e))
- **impr:** use tsrest for quotes endpoints (@fehmer) ([#5802](https://github.com/monkeytypegame/monkeytype/pull/5802)) ([1804ebcd8](https://github.com/monkeytypegame/monkeytype/commit/1804ebcd8a9b149dad86f6ba9fb6a6aa717fe266))
- **impr(PR labels):** automatically label PRs "waiting for review/update" (@sanidhyas3s) ([#5830](https://github.com/monkeytypegame/monkeytype/pull/5830)) ([1ba4be38d](https://github.com/monkeytypegame/monkeytype/commit/1ba4be38d040936ab04402f4f5a3ce047c1446bd))
- **impr:** use tsrest for dev endpoints (@fehmer) ([#5800](https://github.com/monkeytypegame/monkeytype/pull/5800)) ([30d440a70](https://github.com/monkeytypegame/monkeytype/commit/30d440a70e56abfdfb889e62646cb5cc04ad08aa))
- **impr:** use tsrest for configurations endpoint (@fehmer) ([#5796](https://github.com/monkeytypegame/monkeytype/pull/5796)) ([e2d574444](https://github.com/monkeytypegame/monkeytype/commit/e2d574444a84d58a6cf570d10ac2a292d0ef9fa8))
- **impr:** use ts-rest for results endpoint (@fehmer) ([#5758](https://github.com/monkeytypegame/monkeytype/pull/5758)) ([e03a25fb9](https://github.com/monkeytypegame/monkeytype/commit/e03a25fb92f5c4a8a4fb0b74387ef3f1b421b9b1))
- **fix:** server not logging exceptions ([73f379ae8](https://github.com/monkeytypegame/monkeytype/commit/73f379ae8aa74d9cd54125fc435e4c8110aaf7ff))
- **style(mini result chart modal):** fix incorrect height ([0d5ff3eb7](https://github.com/monkeytypegame/monkeytype/commit/0d5ff3eb70ad2be78297f9b3b8805a2f2808e7bb))
- **style:** fix some themes not working well with the new header menu ([14c121b9f](https://github.com/monkeytypegame/monkeytype/commit/14c121b9ff806e14df5f07bbc2af37e66239a5f5))
- **refactor:** determine active word based on logical value, not DOM class (@NadAlaba) ([#5834](https://github.com/monkeytypegame/monkeytype/pull/5834)) ([55496996d](https://github.com/monkeytypegame/monkeytype/commit/55496996de212b52a84105e2082c4dc66d96db90))
- **refactor:** await addWord if the test is out of words ([7b4a789f2](https://github.com/monkeytypegame/monkeytype/commit/7b4a789f2ea6e0c39731da207bd1a0f33f5482b7))
- **refactor:** update based on logical value, not DOM class ([c3274f0f0](https://github.com/monkeytypegame/monkeytype/commit/c3274f0f028c634fdf1fa4cabd8288c3e61ae660))
- **refactor:** rename some functions and variables for easier understanding ([9eb927b2f](https://github.com/monkeytypegame/monkeytype/commit/9eb927b2f42ac4dc4e74f73906c7fc72b07de667))
- **refactor:** remove ResultOmittableDefaultPropertiesSchema (@fehmer) ([#5827](https://github.com/monkeytypegame/monkeytype/pull/5827)) ([65ef5eaba](https://github.com/monkeytypegame/monkeytype/commit/65ef5eaba54e66da83a79ba183fe015cef734eeb))
- **refactor:** updateURL function for improved maintainability (@anthonypz) ([#5817](https://github.com/monkeytypegame/monkeytype/pull/5817)) ([8863fb70d](https://github.com/monkeytypegame/monkeytype/commit/8863fb70d12d71fdb0b1ee506be5f91c7177f43c))
- **refactor:** move mini result chart to the new modal system ([59a18680a](https://github.com/monkeytypegame/monkeytype/commit/59a18680a1f22a15b05f5d458e300f639c0b7e8a))
- **chore(PR labeler):** fix workflow having read access only, when triggered from forks (@NadAlaba) ([#5842](https://github.com/monkeytypegame/monkeytype/pull/5842)) ([6a24dbb98](https://github.com/monkeytypegame/monkeytype/commit/6a24dbb9860b2167c5fe2bfd3eba68458dc6ae48))
- **chore(server):** warn if object hash check is disabled ([38e0d5088](https://github.com/monkeytypegame/monkeytype/commit/38e0d5088561975c359e8326ff3d72f31ceaffef))
v24.34.0
20 Aug 2024
Thank you to all the contributors who made this release possible!
### Improvements
- move account settings to a separate page (@miodec) ([#5798](https://github.com/monkeytypegame/monkeytype/issues/5798)) ([47e52f0b1](https://github.com/monkeytypegame/monkeytype/commit/47e52f0b15612b288a2f8999377c0950ef61f223))
This change also creates a hover menu in the header which includes the new account settings. Sign out has also been moved to that menu.
- **language:** add common Java classes and words ([#5803](https://github.com/monkeytypegame/monkeytype/issues/5803)) ([03a08f402](https://github.com/monkeytypegame/monkeytype/commit/03a08f402cd2703e0f5bd1b20c71f4ced8c56b69))
- **account page:** automatically enable results if both results and accuracy are disabled to avoid confusion ([e3a40b46b](https://github.com/monkeytypegame/monkeytype/commit/e3a40b46b18bdfea97ae9863554a18af90d36a82))
### Fixes
- **hints:** hide hints in blind mode and update position on some config changes (@NadAlaba) ([#5754](https://github.com/monkeytypegame/monkeytype/issues/5754)) ([9e057dce8](https://github.com/monkeytypegame/monkeytype/commit/9e057dce87b23edfbd8141b88f85f431bc69f8aa))
- tape mode sometimes showing two cut off lines ([#for real this time](https://github.com/monkeytypegame/monkeytype/issues/for real this time)) ([46fa97008](https://github.com/monkeytypegame/monkeytype/commit/46fa97008643cf1912536932c98bf2ac3519bc42))
- tape mode sometimes showing two cut off lines ([6657c02d7](https://github.com/monkeytypegame/monkeytype/commit/6657c02d7deab2ffa121eea55a6b8b726508c9a0))
- account verification notice duplicating ([210d1aed9](https://github.com/monkeytypegame/monkeytype/commit/210d1aed9c8085bb7563d4ec3b545a5755c62971))
- **config:** some settings sometimes being reset on refresh ([cd3b95b38](https://github.com/monkeytypegame/monkeytype/commit/cd3b95b387f7a0484968dfd9af05268e401b1e73))
- legacy values in config not getting migrated (@fehmer) ([#5790](https://github.com/monkeytypegame/monkeytype/issues/5790)) ([4386999cc](https://github.com/monkeytypegame/monkeytype/commit/4386999cc37e4b8ee296c0ce8fc3572e7da8d721))
- result filters getting reset on page load (@fehmer) ([#5788](https://github.com/monkeytypegame/monkeytype/issues/5788)) ([fa9e877cc](https://github.com/monkeytypegame/monkeytype/commit/fa9e877cc34e80c9b429fc99cc748aa8623a9c45))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **style:** increase margin ([f25536a21](https://github.com/monkeytypegame/monkeytype/commit/f25536a218571d10e6961c53bf763b6530c07821))
- **style:** update email not verified warning styling ([2e22677df](https://github.com/monkeytypegame/monkeytype/commit/2e22677df0492aba8b1820920c4d68562231c205))
- **refactor(account button):** dont access snapshot directly, accept parameters instead ([3221968e5](https://github.com/monkeytypegame/monkeytype/commit/3221968e5216cefffe58556a6c8c8d2bd824a6ac))
- **refactor(sign in out button):** move dom modifying code to the element file ([aaadad081](https://github.com/monkeytypegame/monkeytype/commit/aaadad0812517aa07d32afc96319d45359b3b0fc))
- **refactor:** move all account button related code to one file ([8b4b24f0b](https://github.com/monkeytypegame/monkeytype/commit/8b4b24f0b14d3628990a2ec013d95da208af26e0))
- **ci:** skip semantic pr title for dependabot (@fehmer) ([#5786](https://github.com/monkeytypegame/monkeytype/issues/5786)) ([ffb04f2af](https://github.com/monkeytypegame/monkeytype/commit/ffb04f2af558d294a2cdf1a4b1cde4cc79baa912))
- **chore(deps-dev):** bump vite-plugin-checker from 0.6.4 to 0.7.2 ([#5808](https://github.com/monkeytypegame/monkeytype/issues/5808)) ([32d9fa49e](https://github.com/monkeytypegame/monkeytype/commit/32d9fa49e8109b79aef4a3cb8485cd6b35d9a3fe))
- **chore(deps-dev):** bump @typescript-eslint/parser from 8.0.1 to 8.2.0 ([#5807](https://github.com/monkeytypegame/monkeytype/issues/5807)) ([758ebd920](https://github.com/monkeytypegame/monkeytype/commit/758ebd920b5baf340448143d36daaadfdbad6d14))
- **chore(deps-dev):** bump @types/object-hash from 2.2.1 to 3.0.6 ([#5805](https://github.com/monkeytypegame/monkeytype/issues/5805)) ([7cd44812e](https://github.com/monkeytypegame/monkeytype/commit/7cd44812ea82f7e5114e1220a5c0d1b044ee2fb4))
- **chore(deps):** bump rate-limiter-flexible from 2.3.7 to 5.0.3 ([#5806](https://github.com/monkeytypegame/monkeytype/issues/5806)) ([f625eabf7](https://github.com/monkeytypegame/monkeytype/commit/f625eabf70ab60b5f04c3db0af87a5b2c872ec08))
- **chore(deps-dev):** bump @commitlint/config-conventional ([#5804](https://github.com/monkeytypegame/monkeytype/issues/5804)) ([4e735177d](https://github.com/monkeytypegame/monkeytype/commit/4e735177da141912602812a32ed23e96a65a1b0b))
- **chore:** make sure MongoDbMock is using the same configuration (@fehmer) ([#5792](https://github.com/monkeytypegame/monkeytype/issues/5792)) ([b48854bc9](https://github.com/monkeytypegame/monkeytype/commit/b48854bc9df1d84ff8d1936ea59041a336439da2))
- **chore:** add todo ([7ffb7ead0](https://github.com/monkeytypegame/monkeytype/commit/7ffb7ead0b162c1475dd036199942e3816c02071))
- **chore:** bump swagger-stats to 0.99.7 ([4f9ddd1a4](https://github.com/monkeytypegame/monkeytype/commit/4f9ddd1a471a7d84dcb325ab51fc1819b52291cb))
- **chore:** bump chartjs-plugin-annotation to 2.2.1 ([a0dcfbb6f](https://github.com/monkeytypegame/monkeytype/commit/a0dcfbb6f573b62bec031be247da527182efee96))
- **chore(deps):** bump chartjs-adapter-date-fns from 2.0.0 to 3.0.0 ([#5782](https://github.com/monkeytypegame/monkeytype/issues/5782)) ([a5bbf9856](https://github.com/monkeytypegame/monkeytype/commit/a5bbf9856fd7abaac69c621c93bcc44905fbbea0))
- **chore(deps-dev):** bump conventional-changelog from 4.0.0 to 6.0.0 ([#5783](https://github.com/monkeytypegame/monkeytype/issues/5783)) ([6684e7b9e](https://github.com/monkeytypegame/monkeytype/commit/6684e7b9ec7c67f73d4f900ebed6ffc907e00f2c))
- **chore(deps):** bump prom-client from 14.0.1 to 15.1.3 ([#5785](https://github.com/monkeytypegame/monkeytype/issues/5785)) ([dca7a84c8](https://github.com/monkeytypegame/monkeytype/commit/dca7a84c8447c6bd12fb0053bc669c9421ee87ac))
- **chore(deps):** bump dotenv from 10.0.0 to 16.4.5 ([#5784](https://github.com/monkeytypegame/monkeytype/issues/5784)) ([8af766efb](https://github.com/monkeytypegame/monkeytype/commit/8af766efbada1080da1b0269d0ce9707bef3c4a0))
- **chore:** log zod issues, not zod error ([b162e3ada](https://github.com/monkeytypegame/monkeytype/commit/b162e3ada102c9ca1d8e35253a6d9fbf2a68cfaf))
- **chore:** hide merch banner for now ([b50701ee2](https://github.com/monkeytypegame/monkeytype/commit/b50701ee2ab4caa79fade58d043b338b9b7d46b4))
- **chore(release package):** catch github release api error, notify user ([101beef87](https://github.com/monkeytypegame/monkeytype/commit/101beef87c89decc3fcf8c17bf6bb060780f8396))
- optimize permissions middleware (@fehmer) ([#5801](https://github.com/monkeytypegame/monkeytype/issues/5801)) ([4466acd6b](https://github.com/monkeytypegame/monkeytype/commit/4466acd6bcd7bb587fbaed7b3110c055274ffea7))
- **ci:** add ability to run ci on draft pull requests (@miodec) ([#5791](https://github.com/monkeytypegame/monkeytype/issues/5791)) ([945db7d20](https://github.com/monkeytypegame/monkeytype/commit/945db7d20c8e0cfc9734c4313b03020fa89665e2))
v24.33.0
14 Aug 2024
Thank you to all the contributors who made this release possible!
### Features
- **layout:** add the romak layout (@rafaelromao) ([#5741](https://github.com/monkeytypegame/monkeytype/issues/5741)) ([ff8464eef](https://github.com/monkeytypegame/monkeytype/commit/ff8464eef699d748abccd9053d5077f8211b04d4))
### Improvements
- **commandline:** preview error sound on hover (@Bretis2019) ([#5769](https://github.com/monkeytypegame/monkeytype/issues/5769)) ([38a852980](https://github.com/monkeytypegame/monkeytype/commit/38a852980897bf3133e4068086e7b15a8693ca7a))
- update filipino word list (@Killer8Hyper) ([#5768](https://github.com/monkeytypegame/monkeytype/issues/5768)) ([2ae398cda](https://github.com/monkeytypegame/monkeytype/commit/2ae398cdaf8c9d7928dee336b503aa4ba66d31f6))
- deep copy constant objects when retrieving them ([692d3f592](https://github.com/monkeytypegame/monkeytype/commit/692d3f5920c531ee476705247c0c9c930e49e733))
- update filipino word list (@Killer8Hyper) ([#5761](https://github.com/monkeytypegame/monkeytype/issues/5761)) ([6d000aec6](https://github.com/monkeytypegame/monkeytype/commit/6d000aec6af3bf0510d8f5472b50554a2095f619))
- notify user that captcha api failed to respond instead of throwing a server error ([316bbd33a](https://github.com/monkeytypegame/monkeytype/commit/316bbd33a63ad8adad126948319e8aa40c5cf3e5))
- **quote:** add quotes in various languages (@neinja007) ([#5767](https://github.com/monkeytypegame/monkeytype/issues/5767)) ([d5b243cf5](https://github.com/monkeytypegame/monkeytype/commit/d5b243cf5707558a9c86cd85d12cb7eb1e2c2998))
### Fixes
- **language:** add one thousandth word to english 1k (@avick-saha) ([#5757](https://github.com/monkeytypegame/monkeytype/issues/5757)) ([474ef2e53](https://github.com/monkeytypegame/monkeytype/commit/474ef2e53d04bea582e6a22b529d46e0d2cacdeb))
- **save custom text modal:** save button not being enabled (@brenob6) ([#5759](https://github.com/monkeytypegame/monkeytype/issues/5759)) ([d7a40c8d5](https://github.com/monkeytypegame/monkeytype/commit/d7a40c8d5ab798e14792dfd913c3374d7dd8668c))
- **server:** incorrect apekeys permission check ([77c9cc423](https://github.com/monkeytypegame/monkeytype/commit/77c9cc423f288aec08d729a56c41edceef16ff7f))
- **caret:** not working in zen mode ([002ef8f6b](https://github.com/monkeytypegame/monkeytype/commit/002ef8f6bf4b367ed3f6c9042e523c1dbae5ca5f))
- documentation link in settings (@fehmer) ([#5755](https://github.com/monkeytypegame/monkeytype/issues/5755)) ([a9caf2442](https://github.com/monkeytypegame/monkeytype/commit/a9caf24427153f5679f096e40b13f2418fc1bdcb))
- don't send authentication if user is not authenticated ([#@fehmer (5747](https://github.com/monkeytypegame/monkeytype/issues/@fehmer (5747)) ([0d7e3cf91](https://github.com/monkeytypegame/monkeytype/commit/0d7e3cf9164ca8b0858bbf9f6257ad5c283397d1))
- **caret:** jumping in word tape mode and RTL position issues (@NadAlaba) ([#5726](https://github.com/monkeytypegame/monkeytype/issues/5726)) ([657d305ab](https://github.com/monkeytypegame/monkeytype/commit/657d305abca1601ce2eb0e12f680a63d9d8d6149))
- **quote:** update or remove quotes reported by users ([e1a2020b0](https://github.com/monkeytypegame/monkeytype/commit/e1a2020b01ea82b008963fa39f4f3ccc97cb36d6))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(ls with schema):** verify schema after migration ([13457cf6c](https://github.com/monkeytypegame/monkeytype/commit/13457cf6c74ff1eda592a08815da97a296d133dd))
- **impr(server):** log unknown validation errors (@fehmer) ([#5777](https://github.com/monkeytypegame/monkeytype/issues/5777)) ([6458b248d](https://github.com/monkeytypegame/monkeytype/commit/6458b248d76497d58975c8eeea249f263c7dce50))
- **impr:** add req.method to dev slowdown log ([19cef8b4a](https://github.com/monkeytypegame/monkeytype/commit/19cef8b4af4e48a8be85ea22137ac12818751912))
- **impr:** add local storage with schema class to improve type safety (@miodec) ([#5763](https://github.com/monkeytypegame/monkeytype/issues/5763)) ([55e183e7b](https://github.com/monkeytypegame/monkeytype/commit/55e183e7bb963b5c7ad3f2892d44bc8397375901))
- **impr:** use tsrest for leaderboard endpoints (@fehmer) ([#5717](https://github.com/monkeytypegame/monkeytype/issues/5717)) ([c6e8f413f](https://github.com/monkeytypegame/monkeytype/commit/c6e8f413fc6f01621a0ab38802cc8cd41f9de4c0))
- **impr:** use tsrest for public endpoints (@fehmer) ([#5716](https://github.com/monkeytypegame/monkeytype/issues/5716)) ([c50535cd0](https://github.com/monkeytypegame/monkeytype/commit/c50535cd0f2c801550ffeafca5a1de142ec341b1))
- **impr:** use authentication state instead of the dom ([6c9148624](https://github.com/monkeytypegame/monkeytype/commit/6c9148624e4014f4093233df063979fb872d40ad))
- **impr:** export cf purge script ([c2d08096e](https://github.com/monkeytypegame/monkeytype/commit/c2d08096ed0ee09be98cc22f8dfc69e1a2fa0bd7))
- **impr:** use tsrest for psa endpoints (@fehmer) ([#5712](https://github.com/monkeytypegame/monkeytype/issues/5712)) ([f6ec00650](https://github.com/monkeytypegame/monkeytype/commit/f6ec0065074474f8b05862845e882f9d5d1048e4))
- **impr:** use tsrest for admin endpoint (@fehmer) ([#5713](https://github.com/monkeytypegame/monkeytype/issues/5713)) ([460f803bc](https://github.com/monkeytypegame/monkeytype/commit/460f803bca6718b582bc600c15d988a7485ea399))
- **fix:** default result filters not passing schema ([38aa79a35](https://github.com/monkeytypegame/monkeytype/commit/38aa79a3504c9e8844e565292c5375a4e7ce4a9a))
- **fix(dev):** mark dev tasks as persistent ([12cd29c12](https://github.com/monkeytypegame/monkeytype/commit/12cd29c1288fbe5e50af223898ea948d74985743))
- **fix:** remove tailing slashes from new endpoint urls (@fehmer) ([#5745](https://github.com/monkeytypegame/monkeytype/issues/5745)) ([2d24fc323](https://github.com/monkeytypegame/monkeytype/commit/2d24fc323e94aae83ae4897938f9d8c0f8b8542b))
- **fix:** sh scripts sometimes not finding .env file ([d57e318cf](https://github.com/monkeytypegame/monkeytype/commit/d57e318cf10652f36ca173d723269513ed8570a4))
- **fix:** incorrect paths ([cdfcc9e66](https://github.com/monkeytypegame/monkeytype/commit/cdfcc9e663b57c2765ee01db83c40b337371e5bf))
- **fix(ci):** errors when running on push ([749f2af10](https://github.com/monkeytypegame/monkeytype/commit/749f2af10b3ef666f809492471b7dc6fa6bf1c68))
- **style:** only apply error underline when moving to the next word ([24e94479d](https://github.com/monkeytypegame/monkeytype/commit/24e94479d3cc1f95e56e7d98c29d4c28a37ed75f))
- **style:** sliiiightly increase the horizontal word margin ([142b51cc2](https://github.com/monkeytypegame/monkeytype/commit/142b51cc260f1929c2f064519da405f039a273a7))
- **style(settings page):** fix pace caret buttons text overflow ([41638dd14](https://github.com/monkeytypegame/monkeytype/commit/41638dd1424043d187ba0eb8c83e6adf2e1202f6))
- **refactor:** use single client for whole contract on frontend (@fehmer) ([#5752](https://github.com/monkeytypegame/monkeytype/issues/5752)) ([cfea8eef1](https://github.com/monkeytypegame/monkeytype/commit/cfea8eef19f925a2d918e9ce3cd1eb0aadf3a955))
- **refactor:** implement recordClientVersion as middleware (@fehmer) ([#5750](https://github.com/monkeytypegame/monkeytype/issues/5750)) ([02505750a](https://github.com/monkeytypegame/monkeytype/commit/02505750ad98f3d5f3ac525458716a0c550c5993))
- **refactor:** getLocalPb returns pb object instead of just wpm ([f32846de3](https://github.com/monkeytypegame/monkeytype/commit/f32846de32802d13e998afed038896eb2154623f))
- **refactor:** move psa check to after auth was initialised ([90e3ad495](https://github.com/monkeytypegame/monkeytype/commit/90e3ad4957cb183914087a033bd78d698f2b2a01))
- **refactor:** move release code to a package (@miodec) ([#5743](https://github.com/monkeytypegame/monkeytype/issues/5743)) ([1eebf748b](https://github.com/monkeytypegame/monkeytype/commit/1eebf748ba64f4cf21ec27ca9fe9ebd26ffe6e05))
- **refactor:** change hideExtraLetters from being html based to css based ([a558a59a5](https://github.com/monkeytypegame/monkeytype/commit/a558a59a5ad2fd16d7335093a5d981eab6bd8809))
- **ci:** fix backend vitest.config (@fehmer) ([#5780](https://github.com/monkeytypegame/monkeytype/issues/5780)) ([6fdfb5849](https://github.com/monkeytypegame/monkeytype/commit/6fdfb5849b40d031c0ce4cf6daff186b87299b8a))
- **ci:** skip semantic pr title for dependabot (@fehmer) ([#5776](https://github.com/monkeytypegame/monkeytype/issues/5776)) ([f92c1023b](https://github.com/monkeytypegame/monkeytype/commit/f92c1023bb7c879c240a94ca49ac0e5a5003593f))
- **ci:** fix prettier failing on removed files (@fehmer) ([#5742](https://github.com/monkeytypegame/monkeytype/issues/5742)) ([b484d1545](https://github.com/monkeytypegame/monkeytype/commit/b484d1545ab02d171d95ccf87b70465ccf8c0e19))
- **ci:** skip full checkout on pre-ci on pull requests (@fehmer) ([#5738](https://github.com/monkeytypegame/monkeytype/issues/5738)) ([6c18504c8](https://github.com/monkeytypegame/monkeytype/commit/6c18504c83e430d7d2fe68661ec3ca8300e36f9b))
- **ci:** skip cache download on prime-cache job (@fehmer) ([#5737](https://github.com/monkeytypegame/monkeytype/issues/5737)) ([ffacc0a5f](https://github.com/monkeytypegame/monkeytype/commit/ffacc0a5f202fe5e10960de6c7898f678c5a8edc))
- **chore(deps-dev):** bump @types/string-similarity from 4.0.0 to 4.0.2 ([#5772](https://github.com/monkeytypegame/monkeytype/issues/5772)) ([704679931](https://github.com/monkeytypegame/monkeytype/commit/704679931f1e27d25dc232b50ea5a882bad5c3b8))
- **chore(deps):** bump axios from 1.6.4 to 1.7.4 in /frontend (@dependabot) ([#5779](https://github.com/monkeytypegame/monkeytype/issues/5779)) ([5694dacbd](https://github.com/monkeytypegame/monkeytype/commit/5694dacbdfded6807bffa44e86d62e7ea844024c))
- **chore:** set dependabot to use pnpm ([4ccbdb16f](https://github.com/monkeytypegame/monkeytype/commit/4ccbdb16f18a4e89b507cad632f0025ad4078a0b))
- **chore(deps-dev):** bump turbo from 2.0.9 to 2.0.12 ([#5775](https://github.com/monkeytypegame/monkeytype/issues/5775)) ([37706da29](https://github.com/monkeytypegame/monkeytype/commit/37706da29cb17b3719e510842fc3b3c2858045d9))
- **chore(deps-dev):** bump madge from 6.1.0 to 8.0.0 (@dependabot) ([#5774](https://github.com/monkeytypegame/monkeytype/issues/5774)) ([68efbcec2](https://github.com/monkeytypegame/monkeytype/commit/68efbcec21c4d9a4e6159e3145d47cf5b3e0e9d1))
- **chore(deps):** bump nodemailer and @types/nodemailer (@dependabot) ([#5773](https://github.com/monkeytypegame/monkeytype/issues/5773)) ([52e17d3b5](https://github.com/monkeytypegame/monkeytype/commit/52e17d3b50fc123bb975c1ef20edf64a236f17a0))
- **chore(deps-dev):** bump firebase-tools from 13.13.3 to 13.15.1 (@dependabot) ([#5771](https://github.com/monkeytypegame/monkeytype/issues/5771)) ([92e270ae9](https://github.com/monkeytypegame/monkeytype/commit/92e270ae9afbbdaad9d28bf4a6b8078a80f56bca))
- **chore:** add icloud typos ([a46872847](https://github.com/monkeytypegame/monkeytype/commit/a46872847bce495103c061e57ea07f306a4f351f))
- **chore:** update vitest to 2.0.5 (@fehmer) ([#5770](https://github.com/monkeytypegame/monkeytype/issues/5770)) ([1c9dbccfa](https://github.com/monkeytypegame/monkeytype/commit/1c9dbccfa305fd317ebae86f1c1da5f31a0f84ee))
- **chore:** allow expressions in explicit-function-return-type rule ([ed47fb73a](https://github.com/monkeytypegame/monkeytype/commit/ed47fb73a87dcd33a3db0f0ee2f623676ebd53ba))
- **chore:** fix test coverage not working with vitest workspaces (@fehmer) ([#5764](https://github.com/monkeytypegame/monkeytype/issues/5764)) ([092d513f0](https://github.com/monkeytypegame/monkeytype/commit/092d513f01ad91cfa36eb5c20a67291bd895aebe))
- **chore:** add test case for apekey permission bug (@fehmer) ([#5762](https://github.com/monkeytypegame/monkeytype/issues/5762)) ([ef8dfe227](https://github.com/monkeytypegame/monkeytype/commit/ef8dfe22726b0ce96ffcb9e21b61e880ac231278))
- **chore:** add vitest workspace configuration file ([61c913403](https://github.com/monkeytypegame/monkeytype/commit/61c9134030d6b7ce3b1bec7a9e4da07f7cb21206))
- **chore:** fix eslint in dev script ([4995f042a](https://github.com/monkeytypegame/monkeytype/commit/4995f042ac862e2489a7d361f2cffd8e31ab017e))
- **chore:** add more recommended extensions ([3eca42218](https://github.com/monkeytypegame/monkeytype/commit/3eca42218212bde696c2ceb9cf2d9e1189d0595b))
- **chore:** rebuild all files instead of just what changed ([295e47638](https://github.com/monkeytypegame/monkeytype/commit/295e47638e48edb3fe1bf94800fcd1e5e9e8f3a8))
- **chore:** replace all eslint warnings with errors ([8e343bc39](https://github.com/monkeytypegame/monkeytype/commit/8e343bc39066d724d6a039e3d549a3c3f2d18627))
- **chore:** remove some unnecessary root dependencies, move to correct packages (@miodec) ([#5751](https://github.com/monkeytypegame/monkeytype/issues/5751)) ([782eea643](https://github.com/monkeytypegame/monkeytype/commit/782eea643b5596556aa6224938dc4ded3c2e9ee2))
- **chore:** move example.env to release package ([d27c62294](https://github.com/monkeytypegame/monkeytype/commit/d27c622943985de4975ff88bd37e4bb676537126))
- **chore:** add ts-check script ([24f9a6c07](https://github.com/monkeytypegame/monkeytype/commit/24f9a6c0799a279d3a6b1c18dc7cabd6cb20be05))
- **chore:** remove word from profanities list ([690dee125](https://github.com/monkeytypegame/monkeytype/commit/690dee12578a49b6a263a67d06879c9c19cdb0f6))
- **chore:** add test for recordClientVersion (@fehmer) ([#5746](https://github.com/monkeytypegame/monkeytype/issues/5746)) ([45d27b5e0](https://github.com/monkeytypegame/monkeytype/commit/45d27b5e00508d23bb702f4190a5c196b1b5829a))
- **chore:** export deploy backend script ([0a0f17529](https://github.com/monkeytypegame/monkeytype/commit/0a0f17529193814fcb64d55e0ad214ae35288c93))
- **chore:** quote lengths script ([c33a08716](https://github.com/monkeytypegame/monkeytype/commit/c33a087161203162af615fd9dba00a71da2a0b71))
- **chore:** add more badges to readme (@fehmer) ([#5744](https://github.com/monkeytypegame/monkeytype/issues/5744)) ([f929d65a6](https://github.com/monkeytypegame/monkeytype/commit/f929d65a6cb7d0f7eb6352f4c849265856818d8c))
- **chore:** run anticheat for banned accounts ([27e66f7f8](https://github.com/monkeytypegame/monkeytype/commit/27e66f7f8a4f9fb1587747d1dcba1473edfbdf3c))
- **chore(deps-dev):** bump typescript from 5.3.3 to 5.5.4 (@dependabot) ([#5734](https://github.com/monkeytypegame/monkeytype/issues/5734)) ([dfdf3fc6c](https://github.com/monkeytypegame/monkeytype/commit/dfdf3fc6cdff994bca2a1d16256b2a84bd629938))
- **chore:** fix tests using machine timezone (@fehmer) ([#5740](https://github.com/monkeytypegame/monkeytype/issues/5740)) ([9f9663682](https://github.com/monkeytypegame/monkeytype/commit/9f9663682dedc507b8207c4737c903c01251c4b7))
- **chore(deps):** bump nodemon from 3.0.1 to 3.1.4 (@dependabot) ([#5733](https://github.com/monkeytypegame/monkeytype/issues/5733)) ([c413cbd36](https://github.com/monkeytypegame/monkeytype/commit/c413cbd36471efb593b1dbefaf9016fc9e3d6562))
- **chore(deps):** bump uuid and @types/uuid (@dependabot) ([#5735](https://github.com/monkeytypegame/monkeytype/issues/5735)) ([35379383a](https://github.com/monkeytypegame/monkeytype/commit/35379383a0eb9e652835feda2a7b6bff301207eb))
- **chore(deps-dev):** bump autoprefixer from 10.4.14 to 10.4.20 (@dependabot) ([#5732](https://github.com/monkeytypegame/monkeytype/issues/5732)) ([613687cbf](https://github.com/monkeytypegame/monkeytype/commit/613687cbf87a054f2d91908adbd16f430230cd86))
- **chore(deps-dev):** bump rimraf from 5.0.9 to 6.0.1 (@dependabot) ([#5731](https://github.com/monkeytypegame/monkeytype/issues/5731)) ([aac2ef131](https://github.com/monkeytypegame/monkeytype/commit/aac2ef13131235b4b1d2b546856c422b63934f66))
- **chore:** add search ignore paths ([6ad433094](https://github.com/monkeytypegame/monkeytype/commit/6ad433094671a9f2811ed510b3dae32f0fa3d707))
- **release package:** incorrect path ([8c6be2cca](https://github.com/monkeytypegame/monkeytype/commit/8c6be2cca426cf83a91939cf441066dc4cce813f))
v24.32.0
05 Aug 2024
Thank you to all the contributors who made this release possible!
### Features
- last signed out result modal ([7306cf8a9](https://github.com/monkeytypegame/monkeytype/commit/7306cf8a9fc74a942385b0e4ad6f92a6c77ef889))
Now, instead of always saving the last result when loggin in, a popup will be shown where you can view the last result. Then you can decide if you want to save it or discard it.
- **funbox:** add hexadecimal (@asasine) ([#5724](https://github.com/monkeytypegame/monkeytype/issues/5724)) ([b26cb887e](https://github.com/monkeytypegame/monkeytype/commit/b26cb887e445d6211b0098a66b8e6d9f47679b1f))
- **languages:** add portuguese 320k and 550k (@jeffersonjpr) ([#5698](https://github.com/monkeytypegame/monkeytype/issues/5698)) ([c79115684](https://github.com/monkeytypegame/monkeytype/commit/c7911568486d4fe3e9b36fca34c41c5a6c2dd3e6))
### Improvements
- **pace caret:** add tags pb mode (@NadAlaba) ([#5715](https://github.com/monkeytypegame/monkeytype/issues/5715)) ([738574ed3](https://github.com/monkeytypegame/monkeytype/commit/738574ed331a0defeeae70b8ea8222c7eca03032))
- **settings:** replace sound volume with a slider (@amarnathsama) ([#5702](https://github.com/monkeytypegame/monkeytype/issues/5702)) ([8c7ece372](https://github.com/monkeytypegame/monkeytype/commit/8c7ece372197bcbe4d4253320538ea095ca3dcec))
- remove ñ from lazy mode replacements ([8527b33b0](https://github.com/monkeytypegame/monkeytype/commit/8527b33b06c0cb5ae48701c8dac0df2e07e6e331))
- **quote:** add quotes in various languages (@266-750Balloons) ([#5705](https://github.com/monkeytypegame/monkeytype/issues/5705)) ([a3661ec89](https://github.com/monkeytypegame/monkeytype/commit/a3661ec894468ded9136861acafb174742d0085f))
### Fixes
- thai ligature rendering ([6e9e1e721](https://github.com/monkeytypegame/monkeytype/commit/6e9e1e721dffca434dcc506015433f25fa709037))
- **pb crown:** incorrect class names causing ineligible warning or pending state to not show ([7b7b1c86e](https://github.com/monkeytypegame/monkeytype/commit/7b7b1c86ea7375d0e3c31cf31ce06893e5885f70))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** add "student" to education email regex ([ddebf5745](https://github.com/monkeytypegame/monkeytype/commit/ddebf57454b5bfe1270d0af2c3a0c20c39b64487))
- **impr:** add email typo to the list ([de79d469c](https://github.com/monkeytypegame/monkeytype/commit/de79d469cbd914a92fc2a80a2d107ab7c6bfc11c))
- **fix:** csp preventing new documentation unable to display logo (@fehmer) ([#5719](https://github.com/monkeytypegame/monkeytype/issues/5719)) ([4a55db528](https://github.com/monkeytypegame/monkeytype/commit/4a55db5284899fd836a917831fe3e1151151f57d))
- **refactor:** move pb crown aria-label text update to a function ([cbd6725ad](https://github.com/monkeytypegame/monkeytype/commit/cbd6725ad695c1979e96ce19a9be4cc477e4ecca))
- **ci:** run time improvements (@miodec) ([#5730](https://github.com/monkeytypegame/monkeytype/issues/5730)) ([3568818b4](https://github.com/monkeytypegame/monkeytype/commit/3568818b442b1be8a1e34a96f2ce3dc1ba1857e7))
- **chore:** remove unused code ([f0441e2b6](https://github.com/monkeytypegame/monkeytype/commit/f0441e2b66b613fd09c39cfdbb1b3ce9aaafb891))
- **chore:** missing min string length causing firebase to throw errors ([fb45f05c3](https://github.com/monkeytypegame/monkeytype/commit/fb45f05c3f4804ce4a5c874c6555df775f6ac8f7))
- **chore:** fix lint warnings ([98108dead](https://github.com/monkeytypegame/monkeytype/commit/98108dead8e508f477c0ffd33229cb08aac96c85))
v24.31.3
02 Aug 2024
Thank you to all the contributors who made this release possible!
### Fixes
- **frontend api adapter:** use abortcontroller.abort when abortsignal.timeout is not available (@miodec) ([#5714](https://github.com/monkeytypegame/monkeytype/issues/5714)) ([fe50fe165](https://github.com/monkeytypegame/monkeytype/commit/fe50fe1659ee65d07582e9e70f746a3f4f0529aa))
- **caret:** incorrect placement in tape mode: word ([b22e0a407](https://github.com/monkeytypegame/monkeytype/commit/b22e0a407df294ca4886318ec85699f08590472d))
- not being able to make requests on very old browsers (@fehmer) ([#5711](https://github.com/monkeytypegame/monkeytype/issues/5711)) ([482de2946](https://github.com/monkeytypegame/monkeytype/commit/482de29460499645e47250a3ea163403b0adbb67))
- **caret:** incorrect placement in tape mode ([981f9668c](https://github.com/monkeytypegame/monkeytype/commit/981f9668c97a2acd936e7b6e2df8c415a7ed34ac))
- **config:** keymap size not persisting ([9858d93dc](https://github.com/monkeytypegame/monkeytype/commit/9858d93dc229e297a267ee59f8ba9e8400184594))
- **funbox:** sometimes generating unrealistic ip addresses (@rizwanmustafa) ([#5682](https://github.com/monkeytypegame/monkeytype/issues/5682)) ([7a4db1ef9](https://github.com/monkeytypegame/monkeytype/commit/7a4db1ef9c8b8abef371f17627bf6d8ae7794322))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** use tsrest for ape-keys endpoint (@fehmer) ([#5706](https://github.com/monkeytypegame/monkeytype/issues/5706)) ([8a09acd8d](https://github.com/monkeytypegame/monkeytype/commit/8a09acd8d50c7429204262c27ddbd43fe88bfb4e))
- **impr(server):** store some logs forever (@miodec) ([#5708](https://github.com/monkeytypegame/monkeytype/issues/5708)) ([a6912d20a](https://github.com/monkeytypegame/monkeytype/commit/a6912d20aff39545694567f0ec20e1e4e6764999))
- **impr(ci):** verify pr titles include author name (@rizwanmustafa) ([#5707](https://github.com/monkeytypegame/monkeytype/issues/5707)) ([c6550eb8d](https://github.com/monkeytypegame/monkeytype/commit/c6550eb8df265c40a632d406f1462bd468ada3a8))
- **impr(relase script):** add no-verify to git commands ([a4b0dc049](https://github.com/monkeytypegame/monkeytype/commit/a4b0dc04956c75e57363370a9a1ce5b4680eac28))
- **build(contracts):** fix output paths for windows (@NadAlaba) ([#5700](https://github.com/monkeytypegame/monkeytype/issues/5700)) ([feaff239f](https://github.com/monkeytypegame/monkeytype/commit/feaff239f2bb904c6bc6c6f356719774deadd335))
- **build(backend):** activate inspector to allow attaching debugger (@NadAlaba) ([#5704](https://github.com/monkeytypegame/monkeytype/issues/5704)) ([8bc47960e](https://github.com/monkeytypegame/monkeytype/commit/8bc47960eff27cce9c1c5043f1778d185ef2a59e))
- **chore:** fix dirname not defined in nodejs modules ([9972e9d39](https://github.com/monkeytypegame/monkeytype/commit/9972e9d39f18653a91bfebee1afdf5aa77cae9bd))
- **chore(eslint):** add 2 rules ([3917cc435](https://github.com/monkeytypegame/monkeytype/commit/3917cc4354247edc265a7ebc62a619e8a2731823))
- **chore(deps):** remove release-it ([aa5166876](https://github.com/monkeytypegame/monkeytype/commit/aa51668768858e14aa822c19f3b729bf60355f3a))
v24.31.2
31 Jul 2024
This release is mostly a test of the new release script.
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **chore:** add custom release script ([25c6fa834](https://github.com/monkeytypegame/monkeytype/commit/25c6fa83407e1bd75cddaec7ff085d6f61ebc653))
- **impr(release script):** check if local master is in sync with origin ([f4d3380e0](https://github.com/monkeytypegame/monkeytype/commit/f4d3380e0e903abfa06ab64e36c8f56b95d108ac))
- **chore:** remove console logs of failed lines ([c74068a6a](https://github.com/monkeytypegame/monkeytype/commit/c74068a6af3687857e3893b5894de837835b164b))
v24.31.1
31 Jul 2024
Thank you to all the contributors who made this release possible!
### Features
- add keymap size (@butterflycup, @fehmer, @miodec) ([#5659](https://github.com/monkeytypegame/monkeytype/issues/5659)) ([c906bfbe2](https://github.com/monkeytypegame/monkeytype/commit/c906bfbe26e84d269b1fce9abc4d5721df486ee5))
- **layout:** add xenia_alt and hyperroll (@PTLux1517) ([#5662](https://github.com/monkeytypegame/monkeytype/issues/5662)) ([e8ddd7785](https://github.com/monkeytypegame/monkeytype/commit/e8ddd7785eb3fdc3baeefd91e031e3e1fcc8eba8))
- **practice:** add option to practice missed biwords (@sanidhyas3s) ([#5637](https://github.com/monkeytypegame/monkeytype/issues/5637)) ([da555e6ba](https://github.com/monkeytypegame/monkeytype/commit/da555e6ba9b5d1c40c9efad4fb729d4a51f96651))
### Improvements
- **account page:** add icons to titles ([b4fc3da2a](https://github.com/monkeytypegame/monkeytype/commit/b4fc3da2a6fe74c73e0c0e97a6fcc0cf438bb7f5))
- **edit result tags:** display unkown tags so that they can be removed from results ([395bfae3a](https://github.com/monkeytypegame/monkeytype/commit/395bfae3aac44bf9d14e8586c1f4b0566b1e73bc))
- **quote:** add quotes in various languages (@Dagio2406) ([#5665](https://github.com/monkeytypegame/monkeytype/issues/5665)) ([033d43d87](https://github.com/monkeytypegame/monkeytype/commit/033d43d87aa273ea0848426d22a7ba87c5f65f12), [29c78e8d5](https://github.com/monkeytypegame/monkeytype/commit/29c78e8d51a90cd923ea3eeddacddade93f8874e))
### Fixes
- repeated tests that use pipe delimiter would not load correctly ([f86d6fcf1](https://github.com/monkeytypegame/monkeytype/commit/f86d6fcf1c6cc543eb49147b2d3da31e13868dea))
- **quotes:** grammatical errors in spanish quotes (Dagio2406) ([#5673](https://github.com/monkeytypegame/monkeytype/issues/5673)) ([dd4a21edb](https://github.com/monkeytypegame/monkeytype/commit/dd4a21edb10e5edaa0f75bc17a0539758ab61a4d))
- **caret:** blind mode not stopping caret in tape mode word ([936aac677](https://github.com/monkeytypegame/monkeytype/commit/936aac677f3033d250fe9ca89a16c160c66ef301))
- **tooltips:** remaining visible after clicking buttons with a mouse ([6f14d0ea0](https://github.com/monkeytypegame/monkeytype/commit/6f14d0ea043cc9eebb12dbf372c587e341fcdd60))
- **tape mode:** scrolling sometimes glitching out and not being smooth ([cdb926e12](https://github.com/monkeytypegame/monkeytype/commit/cdb926e1239dd75ef3aa695713b5e2a11b066f29))
- blind mode not working in highlight mode off ([47ef6575a](https://github.com/monkeytypegame/monkeytype/commit/47ef6575a685ae189672e3784e3558771c7035c1))
- **quote:** update or remove quotes reported by users ([f594244e3](https://github.com/monkeytypegame/monkeytype/commit/f594244e322740840b93db4e034c0a4309bcd33b))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** school email detection regex ([20c2fbc11](https://github.com/monkeytypegame/monkeytype/commit/20c2fbc1166aad04e36a5abe88b707ae345af3fb))
- **impr:** use tsrest for presets endpoints (@fehmer) ([#5675](https://github.com/monkeytypegame/monkeytype/issues/5675)) ([6c6e1529a](https://github.com/monkeytypegame/monkeytype/commit/6c6e1529a2b5d98bc11b27ee9ecdbc3d2d3a718f))
- **impr:** use tsrest/zod for config endpoints (@fehmer) ([#5649](https://github.com/monkeytypegame/monkeytype/issues/5649)) ([7f9f704dc](https://github.com/monkeytypegame/monkeytype/commit/7f9f704dcd110245a20d48d3e6339f0f2f05b239))
- **fix:** missing env definition ([751763cc8](https://github.com/monkeytypegame/monkeytype/commit/751763cc82f8a7dc7d5e5c19b0b733146af3866d))
- **style(cookie modal):** fix incorrect text colors ([e55cd7bcb](https://github.com/monkeytypegame/monkeytype/commit/e55cd7bcb65cddeecd284a6a6bc8122444a24004))
- **style:** fix custom background filters media query ([d96832c92](https://github.com/monkeytypegame/monkeytype/commit/d96832c9273ad8e4a7993e8c75721caa8bf6e0d5))
- **ci:** build fe/be if packages changed (@fehmer) ([#5674](https://github.com/monkeytypegame/monkeytype/issues/5674)) ([df8d79978](https://github.com/monkeytypegame/monkeytype/commit/df8d799781f775f2b3103339d9dbfcfccb3f838d))
- **ci:** move pretty check to one job, stop the rest of the ci from running when prettier errors ([#5670](https://github.com/monkeytypegame/monkeytype/issues/5670)) ([6554f0b2a](https://github.com/monkeytypegame/monkeytype/commit/6554f0b2a9887538d60bb3de2c0c19cafe2ab34c))
- **ci:** add prettier check in the assets job ([#5668](https://github.com/monkeytypegame/monkeytype/issues/5668)) ([daa930bcd](https://github.com/monkeytypegame/monkeytype/commit/daa930bcd89ea1707fb4ec949a4bb1a40cb664b6))
- **test:** updateAltGrState (@marcosatc147) ([#5656](https://github.com/monkeytypegame/monkeytype/issues/5656)) ([aa74c5eaa](https://github.com/monkeytypegame/monkeytype/commit/aa74c5eaa03f60ee2b9cebd9db8cc79cc04fa74b))
- **chore:** release v24.31.1 ([7e32c78c1](https://github.com/monkeytypegame/monkeytype/commit/7e32c78c1503c11e902546eb80669770fa1e7b54))
- **chore(deps):** bump firebase version ([594db598d](https://github.com/monkeytypegame/monkeytype/commit/594db598da18be2012ce36ba20182489baf8fc27))
- **chore:** switch from npm to pnpm ([#5690](https://github.com/monkeytypegame/monkeytype/issues/5690)) ([2720c0766](https://github.com/monkeytypegame/monkeytype/commit/2720c07664823e0635e83961757810b00c6697ad))
- **chore(lint):** enable no unsafe return ([47438fa8d](https://github.com/monkeytypegame/monkeytype/commit/47438fa8d1b0152cda38e943e59607e6401edbff))
- **chore:** upgrade node to 20.16.0 ([#5688](https://github.com/monkeytypegame/monkeytype/issues/5688)) ([1110248f7](https://github.com/monkeytypegame/monkeytype/commit/1110248f7b44906b90e2afddafdf2322742b557c))
- **chore:** add more eslint rules ([#5687](https://github.com/monkeytypegame/monkeytype/issues/5687)) ([fe7a67d0f](https://github.com/monkeytypegame/monkeytype/commit/fe7a67d0fb2803d91a8cfe740e854800c033beef))
- **chore:** remove config from shared-types (@fehmer) ([#5681](https://github.com/monkeytypegame/monkeytype/issues/5681)) ([6b9f4a0f1](https://github.com/monkeytypegame/monkeytype/commit/6b9f4a0f18c67ffedb8a13d1af1d92918ad67264))
- **chore:** bump throttle-debounce to 5.0.2 ([#5684](https://github.com/monkeytypegame/monkeytype/issues/5684)) ([1164f4a11](https://github.com/monkeytypegame/monkeytype/commit/1164f4a11437ec48de5fc352763d1b4340c6d1ce))
- **chore(deps):** bump stemmer from 2.0.0 to 2.0.1 ([#5679](https://github.com/monkeytypegame/monkeytype/issues/5679)) ([3b29ad4b1](https://github.com/monkeytypegame/monkeytype/commit/3b29ad4b1d9d3322f141ec4bb1e53e376fb53a9f))
- **chore(deps-dev):** bump @types/bcrypt from 5.0.0 to 5.0.2 ([#5677](https://github.com/monkeytypegame/monkeytype/issues/5677)) ([ccc483226](https://github.com/monkeytypegame/monkeytype/commit/ccc483226d2ae1c9a0ebcddc3cb04417b9d1cf96))
- **chore(deps-dev):** bump @release-it/conventional-changelog ([#5676](https://github.com/monkeytypegame/monkeytype/issues/5676)) ([80847dc6d](https://github.com/monkeytypegame/monkeytype/commit/80847dc6dcd9348fd7b2f801ef76cde56da7ebe5))
- **chore:** npm i ([6463abd2f](https://github.com/monkeytypegame/monkeytype/commit/6463abd2f097a1b3516fc0752e2ff2516af0b622))
- **chore:** remove hard npm version requirement ([471e844c6](https://github.com/monkeytypegame/monkeytype/commit/471e844c6b344e92c7fe00c41372ac1577dc1199))
- **chore:** release v24.31.0 ([cb65adc8c](https://github.com/monkeytypegame/monkeytype/commit/cb65adc8c8773f5ea7af1574300d571898b4cca7))
- **chore:** ignore unresolved import errors for internal packages ([f92e63975](https://github.com/monkeytypegame/monkeytype/commit/f92e63975c3b039f67516184ee0114168e26a486))
v24.31.0
29 Jul 2024
Thank you to all the contributors who made this release possible!
### Features
- **layout:** add xenia_alt and hyperroll (@PTLux1517) ([#5662](https://github.com/monkeytypegame/monkeytype/issues/5662)) ([e8ddd7785](https://github.com/monkeytypegame/monkeytype/commit/e8ddd7785eb3fdc3baeefd91e031e3e1fcc8eba8))
- **practice:** add option to practice missed biwords (@sanidhyas3s) ([#5637](https://github.com/monkeytypegame/monkeytype/issues/5637)) ([da555e6ba](https://github.com/monkeytypegame/monkeytype/commit/da555e6ba9b5d1c40c9efad4fb729d4a51f96651))
### Fixes
- **tape mode:** scrolling sometimes glitching out and not being smooth ([cdb926e12](https://github.com/monkeytypegame/monkeytype/commit/cdb926e1239dd75ef3aa695713b5e2a11b066f29))
- blind mode not working in highlight mode off ([47ef6575a](https://github.com/monkeytypegame/monkeytype/commit/47ef6575a685ae189672e3784e3558771c7035c1))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr:** use tsrest/zod for config endpoints (@fehmer) ([#5649](https://github.com/monkeytypegame/monkeytype/issues/5649)) ([7f9f704dc](https://github.com/monkeytypegame/monkeytype/commit/7f9f704dcd110245a20d48d3e6339f0f2f05b239))
- **fix:** missing env definition ([751763cc8](https://github.com/monkeytypegame/monkeytype/commit/751763cc82f8a7dc7d5e5c19b0b733146af3866d))
- **style:** fix custom background filters media query ([d96832c92](https://github.com/monkeytypegame/monkeytype/commit/d96832c9273ad8e4a7993e8c75721caa8bf6e0d5))
- **ci:** move pretty check to one job, stop the rest of the ci from running when prettier errors ([#5670](https://github.com/monkeytypegame/monkeytype/issues/5670)) ([6554f0b2a](https://github.com/monkeytypegame/monkeytype/commit/6554f0b2a9887538d60bb3de2c0c19cafe2ab34c))
- **ci:** add prettier check in the assets job ([#5668](https://github.com/monkeytypegame/monkeytype/issues/5668)) ([daa930bcd](https://github.com/monkeytypegame/monkeytype/commit/daa930bcd89ea1707fb4ec949a4bb1a40cb664b6))
- **test:** updateAltGrState (@marcosatc147) ([#5656](https://github.com/monkeytypegame/monkeytype/issues/5656)) ([aa74c5eaa](https://github.com/monkeytypegame/monkeytype/commit/aa74c5eaa03f60ee2b9cebd9db8cc79cc04fa74b))
- **chore:** ignore unresolved import errors for internal packages ([f92e63975](https://github.com/monkeytypegame/monkeytype/commit/f92e63975c3b039f67516184ee0114168e26a486))
v24.30.0
27 Jul 2024
Thank you to all the contributors who made this release possible!
### Features
- **languages:** add portuguese 320k (@jeffersonjpr) ([#5648](https://github.com/monkeytypegame/monkeytype/issues/5648)) ([962b1a79e](https://github.com/monkeytypegame/monkeytype/commit/962b1a79ec5053d8d1f297dcc5f376f1daac473c))
### Improvements
- **languages:** serbian 10k lists (@Fooftilly) ([#5652](https://github.com/monkeytypegame/monkeytype/issues/5652)) ([bdaca701c](https://github.com/monkeytypegame/monkeytype/commit/bdaca701cb6e0f3181165833beeb1a48b79e68e8))
- **authentication:** add error message when sign in popup was blocked by the browser ([a1a94db1a](https://github.com/monkeytypegame/monkeytype/commit/a1a94db1a30a741fe72c608a7ba2db7ba405b834))
- replace ṅ with n in lazy mode (@fehmer) ([#5638](https://github.com/monkeytypegame/monkeytype/issues/5638)) ([c96185e90](https://github.com/monkeytypegame/monkeytype/commit/c96185e90a29a7cfd424da49c90fbc6457ebbc1a))
- **languages:** Add useful Vim motions and sort JSON ([#5618](https://github.com/monkeytypegame/monkeytype/issues/5618)) ([62305cc02](https://github.com/monkeytypegame/monkeytype/commit/62305cc025957f16417e62b1446e5574fdf05787))
### Fixes
- **tape mode:** not scrolling for extra letters ([c1afd1336](https://github.com/monkeytypegame/monkeytype/commit/c1afd1336208924aff968cf5791238f569993752))
- reenable login inputs if loading user data fails ([13a15c94d](https://github.com/monkeytypegame/monkeytype/commit/13a15c94d63bc0649ffeb771fd4876709810a3cc))
- incorrect portuguese group array ([c24bf0fa8](https://github.com/monkeytypegame/monkeytype/commit/c24bf0fa801aa2335dbc6551d5810c4dab427378))
- **util:** hexToRgb function (brenob6) ([#5643](https://github.com/monkeytypegame/monkeytype/issues/5643)) ([c0f7e2572](https://github.com/monkeytypegame/monkeytype/commit/c0f7e25726675c1ebf32b22b33235bf034e8fc30))
- **word generator:** custom mode with time limit generating the wrong amount of starting words ([ee49c79d6](https://github.com/monkeytypegame/monkeytype/commit/ee49c79d6f0fbaa537d1d74f9e12e44271da2899))
- **caret:** block width going down to 0 when typing with blind mode on ([8d9875f4e](https://github.com/monkeytypegame/monkeytype/commit/8d9875f4eb0084c971714d70f8af731b1e1a5eff))
- **blind mode:** tape mode still scrolling when making mistakes ([799902949](https://github.com/monkeytypegame/monkeytype/commit/799902949bbc80078c47501a5da8d5456ce01dcf))
- **quote:** update or remove quotes reported by users ([3b768e0d7](https://github.com/monkeytypegame/monkeytype/commit/3b768e0d782524d4949ceeef6c8003268fad373d))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(dev):** add quick login button to frontend dev modal ([230517625](https://github.com/monkeytypegame/monkeytype/commit/230517625397b51c4074b4f1f82ea0bd60775185))
- **impr(dev):** disable ads in dev ([c6d1ea09c](https://github.com/monkeytypegame/monkeytype/commit/c6d1ea09cc0dc52bd2df96eecc84edda9b641b64))
- **impr:** disable sw caching for version file ([f96b8efda](https://github.com/monkeytypegame/monkeytype/commit/f96b8efdaac6516e1f22a50ab5bfe3fb1c59407b))
- **impr:** use tsrest/zod for type-safety on both ends (@fehmer) ([#5479](https://github.com/monkeytypegame/monkeytype/issues/5479)) ([4c9e949f1](https://github.com/monkeytypegame/monkeytype/commit/4c9e949f109ecfbafa5cf30c022eb44374dbea25))
- **docs:** move files to docs folder ([#5654](https://github.com/monkeytypegame/monkeytype/issues/5654)) ([1d8930cb0](https://github.com/monkeytypegame/monkeytype/commit/1d8930cb0d2ddb4f699192be99ea1198b98ac739))
- **docs:** update contributing advanced (@fehmer) ([#5646](https://github.com/monkeytypegame/monkeytype/issues/5646)) ([2a28bee7c](https://github.com/monkeytypegame/monkeytype/commit/2a28bee7c49bbe2f1b36bfd6d0bbae0451832af4))
- **docs:** update example code ([#5633](https://github.com/monkeytypegame/monkeytype/issues/5633)) ([e7afa1263](https://github.com/monkeytypegame/monkeytype/commit/e7afa126324fd469cfd24ca4523521c3976a3573))
- **refactor:** run prettier ([#5636](https://github.com/monkeytypegame/monkeytype/issues/5636)) ([a2b4cee02](https://github.com/monkeytypegame/monkeytype/commit/a2b4cee021312bfbcb6162e53b6787bcdec891cb))
- **refactor:** restructure project to a true monorepo ([#5626](https://github.com/monkeytypegame/monkeytype/issues/5626)) ([3e88ac2f1](https://github.com/monkeytypegame/monkeytype/commit/3e88ac2f12e788c9305d05c33a55b697fbcffa19))
- **perf(ci):** cache dependencies ([#5653](https://github.com/monkeytypegame/monkeytype/issues/5653)) ([ac0e24e38](https://github.com/monkeytypegame/monkeytype/commit/ac0e24e388ed2056cc29604fccf33395a337e906))
- **ci:** optimize prime-cache checkout (@fehmer) ([#5657](https://github.com/monkeytypegame/monkeytype/issues/5657)) ([ed4b07206](https://github.com/monkeytypegame/monkeytype/commit/ed4b072065832a73785941e81bdf215072000d2a))
- **ci:** configure dependabot (@fehmer) ([#5642](https://github.com/monkeytypegame/monkeytype/issues/5642)) ([c856cf12f](https://github.com/monkeytypegame/monkeytype/commit/c856cf12f85251a14d6a793fbd80f423fb0b458d))
- **ci:** update ci-failure-comment workflow (@fehmer) ([#5632](https://github.com/monkeytypegame/monkeytype/issues/5632)) ([29627fd0d](https://github.com/monkeytypegame/monkeytype/commit/29627fd0d5f152e2da59671987090ea0a5c29874))
- - **dev:** missing outputs prop causing cached build to not output files ([c1bd66a82](https://github.com/monkeytypegame/monkeytype/commit/c1bd66a82c63d5939ed2b1466f955a8f30ad2395))
- **dev:** vite preview not working ([93b2e0036](https://github.com/monkeytypegame/monkeytype/commit/93b2e0036f5bcca7dccc4cc415750613b3923fa2))
- **build(frontend):** check ts on build ([5c58270bd](https://github.com/monkeytypegame/monkeytype/commit/5c58270bde8266b3f23ab05a9d819c0120ae8204))
- **build:** split vite config ([c832f7eb3](https://github.com/monkeytypegame/monkeytype/commit/c832f7eb39b944fcdc72f53471045a3ae527e822))
- **chore:** notify user the config coming from the database is in the wrong format ([f4bfe2717](https://github.com/monkeytypegame/monkeytype/commit/f4bfe271752b0d0134147c9b4757ef53a397a5fb))
- **chore:** update hotfix script ([906c15cfa](https://github.com/monkeytypegame/monkeytype/commit/906c15cfafdd36cb7af36273bba6645a892da78a))
- **chore:** output version to version.json ([0b3e3d9a3](https://github.com/monkeytypegame/monkeytype/commit/0b3e3d9a320f5495047137e241523a65d741f835))
- **chore:** update backend out dir ([642a2b22a](https://github.com/monkeytypegame/monkeytype/commit/642a2b22a1f70048f7ac8daa5cba4ae44b0f815c))
- **chore(deps):** bump express from 4.17.3 to 4.19.2 in /backend ([#5650](https://github.com/monkeytypegame/monkeytype/issues/5650)) ([d717ae005](https://github.com/monkeytypegame/monkeytype/commit/d717ae00586d85454a2339917ae16db6051f8adf))
- **chore:** update master pre-push script ([4034880d0](https://github.com/monkeytypegame/monkeytype/commit/4034880d0821f0a0eb6f1fce73fdcbd78310627e))
- **chore:** add supporter ([2eb9b7aa2](https://github.com/monkeytypegame/monkeytype/commit/2eb9b7aa259b5edd1f9faccbd93143dc9942bf7b))
- **chore:** start application in dev mode using docker (@fehmer) ([#5647](https://github.com/monkeytypegame/monkeytype/issues/5647)) ([40514cd24](https://github.com/monkeytypegame/monkeytype/commit/40514cd248423cff7159e5ad710d59959f24cbca))
- **chore:** regen package lock ([9889bfa54](https://github.com/monkeytypegame/monkeytype/commit/9889bfa546fc0060299a9e8a29aed5aab8942b3f))
- **chore(dev):** update vscode workspace file ([ff2ac031b](https://github.com/monkeytypegame/monkeytype/commit/ff2ac031b643b3220094b3bd8d90106443575375))
- **chore(dev):** prevent terminal screen from being cleared in watch mode ([cac4c7b23](https://github.com/monkeytypegame/monkeytype/commit/cac4c7b233c681635407450785e3ea2c97f59b89))
- **chore(dev):** prevent terminal screen from being cleared by vite ([be304906e](https://github.com/monkeytypegame/monkeytype/commit/be304906e94b8504348efccffb714e9969de745e))
- **chore(dev):** fix tsconfig path ([5f7565a69](https://github.com/monkeytypegame/monkeytype/commit/5f7565a6956bc40264178c68a5613a8a8eba08ab))
- **chore(dev):** use --force param for dev turbo dev ([93f6a9c0f](https://github.com/monkeytypegame/monkeytype/commit/93f6a9c0f747e565399977c94bc0a560b930459c))
- **chore:** update file extension ([eaa766fc7](https://github.com/monkeytypegame/monkeytype/commit/eaa766fc76dc8e3687c4294d1174b8e13a1b8644))
- **chore:** bump ua-parser ([8de977a45](https://github.com/monkeytypegame/monkeytype/commit/8de977a45f09311f9e42ba7f8269f26ec80ce676))
- **chore:** add full check command ([b9f9a0174](https://github.com/monkeytypegame/monkeytype/commit/b9f9a017404db0ac53abc2bc9ab6778b0497b969))
- **chore:** regenerate package lock ([93767fecf](https://github.com/monkeytypegame/monkeytype/commit/93767fecf6162178164a7f897f1ea3142090bcf6))
- **chore(deps-dev):** bump vite from 5.1.2 to 5.1.7 in /frontend ([#5639](https://github.com/monkeytypegame/monkeytype/issues/5639)) ([b5444d827](https://github.com/monkeytypegame/monkeytype/commit/b5444d827d2ccd0916f48b728cd3092c08d36dbf))
- **chore(deps-dev):** bump postcss from 8.4.27 to 8.4.31 in /frontend ([#5640](https://github.com/monkeytypegame/monkeytype/issues/5640)) ([26c60c683](https://github.com/monkeytypegame/monkeytype/commit/26c60c683bbe2c345a5cecca6bf94a0e5dd95270))
- **chore:** increase inconsistent test duration window ([deeea0fb7](https://github.com/monkeytypegame/monkeytype/commit/deeea0fb789401083459680fa1ddcd57ec96279a))
v24.29.0
16 Jul 2024
Thank you to all the contributors who made this release possible!
### Features
- **languages:** add Serbian 10k (@Fooftilly) ([#5603](https://github.com/monkeytypegame/monkeytype/issues/5603)) ([b243d1472](https://github.com/monkeytypegame/monkeytype/commit/b243d1472b021e6e0e325318fe2067774838fb6f))
- **languages:** add Occitan 200, 1k, 2k, 5k, 10k (@Mejans) ([#5571](https://github.com/monkeytypegame/monkeytype/issues/5571)) ([bd29e4f68](https://github.com/monkeytypegame/monkeytype/commit/bd29e4f68a742fb5cc8a489440d1cbf467327a85))
- **language:** add Common Lisp (@ChristoferKoch) ([#5605](https://github.com/monkeytypegame/monkeytype/issues/5605)) ([1600c5206](https://github.com/monkeytypegame/monkeytype/commit/1600c5206228f0557c18676dac675f6191e3773a))
### Improvements
- provide all-time LB results during LB update (@fehmer) ([#5614](https://github.com/monkeytypegame/monkeytype/issues/5614)) ([94a393fd8](https://github.com/monkeytypegame/monkeytype/commit/94a393fd872ed4179e67f05ac74d6b87a840c042))
- **quote:** add quotes in various languages (@mxz7, @turkwr) ([#5611](https://github.com/monkeytypegame/monkeytype/issues/5611), [#5609](https://github.com/monkeytypegame/monkeytype/issues/5609), [#5608](https://github.com/monkeytypegame/monkeytype/issues/5608), [#5601](https://github.com/monkeytypegame/monkeytype/issues/5601)) ([864ade157](https://github.com/monkeytypegame/monkeytype/commit/864ade1571c30b254ee18d32603d0f89d937e3b4), [81ef04bbc](https://github.com/monkeytypegame/monkeytype/commit/81ef04bbc5be9e160e6a0f5d27eaff81fa32f8fa), [339ce44ae](https://github.com/monkeytypegame/monkeytype/commit/339ce44ae2a1c048852167b93caa7547b8e0bd67), [9953c5ed0](https://github.com/monkeytypegame/monkeytype/commit/9953c5ed02bfb6f0c14cbc1b847128074d56fbd0), [fddbede93](https://github.com/monkeytypegame/monkeytype/commit/fddbede932a11b80d1af7dafb0af044af9a2f827))
### Fixes
- hide extra letters causing caret to go to the start of the active word ([cf74cd7cb](https://github.com/monkeytypegame/monkeytype/commit/cf74cd7cbf6b3ca75a9eb40dd04967840bbe5c02))
- optimize / fix concurrency in UserDal (@fehmer) ([#5558](https://github.com/monkeytypegame/monkeytype/issues/5558)) ([088ff638c](https://github.com/monkeytypegame/monkeytype/commit/088ff638cc9e748c712c002d24d4e37af35d43c5))
- **quote:** remove duplicate ([f729b9e01](https://github.com/monkeytypegame/monkeytype/commit/f729b9e01a76dbb6234d76556d8116dc078cca90))
- **server:** not being able to view profiles which had a dot in the name ([1cabbaa3e](https://github.com/monkeytypegame/monkeytype/commit/1cabbaa3e8c717c7dde8f0f05f242c32571bcfc9))
- **tape mode:** test words sometimes being clipped ([16f248d9d](https://github.com/monkeytypegame/monkeytype/commit/16f248d9deb8c4c4b19f577b5bdcc17266229242))
- **account page:** xp bar not updating when claiming rewards (@fehmer) ([#5607](https://github.com/monkeytypegame/monkeytype/issues/5607)) ([cecfb83b5](https://github.com/monkeytypegame/monkeytype/commit/cecfb83b531a622b7730ac3ec37de15a5da3331c))
- zen mode not working ([1462d5193](https://github.com/monkeytypegame/monkeytype/commit/1462d5193b3dbb53cd75350f665b5c6e0874b62e))
- preview fonts not working correctly in the commandline ([#5595](https://github.com/monkeytypegame/monkeytype/issues/5595)) ([966d3ce57](https://github.com/monkeytypegame/monkeytype/commit/966d3ce57486fc85a68431c0c0805e04e275704c))
- session timer duplicating incomplete test seconds ([d572c094a](https://github.com/monkeytypegame/monkeytype/commit/d572c094a65d825c4007210c0699082465ec11d6))
- upside down funbox tooltip not visible on settings page (@fehmer) ([#5602](https://github.com/monkeytypegame/monkeytype/issues/5602)) ([c93713303](https://github.com/monkeytypegame/monkeytype/commit/c9371330365dd43e7f431473b054618c88ae84cf))
- read ahead funboxes not working ([215862e6e](https://github.com/monkeytypegame/monkeytype/commit/215862e6e13c38508292572fbaa9098615e138c6))
- blind mode not working with highlight mode word ([f49e7f194](https://github.com/monkeytypegame/monkeytype/commit/f49e7f1945e8a9b013c6f1703d3474e775c9fe82))
- total test calulation on testActivity chart (@fehmer) ([#5596](https://github.com/monkeytypegame/monkeytype/issues/5596)) ([c802d0781](https://github.com/monkeytypegame/monkeytype/commit/c802d0781e84b21fe269191b9a56a22d865e1a52))
- league of legends language being right to left (@fehmer) ([#5597](https://github.com/monkeytypegame/monkeytype/issues/5597)) ([34244a304](https://github.com/monkeytypegame/monkeytype/commit/34244a3046e334f3489dd3e45cfdd7e9d0827cdc))
- use bold variant of nunito font (@fehmer) ([#5594](https://github.com/monkeytypegame/monkeytype/issues/5594)) ([cbb52b13a](https://github.com/monkeytypegame/monkeytype/commit/cbb52b13a4bf810798e773fe65bede255eed96c7))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(dev):** add button to show real words input ([034e97c35](https://github.com/monkeytypegame/monkeytype/commit/034e97c35aebc87f9dccdd220a93dd339a050de2))
- **refactor:** split middlewares into smaller files ([#5616](https://github.com/monkeytypegame/monkeytype/issues/5616)) ([2af5879f2](https://github.com/monkeytypegame/monkeytype/commit/2af5879f23bdbb1501d55d7bec1fd9e42a25010f))
- **test:** add test coverage for PresetDal (@fehmer) ([#5615](https://github.com/monkeytypegame/monkeytype/issues/5615)) ([aca3fe205](https://github.com/monkeytypegame/monkeytype/commit/aca3fe205bf792e5fd23c2f70337aa20bbca1865))
- **chore:** fix release scripts ([356e4bcd5](https://github.com/monkeytypegame/monkeytype/commit/356e4bcd5f13ccc972dffe10c2d755e6fa5f49b3))
- **chore:** add firebase tools dependency ([0db50e30d](https://github.com/monkeytypegame/monkeytype/commit/0db50e30d8f45792c4170c2e6afab98ce494bb42))
- **chore:** rename file, fix duplicate ([a5f485c71](https://github.com/monkeytypegame/monkeytype/commit/a5f485c711d9881437a6ad5d927e9166111b8435))
- **chore:** add log to try to debug an issue ([3ccd3b5e8](https://github.com/monkeytypegame/monkeytype/commit/3ccd3b5e8d2c4dbdbc3645f29eb94f90fb097c0b))
- use typescript for font-preview and fontawesome scripts (@fehmer) ([#5613](https://github.com/monkeytypegame/monkeytype/issues/5613)) ([5b970ecea](https://github.com/monkeytypegame/monkeytype/commit/5b970ecea76a88d155439b013dafe49e439667ad))
v24.28.0
09 Jul 2024
Thank you to all the contributors who made this release possible!
### Features
- **languages:** add League of Legends language (@hailfire805) ([#5590](https://github.com/monkeytypegame/monkeytype/issues/5590)) ([7ed666238](https://github.com/monkeytypegame/monkeytype/commit/7ed6662380e8eeb9a4ef4afe4b3a16255115f068))
- **languages:** add cobol language (@liandeguo) ([#5589](https://github.com/monkeytypegame/monkeytype/issues/5589)) ([ec0715205](https://github.com/monkeytypegame/monkeytype/commit/ec071520554d92ad698f830c161ae8d9e0adcaf9))
### Improvements
- reduce initial loading time of settings page (@fehmer) ([#5583](https://github.com/monkeytypegame/monkeytype/issues/5583)) ([66c09a462](https://github.com/monkeytypegame/monkeytype/commit/66c09a462f789f89c66cd33a9f86b4094023fe51))
- optimize font sizes by using woff2 (@fehmer) ([#5582](https://github.com/monkeytypegame/monkeytype/issues/5582)) ([a2a5c10a8](https://github.com/monkeytypegame/monkeytype/commit/a2a5c10a845bf8b94a521face0d3cbd4dc4e5e42))
- **account page:** add total tests to test activity chart (@fehmer) ([#5586](https://github.com/monkeytypegame/monkeytype/issues/5586)) ([b114db9bd](https://github.com/monkeytypegame/monkeytype/commit/b114db9bd82c548ac8b51c1400316e18c01ec83a))
- replace dead characters when using indicate typos: replace ([016e55036](https://github.com/monkeytypegame/monkeytype/commit/016e55036c3d43d3ddd4912925f296d0ab715914))
- **result page:** modify navigation order to make sure tab focuses the next test button ([9fb400545](https://github.com/monkeytypegame/monkeytype/commit/9fb4005452fbce3b09ee73ad89b09c8bd251e60c))
- **test ui:** changing tape mode no longer restarts the test ([#5565](https://github.com/monkeytypegame/monkeytype/issues/5565)) ([6ccdadfe3](https://github.com/monkeytypegame/monkeytype/commit/6ccdadfe34d271825e03cfa914add58b78079ea9))
- **test config:** allow keyboard navigation (@Truiteseche) ([#5528](https://github.com/monkeytypegame/monkeytype/issues/5528)) ([cf855bd48](https://github.com/monkeytypegame/monkeytype/commit/cf855bd48d07983282c27c29253a85ae4121751d))
- **shadow theme:** dont dehighlight typed words in shadow theme ([5ef6da061](https://github.com/monkeytypegame/monkeytype/commit/5ef6da06185b389bfa6a6661c85029e887e9e63a))
- escape html when displaying custom text names ([b631dc414](https://github.com/monkeytypegame/monkeytype/commit/b631dc41431ea6211409fc4c2d65e2540b336307))
- **server:** disallow dots in tags, presets and custom theme names ([8c00315c5](https://github.com/monkeytypegame/monkeytype/commit/8c00315c5b65c7376736b05a22e5137a039efdd1))
- **server:** dont allow dots in usernames ([dd4943bae](https://github.com/monkeytypegame/monkeytype/commit/dd4943bae03eeb3cb4395a67f43b199b5896cad4))
- **commandline:** add vim keybinds for navigating up and down ([b8fce1549](https://github.com/monkeytypegame/monkeytype/commit/b8fce15490da1c4bf634859dbabb7a4463cd47a0))
- **quote:** add quotes in various languages (Ramen2X, @Kevinme789, Tempest76) ([#5592](https://github.com/monkeytypegame/monkeytype/issues/5592), [#5588](https://github.com/monkeytypegame/monkeytype/issues/5588), [#5580](https://github.com/monkeytypegame/monkeytype/issues/5580)) ([d87d1f188](https://github.com/monkeytypegame/monkeytype/commit/d87d1f188617cb3cca811a66fc6fe51af5dea6a1), [d70bb6669](https://github.com/monkeytypegame/monkeytype/commit/d70bb6669c5ce06383d485d63a354909608283e0), [087bf55d4](https://github.com/monkeytypegame/monkeytype/commit/087bf55d4c78cdd45e79a1a7058be7876eb8ebda))
### Fixes
- **cookie modal:** missing icon ([d7f9a4d44](https://github.com/monkeytypegame/monkeytype/commit/d7f9a4d443d9d321ef923d9c7d67fed3ca486902))
- **quote:** missing capital letter ([#5591](https://github.com/monkeytypegame/monkeytype/issues/5591)) ([b215f0406](https://github.com/monkeytypegame/monkeytype/commit/b215f0406b99e81f4b7111aae0f926b04fbb24e3))
- changing tape mode during the test causing overflow ([a00a8bb94](https://github.com/monkeytypegame/monkeytype/commit/a00a8bb94c2360e60647473cbb311e49c6ff69d7))
- practice missed words generatic less words than expected ([d2caf248b](https://github.com/monkeytypegame/monkeytype/commit/d2caf248b34135d1fdb0e34ee5b86cb944e3a13b))
- short tests not saving towards "session typing time" ([ae712b313](https://github.com/monkeytypegame/monkeytype/commit/ae712b3135acb70c70c1802deecfe176e3724cf3))
- cleanup tmp while updating users inbox ([#5559](https://github.com/monkeytypegame/monkeytype/issues/5559)) ([1f085580e](https://github.com/monkeytypegame/monkeytype/commit/1f085580e6bd35954a44649fa6b28acce0168652))
- active word duplication in code quotes ([8beddebbd](https://github.com/monkeytypegame/monkeytype/commit/8beddebbd485a5eb2d7b7ebdbef619333bd39d80))
- **test:** tab-navigating away from the test words doesnt fade in the ui ([d6a3cd08e](https://github.com/monkeytypegame/monkeytype/commit/d6a3cd08eadfec5021aacfc7639fad7d02fe89f9))
- **word generator:** repeated tests sometimes triggering generation error ([03937c72c](https://github.com/monkeytypegame/monkeytype/commit/03937c72cda2a3b04f2ab6c4a2170722059f83d8))
- error when loading account page and quickly navigating to another page (@fehmer) ([#5555](https://github.com/monkeytypegame/monkeytype/issues/5555)) ([ea650278e](https://github.com/monkeytypegame/monkeytype/commit/ea650278eac8569ddcc3c1ce0076a12cd2fee9d0))
- mexican theme sub alt color (@fehmer) ([#5552](https://github.com/monkeytypegame/monkeytype/issues/5552)) ([4f29aa55a](https://github.com/monkeytypegame/monkeytype/commit/4f29aa55aa372afca988cb47c874da72407b7e8c))
- concurrency issue while claiming rewards (@fehmer) ([#5553](https://github.com/monkeytypegame/monkeytype/issues/5553)) ([ce093c538](https://github.com/monkeytypegame/monkeytype/commit/ce093c538da0973350f2a7e76b671e032f87adf7))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **fix:** updateInbox claiming all rewards (@fehmer) ([#5560](https://github.com/monkeytypegame/monkeytype/issues/5560)) ([3722000d8](https://github.com/monkeytypegame/monkeytype/commit/3722000d85ba1c901c99e003560634d24aae5f19))
- **style(typing test):** fix newline/tab characters not working well with some fonts ([ffc47e861](https://github.com/monkeytypegame/monkeytype/commit/ffc47e861dc61a929979ded9e49cf041b569a6c0))
- **style(test result):** fix line height of test type text ([b19be346f](https://github.com/monkeytypegame/monkeytype/commit/b19be346f067f2094274bf925f88d13249ccda73))
- **style(result page):** fix replay play button margin ([39b52fac6](https://github.com/monkeytypegame/monkeytype/commit/39b52fac62ed8154341fb37a1e0a5e3ba4199a39))
- **style(core):** add visibility prop to the invisible class ([48b57320b](https://github.com/monkeytypegame/monkeytype/commit/48b57320b23db95aa3f57d10ee48f4927f84ccc5))
- **refactor:** rework highlight mode, colorful, flipped and blind to pure css ([#5568](https://github.com/monkeytypegame/monkeytype/issues/5568)) ([9f924f345](https://github.com/monkeytypegame/monkeytype/commit/9f924f345e088592c9fa9e7276d9ca890bd20c59))
- **refactor:** run prettier ([#5575](https://github.com/monkeytypegame/monkeytype/issues/5575)) ([e4bc60302](https://github.com/monkeytypegame/monkeytype/commit/e4bc60302671bae6ccfb2d2af16586ef26038d8a))
- **refactor(caret):** add lastwordelement, optimise top pos, letter width, letter height ([#5567](https://github.com/monkeytypegame/monkeytype/issues/5567)) ([aac44aead](https://github.com/monkeytypegame/monkeytype/commit/aac44aead339cfd69c36e5a75a2e3945a44dd3d5))
- **refactor(test config):** use display instead of visibility for puncandnum ([6bbb11fa9](https://github.com/monkeytypegame/monkeytype/commit/6bbb11fa9e2c894e55845b4e09d8d3ffe1d3d827))
- **chore:** relax user forgot password rate limit ([65a3f9dac](https://github.com/monkeytypegame/monkeytype/commit/65a3f9dacb93af8f7c54a2f88150815b9a51928d))
v24.27.0
01 Jul 2024
Thank you to all the contributors who made this release possible!
### Features
- **theme:** add terrazzo (@fehmer) ([#5539](https://github.com/monkeytypegame/monkeytype/issues/5539)) ([e61b377e9](https://github.com/monkeytypegame/monkeytype/commit/e61b377e9a4985596762a14f6750cbd9ffa19702))
- **languages:** add kyrgyz_1k (akmatoff) ([#5535](https://github.com/monkeytypegame/monkeytype/issues/5535)) ([40b8a489b](https://github.com/monkeytypegame/monkeytype/commit/40b8a489bf7d7dab4d1a4fcb3c0f2b42d0319957))
- **layout:** add vylet (MightyAcas) ([#5525](https://github.com/monkeytypegame/monkeytype/issues/5525)) ([23fb71c1a](https://github.com/monkeytypegame/monkeytype/commit/23fb71c1ad7f0cfca900898c3cc6fb0c7cac6b79))
- **language:** add special lazy mode replacement to serbian (while1618) ([#5518](https://github.com/monkeytypegame/monkeytype/issues/5518)) ([e6acf225d](https://github.com/monkeytypegame/monkeytype/commit/e6acf225dcdcea211dbd0d3457d17c772a1fe94d))
- add test activity and streak into to the apekey endpoints (@fehmer) ([#5513](https://github.com/monkeytypegame/monkeytype/issues/5513)) ([442153724](https://github.com/monkeytypegame/monkeytype/commit/442153724a688f2627d9bd205e8289049e6e9855))
### Improvements
- **language:** lowercase all assembly words for easier practice ([0b16dcefc](https://github.com/monkeytypegame/monkeytype/commit/0b16dcefca48a4b7a95b332224050093382b0f38))
- **server:** trim consecutive newlines when updating user profile (theiereman) ([#5538](https://github.com/monkeytypegame/monkeytype/issues/5538)) ([2714af1ee](https://github.com/monkeytypegame/monkeytype/commit/2714af1eeb8f460b4d42c85ef7bec80b217dc3ea))
- **notifications:** message readability on hover (navazjm) ([#5529](https://github.com/monkeytypegame/monkeytype/issues/5529)) ([29bd0df37](https://github.com/monkeytypegame/monkeytype/commit/29bd0df3795ef472cf13ff80328d0b9ffdb27db5))
- **layout:** add alt layer character to azerty (theiereman) ([#5480](https://github.com/monkeytypegame/monkeytype/issues/5480)) ([e42f888ff](https://github.com/monkeytypegame/monkeytype/commit/e42f888ff1c72d72d77b45bc274c9a9fbad21fa9))
- **practice:** shuffle words when practicing missed/slow words (grzebiel) ([#5519](https://github.com/monkeytypegame/monkeytype/issues/5519)) ([f123617c3](https://github.com/monkeytypegame/monkeytype/commit/f123617c3343d9fee94e0f92d9fc8beec18fc6d6))
- **quote:** add quotes in various languages (aescanes, connorcarey, Omaeda) ([#5509](https://github.com/monkeytypegame/monkeytype/issues/5509), [#5520](https://github.com/monkeytypegame/monkeytype/issues/5520), [#5511](https://github.com/monkeytypegame/monkeytype/issues/5511)) ([63b9f7605](https://github.com/monkeytypegame/monkeytype/commit/63b9f7605fb8dc1705142c96f7f96890382dcc80), [b641017ab](https://github.com/monkeytypegame/monkeytype/commit/b641017ab90ad5449ebde0f794f73c5c463adf84), [d12da3705](https://github.com/monkeytypegame/monkeytype/commit/d12da37050a7430b01ccb23dd1a6384580a2bda0))
### Fixes
- test history tags button flashing on load (@fehmer) ([#5550](https://github.com/monkeytypegame/monkeytype/issues/5550)) ([6d1b4f38b](https://github.com/monkeytypegame/monkeytype/commit/6d1b4f38b664f3b61ff0a60bc08b94a58626d170))
- **themes:** wrong theme added to favorites when using random theme (mitjans) ([#5532](https://github.com/monkeytypegame/monkeytype/issues/5532)) ([2da6e555c](https://github.com/monkeytypegame/monkeytype/commit/2da6e555ccbdd98266cdbc514dc2f94152053dce))
- **themes:** mexican theme being unreadable (@fehmer) ([#5536](https://github.com/monkeytypegame/monkeytype/issues/5536)) ([d0e9206c1](https://github.com/monkeytypegame/monkeytype/commit/d0e9206c1bbd6bec5b5350304604a6fc4a19e4c0))
- lazy mode not working for vietnamese (@fehmer) ([#5534](https://github.com/monkeytypegame/monkeytype/issues/5534)) ([dbef3f40b](https://github.com/monkeytypegame/monkeytype/commit/dbef3f40bd066262a042f856a061340689b37a2c))
- **test:** apply highlight mode when loading (mitjans) ([#5533](https://github.com/monkeytypegame/monkeytype/issues/5533)) ([3346b3891](https://github.com/monkeytypegame/monkeytype/commit/3346b3891aff51873fa3949bde269aad11f25d61))
- **test activity:** calendar months misalignment in some cases ([#5523](https://github.com/monkeytypegame/monkeytype/issues/5523)) ([5da8c6ed8](https://github.com/monkeytypegame/monkeytype/commit/5da8c6ed8c9b1198279af705e2fd434cc2e7dbb4))
- scroll to top button appearing on load ([b6069a78a](https://github.com/monkeytypegame/monkeytype/commit/b6069a78ac0a2e6c6c963eab588ff4c8c901b5cb))
- **punctuation:** make sure punctuation characters are placed before newline or tab characters ([c534453a0](https://github.com/monkeytypegame/monkeytype/commit/c534453a0ad2cc309392d33af0779a6075bbd818))
- **language:** remove "childrens" ([d38446249](https://github.com/monkeytypegame/monkeytype/commit/d384462496acf5017735e461be6f177e86ad5117))
- **zipf:** improve approximation of zipf distribution (@NadAlaba) ([#5515](https://github.com/monkeytypegame/monkeytype/issues/5515)) ([211253bec](https://github.com/monkeytypegame/monkeytype/commit/211253becbd5e7e07b0aca17bdf5259d1a096d69))
- **quotes:** typo ([bfc9500d3](https://github.com/monkeytypegame/monkeytype/commit/bfc9500d324bdc8da58ec8fe1f6cd8158aa79833))
- **quote:** update or remove quotes reported by users ([63aad7c42](https://github.com/monkeytypegame/monkeytype/commit/63aad7c42f9ffbe08b94f2cdb703f1d606472041))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(dev options modal):** add button to show test notifications ([00d73be17](https://github.com/monkeytypegame/monkeytype/commit/00d73be17f0d3a9ee97ed4277b6f1658a2071a7c))
- **refactor:** run prettier ([#5548](https://github.com/monkeytypegame/monkeytype/issues/5548)) ([aa46f7890](https://github.com/monkeytypegame/monkeytype/commit/aa46f78909a24a702929912fc1321a34d698cdce))
- **perf:** optimize database access for UserDal (@fehmer) ([#5544](https://github.com/monkeytypegame/monkeytype/issues/5544)) ([d566ba646](https://github.com/monkeytypegame/monkeytype/commit/d566ba6468b21170896fba283e3b286427df1358))
- **chore:** quote lengths script ([bfaa7b2dc](https://github.com/monkeytypegame/monkeytype/commit/bfaa7b2dc495dc1737d9b9012da7a15eef08e222))
- **chore:** fix check annotations for dev routes (@fehmer) ([#5549](https://github.com/monkeytypegame/monkeytype/issues/5549)) ([e8d9ce63d](https://github.com/monkeytypegame/monkeytype/commit/e8d9ce63da6f105472c5b6810d17fda23d74221e))
- **chore:** replace twitter urls with x (unrealapex) ([#5541](https://github.com/monkeytypegame/monkeytype/issues/5541)) ([0877723fd](https://github.com/monkeytypegame/monkeytype/commit/0877723fdf6ae027d3a0a44e6b785f3c2066ef00))
- **chore:** remove some words from the profanity list ([6da0e6a0f](https://github.com/monkeytypegame/monkeytype/commit/6da0e6a0fad3c54c36442c6514917e2cd4710763))
- **chore(husky):** run `nvm use` only when needed ([#5524](https://github.com/monkeytypegame/monkeytype/issues/5524)) ([5c618082c](https://github.com/monkeytypegame/monkeytype/commit/5c618082c75e245fbde08f3ab243d3049525f19b))
v24.25.0
17 Jun 2024
Thank you to all the contributors who made this release possible!
### Features
- **auth:** allow removal of password authentication when a different authentication provider is added to the account (@fehmer) ([#5499](https://github.com/monkeytypegame/monkeytype/issues/5499)) ([8e1aeb315](https://github.com/monkeytypegame/monkeytype/commit/8e1aeb3159c5dfa2b215abb8864f1634f347ec1a))
- **layout:** gallium v2 (AurimasAnskaitis) ([#5500](https://github.com/monkeytypegame/monkeytype/issues/5500)) ([768c22503](https://github.com/monkeytypegame/monkeytype/commit/768c225036233f19aaeeffb5d5ab51d13217f783))
- **language:** add armenian and armenian 1k ([252b44653](https://github.com/monkeytypegame/monkeytype/commit/252b44653f846aa5f570c99a5dbcb6ba6ff47a6c))
### Improvements
- **custom theme rename modal:** automatically select input (@fehmer) ([#5487](https://github.com/monkeytypegame/monkeytype/issues/5487)) ([d733996b0](https://github.com/monkeytypegame/monkeytype/commit/d733996b092ccf4795a2d014ada5d40543ed77d3))
- slightly rework the login page ([92193f1dc](https://github.com/monkeytypegame/monkeytype/commit/92193f1dc55ed299c4a105e67cb25d9ae22bfdd1))
- **about page:** add icons ([0042a76a2](https://github.com/monkeytypegame/monkeytype/commit/0042a76a2d967fc0e2c187d2b6c32fa6571eae39))
- **keymap:** remove iso key when using matrix keymap on iso layouts ([050ba42f1](https://github.com/monkeytypegame/monkeytype/commit/050ba42f1a47730e0be3d30ee6cab8bf1405e49c))
- add button to remove custom theme background (@fehmer) ([#5488](https://github.com/monkeytypegame/monkeytype/issues/5488)) ([ccd2b1ef2](https://github.com/monkeytypegame/monkeytype/commit/ccd2b1ef2821c99e321d21d0a66b60d72a435017))
- **finnish 10k:** remove bad word ([0f89730d3](https://github.com/monkeytypegame/monkeytype/commit/0f89730d3841854429f3035e3d2ac2eb0afdb818))
### Fixes
- **login page:** pressing enter opening google login ([57a6fd9bd](https://github.com/monkeytypegame/monkeytype/commit/57a6fd9bd5cd4eb6fb65b387926434b0c0767ff9))
- test activity graph showing 54 weeks (@fehmer) ([#5497](https://github.com/monkeytypegame/monkeytype/issues/5497)) ([f0ec0c04f](https://github.com/monkeytypegame/monkeytype/commit/f0ec0c04fd4d8cee5f711637d6c6e6ee2e8578a1))
- typed letters not visible in tts funbox if highlight=off (@fehmer) ([#5496](https://github.com/monkeytypegame/monkeytype/issues/5496)) ([90e234f77](https://github.com/monkeytypegame/monkeytype/commit/90e234f77a1985df439c979abbd2264ae70f73ce))
- unable to rename freshly created theme (fehmer) ([#5486](https://github.com/monkeytypegame/monkeytype/issues/5486)) ([d5b310396](https://github.com/monkeytypegame/monkeytype/commit/d5b310396790314185b519dbcd5972f1ca6a8b98))
- **typing test:** expert mode not working ([0715352c5](https://github.com/monkeytypegame/monkeytype/commit/0715352c5a91924f3ca19dae851ee23b64eb50cc))
- **typig test:** blind mode not highlighting missed characters as correct ([4e46f6bc9](https://github.com/monkeytypegame/monkeytype/commit/4e46f6bc9fa428a27afa398b05982278855e239f))
- **tape mode:** letter scrolling not working ([28a397ecf](https://github.com/monkeytypegame/monkeytype/commit/28a397ecf266ac85fce378665c41346901f111b1))
- **typing test:** line jumping too late ([04a64c666](https://github.com/monkeytypegame/monkeytype/commit/04a64c6662c4f6bb3668a6a14d7b02b63782fefc))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(dev):** add debug launch configurations for vscode (@fehmer) ([#5501](https://github.com/monkeytypegame/monkeytype/issues/5501)) ([b5f1225df](https://github.com/monkeytypegame/monkeytype/commit/b5f1225df079b8f5c114750bbc69e3d81a6ddb87))
- **impr(dev):** add button to cycle media query debug from the frontend ([f4f83cf48](https://github.com/monkeytypegame/monkeytype/commit/f4f83cf48970b834b24d3bf86a9db885963e65e6))
- **impr(dev):** add endpoint to create test user/data (fehmer) ([#5396](https://github.com/monkeytypegame/monkeytype/issues/5396)) ([b4ea7f119](https://github.com/monkeytypegame/monkeytype/commit/b4ea7f119f5b9ee68f8e3927c64c856e6a6b0361))
- **impr(login):** start sign up button disabled ([2c7e77be6](https://github.com/monkeytypegame/monkeytype/commit/2c7e77be628402f7bf59c67a1e0279d98e1f2e77))
- **impr:** add character-counter class to avoid code duplication (theiereman) ([#5482](https://github.com/monkeytypegame/monkeytype/issues/5482)) ([98ff4b288](https://github.com/monkeytypegame/monkeytype/commit/98ff4b288be6b75badc330ffddc8136e4c3c6620))
- **fix:** incorrect import ([c747bf452](https://github.com/monkeytypegame/monkeytype/commit/c747bf45271966c41c3dde743329922fce73824a))
- **fix:** incorrect name value ([3b4276bf7](https://github.com/monkeytypegame/monkeytype/commit/3b4276bf7e591e663343b937e066610f36c27e76))
- **fix:** remove unused imports ([26785515e](https://github.com/monkeytypegame/monkeytype/commit/26785515e9e7d159fc9c330201a829682a3607f6))
- **fix:** update twitter link ([2d6d84a4d](https://github.com/monkeytypegame/monkeytype/commit/2d6d84a4d7d8331906255b86064be0c3c8736c8e))
- **style:** change label text color when checkbox is disabled ([92a05f171](https://github.com/monkeytypegame/monkeytype/commit/92a05f171ccf0e17c8cd79458a8420698a645407))
- **style:** disable user selection on checkbox labels ([e1510b86e](https://github.com/monkeytypegame/monkeytype/commit/e1510b86eaa707afb980a50f72ab1609d3a11685))
- **refactor:** rewrite share test modal to use new system ([a22dee8a7](https://github.com/monkeytypegame/monkeytype/commit/a22dee8a72be2f5dd22ee4b48c414873c2b42d21))
- **refactor:** move files ([a84e9638a](https://github.com/monkeytypegame/monkeytype/commit/a84e9638afec22bc0b1dcf922f41361195807b92))
- **refactor:** move files ([2a06e3a4f](https://github.com/monkeytypegame/monkeytype/commit/2a06e3a4f3c04005364dea2c6c35b4df4814c307))
- **refactor:** run prettier ([#5493](https://github.com/monkeytypegame/monkeytype/issues/5493)) ([6c3b194e4](https://github.com/monkeytypegame/monkeytype/commit/6c3b194e4d9efddf795e1f9fcac63e8aa1fa494d))
- **refactor:** rework auth state change function ([120b660ef](https://github.com/monkeytypegame/monkeytype/commit/120b660efc0f6e22f133c96fe2a8975caf17aafd))
- **refactor:** dont use deprecated function ([50b658b72](https://github.com/monkeytypegame/monkeytype/commit/50b658b722eb6b96fc61f099f39b29afe5053486))
- **refactor:** avoid root module level function calls ([#except entry file](https://github.com/monkeytypegame/monkeytype/issues/except entry file)) ([e290b529b](https://github.com/monkeytypegame/monkeytype/commit/e290b529b7b297b4bc51ebdd1eb6d4d1bc4bab51))
- **refactor:** move function call ([5351c4eca](https://github.com/monkeytypegame/monkeytype/commit/5351c4eca5d248f50088b7db09781ea69daf517a))
- **refactor:** github version checking ([7deb58cf8](https://github.com/monkeytypegame/monkeytype/commit/7deb58cf88a3cb086ca116380b41ab86de14af43))
- **refactor:** move focus call to the focus file ([3f8f1b9fd](https://github.com/monkeytypegame/monkeytype/commit/3f8f1b9fd61f47a1972f872ec61e1aafcc13cd0b))
- **refactor:** start without focus class ([a587efad6](https://github.com/monkeytypegame/monkeytype/commit/a587efad690c12f9de53a9788876744e42fab29e))
- **refactor:** remove unnecessary line ([54f6e630a](https://github.com/monkeytypegame/monkeytype/commit/54f6e630a68db2db9e08b8008df7e2c76bbca760))
- **refactor:** remove unnecessary code ([4dc137fe2](https://github.com/monkeytypegame/monkeytype/commit/4dc137fe21331aaebd2d5d36b0fbe02da70ec42e))
- **refactor:** move skeleton save to async modules ([995f71d4e](https://github.com/monkeytypegame/monkeytype/commit/995f71d4ed7acb8ef0256a9e6821ec9b5358537e))
- **refactor:** move error event handlers to a dedicated event handlers file ([9b739f6e6](https://github.com/monkeytypegame/monkeytype/commit/9b739f6e64ef253ebdd26fff6bbafe02c5362f7c))
- **test:** mocking isAuthenticated to false ([20eaec60d](https://github.com/monkeytypegame/monkeytype/commit/20eaec60d922b688e431dc5c028f13d65de0f7da))
- **chore:** move launch configuration to workspace file (@fehmer) ([#5502](https://github.com/monkeytypegame/monkeytype/issues/5502)) ([6b352a5e4](https://github.com/monkeytypegame/monkeytype/commit/6b352a5e4f3061902e9db508ce0555031d62452e))
- **chore:** update title ([f9e955d31](https://github.com/monkeytypegame/monkeytype/commit/f9e955d3199d448fa6cf9d1ba4ac9d42772c1dbd))
- **chore:** move file ([afe99b0ab](https://github.com/monkeytypegame/monkeytype/commit/afe99b0abc711ea23041b8907bc9c4d52e24bc95))
- **chore:** remove old, unused code ([fe63d3f19](https://github.com/monkeytypegame/monkeytype/commit/fe63d3f1943ba4955e0f478ab3ea025ed96c0ca7))
- **chore:** remove old plushie banner ([48872a024](https://github.com/monkeytypegame/monkeytype/commit/48872a024bc3dbe6db2b784a2fc2d4e626e36b5a))
- **chore:** add comment ([d8cda00b2](https://github.com/monkeytypegame/monkeytype/commit/d8cda00b275b34b62f8be24e07e81f89041d3484))
- **chore:** upgrade vite-plugin-pwa ([79874fe4e](https://github.com/monkeytypegame/monkeytype/commit/79874fe4e964d5bf6fcd52ac996c6dc7a9c6dbeb))
v24.24.0
11 Jun 2024
Thank you to all the contributors who made this release possible!
### Features
- **funbox:** add plus zero funbox. only the current word is visible ([6a768b40b](https://github.com/monkeytypegame/monkeytype/commit/6a768b40b4e7ed72c6b61f28204d4bab362b6a4b))
- **lang:** add portuguese 5k (acalanato) ([#5462](https://github.com/monkeytypegame/monkeytype/issues/5462)) ([452795f01](https://github.com/monkeytypegame/monkeytype/commit/452795f01f8fb70910f7cbe542b12c6260b8892d))
- **layouts:** add cascade layout (HamNuggets) ([#5481](https://github.com/monkeytypegame/monkeytype/issues/5481)) ([b7f05d7b5](https://github.com/monkeytypegame/monkeytype/commit/b7f05d7b5dff822bb3651000176edcda37e4d13b))
- **theme:** add lilac mist (sandyg6) ([#5415](https://github.com/monkeytypegame/monkeytype/issues/5415)) ([76eb104f3](https://github.com/monkeytypegame/monkeytype/commit/76eb104f3726d49b78fffc4447e9ba5e85019f90))
### Improvements
- **quotes:** Add English quote (celestars) ([#5452](https://github.com/monkeytypegame/monkeytype/issues/5452)) ([226547202](https://github.com/monkeytypegame/monkeytype/commit/226547202820068613afbd55bb4b0ac877972099))
- **quote:** add quotes in various languages (Augustin68, atypicalesper, faq0) ([#5463](https://github.com/monkeytypegame/monkeytype/issues/5463), [#5475](https://github.com/monkeytypegame/monkeytype/issues/5475), [#5465](https://github.com/monkeytypegame/monkeytype/issues/5465)) ([7a1556592](https://github.com/monkeytypegame/monkeytype/commit/7a1556592392aefb0c04afc81a5cf6c5336361d8), [37c256b03](https://github.com/monkeytypegame/monkeytype/commit/37c256b0374149273627d3387c2a1e2c7d58574f), [eac0f7c6a](https://github.com/monkeytypegame/monkeytype/commit/eac0f7c6afb33d0883fa80939446ee8daf05a77c))
- detect custom background image not available (fehmer) ([#5460](https://github.com/monkeytypegame/monkeytype/issues/5460)) ([24909fda1](https://github.com/monkeytypegame/monkeytype/commit/24909fda1c5ea5d9036bb906ef3bc9f76c56ba7e))
### Fixes
- **typing test:** highlight mode next, next 2 and next 3 dont dehighlight typed words ([cfbac0f15](https://github.com/monkeytypegame/monkeytype/commit/cfbac0f153f9b16038268198330925a1405099f9))
- **russian 375k:** delete unwanted words ([#5483](https://github.com/monkeytypegame/monkeytype/issues/5483)) ([323185d55](https://github.com/monkeytypegame/monkeytype/commit/323185d558aac5ba05c03922e543929aa48b3d7d))
- year selector flashing in the top left on page load (fehmer) ([#5476](https://github.com/monkeytypegame/monkeytype/issues/5476)) ([a8c7134f8](https://github.com/monkeytypegame/monkeytype/commit/a8c7134f804dbacbb8c24f4cbc75eac446665dd0))
- backspace to previous word in stop on letter leaving type hints (NadAlaba) ([#5466](https://github.com/monkeytypegame/monkeytype/issues/5466)) ([a1c805cc2](https://github.com/monkeytypegame/monkeytype/commit/a1c805cc28cdf04908e3616ce31e7a23fc32b257))
- misaligned tooltip in terms-of-service (extoplasm) ([#5474](https://github.com/monkeytypegame/monkeytype/issues/5474)) ([e038873b5](https://github.com/monkeytypegame/monkeytype/commit/e038873b5c5aae7b6e6cc3e53d361158ac6ad9f5))
- **server:** incorrect error message when profanity was detected ([66a91011d](https://github.com/monkeytypegame/monkeytype/commit/66a91011d78cd564a463f090dce4a473b27f558e))
- **style:** right to left languages causing test word offset ([8e8fdf872](https://github.com/monkeytypegame/monkeytype/commit/8e8fdf87203ae0892eee3dcddef631010389c78f))
- **style:** weird shifting behavior when typing test that is only one line ([85007b741](https://github.com/monkeytypegame/monkeytype/commit/85007b74127aafd366f60fa737ace98b67eb7c80))
- **funbox:** memory not allowing typing at all ([2890dc7db](https://github.com/monkeytypegame/monkeytype/commit/2890dc7db1cdd19249b9daa1eb6ee11e0018db90))
- test activity graph bugs (fehmer) ([#5468](https://github.com/monkeytypegame/monkeytype/issues/5468)) ([01076986b](https://github.com/monkeytypegame/monkeytype/commit/01076986beec714b0b24780c7868db861e1cbbf1))
- **caret:** incorrect placement on page load ([595000ad4](https://github.com/monkeytypegame/monkeytype/commit/595000ad4fb6aaec4701454abf166a7371276211))
- **presets:** punctuation and numbers modes not being enabled in certain situations ([b2a860499](https://github.com/monkeytypegame/monkeytype/commit/b2a86049941d1404f8409a1acd25a2298bfac092))
- **xp:** hide decimal point if displayed xp is < 1000 (NadAlaba) ([#5448](https://github.com/monkeytypegame/monkeytype/issues/5448)) ([2c0002c91](https://github.com/monkeytypegame/monkeytype/commit/2c0002c919a4f193731929d9356beff43d5034da))
- remove pending crown from results that wont be sent to the server ([5306d6fe2](https://github.com/monkeytypegame/monkeytype/commit/5306d6fe2c691fb4f2d5ce3306df4080312cf3ec))
- also disallow stop on letter on the daily leaderboards ([d2d1f83a3](https://github.com/monkeytypegame/monkeytype/commit/d2d1f83a362fc4a1beb37c6dda6911da353255a3))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(type):** more accurate type on a function parameter ([ee340f4e2](https://github.com/monkeytypegame/monkeytype/commit/ee340f4e2249ba93bb7d53d711605091d2919e31))
- **impr:** optimize use of fontawesome (fehmer) ([#5423](https://github.com/monkeytypegame/monkeytype/issues/5423)) ([fad3f6e8d](https://github.com/monkeytypegame/monkeytype/commit/fad3f6e8d1da5ef1008d403b60f9114077235454))
- **impr(server):** log server versions which generate 500 errors ([ff86c8321](https://github.com/monkeytypegame/monkeytype/commit/ff86c832119d713257f76c1ae7e50616842ab152))
- **fix:** font awesome regular not working (Miodec, fehmer) ([#5477](https://github.com/monkeytypegame/monkeytype/issues/5477)) ([f72f58f3f](https://github.com/monkeytypegame/monkeytype/commit/f72f58f3f9de51db8535bb7809170fb2ca4ae2b6))
- **docs:** fix a typo and apply styling to the whole doc (Warrobot10) ([#5456](https://github.com/monkeytypegame/monkeytype/issues/5456)) ([eb3a6e0f4](https://github.com/monkeytypegame/monkeytype/commit/eb3a6e0f4081c379b64e8954e0861c181aa2d093))
- **refactor:** await word addition, call some UI functions after word addition ([d6c17664e](https://github.com/monkeytypegame/monkeytype/commit/d6c17664ee0213cdb08e98fce19405792ed9dad4))
- **refactor:** move test finish/fail logic, add all words generated check ([faf7efa04](https://github.com/monkeytypegame/monkeytype/commit/faf7efa043a9b7aa1ce249e9703b90aece4bb600))
- **refactor:** move tape scrolling function call to the ui file ([148fa1e51](https://github.com/monkeytypegame/monkeytype/commit/148fa1e5197889b679185e90e5473b47406c4341))
- **refactor:** checking if all words were generated before stopping the test ([0e8274f93](https://github.com/monkeytypegame/monkeytype/commit/0e8274f93d8e685c48ba73a79f23ae8d90815604))
- **refactor:** throw if word element is nullish instead of assuming its always there which could cause issues ([fb721344a](https://github.com/monkeytypegame/monkeytype/commit/fb721344a7d55fdb28ab1f43f076fd0480991297))
- **refactor:** extract code so that it can be used in other places ([eab8eefd4](https://github.com/monkeytypegame/monkeytype/commit/eab8eefd4b88257aee9592e2edce0e9ab5476be5))
- **refactor:** remove old, unnecessary code ([2e78d9f06](https://github.com/monkeytypegame/monkeytype/commit/2e78d9f0667b8964e7355dd9d3906bce76ef3815))
- **refactor:** only calling ui functions when on the test page ([60570459c](https://github.com/monkeytypegame/monkeytype/commit/60570459cb87bfa078238f8d46339f4bac3cb64e))
- **refactor:** move token revoke call to other auth util functions ([90c96a2bd](https://github.com/monkeytypegame/monkeytype/commit/90c96a2bd78564b60c70ee98e6a69ff503d33ace))
- **refactor:** update crown type names ([a279744ef](https://github.com/monkeytypegame/monkeytype/commit/a279744ef336246c42c5d722bb0d2e115dd85479))
- **test:** remove double mock ([05d6160b2](https://github.com/monkeytypegame/monkeytype/commit/05d6160b2a0b7546fb596401492f49d23cfb5b3c))
- **build:** add @shared alias pointing to the shared directory ([57ff186f9](https://github.com/monkeytypegame/monkeytype/commit/57ff186f91a0024cf04d4e228ccea3538e6d9976))
- **chore:** release v24.23.0 ([21692a119](https://github.com/monkeytypegame/monkeytype/commit/21692a11957bc312a944e4ed9003ca775da015a8))
- **chore:** make sure to use the correct node version ([57e2bbc86](https://github.com/monkeytypegame/monkeytype/commit/57e2bbc86f347473096045593bc283872964d815))
- **chore:** make sure pre-push hook file is executable ([9659ebb1b](https://github.com/monkeytypegame/monkeytype/commit/9659ebb1beef85a9d42e9f296773046fa3d90bfe))
- **chore:** make sure to run tests before pushing to master ([16b794412](https://github.com/monkeytypegame/monkeytype/commit/16b794412b76add4c298345b6b4f65681cd94aa6))
v24.23.0
03 Jun 2024
Thank you to all the contributors who made this release possible!
### Fixes
- **caret:** incorrect placement on page load ([595000ad4](https://github.com/monkeytypegame/monkeytype/commit/595000ad4fb6aaec4701454abf166a7371276211))
- **presets:** punctuation and numbers modes not being enabled in certain situations ([b2a860499](https://github.com/monkeytypegame/monkeytype/commit/b2a86049941d1404f8409a1acd25a2298bfac092))
- **xp:** hide decimal point if displayed xp is < 1000 (NadAlaba) ([#5448](https://github.com/monkeytypegame/monkeytype/issues/5448)) ([2c0002c91](https://github.com/monkeytypegame/monkeytype/commit/2c0002c919a4f193731929d9356beff43d5034da))
- remove pending crown from results that wont be sent to the server ([5306d6fe2](https://github.com/monkeytypegame/monkeytype/commit/5306d6fe2c691fb4f2d5ce3306df4080312cf3ec))
- also disallow stop on letter on the daily leaderboards ([d2d1f83a3](https://github.com/monkeytypegame/monkeytype/commit/d2d1f83a362fc4a1beb37c6dda6911da353255a3))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **refactor:** move token revoke call to other auth util functions ([90c96a2bd](https://github.com/monkeytypegame/monkeytype/commit/90c96a2bd78564b60c70ee98e6a69ff503d33ace))
- **refactor:** update crown type names ([a279744ef](https://github.com/monkeytypegame/monkeytype/commit/a279744ef336246c42c5d722bb0d2e115dd85479))
- **test:** remove double mock ([05d6160b2](https://github.com/monkeytypegame/monkeytype/commit/05d6160b2a0b7546fb596401492f49d23cfb5b3c))
- **build:** add @shared alias pointing to the shared directory ([57ff186f9](https://github.com/monkeytypegame/monkeytype/commit/57ff186f91a0024cf04d4e228ccea3538e6d9976))
- **chore:** make sure to use the correct node version ([57e2bbc86](https://github.com/monkeytypegame/monkeytype/commit/57e2bbc86f347473096045593bc283872964d815))
- **chore:** make sure pre-push hook file is executable ([9659ebb1b](https://github.com/monkeytypegame/monkeytype/commit/9659ebb1beef85a9d42e9f296773046fa3d90bfe))
- **chore:** make sure to run tests before pushing to master ([16b794412](https://github.com/monkeytypegame/monkeytype/commit/16b794412b76add4c298345b6b4f65681cd94aa6))
v24.22.0
28 May 2024
Thank you to all the contributors who made this release possible!
### Features
- **result:** disallow stop on error letter from getting new pbs ([aa2466a0d](https://github.com/monkeytypegame/monkeytype/commit/aa2466a0d164729ee27f09d1b00a002a70e2a069))
After giving it some thought and receiving proof from some of the fastest typists on the site that it's very easy to abuse this setting - I have decided to disallow stop on error: letter from getting new personal bests. I even remember back when adding this feature couple years ago how I thought it was a bit too much help (completely removing the need to backspace), but I was quite focused on just pleasing the community and pumping out new features. With Monkeytype getting more and more competitive, it is now clear that the advantage is just too much. Plus, it doesn't reflect how we all type from day to day.
### Improvements
- **result:** add new crown states (error, warning, ineligible, normal) ([bc3ecb25e](https://github.com/monkeytypegame/monkeytype/commit/bc3ecb25eb1e3cef9f8453138b4ba3b7cfdc9746))
This change will provide earlier feedback to you if you got a PB. A new, outlined crown will appear if the client thinks you will get a PB based on the locally available data. Then as soon as the server responds, the icon will change to represent a "confirmed pb".
The icon will also warn you if your config is ineligible for a new PB (based on the change above)
- **result saving:** better error message when result schema is incorrect ([cd11d7ced](https://github.com/monkeytypegame/monkeytype/commit/cd11d7ced70d8ab6fab3b117599652aacd565cf3))
- **british english:** add more words to the replacement list ([468460fc2](https://github.com/monkeytypegame/monkeytype/commit/468460fc27ec2b7eec057c4a2ac37f8c8dfc9132))
- **results filters:** allow deselecting options in multiselect dropdowns of results filters (NadAlaba) ([#5445](https://github.com/monkeytypegame/monkeytype/issues/5445)) ([df3e9ff12](https://github.com/monkeytypegame/monkeytype/commit/df3e9ff1233648af252b2dce6b6650fbf97cf626))
- **french input:** when typing œ and æ, replace them with oe and ae ([b626fdd64](https://github.com/monkeytypegame/monkeytype/commit/b626fdd643e9344fa390ce7e3c10eb62ad9d0b09))
- **quote:** add quotes in various languages ([#5441](https://github.com/monkeytypegame/monkeytype/issues/5441)) ([367569f9b](https://github.com/monkeytypegame/monkeytype/commit/367569f9b6fa7aabc741f1b18001cccc515fd393))
### Fixes
- **layout:** fix arabic 101 & arabic 102 layouts ([#5449](https://github.com/monkeytypegame/monkeytype/issues/5449)) ([f9d1016e4](https://github.com/monkeytypegame/monkeytype/commit/f9d1016e470ebeef62a0af0cc2d840a41f5239ab))
- **crt:** shrinking xp bar and hints not glowing (NadAlaba) ([#5447](https://github.com/monkeytypegame/monkeytype/issues/5447)) ([f4d121c25](https://github.com/monkeytypegame/monkeytype/commit/f4d121c250e7ad573bacc687d641553831e9979f))
- **quote:** update or remove quotes reported by users ([353077c7a](https://github.com/monkeytypegame/monkeytype/commit/353077c7aaa3bee5575c4d51948ce6a02b2854a5))
### Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- **impr(server):** move password update from client to server ([8e057e3cb](https://github.com/monkeytypegame/monkeytype/commit/8e057e3cb63776c1ba008f5e25506a8948f86ae5))
- **fix(backend):** use correct function ([0c38d99bd](https://github.com/monkeytypegame/monkeytype/commit/0c38d99bdef8b283eee5ed37765cd8233797fa2c))
- **docs:** missing paragraph element ([898278b3e](https://github.com/monkeytypegame/monkeytype/commit/898278b3eb8ef2137fb27656a5bbbdfcd1ea7bad))
- **docs:** utilize blockquote color highlights (unrealapex) ([#5444](https://github.com/monkeytypegame/monkeytype/issues/5444)) ([272d61cd0](https://github.com/monkeytypegame/monkeytype/commit/272d61cd0ac16074285c1ac8eaa1288193e96bb2))
- **refactor(backend):** revoke tokens, update email ([f7a97505d](https://github.com/monkeytypegame/monkeytype/commit/f7a97505db57ccee5616b4143cfa7b6fa8b73384))
- **test:** fix missing mocks breaking tests ([40423baa2](https://github.com/monkeytypegame/monkeytype/commit/40423baa2a00c5a2c1fad6199782038d74faca92))
- **test:** fix flaky tests on user creation (fehmer) ([#5434](https://github.com/monkeytypegame/monkeytype/issues/5434)) ([fd3fc7ca4](https://github.com/monkeytypegame/monkeytype/commit/fd3fc7ca4761be64977dbba3879b71f0980a1efe))
- **chore:** remove unnecessary import ([4a29e6a1b](https://github.com/monkeytypegame/monkeytype/commit/4a29e6a1befacc7e61ad1f8e0a087c3c75fed9be))
- **chore:** quote lengths script ([cebc4d76a](https://github.com/monkeytypegame/monkeytype/commit/cebc4d76ade6cc4750a48f14df964ccaa1c3a491))
- **chore:** remove unnecessary import ([313468cee](https://github.com/monkeytypegame/monkeytype/commit/313468cee3a8c7a308e1eb37350259645f84069c))