fix: resolve i18n review issues and improve UI components
- Fix SQL injection risk in global search by using inArray() instead of raw sql IN
- Fix shortIdMatch early return that exited entire search function
- Fix missing SortableContext import in list view
- Fix missing useMemo import in bulk toolbars
- Fix hardcoded "Board"/"List" strings in board toolbar
- Fix Base UI select display showing raw values instead of labels
- Fix email locale resolution with shared resolveEmailLocale helper
- Fix task.created activity using hardcoded English content
- Add board loading skeleton replacing spinner
- Remove compact mode toggle from preferences
- Add i18next namespace list to init config
- Type setLocale as AppLocale for compile-time safety
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>