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
Floating history panel: Shows file name instead of content for file translations
🔒 Security
SSRF: Resolved all CodeQL SSRF alerts — validateProviderUrl now returns the validated URL, breaking the taint chain. All 6 codeql-disable-next-line comments removed
Gemini: API key no longer leaked in URL query string (was already in header)
Empty URL: Clear error message when custom provider URL is empty
FileReader: Type guard added to FileReader.result to prevent binary file crash
JSON.parse: All JSON.parse(localStorage) calls wrapped in try-catch via safeJSONParse helper
localStorage.setItem: All calls wrapped in try-catch via safeSetItem helper
AudioContext: Reused instead of creating a new instance per notification
🧹 Code Quality
ESLint: Downgraded to ^9.24.0 to fix crash with eslint-config-next
Version: Hardcoded v1.1.1 references replaced with dynamic import from package.json