## lichess-org/mobile — v0.27.2…v0.28.0

_74 commits._

### Features
- **Add blindfold mode to offline computer and over-the-board games (#3503)** (dad28b2)
- **Gen new translations** (58fd6a6)
- **New Crowdin translations by GitHub Action (#3598)** (bb1f471)
- **Improve engine new game detection** (f1944d4)
- **Add more engine options tests** (0803c43)
- **Add a test_build fastlane command** (d77866f)
- **Add online book** (342fe0a)
- **Add hash cap and stricter budget on engines** (2557ed4)
- **Add a test_build fastlane command** (95d08d6)
- **Remove findEval and add more tests** (74370c6)
- **feat: add PGN clocks to study screen** (67df669)
- **Add temperature to maia oppoenent** (4b4c98a)
- **Add maia opponent** (d44cb6f)
- **WIP on engine refactor: introduce the engine layer** (cf93793)

### Fixes
- **Fix username overflows across the app (#3593)** (17b4767)
- **Fix blank checkbox in home widgets settings when a section has no content (#3612)** (e94b7a4)
- **Fix engine grace window and button toggle** (b6b972e)
- **Fix app log service** (8564803)
- **Fix hash size** (ffab4e4)
- **Fix engine provider** (e5d7be1)
- **fix #3595 (#3604)** (30d2929)

### Backend
- **Edit clock tool to allow time and increment change to one player while paused (#3460)** (f38a7f2)
- **Merge branch 'tom-anders-study-players-and-clocks'** (06138d4)
- **Merge branch 'study-players-and-clocks' of https://github.com/tom-anders/lichess-mobile into tom-anders-study-players-and-clocks** (56a5690)
- **Upgrade dependencies** (5643197)
- **Upgrade flutter** (d9b911e)
- **Merge pull request #3606 from lichess-org/engine_refactor** (a97b14e)
- **Move engine transport files** (b5fa7bd)
- **Ensure we don't keep unusable maia weights** (356a6e6)
- **Ensure corrupted nnue files don't stay on disk** (58ee57f)
- **Refactor engine opening book** (f6b843f)
- **Refactor weights services** (9317e04)
- **Move functions to engine utils** (6a13aa3)
- **Merge branch 'main' into engine_refactor** (a03fd1d)
- **improve startup time (#3607)** (088a89a)
- **no need to check the the legality of the move again, parseSan already (#3627)** (d2ca7fb)
- **Use git dependencies** (4a0b1f7)
- **Use an Exception instead of StateError** (eca508b)
- **Remove engine provider grace windows** (fdff274)
- **Tweak comment** (9647edf)
- **Ensure maia book search does not throw** (989ccbb)
- **Tweak EngineFactory** (5d0fcc9)
- **Use Error rather than Exception** (5d755e1)
- **Rename EngineBudget methods** (7e6004e)
- **Simplify engine transport** (d5c228d)
- **Maia is not allowed to play chess960** (12fc4cc)
- **Tweak practice mode params** (3fab652)
- **Restore default offline opponent to stockfish** (8345888)
- **Bump version** (ad8be5b)
- **Lower number of available threads during practice mode** (7821061)
- **Implement offline opening book for maia** (8d78c67)
- **Adjust maia temperature** (f6ef38e)
- **Improve maia level picker** (ec9e3bf)
- **Make maia opponent first choice** (1d1b7bd)
- **Download maia nets from CDN** (e96a7b8)
- **Tweak provider logger** (b29563e)
- **Hints are keyed by move** (d494387)
- **Merge branch 'engine_refactor' into practice_mode** (cfe33e3)
- **Merge branch 'main' into engine_refactor** (236eaa5)
- **Merge branch 'engine_refactor' into practice_mode** (6774d16)
- **Merge remote-tracking branch 'origin/main' into engine_refactor** (1014370)
- **Improve engine factory** (c1fcbaa)
- **Lower engine max memory cap** (07de6dc)
- **Practice analyser** (0e49188)
- **Engine budget sharing** (9020c5e)
- **Opponent thinking time implementation** (0274608)
- **Wire lc0 backend** (72df826)
- **Introduces engine budget** (50b145c)
- **Wip: split engine opponent out of evaluation service** (f7a94fe)
- **Play move sound instantly in bullet (#3605)** (a98315d)
- **Tweaks** (2c263a5)
- **More wip: move engine owership to riverpod** (2f377da)
- **Some changes after review** (99627f4)
- **Update contributing guide** (7b06b26)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/lichess-org/mobile?utm_source=github-action)._