| Age | Commit message (Expand) | Author |
| 2026-04-21 | Release v0.29.2v0.29.2 | Paul Buetow |
| 2026-04-21 | Audit stripped comicgen leftovers | Paul Buetow |
| 2026-04-20 | Remove story feature for task 05 | Paul Buetow |
| 2026-04-17 | Release v0.29.1: stable deck/model IDs to prevent duplicate notetypes on re-e...v0.29.1 | Paul Buetow |
| 2026-04-13 | Release v0.29.0: display card counter (Card X / N) in the GUI status barv0.29.0 | Paul Buetow |
| 2026-04-10 | Release 0.28.2v0.28.2 | Paul Buetow |
| 2026-04-09 | Release v0.28.1: convert Gemini TTS mono audio to stereov0.28.1 | Paul Buetow |
| 2026-04-08 | Release v0.28.0: story gallery aggregation and stronger ultra-realistic promptsv0.28.0 | Paul Buetow |
| 2026-04-08 | audio: propagate Close error from OpenAI TTS output file | Paul Buetow |
| 2026-04-08 | batch: pre-allocate WordEntry slice from line count in ReadBatchFile | Paul Buetow |
| 2026-04-08 | feat: add gobreaker circuit breakers for OpenAI and Gemini API calls | Paul Buetow |
| 2026-04-08 | fix(gui): make GetActiveJobs concurrency-safe without channel access under lock | Paul Buetow |
| 2026-04-08 | refactor(cli): split command.go into flags, config, apikeys (SRP) | Paul Buetow |
| 2026-04-08 | config: centralize NanoBanana and audio defaults in defaults.go | Paul Buetow |
| 2026-04-08 | refactor(anki): split APKG generator into SQLiteSchemer, ZipPackager, CardTem... | Paul Buetow |
| 2026-04-08 | refactor(gui): extract NavigationHandler, ExportHandler, QueueManager, Keyboa... | Paul Buetow |
| 2026-04-08 | fix(gui): avoid tooltip init race after window close | Paul Buetow |
| 2026-04-08 | refactor(processor): split BatchProcessor, AnkiExporter, CLIConfigResolver | Paul Buetow |
| 2026-04-08 | refactor(dip): inject archive, models, story, and gui at composition roots | Paul Buetow |
| 2026-04-08 | refactor: slim cmd composition root, move story video flow to internal/video | Paul Buetow |
| 2026-04-08 | refactor: registry pattern for audio and image provider factories | Paul Buetow |
| 2026-04-08 | feat(httpctx): add timeouts for OpenAI, Gemini, and HTTP downloads | Paul Buetow |
| 2026-04-08 | refactor(gui): extract AudioConfigResolver, VoiceSelector, ParallelRunner | Paul Buetow |
| 2026-04-08 | fix(processor): propagate errors from attribution and sidecar writes | Paul Buetow |
| 2026-04-06 | chore: bump version to 0.27.0v0.27.0 | Paul Buetow |
| 2026-04-06 | feat: mandatory speech bubbles in story panels, v0.26.0v0.26.0 | Paul Buetow |
| 2026-04-06 | feat: Gemini panel script drives comic panels in narrative order, v0.25.0v0.25.0 | Paul Buetow |
| 2026-04-06 | feat: add --ultra-realistic flag to force photorealistic rendering, v0.24.0v0.24.0 | Paul Buetow |
| 2026-04-06 | feat: --narrate opt-in narration, panel variety mandate, v0.23.0v0.23.0 | Paul Buetow |
| 2026-04-06 | chore: bump version to 0.22.0v0.22.0 | Paul Buetow |
| 2026-04-06 | fix: surface Veo API error field (content policy / geographic restriction) wi... | Paul Buetow |
| 2026-04-06 | chore: bump version to 0.21.0, add maxPollAttempts constant and comments to v... | Paul Buetow |
| 2026-04-06 | test: add missing unit tests for Veo video feature (task 016) | Paul Buetow |
| 2026-04-06 | feat: add Fyne GUI dialog for gallery video generation | Paul Buetow |
| 2026-04-06 | fix: correct video integration after comic generation | Paul Buetow |
| 2026-04-06 | feat: add --video CLI flag to control Veo video prompt after story generation | Paul Buetow |
| 2026-04-06 | feat: add generateSelectedVideos CLI runner for Veo video generation | Paul Buetow |
| 2026-04-06 | feat: add CLI prompt helper for gallery video generation | Paul Buetow |
| 2026-04-06 | feat: add Veo video generator package for comic gallery animation | Paul Buetow |
| 2026-04-06 | fix: track all GUI goroutines with WaitGroup and ctx.Done() (Go Mistake #62) | Paul Buetow |
| 2026-04-06 | refactor: extract shared CardStore into internal/store to eliminate duplication | Paul Buetow |
| 2026-04-06 | refactor: consolidate provider factory test seams into shared named types | Paul Buetow |
| 2026-04-06 | refactor: remove Viper coupling from processor package (DIP) | Paul Buetow |
| 2026-04-06 | refactor: decompose gui.Application god object into focused services | Paul Buetow |
| 2026-04-06 | refactor: decompose Processor god object into focused files (SRP) | Paul Buetow |
| 2026-04-06 | chore: bump version to 0.20.0v0.20.0 | Paul Buetow |
| 2026-04-04 | chore: bump version to 0.19.0v0.19.0 | Paul Buetow |
| 2026-04-04 | feat: progressive retry backoff for rate-limited image generation | Paul Buetow |
| 2026-04-04 | feat: skip existing pages on re-run, add --story-slug for targeted repairv0.18.0 | Paul Buetow |
| 2026-04-04 | fix: remove per-page location lock to allow scene transitions in panels | Paul Buetow |