Howl 1.1.0 expands deterministic social-card production while preserving the offline, inspectable renderer contract.
Highlights
- Added branded 1200×630 social SVG cards with embedded local images and fonts.
- Added frameless, URL-free, transparent, and accessible-alt-metadata modes.
- Preserved mtimes for byte-identical no-op rebuilds.
- Added deterministic golden snapshots, manifest fuzzing, corpus benchmarks, peak-memory checks, and JPEG reproducibility gates.
- Hardened manifest validation, active-content URL rejection, HTML escaping, Markdown fences, truncation reporting, gallery output, font declarations, long-title clipping, and project-derived branding.
- Kept identical project brands and card labels from being repeated in social headings.
Verification
- 102 unit and CLI assertions passed.
- All Kujo source checks and the five-check Eval release suite passed.
- Golden, no-op, escaping, layout, contrast, and 128-case fuzz gates passed.
- Deterministic rendering passed across 302 cards from robertdevore.com, python.robertdevore.com, kujolang.ai, and agents.kujolang.ai.
- All four downstream site contracts passed; the 61 intentional Kujo Agents brand-only SVG differences were reviewed exhaustively.
See CHANGELOG.md and docs/release-1.1.0.md for the complete release record.