SPA navigation to a translated page could show {t:page.title} in the browser tab while the page body was already translated. X-STX-Title was captured before the final i18n response pass.
Translate the fragment title header during that pass using the destination locale, preserving plain text and URI encoding. Escape before translation and decode afterward so literal entities, quotes, ampersands, percent signs and Unicode retain their text. Non-fragment responses keep their existing behavior.
Validation:
- A real HTTP regression first failed for English, German and fallback locales. All four cases now pass, including the literal-title control.
- Related fragment, runtime, cache and response-header tests: 23 passed, 0 failed, 75 assertions.
- Source and test lint plus full source typecheck pass. A frozen install restored the source checkout's already-locked Craft SDK before the successful typecheck.
- Independent Spec and Standards reviews are clean. Full exact-head CI is pending; no full local suite was started below the retained 4 GB disk floor.
Reproduced while upgrading Open Farming to source-released BunPress. This fixes the shared engine; no dependency patch is involved. A source patch release and downstream browser verification follow successful CI.