Clean the console, and restore the static rendering I broke

Fixkamo-marketing
Ya
20 Agosti 2026, 04:58 UTC
Mwandishi
Kamo
Ahadi ya
0e42ef7

Three things from the console, one of them much bigger than the other two. THE BIG ONE. Chasing the "Fetch failed loading" lines led to the prefetch payload, and it was 222 bytes of bare route tree with no segment or chunk references. The build's route table said why: 74 routes had flipped from ● to ƒ. I caused that two commits ago. Making Footer a server component means it resolves its own copy with getTranslations, and asked without a locale in scope next-intl falls back to reading request headers — one read, and the whole route leaves static generation. The parent locale layout calling setRequestLocale is not enough; next-intl needs it in every layout and page that renders translated content, because RSC does not guarantee a parent finishes before its children start. (pages)/layout.tsx now calls it. dynamic 74 -> 38 (the rest are API routes, the KB routes and the feed, SSG 3 -> 39 all of which are correctly dynamic) /en/pricing prefetch: 222 bytes, 0 chunk refs -> 77,521 bytes, 23 chunk refs Nothing about that is visible in the app — pages render, copy is right, tests pass. It only shows up as every navigation starting cold. So it gets a guard: scripts/check-static-routes.mjs reads the build's own prerender manifest and fails if any of six sentinel routes stops being prerendered, with the cause and the fix in the message. It runs on postbuild and in npm test. This codebase has lost static rendering twice now to the same mechanism; a comment was clearly not enough. THE CSP WARNING. "The Content Security Policy directive 'upgrade-insecure-requests' is ignored when delivered in a report-only policy." Correct — it is a loading behaviour rather than a restriction, so report-only cannot act on it. Copying every enforced directive into the report-only header was lazy; that one is now filtered out and stays only in the enforced policy. THE WELCOME MESSAGE. ConsoleMessage existed to print a branding line on every page load. Removed, component and all — a console that is supposed to be clean cannot also be a place to say hello. Not changed, and worth naming: the "Fetch finished/failed loading" lines are DevTools verbose-level network entries rather than errors, and the failures are prefetches the router aborts when a link leaves the viewport. All 27 links on the homepage return 200 and the chat widget's site key is present. They will stop appearing when the console's Verbose level is unticked.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei