fe1f0f435d
- New /tag/[slug] page + GET /api/tag/:slug backend route so clicking a tag chip lists every article carrying that tag, instead of 404ing. - /event/[id] now shows when the tracked event's next AI recap is due, computed from lastRecapAt + recapIntervalHours (now exposed on GET /api/events). - publishDirect (single-source and format-direct articles) now gets tags too, via a new lightweight extractTags() call in synthesis.ts — previously only AI-merged articles were tagged at all. Scheduler only offers the provider through when Ollama is reachable, and categories with AI explicitly disabled still stay tag-free.