Vlna optimalizácií — multi-tenant DB hardening, observabilita Grandus push, planner-friendly recursive walks
· Infraštruktúra
Druhá veľká spoľahlivostná operácia, zhrnutá do jedného záznamu naprieč modulmi. Hlavné oblasti: (1) Tenant-scoped recursive walks — každá rekurzívna SQL funkcia na kategórie (get_effective_template, get_category_descendants, get_category_ancestors, get_category_descendant_ids) bola prepísaná na 2-arg variant s povinným company_id filtrom (migrácie 293, 294, 296, 300). 1-arg legacy varianty boli odstránené (295), takže nový volajúci kódu nemôže omylom kráčať cez tenant boundaries. Funkcie sú zároveň označené STABLE (298, 299) aby ich query planner mohol memoizovať v rámci jedného dotazu. (2) Multi-template správnosť — trigger na compliance bol prepísaný aby správne agreguje cez všetky templates produktu (297), legacy single-template UNIQUE constraint na product_template bol odstránený (289), a stale trigger na template_attribute bol prepísaný na statement-level cez transition tables aby manager.save([...50 attrs]) neudrel raz na atribút ale raz celkovo (290). Filter na trigger porovnáva len stĺpce ktoré reálne ovplyvňujú AI summary (288). (3) Bulk param save — namiesto ALTER TABLE DISABLE TRIGGER (čo zamyká celú tabuľku pre ostatné spoje) batch save teraz nastavuje session-local bypass flag (301), takže paralelné editácie z iných session nie sú zablokované. (4) Grandus observabilita — per-chunk compression summary log v provideri, observable per-product compression stats, WARN log keď sharp pipeline beží >30s, WARN keď sa animovaný GIF/WebP flatne na statický JPEG. Per-chunk aggregácia photo failure URL-iek aby admin v jednom prehľade videl všetky problémové fotky. (5) Grandus stability — atomický audit-log gate na /move legacy endpoint (mirror new DnD), category preflight name index pre rich resolver (284), rich category resolver s utf8mb3 sanitizáciou + safe flush wrapperom + pre-flight validátormi, metadata pre-check ktorý preskočí kompresné rungy ladder ktoré dopredu vieme že padnú. Compression semaphore process-wide (07b4cf6) aby paralelné push-y zo stejnej replikácie nezahltili sharp. (6) Subvendor — atomický upload guard zabraňuje race conditions pri paralelných uploadoch toho istého vendora; matching perf cleanup vďaka cieleným indexom (subvendor matching tabuľky). (7) Ecommerce UI — unifikovaná veľkosť KPI hodnôt naprieč všetkými dashboardmi (currency analytics aj ostatné), currency analytics hardening proti chýbajúcim/chybným kurzom. (8) Production hardening sweepy — 50+ iterácií /loop hardening pre manual upload vendora, ERP transfer auto-resync, Grandus product status filter, kategória↔template linkage, AI parametric template matching, per-product transfer block, Grandus image compression, manuálne kategórie DnD. Každý sweep priniesol opravu race-conditions, lepšie idempotency garancie a tighter validačné invariants.