Thank you to all the contributors who made this release possible!
Features
- lang: add 6502 assembly language (@szachy-a) (#7861) (ca96eeadd)
- lang: add Lao language (@allyLee86) (#7952) (16087d3e3)
- leaderboard: added page indicator (@Repr-dev) (#7818) (68c55b7bc)
- languages: add vhdl (@joelievt) (#7924) (bd34682af)
- language: add greek koine (b43ed1fa9)
- command-line: add profile search (@AzureNightlock) (#7867) (1171ed507)
- sounds: add mechanical keyboard sounds (@mshareef-git) (#7764) (2ddecef03)
Improvements
- languages: fix typo and slightly expand bulgarian_1k and bulgarian_latin_1k (@100daysummer) (#7925) (1361be6eb)
- input-indicator: add input indicator to all fields with validators (@Leonabcd123) (#7918) (0c07e1074)
Fixes
- account: newly created tags not appearing in filters (@fehmer) (#7968) (d64147e68)
- blind-mode: on button has incorrect height on firefox (@Leonabcd123) (#7975) (db6dbd7e6)
- key-tips: add missing space to commandline key tip (@Leonabcd123) (#7976) (0297cd350)
- composition state persisting after opening the commandline (2700acfae)
- double lineJump in zen mode (@nadalaba) (#7799) (ebd791017)
- shifting in multi-line tape (@nadalaba) (#7832) (196a57962)
- language: remove offensive & some misspellings from english_450k (@byseif21) (#6767) (a09c21425)
- InputField story broken (@d1rshan) (#7945) (3a92e78a7)
- keymap-legend-style: capitalize letters when caps lock is enabled (@Leonabcd123) (#7955) (8e33a8a61)
- settings: tag deletion doesn't update results (@fehmer) (#7962) (55a241bee)
- don't check for disallowed words when dealing with existing user names (@fehmer) (#7949) (0ba7f6254)
- leaderboard: add validation on page number (@fehmer) (#7946) (d6c934124)
- collections: add id workaround for all collections (@fehmer) (#7944) (63905fa39)
- typed effect: allow fade effect with reduced motion (@d1rshan) (#7849) (e2f5e2c63)
- profile-search: prevent form.reset() from clearing first character on input (@AzureNightlock) (#7851) (964fcf02e)
- backend: optimize leaderboard counts and PB/log updates (@chinmaydwivedi) (#7837) (2f7b439c2)
- results: only use last ten results for average 10 (@fehmer) (#7928) (8717447e1)
- account: full streak hint missing after reload (@fehmer) (#7920) (5c9576605)
- local tags pb update failing (@Miodec) (#7915) (787599dc2)
- inbox: mark claimed rewards as claimed (@fehmer) (#7916) (936f7cb15)
- settings: show correct theme name on updateCustomTheme modal (@fehmer) (#7879) (ba8c39c63)
- themes: don't leak custom theme css after preview (@fehmer) (#7876) (542fc722a)
- challenge: fix requirements (@fehmer) (#7863) (dec0e50f0)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- docs: add network hosting and reverse proxy troubleshooting (@isma-021) (#7970) (bcf95c197)
- docs: add AGENTS.md (@olttdotdev) (#7937) (4412b84c1)
- docs(issue-template): remove account name from account config field placeholder (@Leonabcd123) (#7956) (3c050e8ed)
- refactor(caps-lock): use isCapsLockOn (@Leonabcd123) (#7950) (f870bc9d9)
- refactor(profile): migrate edit profile modal to SolidJS (@AzureNightlock, @fehmer) (#7900) (fc3a67c45)
- refactor: remove duplicate simple-modal types (@fehmer) (#7948) (3df4b5ead)
- refactor: solid settings (@Miodec, @fehmer) (#7816) (1cefe7cf4)
- refactor: decouple collections from db/snapshot (@fehmer) (#7917) (a4cfbb4f1)
- refactor: solid presets (@Miodec) (#7825) (c9fa4de92)
- refactor: optimize sound-controller (@fehmer) (#7884) (d77d15ed7)
- ci: update action versions to support node.js 24 runners (@fehmer) (#7942) (58c0e2c63)
- ci: don't fail check-assets when running outside github workflow (@fehmer) (#7943) (f3f197e95)
- ci(assets): add github step summary (@fehmer) (#7922) (c5da846c0)
- chore(deps-dev): bump turbo from 2.7.5 to 2.9.14 (#7981) (83b30b516)
- chore(deps): bump protobufjs from 7.3.2 to 7.5.8 (#7979) (b397d8f8c)
- chore(deps-dev): bump postcss from 8.5.14 to 8.5.15 (#7883) (ea615a951)
- chore(deps-dev): bump @types/damerau-levenshtein from 1.0.0 to 1.0.2 (#7892) (4fd6ecabb)
- chore(deps-dev): bump @vitest/browser from 4.0.18 to 4.1.6 (#7893) (dfc44c81d)
- chore(deps): bump @solid-primitives/refs from 1.1.2 to 1.1.3 (#7894) (e7eedfc78)
- chore(deps-dev): bump @chromatic-com/storybook from 5.0.1 to 5.2.1 (#7895) (710b30f60)
- chore(deps-dev): bump postcss from 8.5.8 to 8.5.14 (#7896) (8c5cc0dc9)
- chore: fix incorrectly named property (79d0f746f)
- chore(languages): rename
ligaturestojoiningScript(@nadalaba) (#7788) (9504dcd17) - chore: fix workflow (0cb7f6b24)
- chore: fix workflow (5b146d3c7)
- chore(deps): bump simple-git from 3.32.3 to 3.36.0 in /backend (#7931) (9d446be2d)
- chore(deps): bump simple-git from 3.32.3 to 3.36.0 (#7932) (1c73ad990)
- chore(deps): bump brace-expansion from 1.1.12 to 5.0.5 (#7965) (ef8130ff9)
- chore: remove duplicate (892c6f015)
- chore: remove spanish word (89e69c1f3)
- chore: bump firebase version (a10c7922a)
- chore: enable prefer template (b570bd1b6)
- chore: update claude.md (18b750517)
- chore: bump oxc (50ca6f6b8)
- chore: add breakdown item if gainMultiplier anything other than 1 (f5cb8e2c4)
- chore: throw if xp is NaN (ada3376b4)
- chore: fix tests (fa53654aa)
- chore: add todo (3cb05a8c0)