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]
Added
- Článek „Šéf Protonu přestřelil s AI ve firmě, která stojí na důvěře…“ (
content/posts/2026/2026-10-30-sef-protonu-prestrelil-s-ai.md) podle reportáže 404 Media. Titulní obrázekstatic/assets/andy-yen-proton.webp(1920×1080, WebP 53 kB), odkaz na reportáž 404 Media. Doplněno prohlášení Protonu z X s odkazem (omluva, popření měřicího softwaru a přepohovorů, slib zveřejnit pravidla pro AI) s komentářem. Upravena formulace bodu o přepohovorech a komentář k ní odkazuje na anglický originál. Doplněn další vývoj: Yenova obhajoba na Redditu (modely bez bezpečnostních omezení), zrušení přepohovorů na poradě celé firmy (404 Media, Frandroid) docs/gotchas.md: pravidlo kontrolovat před vydáním článku titulní obrázek a odkazy na zdroje
Removed
- Úklid kořene repozitáře (3600+ souborů, vše se nepublikovalo): Jekyll verze webu (
_posts/s ~3000 duplicitními články,_ai/,_mobilnisite/,_obrazy/,_vibecoding/,_llm/,_data/,_layouts/,_includes/,_pages/,_sass/,_config*.yml,Gemfile*, kořenovéindex.html,404.md, feedy a manifesty), Cloudflare build Jekyllu (build-cloudflare.sh,simple-build.sh,package.json,.cloudflare*), jednorázové Python a shell skripty v kořeni (OneSignal, chat, obrazy, souhrny, testy), poznámkyTECH_NEWS_*.md,ONESIGNAL_*.mda další,.github/scripts/(podcast, notifikace, překlady), dokumenty o notifikacích ve.github/a vypnutý workflowbuild.yml..DS_Storeuž není v gitu - Zastaralá dokumentace v
docs/: health check a monitoring tech-news (HEALTH_CHECK_*.md,MONITORING_DECISION_TREE.md,UPTIMEROBOT_SETUP.md,TECH_NEWS_TESTING_STRATEGY.md) aVIBECODING_GUIDE.md(vibecoding.cz se staví ze samostatného repa) - Složka
assets/(Hugo assets) zmenšena ze 406 MB na SCSS: 496 souborů (obrázky, PDF,js/,tipuesearch/,aiprace/) byly duplicitystatic/assets/nebo se nikam nepublikovaly, protože Hugo zassets/bere jen soubory načtené přesresources.Get(tadyscss/main.scss) - Zbytky tech-news v kořeni repozitáře:
tech-news-archive/(103 MB, 11 tisíc souborů) atech-news/ - Sekce tech-news (pozastavená od 2026-03-29) je smazaná celá:
content/tech-news/, legacy_tech_news/,layouts/tech-news/, archivstatic/tech-news-archive.tar.gz(rozbalený měl 103 MB a 10 875 souborů) i krok, který ho vhugo-build.ymlrozbaloval. Odstraněny workflowytech-news.ymlaarchive-tech-news.yml, skriptyscripts/*tech_news*a další skripty jen pro tech-news, jejich testy, datadata/tech_news_*adata/clicky_goals.yaml, permalink vhugo.toml, položka „Zprávy“ v menu a tech-news ve vyhledávání. Adresy/tech-news/…teď vracejí 404
Changed
.gitignoreuklizen (bez desítek duplicit a pravidel pro smazané soubory),README.mdpopisuje Hugo strukturu (content/posts,static/assets) místo JekylluCLAUDE.mdpřepsán podle praxe z vibecoding-site: z 367 na ~80 řádků, s diakritikou, sekce Příkazy, Struktura, Záměrná rozhodnutí (datum z názvu souboru, integrace s API vibecoding.cz, Substack promo, audio v R2, WebP,fetch-depth: 1), Konvence a Pracovní dohoda. Vyřazeny duplicity (dva příklady front matter, dvakrát build příkazy), obecný Troubleshooting, historie verzí, nepoužívané secrets a zastaraléhugo --verbose- Nový
docs/gotchas.md(formát Vzorec / Pravidlo, datum) s poznatky z 2026-10-28: velikost písmen a normalizace diakritiky v názvech souborů na GitHub Pages, limity deploye, Hugo 0.169 asecurity.allowContent, odkazy z vibecoding.cz na obrázky marigoldu, hledání rozbitých odkazů. Nový rozcestníkdocs/index.md CLAUDE.md3.1: odstraněn popis tech-news, opravena informace o vibecoding.cz (staví se ze samostatného repavibecoding-site), přidána pravidla pro obrázky (WebP), poznámky k rychlosti deploye a k lokálnímu buildu s novějším Hugem
Fixed
- Dva rozbité obrázky: překlep
ttps://v článku o OpenAI Atlas a obrázek v článku „Piráti se STANem“, který odkazoval na neexistující soubor - Obrázky ve
static/assets/převedeny na WebP (max. šířka 2000 px, kvalita 82, bez metadat): 438 z 449 JPG/PNG, 350 MB → 49 MB. U 11 souborů by WebP vyšel větší, ty zůstaly v původním formátu. Ikony vestatic/images/astatic/assets/tipuesearch/se nepřeváděly. Odkazy (front matterthumbnail/urlobrazu, markdown, šablony, i v URL-kódované podobě) přepsány ve 449 souborech, originály smazány. Opraveno 13 odkazů, které se od souboru lišily velikostí písmen, takže na GitHub Pages nefungovaly (hlavněcontent/obrazy/). Staré adresy…/assets/*.jpg|pngpřevedených obrázků vracejí 404 - Audio (44 souborů MP3/M4A, 334 MB) se servíruje z Cloudflare R2 stejně jako na vibecoding.cz: bucket
vibecoding-assets, prefixmarigold/audio/, doménahttps://media.vibecoding.cz/marigold/audio/(s podporou Range, takže jde přeskakovat). Přepsányaudio_urla odkazy ve 45 článcích. Z repozitáře smazánystatic/audio/i identická legacy kopieaudio/, takže web nahrávaný na GitHub Pages je zhruba o 334 MB menší. Staré adresywww.marigold.cz/audio/…vracejí 404 hugo-build.yml: checkout sfetch-depth: 1místo0. Build historii gitu nepotřebuje (nepoužívá.GitInfo), takže se nemusí stahovat celých 6,5 GB repozitáře. Checkout trval 0:30–3:43
Changed
- Reakce a diskuse pod články (
posts,ai) jsou v jednom boxu na místě dřívějšího hodnocení, nad promo Substacku:<mg-comments site="marigold" rating="on">z vibecoding.cz (tangero/vibecoding-site#294) nahrazujemg-rating.js. Šest reakcí (🔥 Super, 💡 Poučné, 😂 Pobavilo, 🤔 K zamyšlení, 🥱 Nic nového, 👎 Nesouhlasím; dřívější hlasy převedeny se stejnou vahou), palce a řazení komentářů, připnuté komentáře, odznak živé diskuse. Front matterrating: false/comments: falsevypne reakce / diskusi u článku. Synchronizace hlasů mezi zařízeními (kód, QR) zmg-rating.jsv boxu není. Třída.article-commentspřejmenována na.article-feedback - Diskuse pod články (
posts,ai) běží na vlastních diskusích vibecoding.cz místo Seznam Diskusí: partiallayouts/partials/comments.htmlvkládá<mg-comments site="marigold">a skripthttps://www.vibecoding.cz/js/mg-comments.js(tangero/vibecoding-site#280, #282).page-idmá stejný tvar jako hodnocení. Odstraněny partialyszn-discussion.htmla nepoužitýszn-discussion-meta.htmla loaderd21-a.sdn.czzbaseof.html. Starší komentáře ze Seznamu se nepřenesly. Hosté komentují bez přihlášení, první komentář z prohlížeče čeká na schválení. Styly.article-comments(barvy přes--mgc-*, tmavý režim) vassets/scss/main.scss - Hodnocení článků (
posts,ai) běží na vlastním API vibecoding.cz místo Firebase: widgethttps://www.vibecoding.cz/js/mg-rating.jsmístotop.marigold.cz/mg-feedback.js(tangero/vibecoding-site#275). Data převedena z Firestore, po hlasu se ukáže výsledek, funguje tmavý režim - Hodnocení článku („Jak se vám líbí tento článek?“) je v
postsaainad promo blokem Substacku, hned pod textem článku - Promo zóna nad AI a mobilnisite články (
layouts/partials/ad-zone-top.html): štítek „Reklama“ přejmenován na „Naše akce“ (zóna propaguje jen vlastní akce z vibecoding.cz, ne placenou reklamu); zrušen oddělovač „Obsah článku“ za zónou včetně CSS.ad-zone-endvassets/scss/main.scss. Sjednoceno s vibecoding.cz - Štítek promo zóny nastavuje
static/js/promo-banner.jspodle typu promo: placený slot (isAd) dostane „Reklama“, vlastní akce „Naše akce“. Bez promo zůstává štítek skrytý (nahrazen nefunkční selektor:has(.workshop-banner):empty) - Kompaktní promo karta v promo zóně už nemá odznak „Naše akce“, protože ho zdvojoval štítek zóny. Mimo zónu (blogové posty) a u placených slotů (
isAd) odznak zůstává
Added
- Promo zóna na titulní stránce (jen 1. strana výpisu, pod hlavním článkem):
layouts/index.htmlvkládáad-zone-top.htmlsesurface=homepage, takže kliky a zobrazení jdou ve statistikách vibecoding.cz zvlášť od článků. Partialad-zone-top.htmlpřijímá(dict "surface" "…"), se stránkou zůstáváarticle static/js/promo-banner.jsvykreslí reklamní slot s obrázkem (imageUrlz/api/active-promotion) jako grafický banner 1800×771 (.promo-image-banner) místo textové karty, stejně jako vibecoding.cz. Povolené cesty obrázku jakoisSafeBannerSrcve vibecoding-site. Textová karta slotu nově ukazujehighlighta vlastní text tlačítkactaLabel; slot s cílem mimo vibecoding.cz (isInternal: false) se otevírá v novém okně srel="sponsored"- Stránka
/zebricek/s nejlépe hodnocenými články za 7 dní, měsíc, 3 a 6 měsíců (layouts/_default/zebricek.html), data zhttps://www.vibecoding.cz/api/rating/top; nahrazuje žebříček na top.marigold.cz - Promo posledních tří článků z newsletteru zandl.substack.com (
layouts/partials/substack-promo.html) místo widgetu FeedWind: RSS se stahuje při Hugo buildu (resources.GetRemote, Substack feed nemá CORS), karty s obrázkem ze Substack CDN (ořez 480×300), titulkem a perexem, odkazy s UTMutm_campaign=substack-promo. Na titulce nahrazuje box „Patrickův newsletter“ za 5. článkem (ten zůstává jako záloha, když feed nejde načíst); v článcích (posts,ai,mobilnisite) je pod textem. Při výpadku Substacku build projde s varováním a blok se nevykreslí. Styly.substack-*vassets/scss/main.scssvčetně dark mode a kompaktní mobilní varianty - Denní cron (5:15 UTC) v
.github/workflows/hugo-build.yml, aby se promo obnovilo i bez pushe;[caches.getresource] maxAge = "1h"vhugo.toml - Nový článek „Smlouvy, AI, GDPR - můžete smlouvy a osobní údaje nahrávat do Claude nebo ChatGPT?“ (
content/posts/2026/2026-10-23-smlouvy-ai-gdpr.md) s thumbnailemstatic/assets/smlouvy-ai-gdpr.webp - Nový článek „K pirátské a obecné povolební situaci pár čísel a úvah“ (
content/posts/2026/2026-10-12-povolebni-cisla-pirati-2026.md) s thumbnailemstatic/assets/pirati-kandidatka-praha-2026.webp
Removed
- Zbytky Firebase (projekt se vypíná): adresář
firebase-functions/(FCMsubscribeToTopic), skript.github/scripts/send_fcm_notifications.pybez workflow a widgettop.marigold.cz/mg-feedback.jsv legacy Jekyll šabloně_layouts/post.html - Box „Patrickův newsletter“ z článků (
posts,ai) i jako záloha promo bloku na titulce; nepoužívané styly.newsletter-ctazassets/scss/main.scss. Na newsletter dál odkazuje promo blok Substacku a patička - Úklid mrtvých GitHub Actions workflowů, které plnily Actions tab skipped/šumem:
- Podcast:
generate_podcast.yml,podcast-generation.yml(denní cron +if: false→ denní skipped runy) - Notifikace:
send-fcm-notifications.yml(FCM/Firebase),send-notifications.yml,send-notifications-improved.yml,test-notification.yml(OneSignal) — nefungovaly (paths na legacy_posts/, partial disable) - Translate:
translate.yml(DeepL, legacy_posts/) - Aktivní zůstává jen
hugo-build.yml; legacy stubybuild.yml,tech-news.yml,archive-tech-news.ymljen sworkflow_dispatch+if: false(bez schedule/push)
- Podcast:
- Odstraněn plovoucí zvonek notifikací (🔔) a celá push-notifikační frontend vrstva z webu:
- Hugo: partial
layouts/partials/fcm.html+ include zbaseof.html - Jekyll/vibecoding:
fcm-marigold.html,fcm-vibecoding.html, mrtvéonesignal.html/onesignal-vibecoding.html - Service worker
firebase-messaging-sw.js, odkaz naOneSignalSDKWorker.jsvsite.webmanifest, App ID z_config_vibecoding.yml
- Hugo: partial
Fixed
- Blogové posty (
posts/single.html) vkládají promo přesad-zone-top.htmlmísto staršíhoworkshop-banner.html(odstraněn): placený slot má nad sebou štítek „Reklama“ a grafický banner už se nezobrazuje bez označení static/js/promo-banner.jsposílá beacon zobrazení (impressionUrl,site=marigold), až je banner aspoň z poloviny vidět. Dosud marigold hlásil jen kliky, takže v administraci vibecoding.cz nešlo spočítat zobrazení ani CTR- Promo článků ze Substacku se na produkci nezobrazovalo: Substack vrací IP adresám GitHub Actions 403. Feed se nově stahuje přes proxy
https://www.vibecoding.cz/api/substack-feed(tangero/vibecoding-site#271) - Infografika blackoutu: box Frekvence už neukazuje po celou dobu 50,00 Hz — po výpadku V411 zobrazuje lokální zákmit „50,0 ±0,2 Hz" (žlutý stav; dle zprávy odchylka >200 mHz, která přepnula bloky do otáčkové regulace); nominálních 50,00 Hz během krize je záměr (deficit se dovážel, frekvenci držela synchronní Evropa až do vzniku ostrova)
- Opraven rozbitý obrázek v článku blackout ENTSO-E: cesta
/assets/blackout-situace.jpg→/assets/blackout-situace.webp(soubor vstatic/assets/je PNG) - Audit infografiky blackoutu (
static/assets/blackout/timeline.html): přístupnost a mobilní použitelnost — viditelný focus (:focus-visible), dotykové cíle ≥ 44 px (tlačítka, neviditelné rozšíření teček na ~37 px a celé osy),touch-actionpro spolehlivý drag-scrub na iOS/Android,type="button"+ přepínáníaria-label/aria-pressedu přehrávání,prefers-reduced-motion, kontrast žlutých textů přes nový token--warn-text(WCAG AA v obou režimech), oprava zaokrouhlení hodin (11:59:43 → 11:59:44) a překryvu popisků osy na 320px displejích
Added
- Interaktivní časová osa blackoutu 4. 7. 2025 (
static/assets/blackout/timeline.html) — samostatná HTML infografika podle závěrečné zprávy ENTSO-E: plynulé přehrávání s adaptivní rychlostí, semaforová osa stavu sítě (zelená/žlutá/červená), stavové rámečky (V208, ztráta výroby, frekvence, bilance, bez dodávky), okna prevence, Bod bez návratu, 9 doporučení; klávesové ovládání (šipky, mezerník), světlý/tmavý režim. Vložena přes<iframe src="…?embed=1">s auto-výškou (postMessage) do článkucontent/posts/2026/2026-07-11-blackout-cesko-zaverecna-zprava-entso-e.md; embed režim skrývá hero a závěrečné sekce (duplikovaly by text článku) - Nový článek do rubriky Apple: „Může Apple za růst cen pamětí, který ho teď donutil zdražit?" (Patrick Zandl, 2026-06-27) — analýza zdražení Maců a iPadů, sporu Apple vs. Micron a čínské paměťové cesty přes CXMT, s thumbnailem
2026-06-27-apple-ceny-pameti.jpg
Removed
- Odstraněn Ahrefs Analytics (
analytics.ahrefs.com/analytics.js, data-key8DK1Fml+9uQuIb76lJoKXA) — služba se už neplatí. Smazáno ze všech 4 výskytů: Hugo layoutylayouts/_default/baseof.htmlalayouts/page/aiprace.html(marigold.cz) i legacy Jekyll layouty_layouts/default.htmla_layouts/aiprace.html(vibecoding.cz)
Changed
- Jazyková humanizace článku o Karpathym (
content/posts/2026/2026-04-04-karpathy-llm-knowledgebase.md): odstranění AI artefaktů bez změny stylu — 70 em dashů (—) nahrazeno krátkou pomlčkou, přeformulována AI klišé („Posun je zásadní", „Rozdíl je klíčový", „To je meta-insight", kalk „jiný příběh", opakovaný kontrast „nutnost, ne volba/luxus"), dočištěny rozepsané autorské vsuvky bez diakritiky - Rychlé shrnutí článku (
summary_points) je sbalitelné stejně jako Obsah (ToC) — výchozí stav sbalený, rozbalení klikem na hlavičku (layouts/posts/single.html,assets/scss/main.scss) - Aktualizace článku „Karpathy přišel na to, jak používat AI jinak" (
content/posts/2026/2026-04-04-karpathy-llm-knowledgebase.md) o tři měsíce vývoje: nová sekce „Za tři měsíce: z myšlenky standard" o vydání Open Knowledge Format (OKF v0.1) od Google Cloud (12. 6. 2026), nová sekce „Existují už hotové produkty? Ano" s rozcestníkem produktů (llmwiki.app, Agent Skillynpx add-skill, lcwiki, knowledge-engine, Obsidian implementace, NotebookLM/Mem/Reflect jako kontrast), rozšíření sekce o škálování o oficiální Obsidian CLI, aktualizace perexu, summary_points a závěru - Doplnění téhož článku o redakční poznámku „Aktualizováno v červenci 2026" na začátku (odkazuje na tři místa s novinkami) a novou sekci „Má to pro tebe vůbec smysl?" — úvaha o smyslu second brainu (námitka „hřbitov poznámek", kdy je Google+LLM rychlejší volba, jednotlivec jako nástroj na syntézu vs. firma jako infrastruktura), sladěná s anti-RAG tezí článku (kompilace kontextu, ne RAG nad poznámkami)
- Jazyková humanizace článku o cenách pamětí Apple: odstranění anglicismů („linie" → „řady", „moderní historie" → „novodobá historie", „telegrafoval" → „avizoval"), přirozenější slovosled a přepis negačně-kontrastního obratu („Háček není v datech… Háček je v…" → „Potíž je především v tom, jak se data používají")
Fixed
- Slovník 3GPP: ořezávání horní řady NF v architektonických SVG diagramech (
static/assets/slovnik/*.svg, 13 pojmů). Příčina byla ve zdrojovém rendereru v 3gpp-explorer2 (render-network.ts): embed režim odvozoval posun obsahu nahoru od titulkového pruhu (magické-96), ale vršek obsahu (SBA box) je na y=85, takže po posunu spadl nad horní hranu viewBoxu (0 0 1400 664) a horní řada (NSSF/NRF/UDM…) se ořízla. Oprava: posun i výška viewBoxu se nově odvozují od skutečné geometrie obsahu (viewBox 0 0 1400 673,translate(0,-69), horní okraj 16 px). Přegenerováno všech 13 SVG (CS i EN), znovu vloženo do web glossary JSONů v 3gpp-explorer2
Added
- Slovník 3GPP: rozšíření architektonických schémat z 13 na 24 pojmů. Diagram je pevná 5G SBA topologie, kde se vysvětlovaný pojem zvýrazní. Nově: CHF, UE, DN, RAN (uzly už v topologii) + SEPP, NWDAF, BSF, UDSF, SCP, N3IWF, TNGF (doplňkové SBA NF). SBA pás se při >7 uzlech zalomí na dvě řady (interleave — horní řada v mezerách spodní, spojky nekříží boxy), zdroj v 3gpp-explorer2
render-network.ts/network-architecture.ts - Slovník 3GPP: automatické napojení architektonických SVG diagramů na generátor slovníku —
generate-marigold-md.ts(v 3gpp-explorer2) je nově „diagram-aware": pro 13 pojmů 5G Core (5gc, amf, smf, upf, nssf, nrf, udm, udr, ausf, nef, pcf, af, s-nssai) vyexportuje české SVG ze zdrojového manifestu (data/glossary-diagrams/manifest.json, polesvgCs) dostatic/assets/slovnik/<slug>.svga zároveň přidáinfografika+infografikaAltdo front matteru. Dřív se SVG i poleinfografikaudržovaly ručně, takže každé přegenerování MD je smazalo (tichý rozpad). Layoutsingle.htmlčteinfografikapřednostně, jinak fallbackfileExistspodle názvu — obojí teď konzistentní - Slovník 3GPP: generátor SVG infografik
scripts/generate_infographics.py— dvoukrokově (destilace českého popisu → SVG diagram) přes OpenRouter (Claude Sonnet). SVG má nativní text, takže čeština vč. diakritiky je bezchybná (obrazové modely text komolí), je ostré a malé. Jednotný „house-style" (paleta #2563EB/#EA580C/#16A34A, layout zleva doprava, legenda). Ručně udržovaný allowlistscripts/infographic-terms.txt. Pilot: amf, 5gc, nssf (průzkumné — kvalita layoutu kolísá, viz níže) - Slovník 3GPP: podpora infografiky/schématu u pojmu —
layouts/slovnik/single.htmlzobrazí obrázek za úvodní definicí, před sekcí „Popis". Obrázek se odvozuje z názvu souboru (static/assets/slovnik/<slug>.{svg,jpg,png}) přesfileExists, takže se napojení nemůže ztratit při přegenerování slovníku (žádné front-matter pole). Širší zobrazení (breakout z textového sloupce namin(1100px, 96vw)) + styly.slovnik-infografikavč. dark mode. Pilot: ACELP (ruční bitmapa), amf/5gc/nssf (generované SVG) - Dokument
docs/SVG-INFOGRAFIKY-VYZKUM.md— shrnutí zjištění a směrů pro samostatný výzkum automatizovaného generování čitelných SVG schémat přes LLM (co funguje, otevřené problémy s kolizemi layoutu, navrhované přístupy) - Slovník 3GPP: dvouvrstvá „nořící se" navigace přehledu (
layouts/slovnik/list.html) — místo jednoho dlouhého seznamu všech 2756 pojmů jsou pojmy sbalené do accordionu vrstva sítě (segment) → kategorie → pojmy. Výchozí stav sbalený (krátká stránka), klik rozbalí. Vyhledávání filtruje napříč vším a automaticky rozbaluje sekce s výsledkem. Zařazení jen z dokladovatelných dat (segment99 %,category100 %); generační osa zamítnuta, protože ji zdrojová data neunesou spolehlivě - Slovník 3GPP: počeštění dalších kategorií (Rozhraní, Mobilita, Internet věcí) v
layouts/partials/slovnik-kategorie.html - Slovník 3GPP: křížové prolinkování pojmů mezi sebou — generátor v 3gpp-explorer2 (
markdown-linking.ts) vkládá inline odkazy do sekcí Popis a K čemu slouží a přidává sekci „## Související pojmy"; case-sensitive akronymy, hranice respektující pomlčku (S-NSSAI nerozbije NSSAI), self-link guard, blocklist obecných termů (3GPP, 5G, UE, RAN…), max 8 inline odkazů/stránka. Slovník rozšířen ze 148 na 2756 pojmů (2703 s inline odkazy, 1883 se sekcí Související pojmy), vše interně na/mobilnisite/slovnik/ - Centrální skript dynamické inzerce
static/js/promo-banner.js— jeden zdroj pravdy čtoucí živá data zvibecoding.cz/api/active-promotion; UTM kampaň konfigurovatelná přesdata-utm-campaign - Slovník 3GPP (
/mobilnisite/slovnik/): live vyhledávání/filtr nad pojmy, navigace kategorií a počty pojmů (layouts/slovnik/list.html) - Slovník 3GPP: vlastní layout detailu termínu se zkratkou, plným názvem, badge kategorie/segmentu a breadcrumbem (
layouts/slovnik/single.html) - Slovník 3GPP: počeštění kategorií a segmentů přes nový partial
layouts/partials/slovnik-kategorie.html - Slovník 3GPP: styly seznamu i detailu vč. dark mode variant (
assets/scss/main.scss) - Odkaz na slovník 3GPP na stránce
/mobilnisite/jako banner pod titulkem (shortcodeslovnik-banner, styly vč. dark mode) - Nový článek do rubiky AI: „Claude Cowork: Kompletní příručka" (Patrick Zandl, 2026-06-07) — průvodce agentním Cowork pro nontechnické uživatele, s thumbnailem
claude-cowork-kompletni-pruvodce.png - Nový článek: „Když se vás AI agent snaží potěšit objednáváním" (Patrick Zandl, 2026-06-06) — o Hypatě a boji o welcome drink na Vibecoding Talks
- Reklamní banner Vibecoding Talks 15. 6. 2026 na konci článků (
layouts/posts/single.html) — jeden náhodně vybraný obrázek řečníka (static/assets/vt/, Hugoshufflepři buildu), proklik s UTM (vt-06-2026) - Sveltia CMS: přidán webový editor článků dostupný na
/admin/— přihlášení přes GitHub, bez OAuth proxy serveru - Nový článek: „Jsou AI agenti superinteligence dneška?" (Patrick Zandl, 2026-04-21) — o kooperaci AI agentů, World Models a agentní vrstvě
Fixed
- Banner slovníku na
/mobilnisite/(slovnik-banner.html): počet hesel se nyní počítá dynamicky z obsahu (zaokrouhleno dolů na stovky) místo natvrdo zapsaného „přes 140 hesel" — aktuálně „přes 2700 hesel" - Oprava diakritiky v titulku stránky
/mobilnisite/: „Mobilni site" → „Mobilní sítě" - Slovník 3GPP: opraveno vyhledávání —
display: flex/blockna položkách přebíjel HTML atributhidden, takže filtr vizuálně nic neskrýval; přidáno pravidlo[hidden] { display: none }pro slovníkové prvky - 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 - Opraven rozbitý front matter v článku
karpathy-llm-knowledgebase(špatné odsazení,-----místo---) - Přejmenován
karpaty-llm-knowledgebase.mdnakarpathy-llm-knowledgebase.md(oprava příjmení)
Removed
- Statický reklamní banner Vibecoding Talks (
vt-06-2026) pod hodnocením článku vlayouts/posts/single.html— duplicitní s dynamickým bannerem nahoře v článku
Changed
- Sjednocení dynamické inzerce napříč články — všude se nyní propaguje aktuální akce z
vibecoding.cz/api/active-promotion(promo-banner.js+#vibecoding-promo) místo napevno zakódovaných statických bannerů:- Reklamní zóna nad obsahem AI článků (
layouts/partials/ad-zone-top.html, používá se vai/single.html): statický banner Vibecoding Talks nahrazen dynamickým systémem; popisky „Reklama" a „Obsah článku" zachovány - AI článek (
ai/single.html): odstraněn druhý statický VT banner na konci článku (duplicitní s dynamickou reklamou nahoře) - Mobilní sítě: nový
layouts/mobilnisite/single.html(články dosud dědily minimální default bez reklamy) přidává reklamní zónuad-zone-top.htmlnad obsah — list/mobilnisite/i slovník zůstávají bez reklamy
- Reklamní zóna nad obsahem AI článků (
- Slovník 3GPP: aktualizace křížového prolinkování napříč pojmy (novější běh generátoru z 3gpp-explorer2 — víc termů má český překlad, takže se rozsvítilo víc interních odkazů)
/aiprace: statický banner workshopu (Claude Code, 13. 4. 2026) nahrazen dynamickým bannerem aktuální akce zvibecoding.czAPIworkshop-banner.htmlpartial refaktorován — inline skript vytažen do sdílenéhostatic/js/promo-banner.js- Přidány UTM tagy na všechny odkazy v článku
prirucka-ai-ve-firmach-zdarma(kampańai-prirucka) - 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