- Spegnimento
- 26 agosto 2026 alle ore 03:39 UTC
- Autore
- kamo
- Impegno
- dba4d98
MemberListProvider ha restituito nullo fino a quando il suo effetto di montaggio ha funzionato, e si trova sopra NavTop E {bambini} — in modo che una linea abbia mantenuto l'applicazione autenticata ENTIRE fuori dalla server-rendered HTML. Il documento era ~1.23 MB che trasportava quasi nessun markup: niente dipinto fino a quando il guscio di radice non aveva scaricato, analizzato e idratato, e PageSpeed ha riferito nessun elemento LCP perché non c'era nulla da misurare. Verificato costruendo e servendo l'app, non ragionando su di esso. Contro il costruito server standalone, / ora restituisce 200 con 16,033 byte di DOM reale attraverso 152 elementi — due intestazioni, dieci pulsanti, "My Businesses / My Profile / Log out" — dove /validate, su che AuthedChrome rende deliberatamente i bambini nudo, restituisce 1,622 byte attraverso 16. Questa differenza è il guscio, ed è ora nel HTML. Sicuro perché entrambi i valori NavTop riceve sono deterministici — membri e openNodes entrambi avviare come {} — quindi l'output del server e il primo client render concordano per costruzione. Nulla qui sotto legge un browser globale durante il rendering; script/check-sr-safe.mjs lo dimostra e funziona in npm test. Nota cosa questo NON cambia: CaricamentoProvider inizia ancora èCarico vero, quindi il marchio splash copre il guscio per i suoi 500 ms. Il nav è ora dietro quella schizzata piuttosto che assente, che è il prerequisito per la decisione splash che vale la pena prendere affatto. Lo stesso esercizio ha trovato un vero bug seduto dietro il cancello. React non può serializzare un classe istanza da un componente server in un client uno, e il layout FALLBACK l'organizzazione è costruita con Organizzazione. daJSON — un vero esempio. Il cammino felice mai colpirlo perché fetchOrganization ritorna `await res.json()`, già semplice e semplice cast. Quindi il fallback che esiste per mantenere l'applicazione utilizzabile quando l'organizzazione cattura fallisce invece stava abbassando l'intero documento con un 500. L'ho colpito direttamente: con il backend irraggiungibile, / restituito 500 "Solo oggetti semplici... può essere passato al cliente Componenti". Fisso diffondendosi in un oggetto normale al confine, che copre entrambi i percorsi. OrgProvider già ri-idrata tutto ciò che è consegnato — E' un caso di organizzazione dell'organizzazione? — quindi un oggetto normale è esattamente quello che si aspetta, ed è quello che la produzione ha sempre inviato Ecco. Il secondo, inline fallback alla chiamata SessionProvider era irraggiungibile (il blocco sopra di esso già garantisce un'organizzazione non-null) ed è andato. Verificato: la produzione riesce; / e /validate entrambi restituiscono 200 dal costruito server; tsc --noEmit clean; tutte le 10 guardie passano.