You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tile Texture Rendering: Embedded Front.svg background directly into all tile SVGs for proper texture/3D effect rendering
Dora Picker Exhausted Tiles: Tiles that have been fully used in the hand are now disabled in the dora/ura dora picker, preventing selection of unavailable tiles
WIN Badge Overlap: Moved the "WIN" label from top-right to bottom-center of tiles to avoid overlap with the remove button
TypeScript Warning: Fixed "Cannot find name 'process'" warning in vite.config.ts by using Vite's built-in mode parameter
Changed
Tile Component Simplification: Removed redundant tile background layering in Tile.svelte since backgrounds are now embedded in SVGs
Install agari 0.13.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ryblogs/agari/releases/download/v0.13.1/agari-installer.sh | sh
Red Five Duplicate in Meld Builder: Fixed bug where users could add multiple red fives (aka dora) of the same suit in pon/chi/kan meld builder (e.g., 0p, 0p, 0p)
Meld builder tiles now included in tileCounts so the palette updates in real-time
Properly checks red five availability using separate red5m/red5p/red5s count tracking
Invalid Chi Meld Sequences: Fixed bug where chi meld builder allowed non-consecutive tiles (e.g., 5p5p5p or 2m4m6m)
Added sequence validation that only allows tiles forming valid 3-consecutive runs
Invalid tiles are now visually grayed out and unclickable in the palette
Changed
Improved Meld Builder UX: For pon/kan/ankan melds, after selecting the first tile, all other tile types are now visually disabled in the palette (previously only enforced in code)
Install agari 0.12.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ryblogs/agari/releases/download/v0.12.0/agari-installer.sh | sh
Inferred Winning Tile Display: When scoring a hand without explicitly selecting a winning tile, the frontend now shows which tile was automatically inferred and highlights it in the hand
Yellow info banner: "💡 Winning tile inferred as [tile]. Click a tile in your hand to select explicitly."
Auto-selects the inferred tile in the hand display with the "WIN" badge
Handles red five matching (inferred "5m" correctly matches red "0m")
WASM Test Suite: Added 27 focused tests for agari-wasm covering the WASM binding layer
New Tile Graphics: Replaced programmatic SVG tiles with beautiful riichi mahjong tile artwork from FluffyStuff/riichi-mahjong-tiles (public domain CC0)
Visual Dora Picker: Replaced text dropdown for dora/ura-dora selection with an intuitive visual tile picker modal
Improved Tile Removal UX: Added visible × button on hand tiles for easier removal (appears on hover for desktop, always visible on mobile/touch devices)
Dora indicator section now expanded by default for better discoverability
Fixed
Tile Count Tracking for Melds: Adding chi/pon/kan melds now correctly decreases the remaining tile count indicators
Red Five Tracking: Red 5 tiles (aka-dora) now correctly show 1 remaining instead of 4, since there's only one red five per suit
Dora Indicator Red Five Handling: Fixed dora/ura-dora selection and tracking for red fives using 0m/0p/0s notation
Changed
Red fives now appear at the end of each suit row in the dora picker (matching the main tile palette layout)
Increased horizontal spacing between tiles in the "Build Your Hand" tile selection area for better visual clarity
Removed "Right-click to remove" hint text (now using visible × buttons instead)
Fixed incorrect shanten with called melds (pon, chi, kan): The shanten formula now properly accounts for the minimum number of tiles required to form a valid tenpai hand
Previously, hands like 999m[1111m][1111p][1111s] (3 tiles + 3 kans) incorrectly showed as "Tenpai"
Now correctly calculates based on tile deficit from minimum required
Added tile deficit validation: Prevents reporting tenpai when there aren't enough tiles to form a valid waiting pattern
Minimum tiles for tenpai by called meld count:
Called Melds
Min Hand Tiles for Tenpai
0
13
1
10
2
7
3
4
4
1 (tanki wait)
Dora Counting Fixes
Fixed ura dora not counting tiles in kans: WASM bindings now include tiles from called melds (pon, chi, kan) when counting dora/ura dora
Added red five (akadora) support in dora selectors: 0m, 0p, 0s options now available in dropdowns
Fixed red five display: Red fives render correctly as red 5 tiles with indicator dot (was showing "0")
Fixed backend error with red fives: Red five notation converted to standard notation before sending to backend
Web Frontend Improvements
Meld Builder UI: Interactive chi/pon/kan/ankan builder with validation
Winning Tile Selection: Click tiles to mark as winning tile
Fixed kan hand size calculation: Kans now correctly use 3 slots (not 4) since you draw a replacement tile
Hand notation always visible: Shows notation when tiles or melds are present
Technical Changes
Added calculate_shanten_with_melds() public API in agari-core
Added ALL_TILES_WITH_RED constant for tile selection including red fives
Updated WASM bindings for meld-aware shanten and dora counting