- Shipped
- 26. August 2026 um 01:26 UTC
- Author
- kamo
- Commit
- c8d0f21
Batch 3 der Client-seitigen Leistungsprüfung. Das Root-Layout gab jede Nachricht an NextIntlClientProvider auf jeder Route weiter. Die Katalog ist 1.05 MB kompakt . 1.16 MB einmal RSC inlines es als entflohener String literal, 328 KB gzip / 250 KB brotli - plus 16 ms JSON.parse auf einer Desktop-CPU und etwa 95 ms bei PageSpeed 6x Gas, bevor eines davon verwendet wird. /validate und /logout benötigen zwei Strings davon. AuthedChrome bringt Kinder nackt zurück beide, keine der darüber montierten Shell-Komponenten übersetzen etwas, und die einzige Übersetzter Text auf dem Bildschirm ist die beiden "Laden".*-Tasten" von app/loading.tsx Scannen Sie jede Datei, die auf diesen Pfaden wiedergibt. Jeder Anmeldedurchgang geht durch /validate, so dass die Handoff 1,16 MB Dokument für zwei Strings bei sich trug. Eine Server-Komponente kann ihren eigenen Pfad nicht sehen - Header() trägt das, was der Client gesendet hat, und der Client sendet keinen Pfadnamen - also stempelt jetzt x-kamo-pathname auf die beiden Rückkehr-Websites, die Dokumente dienen, und das Layout liest es von den Headern() nennen war bereits gemacht. Die Rückfallrichtung ist der Teil, der zählt. Wenn der Header fehlt das Layout sendet den FULL-Katalog, nie eine leere Scheibe. Ein fehlender Namespace wirft nicht und warnt nicht: IntlErrorHandler unterdrückt MISSING_MESSAGE und seinen getMessageFallback gibt den Schlüssel zurück, so dass das Mitglied einfach "loading.preparingWorkspace" sehen würde Prose gehört. Verzug auf alles bedeutet einen Matcherwechsel oder einen neuen Einsatz Shape degradiert sich zu genau dem heutigen Verhalten statt zu gepunkteten Tasten auf der einen Seite Jeder Anmeldegang geht durch. Fügt einen Test aus dem gleichen Grund. Es scannt die Pre-Sessions-Seiten nach wörtlichem "t('ns....') " namespaces und scheitert, wenn irgendwelche außerhalb der Scheibe fallen, so dass das Hinzufügen einer übersetzten Zeichenkette zu die Anmelde-Handoff wird zur Testzeit eingefangen und nicht von einem Mitglied gesehen. Bestätigt nicht-vacuous: der Scanner findet den "Loading"-Namensraum, den er sollte, und injiziert ein Fremder Namespace inload.tsx lässt es scheitern. Das ist absichtlich die schmale Version. Das Zuschneiden pro Strecke über alle 143 Strecken ist ein Vielfaches mehr wert, aber es braucht einen AST-Spaziergang über jeden GebrauchÜbersetzungen-Anruf Website und ein Build-Schutz gegen nicht-literal Namenspace Argumente - die gleiche still Ausfallmodus, verteilt über das gesamte Produkt. Nicht etwas, um nebenlanden irgendetwas anderes. Verifiziert: tsc --noEmit sauber über jede Datei in dieser Änderung; alle 8 Wachskripte passieren; der neue Test besteht und versagt unter einer negativen Kontrolle korrekt.