Changelog
Všechny významné změny v projektu Marigold.cz jsou dokumentovány v tomto souboru.
Formát vychází z Keep a Changelog, a projekt dodržuje Semantic Versioning.
[Unreleased]
Fixed
- Post
prirucka-ai-ve-firmach-zdarmapřesunut z_posts/docontent/posts/pro kompatibilitu s Hugo buildem - Thumbnail
ebook-ai-ve-firmach.pngzkopírován dostatic/assets/aby byl dostupný v Hugo buildu - Accessibility: přidán skip-to-content link do default.html a aiprace.html layoutů
- Accessibility: emoji search link doplněn o
aria-label="Hledat"(WCAG 2.4.6) - Accessibility:
<p datetime>opraven na validní<time datetime>v post.html - Accessibility: toast notifikace doplněna o
role="status" aria-live="polite"(WCAG 4.1.3) - Accessibility: přidána podpora
prefers-reduced-motionpro všechny animace - Performance: Mermaid JS podmíněn přítomností
.language-mermaid— nenahrává se na každém postu - Performance: Liquid navigační loop v tech_news.html nahrazen Jekyll built-in
page.previous/next(O(n²)→O(1)) - Responsive: Substack iframe opraven —
width="480"odstraněn, přidánmax-width:480px;width:100% - Responsive: Audio player tlačítka rozšířena na min 44×44px touch target
- Theming: dark mode paleta nahrazena — odstraněny AI purple-navy barvy (#1a1a2e→#16181c rodina)
- Theming:
#667eeabullet barva v quick-summary nahrazena proměnnou$blue - Theming: Open Sans legacy font reference nahrazen
$system-fontv.cd-container - Code: inline CSS audio playeru přesunut z index.html do assets/style.scss a assets/scss/main.scss
- Content: Workshop banner aktualizován (prošlá early bird deadline 31.3.2026 nahrazena)
[3.0.0] - 2026-03-29
Changed
- Migrace z Jekyll na Hugo - build cas z ~500s na ~8s (60x zrychleni)
- Vsechny layouty prevedeny z Liquid na Go templates
- Obsah prestan do
content/struktury (posts, ai, mobilnisite, obrazy, tech-news) - SCSS zpracovani pres Hugo Pipes misto Jekyll Sass
- GitHub Actions workflow
hugo-build.ymlnahradibuild.yml - Vsechny URL zachovany (2957 postu, 10873 archivnich stranek)
- Dark/Light mode s manualnim prepinacem - tlacitko slunce/mesic v navigaci
- Automaticke prepnuti po zapadu slunce (18:00-06:00)
- Persistence volby v localStorage
- Kompatibilni s aiprace vlastnim dark mode CSS
- Redesign paticka - dva sloupce (Projekty / Dalsi) misto jednoradkoveho seznamu
- Nove inline SVG socialni ikony (email, Facebook, X, LinkedIn, RSS)
- Nove odkazy: AI ve firmach, Workshopy Claude Code, Kurz AI zdarma, Vliv AI na pracovni mista
- Newsletter CTA - nahrazuje Substack iframe kompaktnim CTA boxem
- Navigace - semanticka
<ul>saria-label,white-space: nowrap- Aiprace pridano do dropdown menu jako “AI prace”
Added
- Ahrefs Analytics - mereni navstevnosti v
<head> - Table of Contents - automaticky generovany obsah z h2/h3 nadpisu
- Cislovane polozky, rozbalitelny, transparentni pozadi
- Nahrazuje Jekyll
{:toc}syntaxi
- Scroll progress bar - gradientni linka ukazuje pozici cteni v clanku
- Audio prehravac - playlist poslednich 20 clanku s audio na homepage
- Aiprace layout - plna sirka (1600px) s D3.js vizualizaci
- Post edit link - diskretni odkaz “Upravit” na GitHub edit
Fixed
- Accessibility -
lang="cs", focus-visible styly, iframe title, touch targety 44px - Flexbox layout - masthead a footer misto float/absolute
- Thumbnaily - landscape 4:3 (200x150), nadpis nad thumbnailem
- Vyhledavani - opraveny dvojite uvozovky v search indexu (safeJS)
- Case-sensitive URL - 10 postu s velkymi pismeny opraveno explicitnim
url:front matter
Removed
- Smazano assets/tech-news/ - 11073 nepouzivanch obrazku (852 MB)
- Vypnuty workflows - podcast, OneSignal notifications, tech-news, translate (if: false)
- Sdilejte clanek sekce - nahrazena kompaktni navigaci + edit linkem
Removed
- LLM rubrika deaktivována - služba přesunuta na jiný server
- Smazán GitHub Actions workflow
llm-tracker.yml(denní generování zastaveno) - Odstraněna kolekce
llmz_config.yml(stránky se negenerují) - Smazána hlavní stránka
_pages/llm.md - Soubory v
_llm/, skripty a layouty ponechány jako archiv
- Smazán GitHub Actions workflow
Changed
- Migrace z OneSignal na Firebase Cloud Messaging (FCM) - kompletní přepracování push notifikací
- Nový service worker
firebase-messaging-sw.jspro FCM - Nové include soubory
_includes/fcm-marigold.htmla_includes/fcm-vibecoding.html - Cloud Functions pro topic subscription (
firebase-functions/) - Nový Python skript
.github/scripts/send_fcm_notifications.pypro odesílání notifikací - Nový workflow
.github/workflows/send-fcm-notifications.yml - Lepší spolehlivost a nulové náklady (Google infrastruktura)
- Topic-based subscription:
marigold-newsavibecoding-news
- Nový service worker
Fixed
- Stránkování - přidány chybějící CSS styly pro
.paginationelement- Správné odsazení od obsahu a patičky (padding 30px nahoře, 40px dole)
- Vizuální styling tlačítek stránkování s hover efekty
- Zvýraznění aktuální stránky modrou barvou
Removed
OneSignalSDKWorker.js- nahrazeno Firebase service workerem_includes/onesignal.html- nahrazeno FCM implementací_includes/onesignal-vibecoding.html- nahrazeno FCM implementací
Added
- LLM Model Tracker - automatický systém pro sledování a analýzu nových LLM modelů z OpenRouter API
- Nový skript
scripts/track_llm_models.py- detekuje a analyzuje nové modely - Watermark mechanismus - sleduje nejnovější známý model, analyzuje pouze novější
- Automatická analýza pomocí Gemini 3 Pro s porovnáním konkurence
- Generuje Jekyll posty do
_llm/kolekce (formátYYYY-MM-DD-model-slug.md) - Překlad popisů modelů do češtiny pomocí LLM
- Data tracking v
_data/llm_models_tracked.json - CLI příkazy:
--dry-run,--list-tracked,--status,--reset-watermark - GitHub Actions workflow
.github/workflows/llm-tracker.yml- denní spuštění v 6:00 UTC
- Nový skript
- Jekyll kolekce
_llm- nová kolekce pro recenze LLM modelů- Layout
_layouts/llm_review.html- kompletní vizuální šablona pro recenze - Přehledová stránka
/llm/s filtry podle providera - Kolekce nepřidává články na titulní stránku (oddělená od
_posts) - Permalink struktura:
/llm/:slug/
- Layout
- LLM Model Card Generator - generátor HTML karet pro jednotlivé modely
- Skript
scripts/fetch_llm_model_card.py- stahuje data a generuje vizualizace - HTML šablona
scripts/templates/llm_model_card.html- dark mode design - Strukturovaná JSON analýza s profily, silnými/slabými stránkami, konkurencí
- Dynamické porovnání s aktuálními modely od Anthropic, Google, OpenAI, xAI, Mistral, DeepSeek
- Skript
- Hybridní navigační menu - implementována dropdown navigace s tlačítkem “Další ☰”
- Hlavní položky zůstávají viditelné: 🔍 | 🧑💻 Kurzy AI | 🖥️ Vibecoding | 🗼 4G/5G | 🤖 AI
- Pod tlačítko “Další” schovány: 💻 Zprávy | 🖼️ Obrazy
- Čistý minimalistický design s dropdown menu pod tlačítkem “Další”
- Vanilla JavaScript pro toggle funkčnost (bez závislostí)
- Kompletní přístupnost: aria-expanded, keyboard navigation (Enter/Space/Escape)
- Responzivní na mobilu - dropdown centrovaný, fade-in animace
- Kliknutí mimo nebo Escape zavře menu
- Archivace tech_news - automatické převádění starých článků na statické HTML
- Nový skript
scripts/archive_tech_news.py- archivuje články starší než 7 dní - Staré články se převedou na statické HTML do
tech-news-archive/ - Jekyll zpracovává pouze čerstvé články - rychlejší build
- Integrace do GitHub Actions workflow (build.yml)
- URL zůstávají zachované:
/tech-news/YYYY-MM-DD/slug/
- Nový skript
- Optimalizace generátoru tech_news - snížení počtu článků
- Práh důležitosti zvýšen z 3 na 4 (pouze “velmi důležité” a “průlomové”)
- PageSize snížen ze 100 na 50 článků
- Očekávaný výsledek: ~20-30 článků/den místo 300+
Fixed
- Vibecoding.cz build - opravena chyba “Cannot sort a null object” při buildu
- Přidány chybějící exclude položky do
_config_vibecoding.yml - Vyloučeny stránky využívající kolekce nedefinované pro vibecoding (llm, tech_news atd.)
- Vyloučeny dokumentační markdown soubory v rootu (TECH_NEWS_*.md, CHANGELOG.md atd.)
- Build nyní úspěšně projde a články z prosince jsou viditelné
- Přidány chybějící exclude položky do
- Tech-news workflow race condition - opraveno selhání git push při paralelních jobech
- Přidán
git pull --rebasepřed push v tech-news.yml workflow - Přidán tech-news-archive/ do git add pro archivované články
- Přidán
Changed
- Kompaktní patička - redesign footeru na 3 řádky místo 3 sloupců
- Řádek 1: Sociální ikony (email, facebook, twitter, linkedin, rss) + copyright
- Řádek 2: Všechny projekty inline (Marigold.cz, Zítřaslavní.cz, VibeCoding.cz, TopFlix.cz, Substack, Fenix svítilny, Vybavení do přírody, Brandýs nad Labem, Letní škola AI, Changelog)
- Řádek 3: Badges (Clicky analytics, GitHub last commit)
- Menší výška patičky (~150px místo 300px+)
- Partnerské odkazy přesunuty z analytics.html do footer.html
Changed
- LLM model pro tech-news změněn z
qwen/qwen3-maxnax-ai/grok-4.1-fast:free(scripts/generate_tech_news_newsapi.py)- Nový primární model:
x-ai/grok-4.1-fast:free(bezplatný) - Automatický fallback na
anthropic/claude-haiku-4.5při selhání (HTTP 402, 429, 503) - Nová helper metoda
_call_llm_with_fallback()s retry logikou - Logging aktuálně použitého modelu na konci běhu
- Konfigurace modelů centralizována do class konstant
PRIMARY_MODELaFALLBACK_MODEL
- Nový primární model:
Added
- Seznam.cz Discussion System - nativní diskuzní systém místo commentbox.io
- Nahrazen commentbox.io systém za Seznam.cz diskuze (service-name:
marigoldcz) - Přidány include soubory:
szn-discussion.html,szn-discussion-meta.html,szn-discussion-jsonld.html - Meta tag
szn:permalinkpro propojení s Homepage Seznamu - JSON-LD strukturovaná data s
discussionUrlpro SEO - Diskuze aktivní v layoutech:
post.htmlatech_news_article.html - Obrazy kolekce nadále bez diskuzí (stejně jako předtím)
- Nahrazen commentbox.io systém za Seznam.cz diskuze (service-name:
- Diagnostic Dashboard (
scripts/tech_news_diagnostic_dashboard.py) - komplexní monitoring tech-news pipeline- Rejection analysis s breakdown důvodů zamítnutí (content_filter vs low_importance)
- Sample zamítnutých článků s jejich skóre a důvody
- LLM cost metriky (daily/weekly breakdown podle operací)
- Freshness check s alerts pro staré články
- Success rate trend za 7 dní s grafem
- Importance distribution pro analýzu kvality
- Automated recommendations na základě detekovaných problémů
- JSON output do
_data/tech_news_diagnostic.json
- Archivní stránka
/tech-news/archiv/s přehledem článků po měsících a dnech - Zdravotní monitoring systém pro tech-news (
scripts/tech_news_health_check.py) - JSON endpoint
/health-check/pro Uptimerobot monitoring - HTML dashboard
/health-status/pro debugging - Komplexní test suite pro health check systém (
tests/test_health_check.py) - Rozsáhlá dokumentace pro health check systém (5 guidů v
docs/) - Kompletní CLAUDE.md dokumentace s pokyny pro _posts vs _tech_news
- Povinnost aktualizovat CHANGELOG.md po každém commitu
- Archiv odkaz v headeru
/tech-news/stránky - viditelný hned při načtení - HTML verze CHANGELOGu dostupná na
/changelog/s odkazem v patičce webu - Sekce “Tech News” na titulní stránce - zobrazuje striktně 5 nejnovějších článků s vysokou důležitostí (importance >= 4)
- Použití dvoustupňového filtru:
slice: 0, 5+limit: 5v for loop pro garantovaný limit
- Použití dvoustupňového filtru:
- Kompletní monitoring a logging systém pro tech-news pipeline:
ProcessingLoggertřída (scripts/processing_logger.py) - sleduje celý processing pipeline- SQLite databáze (
_data/tech_news_metrics.db) - ukládá processing sessions, hourly a daily metriky - JSON Lines logy (
_data/processing_logs/*.jsonl) - append-only logy pro každý den - Dashboard data generátor (
scripts/generate_dashboard_data.py) - agreguje 30denní statistiky - Rozšířený
/health-status/dashboard s grafy, pipeline funnelem a performance metrikami - Sledování: API fetch → LLM processing → Save pipeline s důvody přeskočení článků
- Metriky: počty článků, LLM náklady, tokeny, časy zpracování, error rate, skip reasons
Fixed
- Seznam Diskuze API errors (401/404) - oprava canonical string formátu
- Problém: widget používal relativní cestu místo plné URL v canonical stringu
- Způsobovalo chyby “Api Error” při pokusu o odeslání komentáře
- Řešení: změna z
{{ page.url }}na{{ site.url }}{{ page.url }}vszn-discussion.htmlaszn-discussion-meta.html - Canonical string nyní:
https://www.marigold.cz/item/...místo/item/...
- NewsAPI freshness - přechod z
/v2/top-headlinesna/v2/everythingendpoint- Problém: top-headlines vracel články staré 48-72h, žádné dnešní články
- Řešení:
/v2/everythingsfromparametrem pro poslední 48h asortBy: publishedAt - Zvýšen
pageSizez 40 → 100 článků pro větší výběr - Přidána freshness validace s logging stáří článků
- Očekávaný dopad: Article age 48-72h → <24h (67% rychlejší)
- LLM cost tracking - přidán debug logging a fallback approximation
- Problém:
llm_costs.dbměla 0 záznamů, nebyla viditelnost LLM nákladů - Přidán debug logging pro detekci chybějících
usagedat z OpenRouter API - Fallback aproximace tokenů pomocí heuristiky (~4 znaky = 1 token)
- Enhanced logging - vždy logovat API calls i když chybí přesná cost data
- Warning v logu pokud OpenRouter response nemá
usageklíč
- Problém:
- Permalinky v
_layouts/tech_news_day.html- články nyní vedou na interní stránky/tech-news/YYYY-MM-DD/slug/místo externích URL - Permalinky v
_pages/tech-news-archiv.html- odkazy vedou na interní stránky článků - LLM model aktualizován z
openrouter/polaris-alphanaqwen/qwen3-maxve všech tech-news skriptech:scripts/generate_tech_news_newsapi.py(5 míst)scripts/generate_tech_news_with_images.py(4 místa)scripts/fetch_tech_news_batch.py(1 místo)scripts/fetch_tech_news.py(1 místo)
- URL v tech-news manifestu - odstraněn trailing dash ze slugu (
scripts/generate_tech_news_manifest.py)- Před:
/tech-news/2025-11-12/review-new-framework-laptop-16-takes-a-fresh-stab-/(404) - Po:
/tech-news/2025-11-12/review-new-framework-laptop-16-takes-a-fresh-stab/(200)
- Před:
- Trailing dash v URL na titulní stránce (Tech News sekce) - odstranění trailing dashe ze slugu v
index.html
Changed
- Filtering thresholds - rozšířený tech whitelist v content filteru
- Problém: 76.5% článků filtrováno jako hry/sport (příliš agresivní)
- Rozšířen whitelist tech indicators z 9 → 34 položek
- Nové kategorie: AI/ML v gamingu, Cloud gaming tech, Hardware/GPU, VR/AR technology
- Gaming platforms (Steam Deck, ROG Ally), Game engines (Unreal 5), Performance optimization
- Tech-relevant gaming články nyní ponechány místo zamítnutí
- Očekávaný dopad: Snížení false positive rejections z 76% → ~40%
- Přepracován systém hodnocení důležitosti článků (importance 1-5) v
scripts/generate_tech_news_newsapi.py:- LLM prompt - rozšířena kritéria s jasným zaměřením na AI, robotiku, Apple, Tesla, Elon Musk, Sam Altman (importance 4-5)
- Nízká priorita (2) pro čínské telefony (OnePlus, Xiaomi, Huawei), rutinní Android/Windows updaty, spekulace
- Fallback funkce
detect_importance()- přidáno keyword-based hodnocení s 80+ klíčovými slovy - Cíl: lepší využití celé škály 1-5 (dříve 85% článků mělo importance 3-4)
- GitHub Actions workflow
.github/workflows/tech-news.yml- health check je nyní non-blocking (|| true) - Health check přidán jako automatický krok do tech-news workflow
- UI/UX redesign úvodní stránky
/tech-news/- kompaktnější layout, archiv v headeru- Odstraněn redundantní “18 nejnovějších článků” box (úspora ~120px)
- Zkrácený popis s přímým odkazem na archiv
- Zjednodušené filtry (odstranění filtru “Kritická” importance)
- Kompaktní badge s počtem článků místo celého navigation boxu
- Tech News sekce na titulní stránce - zmenšeny mezery mezi články (10px → 6px)
[1.0.0] - 2025-08-25
Added
- Základní Jekyll struktura projektu
- Kolekce:
_posts,_tech_news,_ai,_mobilnisite,_obrazy - Tech-news automatizace přes NewsAPI
- LLM cost tracking systém
- GitHub Actions CI/CD
Changed
- Initial release
Semantic Versioning Guide
Formát: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes, zásadní přepisy
- MINOR: Nové funkce, zpětně kompatibilní
- PATCH: Bugfixy, drobné změny
Příklad
2.1.3
│ │ │
│ │ └─> PATCH - Oprava permalinků
│ └───> MINOR - Nový health check systém
└─────> MAJOR - Přechod na nový framework
Aktualizováno: 2025-12-08