summaryrefslogtreecommitdiff
path: root/internal/gui/queue.go
AgeCommit message (Collapse)Author
2026-04-08fix(gui): make GetActiveJobs concurrency-safe without channel access under lockPaul Buetow
GetActiveJobs previously drained and refilled q.jobs while holding RLock, racing with AddWordWithPrompt and ProcessNextJob on the same channel. Derive queued jobs from q.results (StatusQueued) and processing jobs from q.processing, matching the authoritative state already updated under the mutex elsewhere. Made-with: Cursor
2026-04-02Fix GUI audio reload and bg-bg session statePaul Buetow
2026-03-08fix: complete code-quality task queue (373-378)Paul Buetow
2026-01-21improve: better audio player UI and debugging for bg-bg cardsPaul Buetow
- Add debug logging to navigation.go to diagnose audio file loading issues Prints paths being checked and whether files are found - Improve AudioPlayer UI for Bulgarian-Bulgarian cards: - Add labels showing 'Front' and 'Back' for bg-bg audio buttons - Labels only show when audio files are actually loaded - Better visual distinction between the two playable audios - Reorganized button layout with VBox for cleaner appearance - Track bg-bg state in AudioPlayer (isBgBg field) - Automatically set when back audio file is loaded - Used to determine when to show labels This makes it clearer that Bulgarian-Bulgarian cards have two independently playable audio outputs, and helps debug why audio isn't being loaded.
2025-07-22Fix race conditions in background processing and prevent deletion of active ↵Paul Buetow
cards - Fix race condition where images, audio, and phonetic info could be saved to wrong flashcard when navigating quickly between cards - Add pre-determined card directory that's passed to all background operations - Track active operations per word to prevent deletion during generation - Block deletion of cards that are queued or being processed - Show appropriate error messages when deletion is blocked This ensures files are always saved to the correct card directory and prevents data loss from deleting cards with active operations. 🤖 Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-17feat: add manual translation editing and bidirectional translationPaul Buetow
- Replace translation label with editable entry field - Move translation field next to Bulgarian input for better UX - Add bidirectional translation support: - Bulgarian → English: auto-translate when only Bulgarian provided - English → Bulgarian: auto-translate when only English provided - No translation when both fields are filled - Show translations immediately upon generation - Auto-save translations when edited - Keep input fields populated during processing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16only one img per cardPaul Buetow
2025-07-16feat: add custom image prompt support and keyboard shortcutsPaul Buetow
- Add text area next to image display for custom image generation prompts - Users can specify their own prompts or leave empty for auto-generation - Display the used prompt in the text area after generation - Load prompts from attribution files when navigating to existing cards - Add keyboard shortcuts for all GUI buttons: - G: Generate, N: New Word, I: Regenerate Image, A: Regenerate Audio - R: Regenerate All, D: Delete, P: Play audio - Left/Right arrows: Navigate between words - Y/N: Confirm/cancel delete dialog - Update UI layout with equal 50/50 split between image and prompt - Enable text wrapping in prompt text area - Add 25% chance to ask OpenAI for creative photo style suggestions - Fix concurrent processing to properly use custom prompts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16feat: add concurrent processing, queue system, and UI improvementsPaul Buetow
- Implement concurrent word processing with background queue - Add processing statistics showing active tasks and total cards - Enable circular navigation through cards - Fix card deletion to update total count correctly - Add version number to GUI window title - Prevent unwanted UI reloads for background-processed cards - Enable immediate audio playback before image generation completes - Update 'Keep & Continue' button to 'New Word' - Improve queue status tracking for all processing operations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>