## [2.3.2] — 2026-05-12 - Integrated Mailbox UI into lobby with CanvasLayer overlay (renders above 3D viewport). - Redesigned `mailbox_panel.tscn` to 3-column layout: scrollable mail list | content area | reward slots. - Auto read-all and auto claim-all triggered on mailbox open — no "NEW" tags remain after viewing. - Fixed `MailboxBtn` text glitch — removed text override, replaced with `MailBadge` Label overlay in top-right corner of button. - Fixed `mark_as_read()` in `MailManager` — now persists `read_ids` to server via new `save_mail_state` RPC. - Admin Panel: Announcement tab `Target User` field now accepts username, display name, or user_id with **Find** button for resolution. - Admin Panel: New **Mail Manager** tab listing all global and personal sent mails with Type, Title, Sender, Start, Expires, Status columns. - Admin Panel: Edit dialog for mails uses `date_picker.tscn` for end date and supports reassigning recipient (username lookup + move). - Admin Panel: **End Now** button sets `end_date` to current timestamp; **Delete** permanently removes mail from server storage. - Server: Added `admin_list_mail` RPC — paginates all `inbox/personal` storage objects across all users via `storageList`. - Server: Added `admin_update_mail` RPC — extract-then-reinsert pattern supports field edits and cross-user mail movement. - Server: Added `admin_delete_mail_server` RPC — hard-removes mail from global config or personal inbox storage. - Server: Added `save_mail_state` RPC — merges client `read_ids` into server `inbox/state` without clobbering claimed/deleted IDs. ## [2.3.1] — 2026-05-11 - Integrated DM tab system directly into the lobby chatbox — DMs now open as closeable tabs inside ChatPanel instead of a fullscreen overlay. - Removed static DMTabBtn; DM tabs are dynamically created per friend using a scene-local DMTabTemplate with (X) close button. - Added `@username` auto-suggest popup in ChatInput — typing `@` shows a live-filtered friend list; tap/click to select and format as `@username (message)`. - FriendSuggestPanel moved to scene node (editable in editor) with touch/mobile support via item_selected signal. - DM messages render in the shared GlobalChat RichTextLabel, switched by active tab context. - Incoming DMs from friends automatically create a new tab without opening the Social Panel. - Fixed self-DM tab creation — outgoing DM echo no longer triggers a tab for own username. - Chat timestamps updated to `[ DD-MM-YY - HH:MM ]` format; DM history loaded oldest-to-newest (oldest at top, newest at bottom). - Added `/clear` command — clears DM chat history locally; on Global tab, only admin/owner/moderator can use it. - Admin `/clear` on Global also calls `admin_clear_global_chat` RPC to permanently delete persisted messages server-side. - Added `admin_clear_global_chat` RPC in `tekton_admin.js` — paginates and removes all messages from the channel. - Fixed `theme_override_colors` property error on dynamically created Button nodes — replaced with `add_theme_color_override()`. ## [2.3.0] — 2026-05-06 - Fixed boot screen crash caused by `TextureButton` cast as `Button` returning nil (`as Button` → `as BaseButton`). - Routed boot screen button `.text` assignments through child `Label` nodes for `TextureButton` compatibility. - Changed changelog bullet list to BBCode `[table=2]` layout for proper hanging indent on wrapped lines. - Fixed changelog `RichTextLabel` scroll by removing `fit_content = true` flag. - Synced player avatar, username, leaderboard score, and rank to the Room List panel header on open. - Restored preserved hosting logic — wired Play tab `FreeModeBtn` and `StopNGoBtn` to host room with correct game mode. - Wired Room tab `RoomFreeModeBtn` and `RoomStopNGoBtn` to filter room list by game mode (toggle). - Encoded game mode as `[Mode] Room NNNN` prefix in room name for LAN room discovery filtering. - Added `game_mode` field to room dictionaries across `LobbyManager` (Nakama + LAN) and `NakamaManager` match listing. ## [2.2.1] — 2026-05-01 - Updated daily login logic to support multiple reward types (star, gold, fragments). - Fixed leaderboard UI to dynamically update with player changes. - Added full backend Nakama support for daily login claiming and administration. - Refactored Admin Panel to include a bordered 30-day grid layout with January-December selection. ## [2.2.0] — 2026-04-30 - Redesigned Social Panel with a 3-tab layout (Search, Requests, Friends) to fix UI overlap issues. - Fixed an issue where offline friend requests were not being delivered properly. - Added persistent storage for Direct Messages, loading previous chat history when opening a DM. - Improved real-time Nakama socket listening to allow incoming DMs to be received instantly even when the chat tab is closed. - Fixed account state pollution where friend data leaked when switching users without restarting the client. - Corrected server-side RPCs for Nakama `send_friend_request` ensuring persistent push notifications. - Re-themed Social Panel DM UI to use dark brown fonts for high-contrast readability. ## [2.1.9] — 2026-04-29 - Added friend system with friend list, direct messaging, and lobby invitations - Improved Steam login support - Added Social Panel with Friends, Global Chat, and Direct Message tabs - Added ability to add/remove friends from lobby player slots - Added Invite Friends button to lobby - Added lobby invite notifications - Fixed account type display in profile panel ## [2.1.8] — 2026-04-24 - Optimized network synchronization with deterministic tile slots and granular board sync - Removed lag-sensitive server adjacency checks to fix "disappearing tiles" on high-latency connections - Fixed "No multiplayer peer assigned" crash during host disconnection and cleanup - Finalized AP system removal, transitioning to a fully real-time authoritative model - Restored bot mission completion logic - Stabilized Nakama socket cleanup during match-to-lobby transitions - Fixed Tekton not rotating toward spawning direction when throwing tiles - Fixed purple powerup tiles spawning on top of existing layer 1 tiles - Added animation delay to tile spawning to match Tekton throw animation timing - Implemented 1-tile perimeter buffer on all spawn areas to prevent edge spawning and stuck gaps - Tekton NPCs now spawn exclusively in corner zones; players spawn in middle zones - Fixed outline shader being lost when applying skin material overrides - Added Unstuck button to pause menu to teleport stuck players to a safe area ## [2.1.7] — 2026-04-24 - Upgraded Gacha interface with dynamic CSGO-style sequential reveal animations - Added an animation skip button for faster 10x multi-pulls - Fixed a bug where opening the Craft menu from Gacha would show an empty screen - Stabilized login flow by resetting connection states after failed auto-logins ## [2.1.6] — 2026-04-24 - Added Gacha system with Star and Gold banners (1x & 10x pulls) - Fragment Craft system — collect drops to craft exclusive skins - Fixed boot screen stuck on "Checking versions..."