Download Latest Version v26.28.0 source code.tar.gz (37.4 MB)
Email in envelope

Get an email when there's a new version of Monkeytype

Home / v26.26.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-06-20 19.2 kB
v26.26.0 source code.tar.gz 2026-06-20 37.4 MB
v26.26.0 source code.zip 2026-06-20 38.3 MB
Totals: 3 Items   75.7 MB 41

This release features a big test logic rework - all tests and test stats can now be represented as a single array of events. This cleans up a lot of things and makes it easier to add features in the future. If anything explodes, be sure to let us know. It also features a small test timer refactor which should result in the timer being more consistent in laggy sessions. 🤞

Thank you to all the contributors who made this release possible!

Features

Improvements

Fixes

  • rate limit keyGenerator (@fehmer) (#8087) (018e17198)
  • commandline: don't show underscores in values for highlightMode and keymapStyle (@fehmer) (#8125) (5fef92d61)
  • settings: optional include background link (@fehmer) (#8116) (667ee5dfb)
  • previous password schema being too restrictive (1a5650855)
  • space characters not shown in input history (e10280a14)
  • final word char count in timed tests (b751e7dbb)
  • unintended auto restart when on result screen (3839e0406)
  • custom test duration: focus and select the input when opening (5086bb611)
  • friends list broken when user has missing streak info (@fehmer) (#8097) (fe53c374b)
  • fix quotes test (@rizwanmustafa) (#8072) (3f4507e84)
  • dont double count newline characters (070d933e3)
  • incorrect boundary length when test length is round (82e06372d)
  • tags not loading in time, again (@fehmer) (#8053) (2de877e3a)
  • ci: fix local dev label (bump labeler to v6) (@d1rshan) (#7980) (487262ecd)
  • challenge: setup funboxes last when loading a challenge (@Leonabcd123) (#7993) (b907b460a)
  • CustomTextModal: Resolve limit validation error on mode switch (@akartsky) (#8008) (562a17ab9)
  • unresponsive cookies modal (@d1rshan) (#8019) (554135c95)
  • account: fix "load more" button state for filtered results (@d1rshan) (#8020) (a6b64d06d)
  • signup: signup with provider not working (@fehmer) (#8046) (5952c58cc)
  • nospace: don't move to next word when removing last character (@Leonabcd123) (#8038) (7ccdea567)
  • utils: preserve newlines in sanitizeString (@bijanmurmu) (#8034) (c30230e0e)
  • plus n funboxes not working correctly (614e6ec1d)
  • settings: allow input of decimal values (@fehmer) (#8041) (5a172a4c5)
  • input: prevent default when on before delete returns (d6c5b6995)
  • commandline: move plus zero funbox to before plus one in commandline (@Leonabcd123) (#8013) (ee5845421)
  • account-settings: restore responsiveness in notice card and page (@d1rshan) (#8016) (cbe603042)
  • include spaces after incorrect words in the incorrectChars count (06d5d2f37)
  • use the rounded test duration to cacluate wpm (cdbd13d66)
  • prevent collection cleanup (@fehmer) (#7996) (35a211854)
  • tags not getting loaded (@fehmer) (#7988) (0afaf4358)
  • don't fetch presets twice (@fehmer) (#7986) (4160fc5de)
  • custom background filters not applied on laod (a05b7da83)

Nerd stuff

These changes will not be visible to users, but are included for completeness and to credit contributors.

  • impr: add profiler mode for local development (6607138ac)
  • docs(api): include compat version into api version (@fehmer) (#8107) (02509da23)
  • docs(rate-limit): update comments in rate limit file (@Leonabcd123) (#8026) (9ffa67cc5)
  • docs: fix formatting in README features section (@chadhas282-afk) (#7994) (ddeb49dd8)
  • docs(comments): fix comments (@Leonabcd123) (#8006) (6ecb5b79f)
  • refactor: test events phase 2 (@miodec) (#8036) (fe7da090a)
  • refactor: rework timer drift compensation (bd079bb5f)
  • refactor(test): move test modes notice elements to page/test (@fehmer) (#8126) (cef0297ac)
  • refactor: replace TestInput.input.get with getInputForWord (ace92c8b6)
  • refactor: replace TestInput.input.current with getCurrentInput() (e52fc4ed5)
  • refactor: solid 404 (@fehmer) (#8089) (80cdc57a7)
  • refactor: solid connections (@fehmer) (#8018) (a4ea5d52f)
  • refactor: use solid simple modals (@fehmer) (#8044) (13f73d1e0)
  • refactor: solid modes notice (@fehmer) (#7964) (b7b04bd33)
  • refactor: test events phase 1.5 (@miodec) (#8042) (3462738b8)
  • refactor: test events phase 1 (@miodec) (#8021) (f9074fb81)
  • refactor: move some test state to solid signals (@miodec) (#8025) (033c7cf0e)
  • refactor: add Page component (@fehmer) (#7987) (29f892476)
  • refactor: improve simple modals (@fehmer) (#8000) (45bb17f53)
  • refactor: move resultCalculating state to test-state module (86ee9fd48)
  • perf: small improvements here and there (e94373974)
  • perf: avoid redundant character counting in test stats calculation (@rohanghosal04) (#8080) (112eadbb6)
  • ci: build frontend on dependency changes in storybook (@fehmer) (#8084) (de2570e13)
  • test: stricter lint rules (@fehmer) (#8075) (72b4252fa)
  • build: move devtools to devDependencies (@fehmer) (#8022) (749d82439)
  • chore: update ai files (e3442715a)
  • chore(deps-dev): bump @types/chartjs-plugin-trendline from 1.0.1 to 1.0.4 (#8096) (f52dd3b14)
  • chore(deps): bump nodemailer and @types/nodemailer (#8095) (99d54de6c)
  • chore(deps): bump tailwind-merge from 3.4.0 to 3.6.0 (#8093) (b7d6edf99)
  • chore(deps-dev): bump storybook-solidjs-vite from 10.0.9 to 10.1.1 (#8065) (bb8357ae3)
  • chore(deps-dev): bump @vitest/browser from 4.1.6 to 4.1.8 (#8067) (994fdf34c)
  • chore(deps): bump dotenv from 16.4.5 to 17.4.2 (#8068) (e60f0c602)
  • chore(deps-dev): bump solid-js from 1.9.10 to 1.9.13 (#8069) (8a0b3dd4f)
  • chore(deps): bump nodemailer and @types/nodemailer (#8001) (8deaad34e)
  • chore(deps): bump express-rate-limit from 7.5.1 to 8.5.2 (#8004) (e0019c39e)
  • chore(deps): bump @tanstack/* dependencies (#8027) (bde10b9e1)
  • chore(deps): bump lru-cache from 7.10.1 to 11.5.1 (#8028) (8b6e86316)
  • chore(deps-dev): bump fontawesome-subset from 4.4.0 to 4.6.0 (#8029) (385b9565e)
  • chore: bump oxc (3699619c2)
  • chore(deps): bump @vitest/browser from 4.0.18 to 4.1.8 (#8043) (46c1ffaa9)
  • chore(deps): bump canvas-confetti and @types/canvas-confetti (#8005) (122f27f03)
  • chore(deps-dev): bump @storybook/addon-onboarding from 10.2.16 to 10.4.1 (#8002) (f667c45cc)
  • chore(deps): bump cors and @types/cors (#8003) (18e10146b)
Source: README.md, updated 2026-06-20