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
Auto-expanding textareas (#890): AutoExpandingTextarea component that grows/shrinks instantly with content; used in MusicTab and ProfileTab with monospace font for ASCII art. Manual vertical resize preserved.
Bio length 127 → 255 chars (#890): Bios now use the full LCU limit, allowing longer ASCII art.
Idle-text-as-bio switch (#890): Toggle in ProfileTab to use the Music Sync idle text (more room) as your profile bio without enabling Music Sync.
Char counter: Live N/255 indicator under all bio textareas.
Zustand store (src/store.ts): Centralizes lcu/musicBio state and lcuRequest action with retry; eliminates prop-drilling.
Retry/backoff utility (src/utils/retry.ts): withRetry() wraps LCU requests with exponential backoff.
Typed storage layer (src/utils/storage.ts): Zod-validated loadJSON/saveJSON and helpers.
Per-tab ErrorBoundary: Each tab isolated so a crash in one doesn't take down the app.
Settings backup & restore: Export/import all localStorage keys as JSON via Tauri file dialogs.
Enforcer/music-sync conflict resolution (#890): Enforcer skips statusMessage when Music Sync is active.
patchChatLol() mutex: Serializes concurrent patches to /lol-chat/v1/melol field.
Storage key constants (src/storageKeys.ts): Named constants replacing string literals.