Changed NotificationManager::new() to set enabled: false
This completely disables all desktop notifications in the app.
Modified:
- src/notifications.rs:32 - enabled: true -> false
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
PANIC FIX: Notification preview truncation was using byte indices (`[..147]`)
instead of char boundaries, causing panic when truncating UTF-8 strings
containing multi-byte characters (Cyrillic, emoji, etc.).
Error message:
"byte index 147 is not a char boundary; it is inside 'п' (bytes 146..148)"
Fix:
- Replace `beautified.len() > 150` with `beautified.chars().count() > MAX_PREVIEW_CHARS`
- Replace `&beautified[..147]` with `beautified.chars().take(MAX_PREVIEW_CHARS).collect()`
- Add constant MAX_PREVIEW_CHARS = 147 for clarity
This ensures we truncate at character boundaries, not byte boundaries,
preventing panics on multi-byte UTF-8 sequences.
Impact: Notifications for messages with Russian/emoji text crashed the app.
Root cause: Classic Rust UTF-8 indexing mistake - slicing by bytes instead
of characters.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>