Repository navigation
v0.5.4
What's Changed
Highlights
- Layout demotion logic fixed: COMPARISON and TWO_COLUMN slides now correctly demote to CONTENT when either column is empty, preventing lopsided slides
- Security hardened: Web UI error messages no longer leak internal details; path traversal checks added to template handler
- Type annotations modernized: All modules now use PEP 604 union syntax and built-in generics (Python 3.10+)
- Model catalog updated: Added GPT-5.4-pro, o3/o3-pro/o3-mini/o4-mini reasoning models; Anthropic Haiku alias simplified
Fixed
- Layout selector and slide planner now demote COMPARISON/TWO_COLUMN to CONTENT when a column would be empty
- CHART and STATISTICS layouts demoted to CONTENT when data is missing
- AutoPPTError messages sanitized in web UI to prevent information leakage
- Research context truncated to 100K characters to prevent excessive prompt sizes
generate_outlinenow raises RuntimeError when called on a closed Generator- Template handler rejects path traversal attempts
- Style selector validates theme dictionaries are in sync at import time
- RateLimitError normalizes negative retry_after values
- MockProvider preserves original casing in topic/hint extraction
- Added types-requests to dev dependencies to fix mypy CI
Changed
- Default OpenAI model: gpt-4.1 → gpt-5.4-mini
- Anthropic Haiku: claude-haiku-4-5-20251001 → claude-haiku-4-5
- SlideConfig.bullets now defaults to empty list
- Architecture docs expanded with all module boundaries
Full Changelog: v0.5.3...v0.5.4