Claude Code 2.1.247 يرفض أسماء plugins تحتوي على حروف غير مرئية
الاسم الذي يظهر على الشاشة قد لا يكون الاسم الذي يتعامل معه الجهاز، وكل قرار ثقة مبني على اسم مكتوب يحتاج إلى تنظيف ذلك الاسم قبل عرضه.
نُشر الإصدار 2.1.247 من Claude Code على npm في 26 أغسطس 2026، وفيه بندان يعالجان المشكلة نفسها من جهتين.
البند الأول: صارت أسماء الـ plugins التي تحتوي على control characters أو حروف غير مرئية مرفوضة، وصار النص القادم من الـ marketplace يُعرض بطريقة آمنة. والبند الثاني: أي رابط في الـ terminal يبدأ بحرف غير مرئي، أو يحتوي على control character، أو يشير إلى مسار شبكة، صار يُعرض نصًا عاديًا لا رابطًا قابلًا للنقر.
والمشكلة التي يعالجها البندان أن الاسم الظاهر للمستخدم قد يختلف عن الاسم الفعلي. ففي Unicode حروف عرضها صفر، لا تظهر على الشاشة لكنها موجودة داخل النص وتُحتسب فيه. وبذلك قد يبدو اسمان متطابقين حرفًا بحرف أمام العين، بينما هما عند الجهاز اسمان مختلفان تمامًا.
فيقرأ المستخدم الاسم ويظنه الـ plugin الذي يعرفه، ويوافق على تثبيته، فيُنزَّل شيء آخر. والأمر نفسه ينطبق على الروابط، حين يقول النص المعروض شيئًا ويشير الرابط الفعلي إلى وجهة أخرى.
والفكرة تتجاوز Claude Code نفسه. فكل نقطة يُتخذ فيها قرار ثقة بناءً على اسم مكتوب، سواء كانت extensions في VS Code أو أسماء حزم على npm أو أي marketplace آخر، تحتاج إلى تنظيف الاسم قبل عرضه، لا بعد الموافقة عليه.
ويتضمن الإصدار نفسه أمرًا جديدًا باسم /claude-api cost-optimize، يحلل إنفاق مشروع على الـ API ويمر على محاور التوفير واحدًا تلو الآخر: الـ caching، وحجم الـ tokens، والـ batch، واختيار النموذج.