Súhrnný balík opráv — feed DPH, checkout race, loyalty, security, API limity a Photo Studio
· Infraštruktúra
Komplexný súhrn opráv naprieč produktom, ktorý uzatvára celé triedy chybových stavov. (1) Feed processor — dynamický importér v Go neodpočítaval DPH z cien, keď to feed vyžadoval; produkty boli v storefronte preceňované o 20–23 %. Opravené, vrátane VAT-fallback auditu pre parserov s default DPH inou ako 20 %. LSK availability importér už neprepisuje vat_rate na 0 a nemaže purchase_price pri synchronizácii dostupnosti — používa upsert zachovávajúci existujúce hodnoty. (2) Storefront checkout — atomické rezervovanie zásob, atomický inkrement usage_count na zľavovom kupóne a inkrementy ordersCount/totalSpent u zákazníka bežia ako jediná atomická operácia; cart sa zamyká cez advisory lock pri každej zmene položky (add/update/remove/applyDiscount/removeDiscount/mergeCart) — duplicate ACTIVE košíky pri rýchlom klikaní už nevznikajú. Webhook handler payment-u zamyká order row, takže súbežné Stripe eventy sa serializujú. (3) Vernostný program — pri zmene stavu objednávky už nemôže nastať dvojnásobné pripísanie ani dvojnásobné zrušenie bodov (serializácia cez ledger UNIQUE + re-fetch pod lockom); race medzi expiráciou bodov a ich uplatnením v košíku už nepoškodzuje ledger ani zostatok; pripísanie/zrušenie/uplatnenie bodov je vždy scopované cez companyId. (4) Storefront security — image proxy odolný voči DNS rebinding TOCTOU (DNS pinning + re-validácia pri každom redirecte), path traversal explicitne odmietnutý, SSRF guard rozšírený na subvendor write/sync a AI context fetch (všetky fetch cez DNS-pinned helper), JWT validácia odmieta tokeny pre uzamknutých alebo deletion-pending používateľov, atomický SQL inkrement na failed-login counter zabraňuje brute-force obísť tiered lockout. (5) API hardening — pagination cap 10 000 na všetky DTO query parametre, cart cap 200 položiek, customer cap 50 adries, throttling pridaný na endpointy ktoré dedili 500K/min default (cart updateItem/removeItem, customer profile/address create/update/delete, photo-studio AI image-edit), defense-in-depth companyId filter na admin customer detail order queries a customer reorder/list/get/cancel, whitelist polí na getProfile/listOrders/getOrder (interné metadata/internalNote/adminNote už nepretekajú), surcharge percent + flat surcharge + shipping price + discountTotal + freeThreshold clamped na strane checkout consumera, locale validácia na storefront register/profile-update DTO, BCRYPT_ROUNDS používaný aj na customer change-password. (6) Spúšťanie migrácií — MigrationsService chránený Postgres advisory lockom (HA repliky neštartujú tú istú migráciu dvakrát), CHECK constraint migrácie 256–260 prepísané na idempotentný pattern. (7) Photo Studio — dedikovaný throttling AI image-edit endpointov, bulk cancellation flag uvoľňovaný v finally (Map flagov už nepretekáva pamäť), rateCache pre storefront locale aktívne vyhadzuje expirované záznamy.