MentionTextarea inserted raw agent names (e.g. @Sarah Chen) but the backend regex captured only the first word (@Sarah), causing mention resolution to fail silently. Moved canonicalMentionHandle to shared/ so the renderer can produce space-free handles that the backend resolves correctly.