- Add overall progress bar with percentage during page generation
- Add per-page progress indicators with checkmarks for completed pages
- Show current page title/type while generating
- Create styled placeholder images with actual page content when
AI image generation is geo-blocked
- Style placeholders match selected zine style (punk, minimal, etc.)
- Add cache-busting timestamps to force image reload
- Update worker to return helpful error for geo-blocking
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The SDK was being initialized at module load time with the build-time
env var (empty string), instead of the runtime env var. Changed to
lazy initialization pattern that creates the client on first use.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Created gemini-proxy worker to route requests through US edge
- Updated generate-page to use proxy for bypassing geo-restrictions
- Gemini image generation is blocked in Germany, proxy routes through US
Worker URL: https://gemini-proxy.jeffemmett.workers.dev🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed from /api/zine/[id]/image/p1.png to /api/zine/[id]?image=p1
to match the actual API route handler.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use gemini-2.0-flash-exp with responseModalities: ["TEXT", "IMAGE"]
- Remove invalid responseMimeType and non-existent model names
- Simplify to single model with placeholder fallback
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The gemini-1.5-flash model is not available in the v1beta API.
Updated to gemini-2.0-flash for outline generation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>