Releases: monkeytypegame/monkeytype
v26.15.0
Thank you to all the contributors who made this release possible!
Features
Improvements
- language: improve Oromo word lists (@NaolMengistu) (#7730) (b33fb21cc)
- quotes: change em-dashes in English quotes to hyphens (@redfp) (#7785) (6a6e71d5c)
- enable spaces in preset names to unify naming logic (@byseif21) (#7702) (edc7d22bd)
- clean up form field fallback placeholder behavior (@byseif21) (#7781) (7ba3bbfcc)
- fps-limit: only set fps limit when value changes (@Leonabcd123) (#7758) (e8f8bf8e5)
- language: add urdu roman (d9e044dd1)
- quotes: add quotes in various languages (@14muffinz, @NaolMengistu, @AzureNightlock) (#7778, #7736, #7741) (b00830662, 4c53bcee8, 0ad373c85)
Fixes
- challenge: add wingdings challenge to the list, update the controller and update notification (@albindavidc) (#7726) (9b2a0108d)
- caret: full-width caret has no width on zero-width letters (@nadalaba) (#7708) (358def1e5)
- manual-restart: can't restart in long tests (@Leonabcd123, @fehmer) (#7775) (4d835ed39)
- backend: pass .env to docker compose (@DannyKoz123) (#7782) (b95d7507e)
- test: set burst start at composition begin for IME input (@boergeson) (#7760) (f53a48a3b)
- theme: scroll theme list to active theme on open (@abulKhasim) (#7774) (06df529eb)
- outline caret having a white outline (ab085e2cb)
- test config buttons being focusable even when invisible (762fff731)
- challenge: recitfiy challenge loading through url (@albindavidc) (#7723) (841e998e0)
- signal-tracker: firefox and chromium loop over different stack traces (@Leonabcd123) (#7754) (d54fed24b)
- unable to open account menu on mobile (05ab2cbc8)
- mobile test settings button position (29d918f73)
- logo missing on safari (c4398d08c)
- dropdown buttons obscuring tooltips on the activity calendar (@byseif21) (#7748) (82bf09564)
- test config placement in firefox (11f8b4cc4)
- dev: monkeytype doesn't load with firefox in development (@Leonabcd123) (#7749) (cd95ae549)
- screenshot: remove spacer causing layout jump (@byseif21) (#7750) (c273f0f7c)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr(profanity): change error message when disallowed word is detected in username (@Leonabcd123) (#7766) (f986572a1)
- refactor: extract LabeledField wrapper to remove label+input boilerplate (@byseif21) (#7784) (4808050d0)
- refactor(schemas): centralize regex constants (@byseif21, @fehmer) (#7710) (bdb99ab82)
- refactor: remove firebase
isAuthenticated, renameisLoggedIntoisAuthenticated(@copilot) (#7738) (75ba4aa3d) - chore: lock file (1be6f5af3)
- chore: bump yaml (515a0c513)
- chore: pnpm i (0abddcd0b)
- chore: bump happy-dom (5cf871a64)
- chore: resolve Uint8Array.prototype.toHex TypeScript error (@byseif21) (#7711) (bdbfa9acd)
- chore(deps): bump @octokit/rest from 21.1.1 to 22.0.1 (#7734) (7c48be161)
- chore(CI): remove overridden permissions and useless checks (@nadalaba) (#7725) (f1239bb85)
- chore: bump vite, fix test (83e90e1e3)
- chore(deps-dev): bump vite from 8.0.1 to 8.0.5 (#7780) (78fbef524)
- chore(deps): bump nodemailer from 7.0.11 to 8.0.4 (#7729) (9b6381678)
- chore: mark unused imports as a safe fix (d1c2c3cd3)
- chore: bump oxc (2cce2f393)
- chore: fix rule names (fce78cf14)
v26.14.0
Thank you to all the contributors who made this release possible!
Features
- lang: add pokemon language (@LuWo0) (#7688) (b098c9d60)
- quotes: add vietnamese quotes (@nhuyy01) (#7646) (e4dac78af)
- fonts: add Inter Tight and Space Grotesk (@AzureNightlock) (#7585) (fe00866b6)
Improvements
- input-validation: clean preset name input when adding (@byseif21) (#7703) (12fbad378)
- ape-keys: add input validation for ape keys (@Leonabcd123) (#7614) (70e7b9f80)
- custom-background: allow users to remove custom url background from commandline (@Leonabcd123) (#7613) (67efd1fdc)
- english_5k: order english_5k.json by frequency (@norwd) (#7609) (a4a4463bb)
- 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 (@cryptographe, @norwd, @yohaann196, @damarpas, @blue-94, @enzom-uy, @WormholeDragon) (#7674, #7634, #7532, #7581, #7557, #7365) (29d3206e2, e7006130f, 6fbc780c8, f6367ea4d, 6154bbfd0, 9b7417c43)
Fixes
- quote-modal: broken debouncing & prevent filter reset on chaining (@byseif21) (#7742) (ca84f790e)
- profile: fix profile not shown if inventory is null (@fehmer) (#7745) (ec0478efb)
- single badge not showing if not selected (15f95dd2a)
- resolve global auth state reactivity and quote search rtl layouts (@byseif21) (#7735) (1e305aca4)
- carryover: only reset keypress timings on restart and only carryover on start (@Leonabcd123, @Miodec) (#7705) (3bba57b77)
- dispatch authEvent when creating a new account with google (92aa5a637)
- zen: negative wpm in short tests (@Leonabcd123, @Miodec) (#7679) (96acd402d)
- short-tests: afk percentage is NaN (@Leonabcd123) (#7694) (cf9d4df2d)
- language: remove abbreviations in russian (@Dmskrzh) (#7682) (803e3d114)
- test: disable solid HMR in tests to fix path error on Windows (@nadalaba) (#7677) (e37252b13)
- language: cleanup the rest of english wordlists (@byseif21) (#7671) (243f75525)
- language: cleanup english_25k (@byseif21) (#7670) (ac1c0402e)
- custom-text: mode 'simple' isn't saved when delimiter is pipe (@Leonabcd123) (#7699) (87c886ed1)
- terms-of-service: weird line break (@Leonabcd123) (#7676) (e2378e9f3)
- quotes: correct quote length (@norwd) (#7675) (c460647ad)
- exact-quote-search: results can be interpreted as regex (@Leonabcd123) (#7673) (4c8764fd9)
- lang: normalize diacritic storage order for myanmar_burmese (@NayLinAungGo) (#7636) (f8b8419ed)
- results-page: empty input history with zen mode (@byseif21) (#7622) (ab52ae402)
- language: mark esperanto 200 word list as ordered by frequency (@norwd) (#7621) (8162c2345)
- account-chart: prevent scroll when clicking outside chart (@byseif21) (#7608) (6e45d24f5)
- test: only increment incomplete test seconds once (@Miodec) (#7607) (9c741971a)
- layoutfluid: layoutfluid highlights first key in test (@Leonabcd123) (#7604) (a20c9ca5f)
- rainbow-trail: errors aren't fading away (@Leonabcd123) (#7668) (5249b5a8a)
- privacy-policy: missing whitespace in privacy policy page (@Leonabcd123, @Miodec) (#7637) (efbfb0635)
- update security.txt expiry date (@norwd) ([#7610](https...
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...