f36f070478
Implement hybrid template system: - Jinja2 SandboxedEnvironment renderer with error fallback - Context builder: transforms ServiceEvent into flat template variables - Template validator: checks variable references against provider type - Default templates in EN/RU for all 8 event slots (Immich provider) - Template loader reads .jinja2 files, returns slot->content dict - Slots: assets_added/removed, collection_renamed/deleted, sharing_changed, periodic_summary, scheduled_assets, memory_mode Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>