#543 closed the shared SafeText display path, but notifications, AI Insights summaries, cost labels, and support-report text still sliced UTF-16 code units and could leave a lone high surrogate (half an emoji) at the bound. Route those truncations through SafeText.truncatedText and cover each site with a regression test.
9 files changedLine totals unavailable