- Spegnimento
- 26 agosto 2026 alle ore 01:26 UTC
- Autore
- kamo
- Impegno
- c8d0f21
Batch 3 dell'audit delle prestazioni lato cliente. Il layout radice ha passato ogni messaggio a NextIntlClientProvider su ogni percorso. The catalogo è compatto 1.05 MB — 1.16 MB una volta RSC lo inlinea come una stringa sfuggita literal, 328 KB gzip / 250 KB brotli — più ~16 ms di JSON.parse su una CPU desktop e circa 95 ms a PageSpeed's 6x throttle, prima di qualsiasi di esso viene utilizzato. /validate e /logout hanno bisogno di due stringhe di esso. AuthedChrome restituisce i bambini nudo su entrambi, nessuno dei componenti della shell montati sopra di esso traducono nulla, e l'unico testo tradotto sullo schermo è app/loading.tsx due `loading.*` chiavi — verificate da scansione di ogni file che rende su quei percorsi. Ogni segnale passa attraverso /validate, così il handoff trasportava 1.16 MB di documento per due stringhe. Un componente server non può vedere il proprio percorso — intestazioni() trasporta ciò che il client ha inviato, e il cliente non invia il nome del percorso — quindi proxy. ts ora francobolli x-kamo-pathname sui due siti di ritorno che servono documenti, e il layout lo legge dalle intestazioni() lo chiamano stava già facendo. La direzione fallback è la parte che conta. Quando l'intestazione è assente il layout invia il catalogo FULL, mai una fetta vuota. Un namespace mancante non lancia e non avverte: IntlErrorHandler sopprime MISSING MESSAGE e il suo getMesageFallback restituisce la chiave, così il membro avrebbe semplicemente vedere `loading.preparingWorkspace` dove La prosa appartiene. Definire tutto significa cambiare un matcher o una nuova distribuzione la forma si degrada esattamente al comportamento di oggi invece che alle chiavi tratteggiate in una pagina ogni segnale passa attraverso. Aggiunge un test per la stessa ragione. Esegue la scansione delle pagine pre-sessioni per `t letterale('ns....')` namespaces e non riesce se qualsiasi cade al di fuori della fetta, in modo da aggiungere una stringa tradotta a il segno-in handoff è catturato in tempo di prova piuttosto che visto da un membro. Confermato non vacuo: lo scanner trova il namespace `loading` che dovrebbe e inietta un estero namespace in load.tsx fa fallire. Questa è volutamente la versione stretta. Slicing per-route su tutti i 143 percorsi è vale più volte di più, ma ha bisogno di una passeggiata AST su ogni usoTraduzioni chiamata sito e una guardia di costruzione contro argomenti namespace non letterali — lo stesso silenzio modalità di guasto, diffusa in tutto il prodotto. Non c'e' niente da sbarcare Qualsiasi altra cosa. Verificato: tsc --noEmit pulito su ogni file in questo cambiamento; tutti gli 8 script di guardia passano; il nuovo test passa e fallisce correttamente sotto un controllo negativo.