Releases: monkeytypegame/monkeytype
v26.12.0
Thank you to all the contributors who made this release possible!
Features
- fonts: add Inter Tight and Space Grotesk (@AzureNightlock) (#7585) (fe00866b6)
Improvements
- personal best: personal best table UX QoL (@DLineone) (#7551) (07e76a549)
- leaderboard: don't show stale data for weekly/daily when entering leaderboard page (@fehmer) (#7597) (1254f2cfc)
- quotes: Add code_java quotes (@K87lk) (#7566) (400acde4a)
- quotes: only check short length of new quotes (@Leonabcd123) (#7555) (5d608d536)
- fonts: improve letter-wise feedback of Arabic script default font (@nadalaba) (#7552) (f4c9ad727)
- quotes: add quotes in various languages (@blue-94, @enzom-uy, @WormholeDragon) (#7581, #7557, #7365) (f6367ea4d, 6154bbfd0, 9b7417c43)
Fixes
- update security.txt expiry date (@norwd) (#7610) (5af1eed4d)
- profile: prevent PB hover details from overlapping base values (@AzureNightlock) (#7598) (666d8cd1b)
- layoutfluid: highlight key after layout switch in timed mode when layoutfluid is active (@Leonabcd123) (#7594) (685a40d0a)
- quick-restart: quick restart warning firing for wrong events in long tests (@Leonabcd123) (#7590) (9ab31b9f7)
- quote-search: user input is interpreted as a regex when using exact quote search (@Leonabcd123) (#7658) (98f1c091e)
- favorite-quote: favorite quote button isn't hidden in result screen when logged out (@Leonabcd123) (#7649) (50f95c5de)
- style: transparent table headers when custom background is used (@fehmer) (#7612) (0a7785b93)
- language: mark esperanto word lists as ordered by frequency (@norwd) (#7620) (688bc6892)
- caret: prevent misplacement in zen mode with blind mode on (@byseif21) (#7584) (c5711c43b)
- quote-search: length filter losing styles after returning from chained modal (@byseif21) (#7570) (2f2de3b21)
- hide xp bar and breakdown in focus mode (8ea033062)
- profile: missing completion ratio tooltip to tests completed stat (3d528288f)
- remove redundant clearGlobal/applyGlobalCSS calls (@byseif21) (#7575) (e57686d46)
- custom-text: custom text isn't saving to local storage (@Leonabcd123) (#7573) (e16f3c177)
- changelog: prs which aren't adding quotes are treated as such (@Leonabcd123) (#7592) (c2c064fc1)
- lb: Fix missing min wpm to qualify on rank (@fehmer) (#7616) (b6d89499e)
- profile: don't show headers if no content (@fehmer) (#7603) (47e725cb5)
- language: Add all Common Lisp symbols. (@aadcg) (#7569) (ca6a4ef0d)
- stupid safari (85ae1fa95)
- profile: badge text hiding on narrow screen (39d9111df)
- practise-words: treat proto as a normal word in practise words (@Leonabcd123) (#7494) (245dcd7af)
- stuck hover on focus for header and restart button (@byseif21) (#7434) (d79ac4c19)
- profile: fix style issues (@fehmer) (#7593) (a4fb88e6c)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- fix(User component): spinner positioning, level spacing (999b58c0c)
- refactor: move some code to the constants directory, move constants to their own bundle chunk (@Miodec) (#7650) (3ec2cac17)
- refactor(chart): better theme handling for ChartJs component (@fehmer) (#7600) (2d558d10f)
- refactor: util cleanup (@Miodec) (#7648) (0576f1708)
- chore: fix contributors file path (abd8fb87c)
- chore: downgrade to vite7 for now (bfac84904)
- chore: actually fix 404 (7ddbcdf0a)
- chore: fix 404 page styling (f5a47615d)
- chore: add yaml as dev dependency (5f264392f)
- chore: update contributors when running the release script (83c5ff1a6)
- chore: add solid dev tools (@fehmer) (#7660) (6161fdb5f)
- chore: finish cleaning up utils (e85bc8ae2)
- chore: remove test logic dependency from solidjs code ([01c986f](htt...
v26.11.0
Big release today again because im lazy and haven't made one of these in a while. Oops.
Thank you to all the contributors who made this release possible!
Features
- Add 1,000 Irish word list (@aindriu80) (#7535) (c9e6f71ce)
- layout: add miligram layout (@kazeno-uta) (#7523) (9cd127516)
- layout: add vitrimak layout (@aoieop) (#7488) (8056eb5ee)
- add practice typing mode (no stats, xp, or pb) (@Vishal27alpha) (#7482) (b58b48adb)
- add Chinese Traditional 1k, 5k, 10k, and 50k word lists (@nota-noob) (#7479) (e23836f36)
- layout: add statica_3x5 layout, vestnik layout (@ShyPsy) (#7460) (5e78c9e43)
- layout: add Gralmak layout (@DreymaR) (#7457) (332d119f8)
- font: add Adwaita Mono (@poli0iq) (#7389) (c13d59f91)
- layout: add azerty_AFNOR layout (@JacquesHumule) (#7376) (7c66fd7ad)
Improvements
- use data-nav-item to address navigation items (@fehmer) (#7558) (17fc4be02)
- use tailwind for Button component (@fehmer) (#7536) (5c32e2b7f)
- languages: expand kinyarwanda word list (@cedrick13bienvenue) (#7529) (ff3b58bf6)
- sound: all sounds normalized to -10dB (@razorree) (#7515) (2eda3e113)
- remove connection guards (@fehmer) (#7508) (763b6002d)
- add details to speed histogram (@fehmer) (#7503) (a6c1e6b5d)
- enable dots typed effect for ligature languages (@byseif21) (#7458) (658390a2a)
- quote-search: use rtl direction when showing rtl text in quote search modal (@Leonabcd123) (#7431) (4d0b4cce4)
- add infinite scroll to version hisory (@fehmer) (#7490) (4052e21f3)
- quotes: add quotes in various languages (@Leonabcd123, @K87lk, @norwd, @damarpas, @lindseyp555, @HmonWutt, @szpeterr) (#7534, #7533, #7531, #7514, #7435, #7427, #7378) (a0551e99e, 29b2a0928, 3bda4e560, fb700f55d, 5b05b28af, 12d057544, 0f09ae33b)
Fixes
- profile: show additional user badges in one line (@fehmer) (#7568) (b05563d29)
- ui: disable UI interaction during loading state (@openvaibhav) (#7589) (ea18f496b)
- bad typecast converting null to object (8d5db5e1a)
- use has-focus-visible for account menu and remove redundant pointer-events (aca98384d)
- streamline variant handling in Button component (b6900b981)
- permissions to post comments (1f5255c3f)
- xp bar background (410e41aa9)
- error-messages: remove trailing periods (@fehmer, @Leonabcd123) (#7545) (576bb29ab)
- test: prioritize "too short" over AFK detection for very short tests (@openvaibhav) (#7519) (3fe1fdfc3)
- settings: quick nav fails to open hide elements & danger zone (@byseif21) (#7513) (751b715e5)
- theme: name still visible after test start in some themes (@Leonabcd123) (#7511) (0f3bc7a43)
- account: filter buttons not working (@fehmer) (#7505) (427e9de6c)
- presets: spaces not being replaced when editing preset with underscores in its name (@Leonabcd123) (#7501) (39d522abb)
- test-config: some layout and state issues (@byseif21) (#7500) (a5af40c47)
- merch banner image not visible on profile page (@fehmer) (#7487) (cb2d899cf)
- spanish_10k: correct spelling mistake in spanish_10k.json (@eswaldots) (#7489) (944f9c74a)
- caps-warning: caps state isn't always correct (@Leonabcd123, @fehmer) (#7478) (ba4d4e9f9)
- blind-mode: blind mode not working in 9009 theme (@fehmer) (#7474) (6e59ca30e)
- validation-indicator: punctuation when there are multiple errors (@Leonabcd123) (#7424) (6eceeb4cb)
- quotes: fixed some grammatical errors in spanish quotes...
v26.6.0
Little bit overdue, here's 4 weeks of changes. Thank you to all the contributors who made this release possible!
Features
- add Kinyarwanda language (@cedrick13bienvenue) (#7400) (c59f121e1)
- add setting to display typed words differently (@fehmer) (#7360) (fe4b85ee3)
Improvements
- language: update Swiss German language files (@egemasta) (#7329) (3057d9162)
- test result: recalculate min max chart values when toggling a dataset (5e70e3398)
- result: add button to quickly toggle chart scale (c1c6c7dac)
- quotes: add quotes in various languages (@m-spitfire) (#7315) (2e959e592)
Fixes
- monkey not typing in layout emulator (3d34ed599)
- screenshots not supporting css @layers (@Miodec, @fehmer) (#7453) (2bd669afa)
- account: remove badges if user has none (@fehmer) (#7467) (39c95c63b)
- progress always visible in zen mode (475388447)
- theme: incorrect button highlight color (399402156)
- bulgarian 1k: use cyryllic 'a' instead of latin (d6128ce8b)
- fa component breaking font-subset (@Miodec) (#7446) (a9ad61847)
- screenshots not supporting css @layers (@Miodec) (#7450) (2635d12f8)
- fontawesome icon visibility styles (@MirruK) (#7436) (9a76dbdb6)
- screenshot: qs warning for multiple highlightContainer (@byseif21) (#7426) (2f9cdb2d9)
- blur slider being visually blurred (@byseif21) (#7425) (8c40ca557)
- some screenshot issues (@byseif21) (#7416) (4d4ffb7b9)
- unable to load saved custom texts (190f8830c)
- result: graph scale button not working (e0bd4b026)
- favorite-quote: can't favorite a quote (@Leonabcd123) (#7423) (d84d0c549)
- quote-search: Fix qsa warning in quote search modal (@Leonabcd123) (#7418) (f0ae3b3b6)
- broken screenshots (0ca914f44)
- scroll animations not working (39245bc92)
- key tips not updating and not hiding (2f0a523c5)
- account: buttons not updating history chart (@fehmer) (#7407) (355c25e57)
- breakpoints signal should always have xxs true (@fehmer) (#7408) (f40e9f5f2)
- profile: load user without personalBests (@fehmer) (#7399) (26dd5c464)
- missing theme on standalone pages (@fehmer) (#7404) (e35182d81)
- css layers in the wrong order in prod (7ddaa4c49)
- sellout ad positioning on the about page (0599f5fd6)
- misaligned friends button (54df529c5)
- discord linking broken (d63cd5d7b)
- return 404 on missing assets (@fehmer) (#7379) (6699a8ba6)
- importing a file that doesnt exist (49c828abd)
- 404 page not working (a40d1903c)
- tags: Update tags after deletion (@Leonabcd123) (#7338) (ea3a545f7)
- single list commandline not working on initial show (a856b7659)
- incorrect path (e04d6e88f)
- correct streak offset validation to allow .5 decrements (@Chaitanya-Keyal) (#7363) (c31dd1e05)
- caret: positioning for mixed language directions in zen (@byseif21) (#7281) (e37b44799)
- show correct local reset time if streak offset has 30minute offset (@fehmer) (#7362) (ae45d8e1f)
- theme: fix button roundness in dark_note theme (@fehmer) (#7358) (3534f8fc3)
- analytics not loading (@fehmer) (#7354) (3e899b11f)
- result page: long tests showing with graphs from previous tests (ad5136ef3)
- activivity graph sometimes overflowing the container (504bad446)
- tamil-old: set ligatures to true in tamil old (@Leonabcd123) (#7349) (6af2c2dca)
- disable oxlint-overlay on production (@fehmer) (#7348) (50a469203)
- component mounting not working in prod (2829864ae)
- tags: update tag pbs after adding/removing tags from result (@Leonabcd123) (#7337) ([21b0975](21b0975...
v26.2.0
Thank you to all the contributors who made this release possible!
Features
- create new sPoNgEcAsE and modify raNDOmcASe to be random (@Justiniscoding) (#7295) (4da82d0f2)
- layout: add tamil99 layout (@ving-sh) (#7313) (bd2df3971)
- layout: add night_stic layout (@mikebartGN) (#7301) (fe2f15107)
- sound: add fart (@emmaqwe) (#7245) (03e306f3b)
- commandline: add sign out (@fehmer) (#7283) (ef5ef0c42)
- theme: add spiderman theme (@asifMalik78) (#7240) (91d64dc92)
- layout: add colemak_angle layout (@ALAMO276) (#7200) (38cc8e12d)
- add composition display setting (443e27fbf)
Improvements
- quote: Added an English and Portuguese quote (@h-queiroz) (#7297) (1b193532c)
- burst-history: Use end time when calculating burst if test ended (@Leonabcd123) (#7302) (ace96b3a6)
- streak hour offset: support 30 min offsets (@large-r0dent) (#7269) (090dd0152)
- add reset function to promiseWithResolvers (@Miodec) (#7280) (16b4ec88a)
- quotes: Add English quotes from XCOM: EU (@Zeden19) (#7264) (1e2109bf6)
- add copy details to notification history (@fehmer) (#7262) (8a2a3e4d2)
- language: add bulgarian 1k (@100daysummer) (#7232) (74bafad7d)
- add multiple elements found warning in dom utils (@fehmer) (#7242) (36b59ae8e)
- ignore enter key when trying to bail out via shift+enter (872027c16)
- quotes: add quotes in various languages (@norwd, @Leonabcd123, @lorenzjdr, @AintJierie, @MythicalWillbur, @JuniorKlumpy) (#7294, #7261, #7214, #7207, #7192, #7180) (31aa70a50, 9d709c7c7, 95bd39a20, 9309c0c5f, d1011bd1f, 204fffebe)
Fixes
- themes ui list shows clipped when selected or hovered (1294499d0)
- custom: ignore prototype properties in British English replacement rules (@byseif21) (#7317) (0c168af84)
- custom-mode: chart problems in custom mode (@Leonabcd123) (#7293) (f8ec9da43)
- friendlist: handle legacy pbs in friendlist frontend (show less details) (@wRadion) (#7296) (2dc99e9e7)
- tiny bug of using wrong port for creating app (@rizwanmustafa) (#7309) (785619c5e)
- tags: selected tags not being highlighted in test result (@Leonabcd123) (#7312) (d09969f1e)
- caret: caret problems when typing ltr characters in rtl word (@Leonabcd123) (#7287) (332b90833)
- missing backend schema update (38771f652)
- dom-utils onChild calling handler for elements outside the parent (@fehmer) (#7279) (dd2ec8c6b)
- british-english: adds british english spelling for english-medical.json (@AlexRusbridge) (#7278) (5093dbe12)
- preset: Fix qsa warning on preset modal (@Leonabcd123) (#7277) (8148b05dd)
- blind-mode: make blind mode "on" text invisible (@Leonabcd123) (#7274) (47712857f)
- hide-extra-letters: extra letters with hideExtraLetters enabled causing caret problems (@Leonabcd123) (#7272) (805c7ae7d)
- account icon alignment when not using an avatar (8d1eefc5b)
- previous commit nuking the timer (c222098a0)
- lazy-mode: respect manual toggle after unsupported language (@byseif21) (#7260) (0e5dd85db)
- timer resetting to initial value when test finishes (bd9951931)
- caret: align caret correctly in RTL tape mode (@byseif21) (#7259) (96169a149)
- blind mode: Extra letters in blind mode causing caret problems (@Leonabcd123) (#7254) (b7c06d1dd)
- out of focus warning sometimes showing even though words were focused (65aadb7e8)
- account settings: some buttons being visible when they shouldnt be (ee2e680ff)
- account settings: buttons not working (469a2f633)
- account settings: tabs not deselecting ([69684ed](https://github.com/monkeytypegam...
v25.49.0
Thank you to all the contributors who made this release possible!
Features
- funbox: Add rot13 funbox (@Leonabcd123) (#7116) (e8339f0a1)
- quote search: add custom quote length filter (@Leonabcd123) (#7109)
Improvements
- perf: defer UI updates away from input logic (@Miodec) (#7162) (b9924ff49)
Together with input v3 input handling logic is now MUCH faster, and should result in a more consistent experience, especially on slower machines. - words-filter: add 'exact match only' checkbox (@Leonabcd123) (#7126) (2886c7283)
- input-history: Change style for incomplete last word in input history (@Leonabcd123) (#7117) (f6df27246)
- timer/progress style: add flashing timer style (@gianpena) (#7139) (d18408700)
- quotes: Add quotes from eChat source code (@sapbotgit) (#7154) (a875aa6ed)
- validate username on profile search page (@fehmer) (#7132) (0a4043de4)
- practice-words: Add option to practice missed and slow words from commandline (@Leonabcd123) (#7125) (f54c8a8cd)
- quotes: add quotes in various languages (@NeraShi, @28Zapper) (#7152, #7113) (54e660da6, c2691b334, 31e07e28a)
Fixes
- friends: change "max streak" tooltip to "longest streak" (@ashiqr-dev) (#7165) (6475b4213)
- weird input behavior on some android keyboards (b64db65e5)
- backspacing causing desync on some platforms (ad3b7b37d)
- ts issues (how did this get past ci?) (12f206eec)
- friends: proper display of pending requests on small screens (@fehmer) (#7148) (aafabeb78)
- language: replace oe with œ where relevant (@bersace) (#7130) (b7ddb2600)
- keymap: prevent tilde key from highlighting entire keymap (@LodunCoombs) (#7128) (c99f504f3)
- language: add missing ligatures in french_10k (@Arkanosis) (#7111) (ddd5eb40d)
- layout: pine v4 (#7110) (dcc4e4052)
- composition update not making sounds (60d1aac72)
- ellipsis not working correctly (f63972a63)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- fix(ci): use install instead of add (2cef523c3)
- fix(ci): use -D for prettier install (94b3bb135)
- fix(ci): pretty check using wrong version, missing plugin (4b34854d3)
- refactor: cache often used elements (741ab7cb0)
- refactor: Use class for validateWithIndicator (@fehmer) (#7151) (71b5d2215)
- refactor: use modern api for toggle fullscreen (@fehmer) (#7150) (227a52202)
- ci: allow dependabot node version (@fehmer) (#7184) (445be8875)
- build(deps): bump express from 5.1.0 to 5.2.0 in /backend (#7175) (6cfb88090)
- build(deps): bump nodemailer from 7.0.7 to 7.0.11 in /backend (#7176) (71c0f43d9)
- chore: rename pretty to format (@Miodec) (#7183) (883d21fac)
- chore: make sure to use production env when building for production (2fcc86ddd)
- chore: add disable slow timer button to dev options (ad8e4f65b)
- chore: remove duplicated debug log (8c035c168)
- chore: update timer style schema (a9e0db4f8)
- chore: animate also accepts strings (be73085b2)
- chore: add guards to composition (62ef8564a)
- chore: add guards to before delete (34e971bc4)
- chore: remove oxc prettier plugin (3b01090e5)
- chore: use oxc plugin for prettier (066192c28)
- chore: upgrade to prettier 3.7 (5f305735d)
- chore: prettier upgrade (@Miodec) (#7159) (f910c8a56)
- chore: add more words to hinglish language(hinglish.json) (@GreenvillSSnick) (#7138) (14895f64a)
v25.48.0
Thank you to all the contributors who made this release possible!
This release features input v3, which completely reworks the input system and makes it much easier to work with. You as the user shouldn't notice anything different - but if you do, make sure to report any issues!
Features
- add show personal best (032844d02)
You can now view your PB for the current test settings right above the test words, before starting the test. - test: add indicate typos both (@Leonabcd123) (#7072) (13b75f46b)
- theme: add Vesper Light (@SameerJS6) (#7040) (bb6e0d982)
Improvements
- add monkey caret style (36574b409)
- handle backend unavailable in remote validations (@fehmer) (#7105) (0e4b9c468)
- leaderboard: fix icons on friend xp leaderboards (@fehmer) (#7106) (05afcc51f)
Fixes
- skill issue fix not fitting on mobile screens (a552272cd)
- unable to enter fullscreen on result page (337541902)
- backspace always playing error sound (0d9a1d9da)
- arrows funbox not working (54b9220a2)
- nospace not working (e3135550d)
- set korean status based on generated words (aad3912ee)
- zen mode: newline not working (f4f4057dd)
- test: restart not working in long tests (@Leonabcd123) (#7143) (dfa716a41)
- alt space highlighting correct word as incorrect (eab1737ea)
- input: broken accents in safari (4e7bda023)
- non-breaking space behaving like a character (f86f25356)
- custom-theme: Remove duplicate .customTheme selectors (@Leonabcd123) (#7120) (595ff2776)
- double caret on webkit devices (a5f2a5be9)
- animation modal: animations stacking unnecessairly (3454da18e)
- custom theme color pickers not working (fa669fb27)
- test: don't ignore caps lock in layout emulator (@fehmer) (#7107) (e1e1bfb30)
- leaderboards: show correct rank in friends weekly leaderboard (@fehmer) (#7104) (8ee7e94d4)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- refactor: move data normalization to a function (68266101d)
- refactor: move const inside an if (43e0bc783)
- refactor: input rewrite v3 (@Miodec) (#7119) (ea84adfb4)
- refactor: use animejs instead of jquery (@Miodec) (#7101) (253608727)
- refactor: remove lodash from backend (@fehmer) (#6953) (100979191)
- perf: optimize friend queries (@fehmer) (#7080) (949e2baa4)
- build: extract vite plugins (@fehmer) (#7103) (81f09b9b9)
- chore: upgrade typescript (3dfea100d)
- chore: reorder folders (cc9eee198)
- chore: add comment (d617513fc)
- chore: add command to fix skill issue (13d7752c6)
- chore: add initial value (04d9ed241)
- chore: lower min fps to 15 (bd5b91e66)
- chore: upgrade oxlint (2107c87fd)
- chore: add protection against all custom theme colors being the same (8e9379203)
- chore: change from type assertion to type definition for stronger type checking (6c3adc0e9)
- chore: move code (5a9038cfe)
- chore: move files (4cc1c0956)
v25.46.0
Thank you to all the contributors who made this release possible!
Features
- leaderboard: add friends filter to daily/weekly leaderboard (@fehmer) (#7084) (d74051e87)
- theme: added pale_nimbus (@conner-mcnicholas) (#7055) (9cb19e3ea)
- leaderboard: add friends filter to all-time leaderboard (@fehmer) (#7061) (9d64a57da)
- add custom character generator to custom text modal (@imrajyavardhan12) (#7037) (ffd55c532)
Improvements
- languages: fixed the default hungarian word list, and also added hungarian_1k list (@dotleon) (#7087) (05e1b828a)
- randomize themes based on system theme (@fehmer) (#7075) (946f41835)
- leaderboard: fix icons on friend leaderboards (@fehmer) (#7086) (35be4bdfd)
- friends: remember sorting of friends list (@fehmer) (#7062) (08165adc2)
- friends: validate username on add friend (@fehmer) (#7059) (1cf316a77)
- quotes: add quotes in various languages (@Tekkermester, @notfpt, @theFaustus, @thesomewhatyou, @prathampt) (#7071, #7098, #7100, #7076, #7048) (556208efa, d502f67aa, b1b57dcc9, 318da6e61, 12e3d65f9)
Fixes
- quote: fix run-on sentence in quote 5580 (@mak448a) (#7092) (013f710e1)
- ae/oe chars being registered as two mistakes when mistyped (@thedev0ps) (#7090) (027e57261)
- add input validation for new filter preset modal (@AmanDevelops) (#7073) (c76f8dc66)
- wpm sometimes goes negative in zen mode (8aa1f51c2)
- partially correct last words counting towards final wpm in non timed modes (a3765b9b5)
- 404 page not working (bf37029f6)
- xp leaderboards missing first column (2f5cb164c)
- unable to delete a preset in some cases (e930d0c3f)
- friends: not able to sort by 'friends for' column (@fehmer) (#7057) (caae0d404)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- style: add space between connected sentences in security policy (@thedev0ps) (#7078) (feb91bdb6)
- docs: Add author name requirement to PR titles (@fehmer) (#7089) (478836bbf)
- refactor: use virtual module for env-config (@fehmer) (#7095) (6adfcb092)
- refactor: rework keypress tracking (df06b6263)
- refactor(accounts): use sortedTable for history (@fehmer) (#6747) (78b0eb25a)
- ci: fix generate version plugin hiding previous errors (@fehmer) (#7060) (b5755faa3)
- chore(language): update code_jule (@adamperkowski) (#7097) (f44e491c5)
- chore: update vitest to 4.0.8 (@fehmer) (#7096) (8db114004)
- chore: fix typo (33880b384)
- chore: disable sentry replays for now (52b7d963b)
- chore: language integrity check (@fehmer) (#7074) (70dfd2aa6)
- chore: bump node version (c0191da00)
- chore: upgrade oxlint (586a19ad3)
v25.44.0
Thank you to all the contributors who made this release possible!
Features
- add friends (@fehmer) (#6658) (d885e7023)
You can now add other users as friends. This will allow you to quickly compare your stats and personal bests against your friends. - layout: add Gallium-NL layout (@Ririshi) (#7029) (e4afca1ff)
- language: add Erlang programming language support (@Ryrden) (#7013) (154b88eec)
- language: add Clojure programming language support (@Ryrden) (#7012) (260c3a94c)
- languages: add code ocaml language (@informal-stripes-condo) (#7000) (820ac7148)
- layout: add gust layout (@MasterRon) (#6991) (a15d84e0c)
- layout: add pine v4 layout (@verdant23) (#6958) (74e4dd7b2)
Improvements
- apply reduced motion to live stats (d77169ae2)
- british english: replace double quotes with single quotes (015252120)
- funbox: proper per-language handling in polyglot mode (@byseif21, @fehmer) (#6666) (acbd1de11)
- quotes: fix italian quote punctuation (@gablilli) (#7019) (b455d4994)
- save custom text modal: add validation for custom text name input (f025b121c)
- add validation for preset names (@fehmer) (#6969) (18c465e82)
- quotes: Add English quotes (@TheFrenchTechMan) (#6961) (c08572bd8)
- add custom error codes to contracts and api doc (@fehmer) (#6976) (5026f4195)
- modals: missing/invalid inputs disable submit button (@fehmer) (#6973) (fa03afe30)
- language: add 15 new code go words (@bmarse) (#6936) (81ea9e689)
- prevent space from scrolling the page when on the result page (ed9aa8769)
- result: add tag pb button to chart legend buttons (892b7d020)
- quotes: add quotes in various languages (@Flatbread231, @DaanGrob05, @Flatbread231, @ixnoahlive, @OM3X4, @Eric-Zhang-Developer, @Legonard, @eduardopaul, @thesomewhatyou, @Aluriak, @Aluriak) (#7031, #7042, #7023, #7009, #7017, #7005, #6997, #6985, #6964, #6934, #6935) (b85f13553, be59c4066, c42217c37, 06a20e7b8, 0311da26d, 9e4814249, 00552366b, a846d192d, a56107667, 3d819115e, df81d7ce9)
Fixes
- run without firebase-config (@fehmer) (#7030) (6902b407e)
- Advanced filters does not contain tags after first tag was added (@Rowan441) (#7025) (42d6dc8a7)
- wrapper height not updated when tape is turned off mid-test (@nadalaba) (#7043) (05123e8dd)
- caret: caret not resetting position on quick restart (@nadalaba) (#7038) (a0c9decc3)
- quotes: remove backspace character from kotlin quote (42227666a)
- pace caret: stopping at the end of the word in blind mode (1cf4b079c)
- caret: incorrect position in blind mode (da01d294c)
- pace caret: go back to using self-correcting timing (22922004d)
- caret: invisible caret when quick restarting (c4ffa5feb)
- caret: incorrect underline positioning (79b79e051)
- caret disappearing when changing font size through commandline (552608814)
- false positive typo for gmx.de email domain (fa9c50cab)
- discord avatars not loading (@fehmer) (#6999) (d9d375d05)
- local typing stats not updated on result save (be106b8f1)
- additional accents not applied correctly (8699351be)
- Set result chart burst Y axis max after adding PB line (@Ed-k) (#6980) (5275947f1)
- words input positioning in tape mode (8629779a7)
- funbox: caret/tape/ui issues in backwards funbox (@nadalaba) (#6956) (431860179)
- password validation rules (@fehmer) (#6967) ([344e467](https://github.com/monkeytypegame/monkey...
v25.36.0
Thank you to all the contributors who made this release possible!
Features
- result: rename raw to burst, add raw line to result graph, add ability to hide chart data (@Miodec) (#6907) (8627235be)
- layout: add handsdown neu, and neu inverted (@aleksiye) (#6921) (12f78e18c)
- layout: add kuntem-jq layout (@junnnaaaaaa) (#6920) (58e6a91fd)
Improvements
Fixes
- practice slow words: too many words being passed into practice mode in timed tests (8a3fa8738)
- commandline: prevent false theme apply during perview (@byseif21) (#6930) (64473e4e6)
- custom text modal: reset practise words on submit (@Quiggleson) (#6927) (3bac28601)
- profile: prevent profile XP updates on other user profile (@Majestic-Fire) (#6897) (177eb590f)
- testSettings: link with custom limit not applied correctly (@fehmer) (#6917) (984cb3cd9)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- docs(readme): shields link to their respective websites rather than to the images source (@matthew-wright07) (#6931) (661feaaf7)
- refactor: result migration and tests cleanup (@Miodec) (#6929) (7487e53c6)
- refactor: use findOne instead of limit(1) (@fehmer) (#6924) (d9887cf37)
- refactor: optimise fetching last result timestamp when adding a result (c8cf1eae5)
- test: refactor controller tests (@fehmer) (#6925) (01f981cd0)
- build: rename json-validation to check-assets, improve error messages (@fehmer) (#6933) (56b25f30b)
- chore: bump compatibility header (5a3904903)
- chore(eslint): add rule to protect against accessing __testing outside of test files (4d46c6298)
- chore: bump oxlint version (88bb7a081)
- chore: fixing zeor's insanity (667748ad2)
v25.35.0
Thank you to all the contributors who made this release possible!
Features
- layout: add ergo_split46 layout (@viviengarcia) (#6914) (02f17eec6)
- add icelandic 200 (072006277)
- language: add hawaiian 200 1k (@SirObby) (#6883) (7018b83e2)
- profile: optionally include test activity on users public profile (@fehmer) (#6824) (c5d43dd67)
- language: Update persian_20k.json (@MajidShajari) (#6880) (c18900904)
Improvements
- sign up: add temporary email detection to registration form (@copilot) (#6912) (44ceb7137)
- custom text: replace control character improvements (@Leonabcd123) (#6909) (7a6a54c3c)
- always count correct partially completed words for wpm (c2cee8bde)
- validate username on google signup (@fehmer) (#6895) (7d04637f7)
- settings: Allow webp format for background images (@fehmer) (#6896) (76597e6a0)
- screenshot: switch to modern-screenshot for enhancements (@byseif21) (#6884) (e6519b166)
- loading page improvements (@Miodec) (#6893) (725fde1ae)
- add share buttons to desktop and mobile test config (aac60fe48)
- validation: don't debounce if delay is zero (@fehmer, @Miodec) (#6878) (a3764460e)
- settings-page: responsive local font button style (@byseif21) (#6855) (68d2370d9)
- misc: reject nested objects in sanitize (@fehmer) (#6850) (792a222ad)
- keymap: optimize config event listener on full config load (@fehmer) (#6856) (18267c737)
- quotes: add quotes in various languages (@dilem, @dilem, @JeffKochuk) (#6898, #6892, #6852) (263984f57, 6f50752b6, 52f293e29)
Fixes
- theme: problems with theme preview (@fehmer) (#6881) (d264fce32)
- test: lazy mode set via command line does not restart test (@fehmer) (#6908) (576b35f4d)
- language: split merged words in turkish 1k (9f1dacd22)
- download screenshot button was not shown (@byseif21) (#6900) (a1af28bb5)
- add comma and period to specials funbox (#6870) (@radouane-tamouss) (#6887) (b6959552a)
- custom min speed mode setting not saving between sessions (14ce65727)
- account menu being shown under the test config (7c27898d0)
- layout: correct persian_farsi and persian_standard layouts, also add persian colemak layouts (@MajidShajari) (#6876) (d2f85c972)
- test: immediately reposition caret and tape on tapeMargin change (@byseif21) (#6860) (5fcf964eb)
- 8008 theme duplicate sub-alt-color (@tboex) (#6879) (e6dc6d16c)
- account: error while loading old filter presets (@fehmer) (#6873) (d52af936f)
- email handler using dev firebase config (36556c61b)
- mouseover labels not working on static pages (@fehmer) (#6869) (39bc6706c)
- email handler not working (bc0a0aed5)
- authentication issues when using multiple tabs (@fehmer) (#6790) (e838f71c7)
- shift enter not inserting a newline character (541f29ce9)
- tooltips: prevent hover pop-up reappearance on click (@byseif21) (#6831) (42609e21d)
- zen-mode: restore input history and watch replay (@byseif21) (#6863) (1048e0488)
- test config: applying preset doesnt show punctuation and numbers (59a6004de)
- presets: preset with minWpmCustom should not activate minWpm (@fehmer, @Miodec) (#6857) (568012af6)
- config: fix array not getting verified after sanitize (@fehmer) (#6849) (100050fd1)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr: add alpha support to colors utils (258a437c9)
- fix: sentry lint issues (cc08930de)
- fix: unclosed word tags in words history (f52f262f7)
- style: use horizontalPadding to calculate right property (3879e58f9)
- refactor: move file (9752e481e)
- refactor: rename file ([ac05fd9](https://github.com/monke...