components/providers/intl-provider.tsx keeps its own static ALL_MESSAGES map separate from i18n/request.ts's server-side loader. It was missed when ar was added, so switching to Arabic flipped to RTL (direction.ts knew about ar) but rendered English text (messages lookup fell through to the en fallback).