# Munkamenet és kosár betöltésének helyreállítása

A kezdeti session/kosár GET egyszeri hálózati hibája után a korábbi UserContext befejezte a betöltést, de sem a lap láthatóvá válásakor, sem a kapcsolat helyreállásakor nem próbálkozott újra. Emiatt az oldal üres kezdeti állapotban maradhatott akkor is, amikor a szerveren a session mentése sikerült.

A `startSessionHydration` legfeljebb két újrapróbálást engedélyez hálózati/időtúllépési és 5xx hibánál. Látható, online lapon 750 és 2000 ms késleltetést használ. Rejtett vagy offline lapon megvárja a `visibilitychange`/`online` eseményt; az esemény csak sikertelen betöltés után és a próbálkozási kereten belül indít GET-et. Sikeres vagy végleges hibával lezárult kérés után nincs újratöltés. 401 esetén a meglévő tokeneltávolítás marad, 4xx vagy alkalmazáshiba nem indul újra.

Minden próbálkozás a kosárműveletek meglévő sorában fut, a válasz alkalmazásával együtt. Kosárba helyezést, törlést vagy rendelésküldést nem ismétel. A token minden próbálkozáskor frissen kerül kiolvasásra. Unmountkor a várakozó timer/listenerek megszűnnek, egy régi kérés eredménye nem írja felül az új állapotot. A meglévő hibajelentések megmaradnak; az újrapróbálás nem igazolja visszamenőleg a hiba okát.

Vizsgálat: WebKit 26.6 Windows alatt, iPhone-emulációval és natív WebKit inaktív/láthatatlan lapállapottal. Ez nem fizikai iPhone/iOS. A felhasználó által megjelölt fiókhoz külön tesztmunkamenetet használtunk, jelszóváltoztatás és rendelés nélkül. Normál és háttérbeli kérések sikeresek voltak. A szerver 200 / kliens network hibamintát szándékos válaszkézbesítési megszakítással reprodukáltuk; ez nem bizonyítja a konkrét ügyfélhiba eredeti okát.

Teszt: `node tests/session-hydration.test.cjs`, `node tests/cart-requests.test.cjs`, `node tests/purchase-alerts.test.cjs`, production build, WebKit ellenőrzés a staged és az éles frontenddel.
