summaryrefslogtreecommitdiff
path: root/internal/gui
AgeCommit message (Collapse)Author
2026-04-02Release v0.9.0v0.9.0Paul Buetow
2026-04-02Fix verification gate lint and test issuesPaul Buetow
2026-04-02Centralize audio sidecar generationPaul Buetow
2026-04-02Align GUI and CLI provider wiringPaul Buetow
2026-04-02Fix GUI selector sync and audio metadata modelPaul Buetow
2026-04-02Fix GUI audio reload and bg-bg session statePaul Buetow
2026-04-02Fix GUI voice-suffixed audio discoveryPaul Buetow
2026-04-02Harden GUI audio loading for GeminiPaul Buetow
2026-04-01Wire Gemini audio into GUIPaul Buetow
2026-04-01zg: add gui front-back voice coveragePaul Buetow
2026-04-01zg: add bg-bg consumer coveragePaul Buetow
2026-04-01zg: add consumer coverage for shared voice listsPaul Buetow
2026-04-01zg: extract shared audio voice listsPaul Buetow
2026-04-01z9: wire Nano Banana into GUIPaul Buetow
2026-04-01zt: align GUI translation defaults with shared translatorPaul Buetow
2026-04-01zt: route GUI translations through shared translatorPaul Buetow
2026-04-01zu: switch GUI phonetics to shared fetcherPaul Buetow
2026-03-08refactor(task-376): share audio attribution builderPaul Buetow
2026-03-08test(task-374): fix errcheck issues in tests and support codePaul Buetow
2026-03-08fix(task-373): handle runtime cleanup errors in production pathsPaul Buetow
2026-03-08fix: complete code-quality task queue (373-378)Paul Buetow
2026-03-05chore: release v0.8.1v0.8.1Paul Buetow
2026-01-21Fix: Auto-play only regenerated audio (front or back, not both) for bg-bg cardsv0.8.0Paul Buetow
- Removed duplicate fyne.KeyA handler that was triggering both front and back audio - Added SetAudioFileNoAutoPlay() method for controlled playback - Front audio (a key) now auto-plays only front audio - Back audio (A key) now auto-plays only back audio - Refactored startPlayback to use startPlaybackForFile for better control - Fixed icon reset when playback finishes for each audio type separately
2026-01-21cleanup: remove temporary debug codePaul Buetow
2026-01-21debug: add debug output to audio regeneration functionsPaul Buetow
Add console debug output to understand which side (front/back) is being regenerated for audio A and P key presses.
2026-01-21simplify: remove Space key, use P/Shift+P for audio playbackPaul Buetow
- Remove Space key handler from handleShortcutKey Space is not needed - use P/Shift+P instead - Clarify hotkeys help text p/ะฟ = play front audio P/ะŸ = play back audio (bg-bg only) The SetOnTypedRune handler already correctly handles case-sensitive keys (p vs P, a vs A) for both playback and regeneration.
2026-01-21improve: Space hotkey for back audio and consistent button iconsPaul Buetow
- Add Space key as primary hotkey to play back audio (bg-bg cards only) More intuitive than Shift+P for playing the second audio - Change back audio button icon from MediaSkipNextIcon to MediaPlayIcon Both front and back buttons now use the same play icon for consistency - Update hotkeys help dialog to document Space key Mark P/ะŸ as legacy (kept for backward compatibility) This makes the UI more consistent and the Space key is more natural for playing the back audio without using Shift.
2026-01-21cleanup: remove debug logging from GUI navigationPaul Buetow
Now that the root cause is fixed in the processor, remove the debug logging that was added for troubleshooting.
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.
2026-01-21fix: detect and load bg-bg audio files in GUIPaul Buetow
- Fix scanExistingWords() to detect cards with audio_front/audio_back files Previously only checked for audio.mp3, missing Bulgarian-Bulgarian cards - Fix checkForMissingFiles() to also look for bg-bg audio files Now checks both audio.mp3 (en-bg) and audio_front.mp3 (bg-bg) - Add check for back audio file in checkForMissingFiles() Ensures SetBackAudioFile is called when audio_back is loaded later This fixes the issue where opening an existing Bulgarian-Bulgarian card would not load the audio files, leaving the play buttons non-functional.
2025-08-02add timestamps to .apkg exports and num of cardsv0.7.5Paul Buetow
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-22Add Cyrillic 'ะฒ' support for archive hotkeyPaul Buetow
- Add 'ะฒ' and 'ะ’' (Cyrillic) key handling for archive functionality - Ensures archive works with both Latin 'v' and Cyrillic 'ะฒ' keyboards ๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-22Add archive hotkey and update GUI iconsPaul Buetow
- Add 'v' hotkey for archive all cards functionality - Change regenerate image icon to ColorPaletteIcon (artistic palette) - Change random image icon to ViewRefreshIcon (refresh symbol) - Update help dialog to include archive hotkey in Export & Archive section - Add hotkey hint to archive button tooltip ๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-22Reorganize assets and bump version to 0.7.3v0.7.3Paul Buetow
- Move totalrecall.desktop, install-icon.sh, and config.yaml.example to assets/ directory - Update all references in README.md and install-icon.sh - Add file organization guidelines to AGENTS.md - Clean up root directory structure ๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-22lowercasePaul Buetow
2025-07-22Fix GUI background image generation race conditionsPaul Buetow
- Add file.Sync() after image download to ensure data is flushed to disk - Add double-checking in UI updates to prevent wrong card updates - Fix background job completion to reload files when user navigates back - Add file size validation in image display widget - Improve error messages for image loading failures This fixes two issues: 1. 'png: invalid format: not enough pixel data' error when navigating during generation 2. Images not updating when navigating back to a card after background generation completes
2025-07-22Remove audio cache feature to simplify codebase and avoid cache-related issuesPaul Buetow
๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-21feat: Enhanced bulk import, archive functionality, and export improvementsPaul Buetow
## Bulk Import Enhancements - Added support for three flexible batch file formats: - `BULGARIAN = ENGLISH` - Both provided, no translation needed - `= ENGLISH` - Only English provided, auto-translated to Bulgarian - `BULGARIAN` - Only Bulgarian provided, auto-translated to English - Implemented smart file checking to skip already processed words - Check all required files (word.txt, translation.txt, phonetic.txt, audio/image files and their attribution/metadata) - Added batch processing summary with statistics ## Archive Functionality - Renamed --clear flag to --archive for clarity - Archive cards directory to ~/.local/state/totalrecall/archive/cards-TIMESTAMP - Added archive button to GUI toolbar with folder icon - Archive confirmation dialog supports keyboard shortcuts (y/n/c/ESC) ## Export Improvements - Anki exports now show full file path in output - Changed default export location to home directory (~) for both CLI and GUI - Auto-adjust image size to 1024x1024 when DALL-E 3 is selected ## Other Improvements - Added TranslateEnglishToBulgarian method for reverse translation - Enhanced batch processing with better error handling and progress reporting - Improved file integrity checking for complete word processing ๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-21fix(gui): Display phonetic info immediately when fetchedv0.7.1Paul Buetow
- Update phonetic display as soon as data is available, not after image generation - Apply fix to both single word and batch processing modes - Improves user experience by showing IPA transcription without delay - Bump version to 0.7.1 ๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-21more on thisPaul Buetow
2025-07-21feat: improve consistency between CLI and GUI modesPaul Buetow
- Fix batch mode to store cards in ~/.local/state/totalrecall/cards/ matching GUI behavior - Add --no-auto-play flag to disable automatic audio playback (enabled by default) - Simplify phonetic fetching in CLI to match GUI (IPA only, no detailed explanations) - Remove redundant --gui flag as GUI is already the default mode - Align image generation settings: both modes now use DALL-E 2 with 512x512 resolution ๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-21Release v0.7.0: Add auto-play feature and improve keyboard navigationv0.7.0Paul Buetow
New Features: - Added auto-play feature for audio with 'u'/'ัƒ' hotkey toggle - Auto-play is enabled by default on app startup - Automatically plays audio when new files are generated - Automatically plays audio when navigating between cards - Added Escape key support to unfocus all input fields - Works for Bulgarian word input - Works for English translation input - Works for image prompt multi-line input Improvements: - Increased default window size by 10% (800x700 โ†’ 880x770) - Fixed duplicate hotkey handling for 'u', 'h', and 'l' keys - Fixed tooltip initialization error by deferring audio player tooltips Bug Fixes: - Fixed Fyne threading errors in audio playback - Fixed tooltip layer initialization order issue - Removed duplicate keyboard shortcut handlers The auto-play feature enhances the learning experience by automatically playing pronunciation audio when cards are generated or when navigating through existing cards. Users can toggle this feature on/off at any time using the 'u' or 'ัƒ' hotkey.
2025-07-21fix: implement log viewer with newest-first ordering to avoid scroll issuesPaul Buetow
- Replace phonetic display with a proper log viewer widget - Prepend new log messages instead of appending to show newest first - Capture stdout/stderr output to display in the log viewer - Remove problematic auto-scroll functionality that wasn't working - Add timestamp to each log message for better tracking This approach eliminates the need for auto-scrolling since the latest messages are always visible at the top of the log viewer. ๐Ÿค– Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
2025-07-20feat: add quit confirmation dialogPaul Buetow
- Added confirmation dialog when pressing 'q' to quit the application - Supports y/ัŠ to confirm, n/ะฝ or ESC to cancel - Prevents accidental app closure - Consistent with delete confirmation dialog pattern ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-20feat: add ESC key support for all dialogsPaul Buetow
- Added ESC key to close help dialog - Added ESC key to close/cancel export dialog - Updated dialog instructions to show ESC option - ESC already supported for delete confirmation and unfocusing text areas ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-20feat: change help hotkey to ? and add vim-style navigationPaul Buetow
- Changed help screen hotkey from 'h' to '?' - Added vim-style navigation keys: h/ั… for previous, l/ะป for next - Updated help dialog to reflect new key bindings - Updated button tooltips with new shortcuts ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-20feat: make GUI default mode and always use random voicev0.6.1Paul Buetow
- GUI mode now launches by default when no arguments provided - Updated .desktop file to remove unnecessary --gui flag - Updated README to reflect GUI as default mode - Audio generation always uses random voice and speed (0.90-1.00) - No more defaulting to "alloy" voice for first generation - Bump version to 0.6.1 ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19feat: improve flashcard storage and audio regenerationv0.6.0Paul Buetow
- Change default card storage from ~/Downloads to ~/.local/state/totalrecall/cards/ - Keep .apkg exports in ~/Downloads for user convenience - Fix audio regeneration to use random voice and speed (0.9-1.0) - Fix GNOME dock icon by updating StartupWMClass to "Totalrecall" - Fix navigation to properly find cards in new XDG state directory - Ensure config defaults are properly filled when using GUI mode - Bump version to 0.6.0 ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19feat: improve button icons for image generationPaul Buetow
- Generate image: Changed from ViewRefreshIcon to FileImageIcon for clearer image representation - Random image: Changed from MediaPhotoIcon to ColorPaletteIcon to suggest creativity/variety These icons better represent their functions and improve UI clarity. ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>