summaryrefslogtreecommitdiff
path: root/README.md
AgeCommit message (Collapse)Author
2026-04-06feat: add --ultra-realistic flag to force photorealistic rendering, v0.24.0v0.24.0Paul Buetow
Previously only --no-ultra-realistic existed (to force standard comic style). --ultra-realistic now forces photorealistic panels instead of the random 50/50 pick. storyUltraRealistic() updated to handle three states: forced-on, forced-off, random. README updated with --ultra-realistic example. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06feat: --narrate opt-in narration, panel variety mandate, v0.23.0v0.23.0Paul Buetow
- Add --narrate flag (default false); narration is now opt-in to save TTS quota - Add VARIETY MANDATE to story page prompts: each panel must differ in camera angle, pose, location, lighting, and foreground — prevents repeated compositions - Wire NarrateEnabled through RunnerConfig and main.go - Update README: --narrate flag, updated output file table, narrator voice examples Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06docs: document Optional Gallery Videos (Veo) feature in READMEPaul Buetow
Add a new subsection under the --story CLI section explaining the interactive Veo video-generation prompt that runs after comic creation, including the model name (veo-2.0-generate-001), MP4 output paths, the billing/cost note, and the --video=false skip flag. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04feat: use photography-only style pool for ultra-realistic mode, update READMEv0.17.0Paul Buetow
Ultra-realistic mode now picks from a dedicated realisticStyles pool (DSLR photography, cinematic stills, hyper-realistic) instead of the comicStyles pool. This prevents "comic strip" language from dominating the model's output when photorealistic rendering is requested. README updated: 12-page comic count (5 gallery pages), rendering mode description clarified to show both pools and the 50/50 random default. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04feat: random ultra-realistic/comic style, --no-ultra-realistic flag, updated ↵v0.13.0Paul Buetow
README - Random 50/50 rendering mode per run (ultra-realistic or standard comic style) - --no-ultra-realistic flag forces standard comic style when set - renderingRequirement const centralised and applied to all image prompts via DRY renderReq() method - Log rendering mode chosen at generation time - Update README: correct page count (10), output filenames, all --story flags documented - Bump version to 0.13.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03feat: add --story cinematic narration and comic strip generationPaul Buetow
- Generates a ~500-word Bulgarian vocabulary story from a batch file - Produces 3 comic pages via NanoBanana (90% ultra-realistic style) - Art style chosen randomly per run; override with --story-style - Cinematic Gemini TTS narration saved as story_narration.mp3 - Random voice from curated pool (Charon, Fenrir, Enceladus, Algieba, Aoede, Schedar) - Override narrator voice with --narrator-voice - Falls back to story_tts_todo.txt if narration fails - No new API key required — reuses existing GOOGLE_API_KEY - Bump version to 0.9.4 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02Release v0.9.0v0.9.0Paul Buetow
2026-04-01z8: finish Nano Banana CLI wiringPaul Buetow
2026-04-01z9: clarify GUI provider matrixPaul Buetow
2026-04-01z9: update GUI Nano Banana guidancePaul Buetow
2026-01-21docs: document Bulgarian-Bulgarian batch file format (double equals ==)Paul Buetow
- Update README.md with complete batch file format documentation - Expanded from 3 to 5 supported formats - Added Format 4: Bulgarian-Bulgarian (monolingual) using double equals - Clarified Format 2 as English→Bulgarian with single equals - Noted that bg-bg cards generate two separate audio files - Update CLI help text to show batch file format examples - Added example of double equals syntax - Clarified single equals creates English→Bulgarian cards This closes the documentation gap for the Bulgarian-Bulgarian flashcard feature that was already implemented in the codebase.
2025-08-02add ankidroid screenshotPaul Buetow
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-21clarifyPaul Buetow
2025-07-21fixPaul Buetow
2025-07-21fixPaul Buetow
2025-07-21add audio playbackPaul Buetow
2025-07-21add screnshotsPaul Buetow
2025-07-21correct the readmePaul 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-19more on thisPaul Buetow
2025-07-19feat: improve export functionality and fix configuration issuesPaul Buetow
- Add custom export directory selection in GUI export dialog - Change default export directory from ~/.local/state/totalrecall to ~/Downloads - Remove broken voice configuration from config file (voice is always random) - Fix discrepancies between code defaults and example config - Remove unimplemented image cache settings from example config The voice configuration was not working due to a bug where it only read from config if the command-line flag was set to "nova" (but default was empty string). Since voices are randomly selected anyway, this configuration option has been removed. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19feat: add app icon and change default output directoryPaul Buetow
- Add custom app icon with memory/brain theme - Icon now displays in GNOME app menu, window title bar, and process list - Change default output directory to ~/.local/state/totalrecall/ - Make output directory configurable via CLI flag, config file, or env var - Add desktop entry file for GNOME integration - Add install script for easy icon installation - Update README with icon display and default directory information - Bump version to 0.5.1 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18feat: multiple improvements to GUI and codebasePaul Buetow
- Add random voice speed between 0.90-1.00 for more natural audio - Display voice and speed info in GUI audio player - Implement automatic retry loading for missing files (checks every 2 seconds) - Fix voice/speed info persistence during audio playback - Remove image caching functionality for cleaner codebase - Rename prompt.txt to image_prompt.txt for clarity - Fix GUI to recognize newly added cards during runtime (rescan on navigation) - Update README to reflect removed image cache These changes improve the user experience by making the audio more natural, providing better feedback about audio generation parameters, and ensuring the GUI stays synchronized with externally added cards. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18docs: update README with batch file translation formatPaul Buetow
- Added documentation for 'bulgarian = english' batch file format - Included examples of all three supported formats - Added note about API quota savings when providing translations - Updated Quick Start section with example batch file 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18feat: major refactor - APKG export support and subdirectory organizationPaul Buetow
Major Features: - Added native .apkg (Anki package) export format with embedded media - Reorganized file structure to use subdirectories per word - Enhanced GUI export dialog with format selection (APKG/CSV) APKG Export Implementation: - Created apkg_generator.go with full SQLite-based Anki package generation - Includes custom card templates with professional CSS styling - Front side: Image + English word - Back side: Image + Bulgarian word + Audio + Notes - All media files automatically embedded in package - Custom deck names supported via --deck-name flag Directory Structure Changes: - Each word now gets its own subdirectory (e.g., anki_cards/ябълка/) - All related files (audio, images, translations, prompts) stored together - Cleaner organization and easier management - Prevents file naming conflicts GUI Updates: - Export dialog no longer shows file browser, exports directly to anki_cards - Format selection between APKG (recommended) and CSV (legacy) - Fixed navigation to properly load image prompts from subdirectories - Delete function now moves entire word directory to trash CLI Updates: - --anki flag now generates APKG by default - --anki-csv flag for legacy CSV format - All file generation uses subdirectory structure Bug Fixes: - Fixed handling of multi-word entries (e.g., "картоф картофи") - Fixed GenerateFromDirectory to properly handle words with underscores - Fixed phonetic files being treated as separate cards - Fixed image prompt preservation during navigation Breaking Changes: - File structure changed from flat to subdirectory-based - Existing files need to be reorganized into subdirectories 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-17fix readmePaul Buetow
2025-07-17docs: update README to reflect GUI mode capabilitiesPaul Buetow
- Add comprehensive GUI mode documentation - Document keyboard shortcuts and interactive features - Clarify which features are CLI vs GUI specific - Update repository URL to Codeberg - Add scene generation feature mention - Reorganize features into Core and GUI sections 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16Remove Pixabay and Unsplash image search supportPaul Buetow
- Delete Pixabay and Unsplash implementation files - Remove API key configuration for both services - Update CLI and GUI to only support OpenAI DALL-E - Update documentation to reflect OpenAI as sole image provider - Fix tests to handle nil client in OpenAI implementation - Simplify configuration examples The application now exclusively uses OpenAI DALL-E for image generation, providing AI-generated educational images with creative art styles. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15feat: add English translations and detailed attribution filesPaul Buetow
- Automatic Bulgarian to English translation for all words - Save translations to separate _translation.txt files - Include translations in Anki CSV export - Add detailed attribution files for audio and images: - Audio: model, voice, speed, instructions, processed text - Image: model, size, quality, style, full prompt used - Expand image styles to 42 different options (including superhero comic, yoga, etc.) - Improve image prompts to strongly avoid text generation - Fix image overwrite issue - now overwrites existing files instead of failing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15feat: remove espeak, add random voice/style selection, fix punctuation in TTSPaul Buetow
- Removed espeak audio provider completely, now only uses OpenAI TTS - Audio now uses random voice selection by default (can override with --openai-voice) - Added --all-voices flag to generate audio in all 11 OpenAI voices - Images now use random art styles (13 different styles including superhero, yoga, cat-themed) - Fixed TTS to remove punctuation marks before speaking - Updated Bulgarian pronunciation instructions to explicitly avoid Russian accent 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15feat: add OpenAI gpt-4o-mini-tts support with voice instructionsPaul Buetow
- Add support for OpenAI's new gpt-4o-mini-tts model with customizable voice instructions - Add OpenAIInstruction field to audio configuration for natural language voice control - Update CLI with --openai-instruction flag for runtime voice customization - Enhanced cache key generation to include voice instructions - Update default model to gpt-4o-mini-tts with Bulgarian-optimized instructions - Add support for new voices: ash, ballad, coral, sage, verse - Improve error handling for models requiring special API access - Update documentation with examples and model information - Create .totalrecall.yaml.example with comprehensive configuration options Note: The gpt-4o-mini-tts model requires special API access and may not be available to all accounts yet. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15add vibe coding infoPaul Buetow
2025-07-15feat: add OpenAI DALL-E image generation and make OpenAI defaultv0.1.0Paul Buetow
- Implement OpenAI DALL-E provider for generating educational flashcard images - Add support for DALL-E 2 and DALL-E 3 with configurable size, quality, and style - Implement intelligent caching to minimize API costs - Make OpenAI the default provider for both audio (TTS) and images (DALL-E) - Add automatic fallback to free alternatives (espeak/pixabay) when OpenAI unavailable - Fix bug where cached images couldn't be copied to output directory - Update documentation with OpenAI setup instructions and examples - Add comprehensive unit tests for OpenAI image provider - Bump version to 0.1.0 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-14rename from bulg to totalrecallPaul Buetow
2025-07-14initial commitPaul Buetow