تظهر وسوم الإيموجي الحالية كجديدة في محرر النص، وتختفي الوسوم الجديدة بعد النشر

وجدت سلوكاً غير متسق مع وسوم الإيموجي في محرر الموضوع، واستطعت إعادة إنتاج المشكلة على فرع main غير المعدل عند الرمز 802125b979b5bb848a7cfc52409ef3176ffd4d82.

بالنسبة لوسم إيموجي موجود مسبقاً، قد يؤدي كتابة اسمه إلى ظهور خيار إنشاء بدلاً من الوسم الموجود وعدد استخدامه. اختيار هذا الخيار والنشر يظل يربط بالوسم الموجود. أما وسم إيموجي جديد تماماً فهو حالة منفصلة: يمكن اختياره في المحرر، لكنه يختفي بعد النشر.

لإعادة إنتاج مشكلة الوسم الموجود:

  1. استخدم موقعاً يحتوي على وسم إيموجي موجود مسبقاً، مثل 😊، بالإضافة إلى وسوم أخرى مستخدمة بشكل أكثر تكراراً.
  2. افتح محرر الموضوع وأدخل اسم وسم الإيموجي.
  3. إذا كان هذا الوسم خارج حد الوسوم الشائعة المُعاد، فسيظهر القائمة المنسدلة خيار إنشاء ووسوم شائعة غير ذات صلة، دون عرض عدد استخدامات الوسم الموجود.
  4. اختر خيار الإنشاء، وانشر الموضوع، ثم حدّث الصفحة. لا يزال الموضوع يستخدم سجل الوسم الأصلي.

في اختبار متصفح معزول، استخدمتُ وسم إيموجي موجوداً بعداد 17، ووسماً غير ذي صلة بعداد 100، وحد بحث قدره 1. أظهرت القائمة المنسدلة Create: '😊' وpopular x100؛ وبعد النشر، تم إعادة استخدام وسم الإيموجي الموجود بشكل صحيح. في غياب سجل 😊 موجود مسبقاً، أعادت نفس العملية HTTP 200 لكنها لم تحفظ أي وسم.

السبب يكمن في DiscourseTagging.clean_tag، الذي يُستخدم لكل من مصطلحات البحث وحفظ الأسماء الجديدة. يقوم هذا الدالة بإزالة أحرف الإيموجي. ثم يعتمد البحث على النتائج الشائعة كحل بديل، بينما يمكن للحفظ أن يجد وسمًا موجودًا باسمه الأصلي قبل تنظيف الأسماء الجديدة.

لدي تصحيح صغير يحافظ على رموز الإيموجي الكاملة المعترف بها بواسطة بيانات Emoji.unicode_replacements الموجودة. يحتفظ بالتصفية الحالية للأحرف ASCII ويزيل الأحرف غير الصالحة من النصوص غير المتعلقة بالإيموجي. كما يتيح للمقترحات الخاصة بالوسوم المعطلة أن تطابق بداية الاسم، لأن تعبير حد الكلمة الحالي يفوت أسماء تبدأ بإيموجي مثل 😊-restricted.

يعيد التصحيح تغيير ملفي تنفيذ ويضيف تغطية للتراجع في ثلاثة ملفات اختبار. لا يضيف هجرة قاعدة بيانات، أو تغييرات الواجهة الأمامية، أو واجهة برمجة تطبيقات جديدة، أو ذاكرة تخزين مؤقت إضافية للإيموجي.

التحقق المحلي: نجحت 572 مثالاً مرتبطاً بالخلفية و8 أمثلة للمتصفح. تفحص اختبارات المتصفح أن وسم الإيموجي الموجود يعرض x17، وأن كلًا منه ومن وسم 😊 الجديد تمامًا يبقى بعد النشر والتحديث.

تحديث — 23 أكتوبر 2026

تم الآن تقديم الإصلاح كـ طلب سحب #44994: FIX: Preserve emoji tags during search and saving وهو جاهز للمراجعة.

نجح CI الكامل على استنساخي الخاص (fork): جميع وظائف مصفوفة الاختبار العشر، وفحص التنسيق، وفحوصات الترخيص.

لهذه الجولة، استخدمت فرع تحقق منفصلًا بنفس الإصلاح وزدت مهلة مهمة الاختبار من 20/30 دقيقة إلى 90 دقيقة، نظرًا لانتهاء المهلة في الجولة السابقة على مشغل الاستنساخ. بقيت أوامر الاختبار والمصفوفة والادعاءات دون تغيير. تعديل المهلة ليس جزءًا من طلب السحب العلوي (upstream PR). لم يتم دمج الطلب بعد؛ ما زال CI العلوي بانتظار موافقة المسؤول.

فرع التصحيح:

تقارير ومناقشات ذات صلة:

تصف هذه التقارير قيود وسوم الإيموجي السابقة. يتناول هذا التصحيح أعطال البحث والحفظ في المحرر التي أُعيد إنتاجها أعلاه؛ ولا يدعي حل جميع مشاكل وسوم الإيموجي.