-
react-rnd(MIT,10.5.3) je použit pouze v OWNER Layout Toolu pro drag/resize zón voucheru; renderer zůstává serverový a PDF-native. -
Voucher Template Manager nepřidává storage SDK: používá existující lokální storage abstraction nad
MEDIA_STORAGE_ROOT,pdf-lib,@pdf-lib/fontkit,qrcodea trusted@fontsource/noto-sans. -
Mobilní ergonomie administrace nepřidává závislost; používá stávající React komponenty, Tailwind utility a CSS
env(safe-area-inset-bottom). -
Sjednocení veřejných media route nepřidává závislost; používá stávající Next.js Route Handler API, Prisma repository a lokální media storage adapter.
-
Offline recovery OWNERa používá stávající runtime
tsx, Prisma a Nodecrypto; nepřibyla žádná externí závislost. Neodstraňujtsx, dokud zůstává scriptadmin:recover-ownersoučástí provozního postupu.
Seznam důležitých knihoven a důvod jejich použití.
Atomický release mechanismus nepřidává žádnou npm závislost; používá existující Bash, systemd, curl, Node.js a Prisma CLI.
Constraint jednotkové kapacity slotu nepřidává žádnou závislost; používá existující PostgreSQL CHECK constraint a Prisma migrace.
Ochrana DB health alertu nepřidává žádnou závislost ani persistentní storage; používá lokální in-memory cooldown v Next.js route handleru.
Ošetření detailních DB dotazů health snapshotu nepřidává žádnou závislost; používá stávající Response.json, Prisma klient a serverový console.error pro neveřejnou diagnostiku a degradovaný health stav.
Explicitní turbopack.root nepřidává závislost; používá vestavěný Node.js modul node:path, který je součástí podporovaného Node 24 runtime.
Podrobnější release health diagnostika nepřidává závislost; používá stávající curl, Bash a dočasné soubory pro oddělené ověření health JSON a homepage.
Tichý startup readiness probe nepřidává závislost; používá stejný curl a Bash sleep, které release helper už vyžaduje.
- Zdroj pravdy je
package.jsonv kořeni projektu. - Projektový runtime cíl je
Node 24 LTS; repozitář to explicitně deklaruje přes.nvmrcapackage.json.engines. next:16.3.1react:19.2.8react-dom:19.2.8tailwindcss:^4.3.2(runtime používá4.3.2)@tailwindcss/postcss:^4.3.2(runtime používá4.3.2)postcss: přímá závislost není pinovaná; resolvuje se přes@tailwindcss/postcss(8.5.16) a interně také přesnext.prisma:7.9.1@prisma/client:7.9.1@prisma/adapter-pg:7.9.1package.json.allowScriptsna npm 11 vědomě whitelisuje install hooky proprisma,@prisma/engines,sharp,esbuildaunrs-resolver. Záznamy jsou připnuté na konkrétní verze, aby se při upgradu znovu explicitně zrevidovalo, které postinstall/preinstall skripty repo pouští.- Poslední ověřený lokální
npm audit(2026-07-02) hlásí1 lowa6 moderatenálezů bezhigh/critical. Nejrelevantnější větev jenext -> postcss, dále Prisma tooling (prisma -> @prisma/dev -> @hono/node-server) a transitive@babel/core/brace-expansion. - Automatické
npm audit fixse teď vědomě nepouští: doporučené opravy vrací nebezpečné návrhy na major downgradenextneboprisma, takže bezpečný postup je čekat na kompatibilní upstream patch/minor release a zkusit audit znovu při dalším dependency passu. @playwright/test: browser E2E test runner pro hlavní rezervační a admin flow; v projektu držíme^1.62.1, protože starší1.59.1se v CI na Node 24 zasekávala při instalaci browseru.@axe-core/playwright: automatizovaná axe kontrola přístupnosti v reprezentativních Playwright scénářích veřejného webu, rezervace a administrace.c8: V8 coverage reporter nad stávajícímnode --testsetupem; generuje HTML/LCOV/JSON reporty bez nutnosti přechodu na jiný test runner.reactareact-domdrž vždy na přesně stejné patch verzi. U Next.js/React serverového renderu repo nesmí přijmout jednostranný bump jenreact, protože CI pak spadne na runtime kontroluIncompatible React versions.- GitHub security automation teď stojí i na repo konfiguraci bez nových runtime závislostí:
github/codeql-action: statická bezpečnostní analýza JavaScript/TypeScript kóduactions/dependency-review-action: PR diff kontrola rizikových dependency změn; aktuálně držíme majorv5.github/dependabot.yml: týdenní update PR pronpma GitHub Actions
- Pro CI orchestrace v
.github/workflows/*.ymlje aktuální baselineactions/checkout@v7,actions/setup-node@v7aactions/upload-artifact@v7; tyto verze nejsou runtime závislost projektu, ale jsou součástí provozního dependency surface repozitáře a mají se udržovat spolu s touto dokumentací. - Scheduled
npm audit --audit-level=highje záměrně oddělený od ručních dependency passů: chceme failnout jen nahigh/critical, zatímco známélow/moderatevětve dál sledujeme ručně v tomto dokumentu. svix: verifikace podpisu Resend webhooků (svix-id,svix-timestamp,svix-signature) nad raw request body.- Matomo tracking nepřidává žádnou npm závislost; používá
next/script, App Router navigation hooks a standardníwindow._paqfrontu. - Microsoft Clarity tracking také nepřidává žádnou npm závislost; používá
next/scripta veřejný Clarity tag přes inline init snippet. - Meta Pixel tracking také nepřidává žádnou npm závislost; používá
next/scripta veřejný Metafbevents.jstag přes inline init snippet. - Booking/service Meta Pixel konverzní eventy také nepřidávají žádnou npm závislost; stojí na lokálním helperu nad
window.fbqbez SDK balíku. - Vyloučení přihlášeného admina z veřejného trackingu také nepřidává závislost; používá jen
next/headerscookies check vSiteShella existující session cookie jméno z auth helperu. - Veřejné JSON-LD a Web Vitals reporting nepřidávají žádnou novou runtime závislost; JSON-LD používá vlastní serializer a Web Vitals používají
next/web-vitalsdodávané Next.js. - Server-side Matomo Reporting API vrstva také nepřidává žádnou npm závislost; používá vestavěný
fetch, Next.js revalidation cache a lokální TypeScript normalizaci odpovědí. - Admin dashboard cockpit nepřidává žádnou npm závislost; jde o úpravu serverového read modelu, React/Tailwind prezentačních komponent a stávajícího Matomo widgetu.
- Pushover notifikace nepridavaji zadnou npm zavislost; serverova integrace pouziva vestaveny
fetch,URLSearchParams, Prisma a existujici Next.js server action pattern. - Voucher business vrstva nepřidává žádnou npm závislost; kódy generuje přes vestavěný Node.js
crypto, DB logiku řeší Prisma a vstupy validuje existujícízod. - UX refaktor admin seznamu voucherů nepřidává žádnou npm závislost; jde jen o úpravu stávající serverové read vrstvy, Tailwind layoutu a badge stylů.
- Ruční odesílání voucheru e-mailem nepřidává žádnou npm závislost; používá stávající
EmailLogoutbox, existující worker,nodemailerprovider a worker-safe PDF coresrc/features/vouchers/lib/voucher-pdf-core.ts. - Dev generování e-mailových náhledů nepřidává žádnou npm závislost;
npm run email:previewspoužívá stávajícítsx, Nodefs/promisesa existující rendererrenderEmailTemplate(...). - UX refaktor admin detailu voucheru nepřidává žádnou npm závislost; jde jen o přeskupení existujících serverových read modelů, klientského e-mailového panelu a Tailwind layoutu.
- UX density pass admin planneru
Volné termínynepřidává žádnou npm závislost; jde čistě o úpravu existujících React/Tailwind komponent, layoutu toolbaru, pravého inspektoru a kontrastu gridu. - Oprava fragmentace chained booking slotů pro admin planner nepřidává žádnou npm závislost; používá stávající Prisma transakce a sdílenou coverage logiku.
- Repair helper
scripts/repair-legacy-chained-slots.mjsnepřidává žádnou npm závislost; používá stávajícípgdriver aDATABASE_URL. - Oprava planner read modelu pro
CANCELLEDbookingy nepřidává žádnou npm závislost; jde jen o úpravu stávající Prisma/Tailwind admin vrstvy. - Oprava planneru pro historicky zrušené rezervace nepřidává žádnou npm závislost; jde o úpravu stávající Prisma doménové logiky archivace slotů a read/write modelu planneru nad existujícím Next.js/Prisma stackem.
- Admin vytvoření voucheru nepřidává žádnou novou knihovnu; používá existující Next.js server actions, React
useActionState/ lokální state pro živý náhled, Prisma a voucher Zod schéma. - Admin uplatnění voucheru v detailu rezervace nepřidává žádnou novou knihovnu; formulář používá React
useActionState, server action používá existující Zod/Prisma vrstvu a transakční voucher doménu. - Evidence plateb a payment summary v admin detailu rezervace nepřidává žádnou novou knihovnu, payment SDK ani QR generátor; jde o TypeScript výpočet nad Prisma read modelem, existujícími
VoucherRedemptiondaty a novým modelemBookingPayment. - Individuální cena rezervace nepřidává žádnou novou knihovnu; používá existující Prisma migrace, Next.js server action, Zod validaci a sdílený payment summary helper.
CRM souhrnv admin detailu klientky nepřidává žádnou novou knihovnu; používá existující Prisma read model,Booking.finalPriceCzk,VoucherRedemption,BookingPaymenta sdílený TypeScript helpergetBookingPaymentSummary(...).- Veřejné intended zadání voucheru v booking flow nepřidává žádnou novou knihovnu; používá existující React wizard, Next.js server action, Prisma a voucher validační helper.
- Veřejné ověření voucheru na
/vouchery/overeninepřidává žádnou novou knihovnu; používá existující Next.js server component route, Prisma, veřejný salon profil a serverový voucher validační helper. - PDF generátor voucheru přidává runtime závislosti
pdf-lib,qrcode,@pdf-lib/fontkita@fontsource/noto-sansplus dev typy@types/qrcode.pdf-libskládá PDF server-side bez headless browseru,qrcodegeneruje ověřovací QR kód a Noto Sans přesfontkitřeší českou diakritiku z licenčně jasného OFL font balíčku. - Verzované master PDF vouchery, vektorový PRINT/DIGITAL export i registry šablon nepřidávají žádnou novou závislost; používají existující
pdf-lib,qrcode,@pdf-lib/fontkita Noto Sans stack. Master asset je verzovaný soubor v repozitáři, nikoli Media Manager upload.
next: framework aplikace.react: UI knihovna.react-dom: renderování Reactu do DOM.
@prisma/client: typovaný přístup k databázi nad booking doménou, adminem i provozními daty.@prisma/adapter-pg: oficiální PostgreSQL driver adapter pro Prisma 7 runtime.pg: PostgreSQL driver použitý pod Prisma adapterem.prisma: schema, migrace a generování klienta pro PostgreSQL.- Hardening administrátorských pozvánek nepřidává závislost; používá stávající Prisma 7 transakce a PostgreSQL
FOR UPDATErow locky pro atomické spotřebování tokenu a jeho revokaci při deaktivaci účtu. zod: validace env a serverových vstupů.jose: podpis a verifikace admin session.nodemailer: SMTP transport pro potvrzení rezervace a storno e-maily.- Resend REST transport nepřidává SDK závislost; používá vestavěný
fetch, stabilní HTTPIdempotency-KeyzEmailLog.ida mapujeproviderMessageIdna Resendemail_idpro webhook tracking. image-size: čtení rozměrů lokálně uložených obrázků pro metadataMediaAsset.sharp: lehká server-side image pipeline pro EXIF-normalized originál a variantyoptimized+thumbnailpři uploadu přes Media Library. Při upgrade na novější minor řadu nepoužívej v TypeScriptu namespace stylsharp.Sharp; aktuální kompatibilní pattern v repu je explicitníimport sharp, { type Sharp } from 'sharp'.server-only: marker balík doporučený Next.js dokumentací pro server-only moduly; v tomhle projektu je instalovaný i kvůli běhunode --testmimo Next bundler, kde před testy registrujeme malý resolver hook a mapujemeserver-onlyna prázdný stub jen v testovacím procesu.dotenv: načtení.envpro Prisma CLI konfiguraci.- vestavěný Node.js
crypto: generování a hashování action tokenů pro booking workflow bez další závislosti. - vestavěný Node.js
cryptotaké nově podepisuje odvozené tokeny pro chráněný owner ICS feed; nebyla přidána žádná externí iCalendar nebo calendar auth knihovna. - Owner Pushover integrace byla pridana bez SDK baliku; POST na
https://api.pushover.net/1/messages.jsonse sklada primo ve sdilene serverove implementacipushover-corea Next.jsserver-onlywrapper zustava oddeleny od standalone worker importu. - Pro nové provozní approve/reject odkazy jsme nepřidávali žádnou další knihovnu; bezpečnost flow dál stojí na existujícím Node.js
crypto, Prisma transakcích a Next.js App Router server actions. - Ochrana proti
Failed to find Server Actionnepřidává novou knihovnu; používá vestavěné Next.jsdeploymentId, provozní env konfiguraciNEXT_SERVER_ACTIONS_ENCRYPTION_KEYa lokální observability helper vinstrumentation.tspro sanitizované shrnutínext-actionheaderu. - Refaktor HTML šablony admin notifikace také nepřidává žádnou knihovnu; email-safe layout je ručně skládaný přes inline styly a prezentační tabulky.
- Ani zákaznická
.icspříloha po potvrzení rezervace nepřidává novou knihovnu; používá lokální iCalendar utility a stávající SMTP vrstvu přesnodemailer. - UX/copy refaktor potvrzovacího klientského e-mailu
booking-approved-v1také nepřidává novou knihovnu; layout dál používá ručně skládané email-safe HTML s inline styly a stávající.icsattachment pipeline. - Sjednocení booking e-mailů do jednoho design systému nepřidává žádnou knihovnu; HTML shell, karty, CTA i text/plain fallbacky zůstávají ručně skládané v
src/lib/email/templates.tsnad existujícím Node/Prisma/Nodemailer stackem. - Přepojení booking e-mailových kontaktů na
SiteSettingsnepřidává žádnou knihovnu; používá existujícígetPublicSalonProfile()/getEmailBrandingSettings()helpery a lokální HTML escapování. - Nová owner notifikace
admin-booking-rescheduled-v1při self-service přesunu rezervace nepřidává žádnou knihovnu; používá existující outboxEmailLog, renderer šablon aSiteSettings.notificationAdminEmail. - Jediný 24h reminder rezervací také nepřidává novou knihovnu; scheduler, token workflow i outbox zápis používají stávající Next.js/Prisma/Node stack a existující
email:worker. - Admin přesun termínu také nepřidává novou knihovnu; drawer UI, auditní log i doménová validace běží čistě na stávajícím stacku Next.js, React, Prisma a Zod.
- Interní čas na úklid po službě nepřidává žádnou novou knihovnu; jde o rozšíření Prisma modelů
ServiceaBooking, existující Zod validaci, stávající admin formulář/server actions a úpravy stávající booking/planner logiky. - Refaktor detailu rezervace do decision panelu také nepřidává novou závislost; sticky header, action chooser, kompaktní summary card i zkrácená historie používají jen stávající Next.js App Router, React a Tailwind utility.
- Klientský self-service přesun termínu také nepřidává novou knihovnu; veřejná manage route, secure token flow a potvrzovací panel běží čistě na stávajícím stacku Next.js, React, Prisma a Zod.
- UX refaktor klientského self-service přesunu termínu také nepřidává novou knihovnu; hybridní seznam, kalendář, sticky mobilní souhrn, smooth scroll i Matomo eventy používají stávající React/Next primitives a lokální helpers.
- Přístupnost kontaktního kroku veřejného booking flow nepřidává žádnou knihovnu; používá nativní HTML vazby
label/aria-describedby, React JSX a stávající Tailwind utility. - Prefill klientky z admin detailu do ruční rezervace také nepřidává novou knihovnu; používá jen existující Next.js App Router search params, serverové read modely, React state a stávající booking drawer/action workflow.
- Ruční vytvoření rezervace v adminu také nepřidává novou knihovnu; drawer, deduplikace klientky i sdílené create jádro běží čistě na stávajícím stacku Next.js, React, Prisma a Zod.
- Normalizace a čitelné zobrazení telefonu klientky nepřidává žádnou novou knihovnu; pravidla jsou lokální TypeScript helper nad existující server-side validací.
- Uvolnění e-mailu u ruční rezervace také nepřidává novou knihovnu; změna stojí jen na Prisma migraci, Zod validaci a úpravě sdíleného booking engine.
- Booking submission audit využívá stejnou Prisma vrstvu a nezavádí další knihovnu pro rate limiting ani logování.
- Audit změn cen služeb také nepřidává novou závislost; používá stávající Prisma model, admin session mapování a server actions.
- UX refaktor pracovního přehledu
Rezervacetaké nepřidává novou závislost; klikací statistiky, URL-driven filtr toolbar i seskupení seznamu používají jen stávající Next.js App Router,next/form, React a Prisma vrstvu. - Admin login rate limit také nepřidává novou závislost; používá stávající Prisma model
BookingSubmissionLoga vestavěný Node.jscryptopro hash fingerprintů. - Stabilizační refaktor
booking-public,booking-flowaadmin-slotstaké nepřidává žádnou novou runtime ani dev dependency; jde čistě o přesun stávající logiky do menších interních modulů. - Modul
Médiataké nepřidává žádnou novou závislost; upload, metadata, filtr typů i publish stav běží na stávajícím stacku Next.js, React, Prisma, Zod, Node filesystem aimage-size. - UX refaktor
Médiataké nepřidává žádnou novou závislost; dropzóna, tabs s počty, quick publish/unpublish i kompaktní edit dialog běží na stávajících React/Next primitives. - Rozdělení portrétů na
PORTRAIT_HOMEaPORTRAIT_ABOUTtaké nepřidává žádnou novou závislost; používá stávajícíMediaAssetmodel, Prisma enum a public media helpery. - Veřejná stránka
/studionepřidává žádnou novou závislost; galerii skládá z existující media vrstvy anext/image. - Hardening
/studioproti orphan media záznamům nepřidává žádnou novou závislost; používá stávajícílocalMediaStoragea Nodefspro dev-only fallbackpublic/dev/studio/*. - Samostatný typ média pro
/kontaktnepřidává žádnou novou závislost; jde pouze o rozšíření Prisma enumuMediaTypea existující media vrstvy. - Matomo integrace také nepřidává žádnou novou závislost; helper a CTA wrappers jsou lokální TypeScript/React moduly.
- Google Ads tag také nepřidává žádnou novou závislost; integrace používá pouze vestavěný
next/scripta lokální tracker helper. - FAQPage JSON-LD a rozšířená FAQ stránka nepřidávají žádnou novou závislost; schema se generuje lokálním helperem a accordion zůstává na nativním HTML
details/summary. - Matomo dashboard reporting také nepřidává žádnou novou závislost;
src/lib/analytics/matomo.tsje server-only wrapper nad Reporting API. - Databázový základ voucherů nepřidává žádnou novou závislost; jde čistě o Prisma modely, enumy, migraci a budoucí doménovou vrstvu v
src/features/vouchers. - Provozní editace a ruční zrušení voucheru nepřidává žádnou novou knihovnu; server actions a formuláře používají stávající Next.js App Router, React
useActionState, Prisma a Zod.
typescript: statická typová kontrola.eslint: linting.eslint-config-next: pravidla lintu pro Next.js.tsx: lehký TypeScript runtime pro Node test runner a background worker skript.@playwright/test: end-to-end ověření v reálném browseru nad lokálním Next.js serverem; testy používají izolované Prisma fixture data a nejsou součástí běžnéhonpm test.
tailwindcss: utility-first CSS framework.@tailwindcss/postcss: integrace Tailwindu do PostCSS.clsx: skládání className bez string chaosu.tailwind-merge: bezpečné slučování Tailwind tříd.
- Nová veřejná část byla postavená bez dalších UI knihoven nebo animačních balíků.
- Cílem je nízká složitost, rychlý render a co nejmenší závislostní povrch pro marketingový web.
- Redesign stránky
/o-mnetaké nepřidává žádnou novou závislost; hero, CTA, galerie certifikátů i placeholder stavy běží čistě na stávajícím stacku Next.js, React, Tailwind a lokálních SVG/CSS efektech. - Refaktor stránky
/obchodni-podminkytaké nepřidává žádnou novou závislost; finální právní copy, hero aside i obsahová navigace zůstávají na existujících public komponentách a Tailwind utilitách.
- Prisma schema v1 používá enumy pro role, stavy slotů, stavy rezervací a e-mailové workflow.
- Slot admin CRUD stojí jen na stávajícím stacku Next.js + Prisma + Zod; záměrně jsme nepřidávali žádnou kalendářovou, form builder ani admin CMS knihovnu.
- UX vylepšení slot formuláře, týdenního planneru, inline day workspace a mobilních sticky akcí běží čistě na React/Next primitives; nevznikla nová externí závislost.
- Draft-first redesign planneru (mobilní drawer sidebar, inspektor dne, sticky publish bar, lokální koncept týdne) dál běží bez nové state-management, drawer nebo calendar knihovny; zůstáváme na React 19 + Next.js 16 primitives.
- Kompaktní veřejný picker časů v
/rezervacebyl také upravený bez nové závislosti; grouping a disabled stavy běží čistě na stávajícím stacku React + TypeScript + Tailwind utilities. - Pro bezpečné storno a přesun termínu není potřeba další knihovna; token workflow je navržený na úrovni DB přes hash + expiraci.
- E-mailové šablony i delivery vrstva zůstávají jednoduché a nepřidávají queue službu mimo PostgreSQL outbox.
Jsonpole veSetting,BookingStatusHistoryaEmailLogponechávají prostor pro evoluci bez destruktivních migrací.- Audit ceníku je záměrně samostatný relační model
ServicePriceChangeLog, ne dalšíJsonblob vService, aby šlo změny filtrovat a řadit bez parsování payloadu. - Ruční backfill strukturovaných textů služeb v DB nepřidává žádnou novou knihovnu;
scripts/backfill-service-copy.tspoužívá existujícítsx,dotenv, Prisma klienta a@prisma/adapter-pg. - Admin sekce
Nastavenía singletonSiteSettingsbyly doplněné bez nové knihovny; zůstáváme na stávajícím stacku Next.js, React, Prisma a Zod. - Owner ICS feed pro Apple Kalendář byl přidaný bez nové závislosti; generování
.ics, escapování i line folding běží v lokální utilitě nad standardním Node/TypeScript stackem. - Klientská
.icspříloha používá stejnou lokální iCalendar utilitu; nepřidávali jsme Google SDK,.icsgenerator balík ani novou mail knihovnu. - Admin role-aware dashboardy používají jen existující Next.js, Prisma a React primitives; nepřidávali jsme další admin UI knihovnu ani CMS vrstvu.
- Nový operativní admin dashboard overview také běží bez nové ikonové nebo chart knihovny; používá Tailwind utility classes, lokální SVG ikony a serverový read model nad existující Prisma vrstvou.
- Konsolidace owner/salon admin route wrapperů do shared factory patternu proběhla bez přidání nové knihovny.
- Přestavba owner sekce
Přístupytaké zůstává bez nové UI nebo auth závislosti; používá jen stávající Next.js server actions, React klientské komponenty, Prisma a Zod. - Invite aktivace a DB hesla pro admin přístupy byly přidané bez nové auth knihovny; tokeny i hash hesel běží na vestavěném Node.js
crypto(sha256,scrypt). - Admin workflow pro služby (seznam, filtry, editace a validační vrstva) bylo doplněné čistě nad existujícím stackem Next.js, React, Prisma a Zod.
- Rozšíření katalogu o public/pricing metadata zůstává čistě v současném stacku Prisma + Next.js server actions; nepřidává CMS, feature flag službu ani externí content backend.
- Ruční výběr doporučených služeb pro homepage zůstává v modelu
Servicea admin server actions; nepřidává CMS ani externí personalizační nebo analytickou službu. - Přepracované workflow
SlužbyaKategorie služeb(create CTA, quick actions, reorder, warningy, mobilní list/detail flow) zůstává bez nové UI nebo drag-and-drop závislosti; běží čistě na stávajícím stacku Next.js, React, Prisma a Zod. - Nový dark workspace
Kategorie služebpoužívá jen React 19 primitives (useActionState,useOptimistic,startTransition) a nepřidává žádný drawer, icon ani form helper balík. - Přepnutí desktop detailů
SlužbyaKategorie služebna pravý overlay drawer také nepřidává žádnou UI knihovnu; zůstáváme na lokálních React komponentech a Tailwind utilitách. - Lokální media storage vrstva zůstává na stávajícím stacku Next.js, Prisma a Node filesystemu;
sharppřidává jen lehkou upload-time normalizaci a varianty bez CDN a bez komplexního responsive image systému.
- Minimálně 1x měsíčně zkontrolovat bezpečnostní a major update.
- Před major updatem ověřit kompatibilitu a sepsat dopad.
node_modulesneni distributovany artefakt. Do repozitare ani prenosovych ZIP/TAR balicku nepatri.- Reprodukovatelna instalace zavislosti na serveru je pouze
npm ciz aktualnihopackage-lock.json. npm run devanpm run buildnyní automaticky spouštějíprisma generate, aby admin sekce nepoužívaly zastaralý Prisma klient po změnách schématuEmailLoga dalších modelů.- Týdenní planner dostupností, batch create, inline quick edit slotu i sekundární day workspace byly implementované bez nové závislosti; zůstáváme na stávajícím stacku Next.js, React, Prisma a Zod.
- Synchronizace publikovaného konceptu týdne používá novou server action nad existující Prisma vrstvou; nepřibyla žádná fronta, websocket vrstva ani další persistence systém.
dotenvaprisma/configjsou potřeba i proto, že Prisma 7 CLI čteDATABASE_URLaSHADOW_DATABASE_URLmimo runtime validaci Next.js aplikace.- Týdenní planner dostupností byl postavený bez nové závislosti; zůstáváme na stávajícím stacku Next.js, React, Prisma a Zod.
- DST hardening pro
Europe/Praguenepřidává žádnou novou knihovnu; používá stávajícíIntl.DateTimeFormat, PrismaDateTimeinstants a lokální TypeScript helpery.