• v2.2.0 1e229489b4

    Emily released this 2026-11-04 11:46:05 +01:00 | 41 commits to main since this release

    Highlights

    • Killer Sudoku is here. Dashed cages add up to their target and never repeat a digit. Five difficulties, notes, hints, undo/redo, resume support, separate records and a cage-aware conflict highlighter.
    • Height-aware scaling in every game. Card tables, Mahjong, Pyramid, TriPeaks, Minesweeper, Chess and both Sudoku variants now size from the shorter viewport edge, so phone landscape and split-screen windows no longer waste space or clip boards.
    • Mahjong tile labels now scale down cleanly instead of overflowing on small tiles.
    • Account server default is now https://account.games.emilyh.de.
    • Backend default port is now 6767 (Accounts 1.0.1).
    • Docker web frontend now serves on port 6969 by default, with an included Compose file.

    Fixes and polish

    • Hub now lists eleven games and the onboarding copy is updated.
    • Landscape layout tests added for every game at phone, tablet and desktop sizes.
    • Killer Sudoku generation is verified to produce exactly one solution per puzzle, with complete cage coverage and valid sums.
    • 177 Flutter tests pass; flutter analyze reports no issues.

    Downloads

    • UniversalGaming-2.2.0-android.apk — universal release-signed Android build
    • UniversalGaming-2.2.0-android.aab — Google Play bundle
    • UniversalGaming-2.2.0-ios-unsigned.ipa — unsigned, re-sign with Sideloadly/AltStore
    • UniversalGaming-2.2.0-macos.dmg — universal macOS build
    • UniversalGaming-2.2.0-web.zip — static web build
    • SHA256SUMS.txt — checksums for all artifacts

    Accounts backend: https://git.emilyh.de/Emily/UniversalGamingApp-Backend/releases/tag/v1.0.1

    Downloads