Find all changelogs at https://lichess.org/changelog
Mobile App updates
- Add new account menu #3077
- Add iOS Daily Puzzle widget #2965
- Add search to puzzle themes #2948
- Add open imported games feature #3043
- Add "or invite a lichess user" button to the "share challenge link" dialog #2881
- Add share button to tournament screen #2928 (thanks CloudyDino)
- Add flip board to studies #2903 (thanks freebeartogoodhome)
- Add configurable home time controls #2890 (thanks glitchfl)
- Add deep link support for tv, user profile and user tv #2999
- Add intent filter for sharing PGN files #3039
- Make settings / inbox more discoverable #3065
- Make it easier to find the request server analysis button #3064
- Implement puzzle navigation #2975
- Share broadcast player #2998
- Replay Failed Puzzles from Dashboard #1446 (thanks CloudyDino)
- Delay engine move until piece animation completes #3061 (thanks RobertKuszmar)
- Show spectator count and names during game #2951 (thanks adharshio)
- Highlight current user row in tournament standings #2927 (thanks CloudyDino)
- Handle broadcast deep links with #players/{playerId} fragment #2896 (thanks wesselvankessel)
- Update chess openings db #2994
- Link to daily puzzle screen from puzzle widget #2984
- Start from custom position (FEN) in over the board game #2947
- Change the order of resign and undo move buttons #2946
- iOS Blog feed widget layout improvements #2936
- Disable blog feed widget content when kid mode is active #2935
- Support explicit study chapter in deep links #2907
- Allow malformed utf-8 in pgn #3038
- Ignore shared URLs in file processor #3037
- Do not refresh providers unnecessarily when app state changes #3025
- Only display * for ongoing games #2996, #3050
- Internationalise iOS widgets #2978
- Explain why the rating filter is disabled #3032 (thanks CloudyDino)
- Place deleteOldEntries in a transaction #3027 (thanks freebeartogoodhome)
- Remove enableOnBackInvokedCallback from AndroidManifest #3023 (thanks Matrix9494)
- Move over_the_board preferences to OTB directory #3020 (thanks freebeartogoodhome)
- Remove unused const in two files #2960 (thanks freebeartogoodhome)
- Only enable "Challenge a friend" when online #2904 (thanks freebeartogoodhome)
- Prevent http requests we know will fail #2897 (thanks freebeartogoodhome)
- Docs: add documentation for publishing releases to f-droid #2371
- Fix: dispose TextEditingController and remove listener in MessageInput #3060 (thanks freebeartogoodhome)
- Fix deep link loop for imported games with anonymous players #3046 (thanks berenbums)
- Fix small typo in recent_games debug message #3040 (thanks freebeartogoodhome)
- Fix draft chat message cleared when user returns to board #2980 (thanks MaartenD)
- Fix: show standard points when custom points match standard value in broadcast player results #2943 (thanks CloudyDino)
- Fix: show puzzle storm-only days in user activity #2932 (thanks sviluppatoredisoftware)
- Fix bottom nav staying visible when opening deep links #2929 (thanks CloudyDino)
- Fix last edited PGN header not saved on share (#2850) #2911 (thanks CloudyDino)
- Fix: Challenge opponent again via clicking on name after game finished #2894 (thanks MaartenD)
- Fix: invalidate ongoingGamesProvider so accepted challange visible in carousel #2892 (thanks MaartenD)
- Fix antichess stalemate variant outcome #2889 (thanks CloudyDino)
- Fix the over the board clock switching before promotion piece is selected #2888 (thanks glitchfl)
- Fix now it saves skip state immediately in Puzzle Streak #2887 (thanks glitchfl)
- Fix issue when logging in with 2FA (switch back to
singleTop) #3080 - Fix: order upcoming tournaments by start time first #3078
- Fix puzzle nav bug on long press #3062
- Fix errors in tv app link tests #3051
- Fix infinite loop triggered by imported game deeplinks #3036
- Fix relay group link #2997
- Fix deep link route transition #2986
- Fix puzzle widget theme sync #2983
- Fix puzzle widget layout on iPad #2982
- Fix show solution giving wrong answer in puzzle #2972
- Fix challenge title if unliminited time #2952
- Fix kid mode state problem #2930
Site updates
- Add button to add puzzle to study #20284
- Add F-Droid badge on mobile page #20188
- Add googly eye flair #20170
- Add Chess960 support to study chapter creation #20224 (thanks p-alik)
- Add search for profile flags #20296
- Improve onboarding UX #20289
- Use webp on mobile page #20191
- Prevent player from resigning when they cannot lose #20172
- Keep start of game chat buttons around for a move longer #20248
- Replace hcaptcha & singlePost with Turnstile #20274
- Automate account confirmation #20319
- Defer AudioContext creation in sound init via setTimeout(0) #20201 (thanks Ijtihed)
- Persist explorer player-tab color across refresh #20270 (thanks CZapin2015)
- NixOS development environment setup #20210 (thanks p-alik)
- Don't use puzzle storm font for "%" #20257
- Immediately update the chess 960 position id in
onChange#20264 - Have the esc key unfocus textboxes in a number of places. #20291
- Only apply the 'packed' class to trophies when an overflow is close to happening #20301
- Update lichobile deprecation message #20306
- Tweak email confirmation help page #20335
- Break ties on leaderboards by comparing whose position will stay longer #20341
- Broadcast: Add search for tiebreak options #20295
- Broadcast: Support chess-results.com source links #20231
- UI: Remove redundant body prefix from scrollbar selectors #20190 (thanks Ijtihed)
- UI: avoid image and meta tags overflow in blogs card #20324
- UI: refresh and align appearance of Learn and Practice pages #20294, #20328, #20329
- UI: refactor FAQ page, use semantic tags, visual improvements #20259
- UI: learn Classes interfaces improvements #20239
- UI: distribute evenly study edit panel buttons #20238
- UI: hide empty wiki box in studies #20237
- UI: small tweaks and fixes for storm puzzle #20236
- UI: introduce
box-paddingSCSS variable #20234 - UI: A11y contrast tweaks mainly for light theme #20182
- UI: small tweaks for friends box #20181
- UI: Move clock hint to top of fieldset as it's a general instruction #20173
- UI: Fix string student.releaseDesc1 so HTML element is not escaped #20168
- UI: tweaks for opening wiki data render #20152
- Fix: piece disappearing when using keyboardSubmit #20326 (thanks PawelPlutaUek20)
- Fix: login-username-tabindex #20320 (thanks bananaMonkey13)
- Fix: new streak button #20304 (thanks PawelPlutaUek20)
- Fix: show lichess logo on auth pages #20275 (thanks Sama-004)
- Fix: game search analysed filter silently drops all other filters #20256 (thanks wesselvankessel)
- Fix: spacing on user_tag button #20233 (thanks xcjackpan)
- Fix: missing extraCgConfig when no showResults #20179 (thanks PawelPlutaUek20)
- Fix: iOS Safari auto-zoom on auth form inputs #20153 (thanks brynjagr)
- Fix: chat size change #20171
- Fix: check whether variant is 960 when computing dests in analysis #20272
- Chess-openings: Added B07 line #316 (thanks Chess4757)
- Chess-openings: Add B30 anti-Sveshnikov starting position. #315 (thanks jdart1)
- Chess-openings: E14 and related fixes #311 (thanks jdart1)
- Chess-openings: E81 change #308 (thanks Chess4757)
- Chess-openings: Added Sicilian defense, Portland attack #307 (thanks Chess4757)
- Chess-openings: Added E57, E88, E81 and E71 lines #304 (thanks Chess4757)
- Chess-openings: Add some E11 lines #300 (thanks jdart1)
- Chess-openings: C.tsv -- Ruy Lopez Steinitz Defense: transposition from Philidor Defense #298 (thanks Panthee)
- Chess-openings: Added B77 and B78 lines #297 (thanks Chess4757)
- Chess-openings: Added B13 lines #294 (thanks Chess4757)
- Chess-openings: Add a C83 line #293 (thanks jdart1)
- Chess-openings: Added D36, D53, D41, and D43 lines #292 (thanks Chess4757)
- Chess-openings: Added a C24 line #291 (thanks Chess4757)
- Chess-openings: Hyperaccelerated Fianchetto -> Hyperaccelerated Dragon #290 (thanks LesCyclopes)
- Chess-openings: Added the Carlsen Variation of the QGD #289 (thanks Chess4757)
- Chess-openings: Snyder Variation -> Czerniak Attack #287 (thanks LesCyclopes)
- Fishnet: Update to rust 1.95 for cfg_select #295
- Lila-search: Advanced study search #769, #770
- Lila-search: Remove lila-maven #773
- Lila-search: Small improvements #768
- Lila-search: Disable scaladoc task as it fails #762
- Lila-search: Update dependencies and fix deprecation #761
- Lila-search: Update scala 3.8.3 #755
- Lila-search: Use
gameindex again #754 - Stockfish-web: Add opt-in relaxed SIMD path for NNUE evaluation #16 (thanks ohone)
API updates
- API Docs: Don't include '200' in api docs for /top/ endpoint. #635
- API Docs: Document "mode" in /api/study/{studyId}/import-pgn #634
- API Docs: Remove deprecated broadcast fields #630
Accessibility updates
- NVUI: Add touchscreen support in analysis view and puzzle view #20169
- NVUI: Add a toggle eval button below the board #20216
- NVUI: Fix small viewport issues because of disable blind mode button #20161
- A11y contrast tweaks, mainly for light theme #20182, #20287
Translation updates
Find all changelogs at https://lichess.org/changelog
---
**[Mobile App](https://lichess.org/mobile) updates**
- Add new account menu [#3077](https://github.com/lichess-org/mobile/pull/3077)
- Add iOS Daily Puzzle widget [#2965](https://github.com/lichess-org/mobile/pull/2965)
- Add search to puzzle themes [#2948](https://github.com/lichess-org/mobile/pull/2948)
- Add open imported games feature [#3043](https://github.com/lichess-org/mobile/pull/3043)
- Add "or invite a lichess user" button to the "share challenge link" dialog [#2881](https://github.com/lichess-org/mobile/pull/2881)
- Add share button to tournament screen [#2928](https://github.com/lichess-org/mobile/pull/2928) (thanks [CloudyDino](https://github.com/CloudyDino))
- Add flip board to studies [#2903](https://github.com/lichess-org/mobile/pull/2903) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Add configurable home time controls [#2890](https://github.com/lichess-org/mobile/pull/2890) (thanks [glitchfl](https://github.com/glitchfl))
- Add deep link support for tv, user profile and user tv [#2999](https://github.com/lichess-org/mobile/pull/2999)
- Add intent filter for sharing PGN files [#3039](https://github.com/lichess-org/mobile/pull/3039)
- Make settings / inbox more discoverable [#3065](https://github.com/lichess-org/mobile/pull/3065)
- Make it easier to find the request server analysis button [#3064](https://github.com/lichess-org/mobile/pull/3064)
- Implement puzzle navigation [#2975](https://github.com/lichess-org/mobile/pull/2975)
- Share broadcast player [#2998](https://github.com/lichess-org/mobile/pull/2998)
- Replay Failed Puzzles from Dashboard [#1446](https://github.com/lichess-org/mobile/pull/1446) (thanks [CloudyDino](https://github.com/CloudyDino))
- Delay engine move until piece animation completes [#3061](https://github.com/lichess-org/mobile/pull/3061) (thanks [RobertKuszmar](https://github.com/RobertKuszmar))
- Show spectator count and names during game [#2951](https://github.com/lichess-org/mobile/pull/2951) (thanks [adharshio](https://github.com/adharshio))
- Highlight current user row in tournament standings [#2927](https://github.com/lichess-org/mobile/pull/2927) (thanks [CloudyDino](https://github.com/CloudyDino))
- Handle broadcast deep links with #players/{playerId} fragment [#2896](https://github.com/lichess-org/mobile/pull/2896) (thanks [wesselvankessel](https://github.com/wesselvankessel))
- Update chess openings db [#2994](https://github.com/lichess-org/mobile/pull/2994)
- Link to daily puzzle screen from puzzle widget [#2984](https://github.com/lichess-org/mobile/pull/2984)
- Start from custom position (FEN) in over the board game [#2947](https://github.com/lichess-org/mobile/pull/2947)
- Change the order of resign and undo move buttons [#2946](https://github.com/lichess-org/mobile/pull/2946)
- iOS Blog feed widget layout improvements [#2936](https://github.com/lichess-org/mobile/pull/2936)
- Disable blog feed widget content when kid mode is active [#2935](https://github.com/lichess-org/mobile/pull/2935)
- Support explicit study chapter in deep links [#2907](https://github.com/lichess-org/mobile/pull/2907)
- Allow malformed utf-8 in pgn [#3038](https://github.com/lichess-org/mobile/pull/3038)
- Ignore shared URLs in file processor [#3037](https://github.com/lichess-org/mobile/pull/3037)
- Do not refresh providers unnecessarily when app state changes [#3025](https://github.com/lichess-org/mobile/pull/3025)
- Only display * for ongoing games [#2996](https://github.com/lichess-org/mobile/pull/2996), [#3050](https://github.com/lichess-org/mobile/pull/3050)
- Internationalise iOS widgets [#2978](https://github.com/lichess-org/mobile/pull/2978)
- Explain why the rating filter is disabled [#3032](https://github.com/lichess-org/mobile/pull/3032) (thanks [CloudyDino](https://github.com/CloudyDino))
- Place deleteOldEntries in a transaction [#3027](https://github.com/lichess-org/mobile/pull/3027) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Remove enableOnBackInvokedCallback from AndroidManifest [#3023](https://github.com/lichess-org/mobile/pull/3023) (thanks [Matrix9494](https://github.com/Matrix9494))
- Move over_the_board preferences to OTB directory [#3020](https://github.com/lichess-org/mobile/pull/3020) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Remove unused const in two files [#2960](https://github.com/lichess-org/mobile/pull/2960) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Only enable "Challenge a friend" when online [#2904](https://github.com/lichess-org/mobile/pull/2904) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Prevent http requests we know will fail [#2897](https://github.com/lichess-org/mobile/pull/2897) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Docs: add documentation for publishing releases to f-droid [#2371](https://github.com/lichess-org/mobile/pull/2371)
- Fix: dispose TextEditingController and remove listener in MessageInput [#3060](https://github.com/lichess-org/mobile/pull/3060) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Fix deep link loop for imported games with anonymous players [#3046](https://github.com/lichess-org/mobile/pull/3046) (thanks [berenbums](https://github.com/berenbums))
- Fix small typo in recent_games debug message [#3040](https://github.com/lichess-org/mobile/pull/3040) (thanks [freebeartogoodhome](https://github.com/freebeartogoodhome))
- Fix draft chat message cleared when user returns to board [#2980](https://github.com/lichess-org/mobile/pull/2980) (thanks [MaartenD](https://github.com/MaartenD))
- Fix: show standard points when custom points match standard value in broadcast player results [#2943](https://github.com/lichess-org/mobile/pull/2943) (thanks [CloudyDino](https://github.com/CloudyDino))
- Fix: show puzzle storm-only days in user activity [#2932](https://github.com/lichess-org/mobile/pull/2932) (thanks [sviluppatoredisoftware](https://github.com/sviluppatoredisoftware))
- Fix bottom nav staying visible when opening deep links [#2929](https://github.com/lichess-org/mobile/pull/2929) (thanks [CloudyDino](https://github.com/CloudyDino))
- Fix last edited PGN header not saved on share (#2850) [#2911](https://github.com/lichess-org/mobile/pull/2911) (thanks [CloudyDino](https://github.com/CloudyDino))
- Fix: Challenge opponent again via clicking on name after game finished [#2894](https://github.com/lichess-org/mobile/pull/2894) (thanks [MaartenD](https://github.com/MaartenD))
- Fix: invalidate ongoingGamesProvider so accepted challange visible in carousel [#2892](https://github.com/lichess-org/mobile/pull/2892) (thanks [MaartenD](https://github.com/MaartenD))
- Fix antichess stalemate variant outcome [#2889](https://github.com/lichess-org/mobile/pull/2889) (thanks [CloudyDino](https://github.com/CloudyDino))
- Fix the over the board clock switching before promotion piece is selected [#2888](https://github.com/lichess-org/mobile/pull/2888) (thanks [glitchfl](https://github.com/glitchfl))
- Fix now it saves skip state immediately in Puzzle Streak [#2887](https://github.com/lichess-org/mobile/pull/2887) (thanks [glitchfl](https://github.com/glitchfl))
- Fix issue when logging in with 2FA (switch back to `singleTop`) [#3080](https://github.com/lichess-org/mobile/pull/3080)
- Fix: order upcoming tournaments by start time first [#3078](https://github.com/lichess-org/mobile/pull/3078)
- Fix puzzle nav bug on long press [#3062](https://github.com/lichess-org/mobile/pull/3062)
- Fix errors in tv app link tests [#3051](https://github.com/lichess-org/mobile/pull/3051)
- Fix infinite loop triggered by imported game deeplinks [#3036](https://github.com/lichess-org/mobile/pull/3036)
- Fix relay group link [#2997](https://github.com/lichess-org/mobile/pull/2997)
- Fix deep link route transition [#2986](https://github.com/lichess-org/mobile/pull/2986)
- Fix puzzle widget theme sync [#2983](https://github.com/lichess-org/mobile/pull/2983)
- Fix puzzle widget layout on iPad [#2982](https://github.com/lichess-org/mobile/pull/2982)
- Fix show solution giving wrong answer in puzzle [#2972](https://github.com/lichess-org/mobile/pull/2972)
- Fix challenge title if unliminited time [#2952](https://github.com/lichess-org/mobile/pull/2952)
- Fix kid mode state problem [#2930](https://github.com/lichess-org/mobile/pull/2930)
**Site updates**
- Add button to add puzzle to study [#20284](https://github.com/lichess-org/lila/pull/20284)
- Add F-Droid badge on mobile page [#20188](https://github.com/lichess-org/lila/pull/20188)
- Add googly eye flair [#20170](https://github.com/lichess-org/lila/pull/20170)
- Add Chess960 support to study chapter creation [#20224](https://github.com/lichess-org/lila/pull/20224) (thanks [p-alik](https://github.com/p-alik))
- Add search for profile flags [#20296](https://github.com/lichess-org/lila/pull/20296)
- Improve onboarding UX [#20289](https://github.com/lichess-org/lila/pull/20289)
- Use webp on mobile page [#20191](https://github.com/lichess-org/lila/pull/20191)
- Prevent player from resigning when they cannot lose [#20172](https://github.com/lichess-org/lila/pull/20172)
- Keep start of game chat buttons around for a move longer [#20248](https://github.com/lichess-org/lila/pull/20248)
- Replace hcaptcha & singlePost with Turnstile [#20274](https://github.com/lichess-org/lila/pull/20274)
- Automate account confirmation [#20319](https://github.com/lichess-org/lila/pull/20319)
- Defer AudioContext creation in sound init via setTimeout(0) [#20201](https://github.com/lichess-org/lila/pull/20201) (thanks [Ijtihed](https://github.com/Ijtihed))
- Persist explorer player-tab color across refresh [#20270](https://github.com/lichess-org/lila/pull/20270) (thanks [CZapin2015](https://github.com/CZapin2015))
- NixOS development environment setup [#20210](https://github.com/lichess-org/lila/pull/20210) (thanks [p-alik](https://github.com/p-alik))
- Don't use puzzle storm font for "%" [#20257](https://github.com/lichess-org/lila/pull/20257)
- Immediately update the chess 960 position id in `onChange` [#20264](https://github.com/lichess-org/lila/pull/20264)
- Have the esc key unfocus textboxes in a number of places. [#20291](https://github.com/lichess-org/lila/pull/20291)
- Only apply the 'packed' class to trophies when an overflow is close to happening [#20301](https://github.com/lichess-org/lila/pull/20301)
- Update lichobile deprecation message [#20306](https://github.com/lichess-org/lila/pull/20306)
- Tweak email confirmation help page [#20335](https://github.com/lichess-org/lila/pull/20335)
- Break ties on leaderboards by comparing whose position will stay longer [#20341](https://github.com/lichess-org/lila/pull/20341)
- Broadcast: Add search for tiebreak options [#20295](https://github.com/lichess-org/lila/pull/20295)
- Broadcast: Support chess-results.com source links [#20231](https://github.com/lichess-org/lila/pull/20231)
- UI: Remove redundant body prefix from scrollbar selectors [#20190](https://github.com/lichess-org/lila/pull/20190) (thanks [Ijtihed](https://github.com/Ijtihed))
- UI: avoid image and meta tags overflow in blogs card [#20324](https://github.com/lichess-org/lila/pull/20324)
- UI: refresh and align appearance of Learn and Practice pages [#20294](https://github.com/lichess-org/lila/pull/20294), [#20328](https://github.com/lichess-org/lila/pull/20328), [#20329](https://github.com/lichess-org/lila/pull/20329)
- UI: refactor FAQ page, use semantic tags, visual improvements [#20259](https://github.com/lichess-org/lila/pull/20259)
- UI: learn Classes interfaces improvements [#20239](https://github.com/lichess-org/lila/pull/20239)
- UI: distribute evenly study edit panel buttons [#20238](https://github.com/lichess-org/lila/pull/20238)
- UI: hide empty wiki box in studies [#20237](https://github.com/lichess-org/lila/pull/20237)
- UI: small tweaks and fixes for storm puzzle [#20236](https://github.com/lichess-org/lila/pull/20236)
- UI: introduce `box-padding` SCSS variable [#20234](https://github.com/lichess-org/lila/pull/20234)
- UI: A11y contrast tweaks mainly for light theme [#20182](https://github.com/lichess-org/lila/pull/20182)
- UI: small tweaks for friends box [#20181](https://github.com/lichess-org/lila/pull/20181)
- UI: Move clock hint to top of fieldset as it's a general instruction [#20173](https://github.com/lichess-org/lila/pull/20173)
- UI: Fix string student.releaseDesc1 so HTML element is not escaped [#20168](https://github.com/lichess-org/lila/pull/20168)
- UI: tweaks for opening wiki data render [#20152](https://github.com/lichess-org/lila/pull/20152)
- Fix: piece disappearing when using keyboardSubmit [#20326](https://github.com/lichess-org/lila/pull/20326) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix: login-username-tabindex [#20320](https://github.com/lichess-org/lila/pull/20320) (thanks [bananaMonkey13](https://github.com/bananaMonkey13))
- Fix: new streak button [#20304](https://github.com/lichess-org/lila/pull/20304) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix: show lichess logo on auth pages [#20275](https://github.com/lichess-org/lila/pull/20275) (thanks [Sama-004](https://github.com/Sama-004))
- Fix: game search analysed filter silently drops all other filters [#20256](https://github.com/lichess-org/lila/pull/20256) (thanks [wesselvankessel](https://github.com/wesselvankessel))
- Fix: spacing on user_tag button [#20233](https://github.com/lichess-org/lila/pull/20233) (thanks [xcjackpan](https://github.com/xcjackpan))
- Fix: missing extraCgConfig when no showResults [#20179](https://github.com/lichess-org/lila/pull/20179) (thanks [PawelPlutaUek20](https://github.com/PawelPlutaUek20))
- Fix: iOS Safari auto-zoom on auth form inputs [#20153](https://github.com/lichess-org/lila/pull/20153) (thanks [brynjagr](https://github.com/brynjagr))
- Fix: chat size change [#20171](https://github.com/lichess-org/lila/pull/20171)
- Fix: check whether variant is 960 when computing dests in analysis [#20272](https://github.com/lichess-org/lila/pull/20272)
- Chess-openings: Added B07 line [#316](https://github.com/lichess-org/chess-openings/pull/316) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Add B30 anti-Sveshnikov starting position. [#315](https://github.com/lichess-org/chess-openings/pull/315) (thanks [jdart1](https://github.com/jdart1))
- Chess-openings: E14 and related fixes [#311](https://github.com/lichess-org/chess-openings/pull/311) (thanks [jdart1](https://github.com/jdart1))
- Chess-openings: E81 change [#308](https://github.com/lichess-org/chess-openings/pull/308) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Added Sicilian defense, Portland attack [#307](https://github.com/lichess-org/chess-openings/pull/307) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Added E57, E88, E81 and E71 lines [#304](https://github.com/lichess-org/chess-openings/pull/304) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Add some E11 lines [#300](https://github.com/lichess-org/chess-openings/pull/300) (thanks [jdart1](https://github.com/jdart1))
- Chess-openings: C.tsv -- Ruy Lopez Steinitz Defense: transposition from Philidor Defense [#298](https://github.com/lichess-org/chess-openings/pull/298) (thanks [Panthee](https://github.com/Panthee))
- Chess-openings: Added B77 and B78 lines [#297](https://github.com/lichess-org/chess-openings/pull/297) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Added B13 lines [#294](https://github.com/lichess-org/chess-openings/pull/294) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Add a C83 line [#293](https://github.com/lichess-org/chess-openings/pull/293) (thanks [jdart1](https://github.com/jdart1))
- Chess-openings: Added D36, D53, D41, and D43 lines [#292](https://github.com/lichess-org/chess-openings/pull/292) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Added a C24 line [#291](https://github.com/lichess-org/chess-openings/pull/291) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Hyperaccelerated Fianchetto -> Hyperaccelerated Dragon [#290](https://github.com/lichess-org/chess-openings/pull/290) (thanks [LesCyclopes](https://github.com/LesCyclopes))
- Chess-openings: Added the Carlsen Variation of the QGD [#289](https://github.com/lichess-org/chess-openings/pull/289) (thanks [Chess4757](https://github.com/Chess4757))
- Chess-openings: Snyder Variation -> Czerniak Attack [#287](https://github.com/lichess-org/chess-openings/pull/287) (thanks [LesCyclopes](https://github.com/LesCyclopes))
- Fishnet: Update to rust 1.95 for cfg_select [#295](https://github.com/lichess-org/fishnet/pull/295)
- Lila-search: Advanced study search [#769](https://github.com/lichess-org/lila-search/pull/769), [#770](https://github.com/lichess-org/lila-search/pull/770)
- Lila-search: Remove lila-maven [#773](https://github.com/lichess-org/lila-search/pull/773)
- Lila-search: Small improvements [#768](https://github.com/lichess-org/lila-search/pull/768)
- Lila-search: Disable scaladoc task as it fails [#762](https://github.com/lichess-org/lila-search/pull/762)
- Lila-search: Update dependencies and fix deprecation [#761](https://github.com/lichess-org/lila-search/pull/761)
- Lila-search: Update scala 3.8.3 [#755](https://github.com/lichess-org/lila-search/pull/755)
- Lila-search: Use `game` index again [#754](https://github.com/lichess-org/lila-search/pull/754)
- Stockfish-web: Add opt-in relaxed SIMD path for NNUE evaluation [#16](https://github.com/lichess-org/stockfish-web/pull/16) (thanks [ohone](https://github.com/ohone))
**API updates**
- API Docs: Don't include '200' in api docs for /top/ endpoint. [#635](https://github.com/lichess-org/api/pull/635)
- API Docs: Document "mode" in /api/study/{studyId}/import-pgn [#634](https://github.com/lichess-org/api/pull/634)
- API Docs: Remove deprecated broadcast fields [#630](https://github.com/lichess-org/api/pull/630)
**Accessibility updates**
- NVUI: Add touchscreen support in analysis view and puzzle view [#20169](https://github.com/lichess-org/lila/pull/20169)
- NVUI: Add a toggle eval button below the board [#20216](https://github.com/lichess-org/lila/pull/20216)
- NVUI: Fix small viewport issues because of disable blind mode button [#20161](https://github.com/lichess-org/lila/pull/20161)
- A11y contrast tweaks, mainly for light theme [#20182](https://github.com/lichess-org/lila/pull/20182), [#20287](https://github.com/lichess-org/lila/pull/20287)
**Translation updates**
- Add support for under age and Elo tournaments in i18n and regex patterns [#20193](https://github.com/lichess-org/lila/pull/20193)
- Add HTML checks to i18n linting [#20199](https://github.com/lichess-org/lila/pull/20199) (thanks [Ijtihed](https://github.com/Ijtihed))


