lightweight tag b9e11a038c98be68cc19e6c720a80f3d6d709879 v80
Author:	GitHub <noreply@github.com>
Date:	Tue Mar 3 20:37:55 2026 +0100

commit 262b95da06950e4095d27425fc30ab84221d867b
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 20:37:19 2026 +0100

    feat: FuldStonks First release

commit 262b95da06950e4095d27425fc30ab84221d867b
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 20:37:19 2026 +0100

    feat: FuldStonks First release

commit 1ba8862a0881ff094e3c25067bdc19d654740de8
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 20:29:05 2026 +0100

    chore: update

commit b585836c24b62e9f9f032f22dcd1c4b148c1f937
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 20:15:03 2026 +0100

    chore: version bump

commit 668dc7cfefd12741275dab22ad4e3e5c01a7ba15
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 20:14:34 2026 +0100

    feature: add version check and update warning system
    
    - Add CompareVersions function to compare semantic versions
    - Detect when receiving messages from higher addon versions
    - Show prominent warning in chat (red/yellow colors)
    - Display persistent UI warning banner at top of frame
    - Block syncing with mismatched versions
    - Warning shown only once per session
    - Early exit prevents any communication with newer versions

commit 46bcc442a65c3c6ab40c8e3a4cd42fa899bacffa
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 20:09:53 2026 +0100

    fix: remove SetPasswordMask to allow inspect dialog to open
    
    - Removed SetPasswordMask line that was causing dialog creation to fail
    - Password input now shows text instead of masking with asterisks
    - Inspect button now properly opens the dialog
    - Admin cancel button position adjusted to -230 to avoid overlap

commit c536a5c6e76ef9ac658c3f9f414a61e07478026b
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 20:07:28 2026 +0100

    fix: correct password dialog variable scope in admin cancel button
    
    - Use dialog.passwordDialog reference instead of local passwordDialog
    - Fixes scope issue that prevented dialog from showing
    - Admin cancel button now properly displays password prompt

commit c4e55d67c5f3cc3a29ea17dd6f6d757218ab097f
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:58:07 2026 +0100

    fix: stats tab visibility, title spacing, and add statistics state sync
    
    Issue #1 - Headers visibility
    - Fixed: Create winnersHeader/losersHeader as children of statsHeadersFrame
    - These now hide/show correctly based on tab selection
    - Active tab no longer shows headers
    
    Issue #2 - Title card spacing
    - Added yOffset = 30 for stats tab to leave room for headers above content
    - Active tab starts at y=0 as before
    - Prevents visual overlap
    
    Issue #3 - Statistics sharing via state sync
    - Added SYNC_TYPE_HISTORY constant for resolved bets synchronization
    - Extended CreateStateSnapshot to include betHistory (max 50 recent bets)
    - Updated broadcast message headers to include history count
    - Added history parsing and merging in message handler
    - MergeState now accepts and processes received history data
    - Statistics are now auto-synced across all connected addon instances
    - Only sends resolved bet status and winning option (minimal bandwidth)

commit bd68c63d7af07b91710204f97ede6edbe72989d8
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:51:18 2026 +0100

    refactor: replace history tab with stats leaderboard
    
    - Renamed historyTab to statsTab throughout UI
    - Replaced historical bet viewing with cumulative player statistics
    - Added side-by-side Winners/Losers columns ranked by performance
    - Stats show: PlayerName, Net Gold (±Xg), Win-Loss Record (WW-LL)
    - Winners (green) sorted by highest winnings descending
    - Losers (red) sorted by highest losses descending
    - Reuses existing addon styling (BackdropTemplate, color-coding)
    - Empty stats message updated per tab context

commit 4c964af178bbf4924dcb728dd350b2d8510a4302
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:29:24 2026 +0100

    fix: remove devEntryButton references - dev mode removed

commit dedba7184b2e863ee7ece5814b6689a9d775fdf4
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:23:22 2026 +0100

    fix: remove debug spam - only broadcast when state changes, clean slash handler

commit 3b04eb15fc7212b2544387faa42c527c326b7faf
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:21:22 2026 +0100

    fix: reduce sync logging spam - only print when changes detected

commit 59f187eeb4538b4b3b90637c4574d2da6f0e11e4
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:18:27 2026 +0100

    debug: add error handling to slash command handler
    
    - Add msg nil check (msg = msg or "")
    - Wrap ToggleMainFrame calls in pcall to catch errors
    - Display any errors that occur when toggling UI
    
    This will help debug the /fs empty command issue

commit c8e45d03e8b6206fb94893ed731380aed41ac83e
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:16:45 2026 +0100

    fix: handle empty slash command to toggle UI
    
    - Add explicit check for empty command at start of handler
    - /fs with no arguments now properly toggles main UI
    - Moved help check to explicit elseif condition

commit bbc000b96b6890581eb18441266005389cf58580
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:14:53 2026 +0100

    refactor: remove dev mode and add master override delete
    
    - Remove dev mode checkbox and demo entry button from UI
    - Remove AddDevRandomEntry function (was creating fake bets)
    - Remove isDevMock check from state sync (no more dev bets)
    - Add MasterDelete function protected by plaintext password
    - Add /fs delete <betId> <password> command
    - Master can force delete any bet and sync deletion to all peers
    
    Master password: fuldmaster2025 (silly, as requested)

commit defe28c1fedd3ad769bd65972bb63efd0370a817
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:10:10 2026 +0100

    refactor: silently ignore version mismatches without logging

commit ba86f60b089cbfeec642fd81fe5611627a6d964a
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:06:38 2026 +0100

    feat: add version checking to addon messages
    
    - Include addon version in every serialized message
    - Check sender's addon version on message receipt
    - Only process messages from same addon version
    - Silently ignore version mismatches (logged in debug mode)
    - Track sender's addon version in peers table
    
    This prevents state corruption or unexpected behavior if older/newer
    addon versions send incompatible message formats

commit 89a733e3db85483958abe5903470446eb78fef55
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 19:04:59 2026 +0100

    refactor: improve debug logging for better usability
    
    - Add timestamps to debug output for better timing visibility
    - Use categories (SYNC, MSG, TRADE, BET, STATE, MERGE) for organized logging
    - Only log when actual changes are made instead of every operation
    - Replace verbose state sync detail logs with concise summaries
    - Simplify trade window logging to show only actionable changes
    - Remove overly verbose 'checking' logs unless changes occur
    - Add 'LogIfChanged' helper for conditional logging
    - Show bidirectional sync arrows (← ↑ →) in debug output
    - Reduce state version logging verbosity
    - Clean up message broadcasting logs
    
    Result: Debug output is now more readable and useful for troubleshooting
    synchronization issues without being overwhelmed by operational details

commit 7bcdbc3d6c5a8118f15c2eff66e57da9edf39580
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 18:59:41 2026 +0100

    fix: add immediate UI updates and clean up pending bets on reject and resolve
    
    - Add frame update when MSG_BET_PENDING_REJECT is received for immediate UI feedback
    - Remove unnecessary timer delay in CreateBet for immediate UI refresh
    - Ensure pending bets are cleaned up when bet is resolved
    - All operations now provide immediate visual feedback to users

commit 1317e46224aaf6c97e420291e0aab40ab08b425f
Author: Oliver Holmberg <Oliver.hj.1999@gmail.com>
Date:   Tue Mar 3 18:42:52 2026 +0100

    chore: fixup later

commit a123fc240f6c5a1b52c45426b215b34d8f4bd85f
Author: Kristoffer Laukamp <kristoffer_laukamp@hotmail.com>
Date:   Mon Mar 2 23:20:05 2026 +0100

    mr1: Erax-nairy - FuldStonks

