* feat: Add Apply/Cancel buttons and recognition progress feedback to settings dialog
- Add Apply and Cancel buttons to settings dialog alongside Close button
- Implement response handler to manage Apply, Cancel, and Close actions
- Add recognition progress feedback UI with status indicator and audio level
- Show real-time recognition state (Idle/Listening/Processing/Error)
- Display audio level bar during recognition activities
- Add success/error feedback when applying or reverting settings
- Connect dialog to speech recognition manager for live progress updates
- Improve test recognition functionality with progress feedback
Resolves#93
* docs: Add comprehensive UX research and inline design rationale
- Add RESEARCH.md with UX research findings, industry benchmarks, and citations
- Research covers: GNOME HIG, WCAG 2.1 AA, HCI speech recognition patterns, Linux desktop UX
- Add inline UX comments to settings_dialog.py explaining key design decisions
- Document rationale for Apply/Cancel pattern vs immediate-apply
- Document multi-modal progress feedback approach (text + icon + audio level)
- Reference industry standards: Dragon NaturallySpeaking, Google Docs Voice Typing
- Include accessibility compliance notes and WCAG citations
PR #108 now includes research-backed justifications for all UX decisions.
* fix: use proper callback API and add cleanup on dialog destroy
- Use register_audio_level_callback() instead of direct list append
- Add _on_dialog_destroy() to clean up callbacks when dialog closes
- Remove RESEARCH.md (not needed for the implementation)