Otevři hlavní stránku hammocknook.win — hero pozadí (zelený les) musí načíst rychle a být ostré v různých velikostech okna (zmenši/zvětši browser, srcset si vybere správnou variantu).
layout
Čeká
OKBug×
Otevři /prihlaseni — pozadí přihlašovacího formuláře musí být stejný hero obrázek, ostrý.
layout
Čeká
OKBug×
Otevři /mapa, klikni na nějaký pin — popup musí ukázat náhledový obrázek spotu (ne placeholder, ne broken image).
layout
Čeká
OKBug×
Otevři detail libovolného spotu (např. /spots/sumavske-trojmezi) — Galerie návštěvníků musí načíst miniatury fotek (pokud nějaké jsou). Klikni na fotku — lightbox otevře full-size verzi.
layout
Čeká
OKBug×
Verifikováno: produkční CDN cdn.hammocknook.win/mock/hero.jpg vrací 200 a 1.3 MB JPEG; transform width=400,format=auto,quality=80 vrací 2 423 B avif s cache-control max-age=31536000 (1 rok). Image Transformations + Cache Rule funguje.
performance
OK
×
Verifikováno: legacy endpoint api.hammocknook.win/api/images/* vrací 404 — worker proxy úspěšně odstraněna v R070, žádné obrázky se nehrnou přes API worker.
logic
OK
×
Doc drift: docs/runbook/cdn-setup.md a docs/effect-api-handover.md mají odkazy na smazaný soubor api/src/lib/images-router.ts a popisují /api/images proxy jako stále funkční. Aktualizovat texty na stav po R070.
docs
Bug
Uzavřít×
Sprint scope: sprint.md D3 plánovalo sdílený helper cdnImageUrl() v libs/api-models. Reálně jsou dvě duplicitní implementace cdnUrl (api/src/lib/cdn.ts + web/src/lib/img.ts). Funkčně OK, ale konsolidovat až bude příští sprint kolem images.
logic
Čeká
OKBug×
Žádné unit testy pro web/src/lib/img.ts — funkce imgUrl má netriviální logic (idempotence transform prefix, http/https detect, bare key composit). Při příštích úpravách helperu doplnit.
tests
Čeká
OKBug×
R2 CORS pravidlo na bucketu hammocknook-photos-prod povoluje localhost:4321 a localhost:4200 origins pro dev convenience. Pokud se nikdy nedělá dev upload z lokálního Astro, lze localhost origins z CORS pravidla odstranit.