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)