ذكاء اصطناعيقراءة دقيقتين

Claude Code 2.1.296 يصلح خللًا كان يستبدل كل حرف غير ASCII في الملفات غير المحفوظة بـ UTF-8

المغزى

المغزى: تعديل يظهر في الـ diff على أنه سطر واحد قد يكون أعاد كتابة كل حرف عربي في ملف قديم، والإصلاح الصحيح كان رفض التعديل لا تخمين الترميز.

نشرت Anthropic في 9 أكتوبر 2026 الإصدار 2.1.296 من Claude Code. وفي سجل التغييرات بند يخص كل من يعمل على ملفات قديمة بلغات غير الإنجليزية: أداتا Edit وNotebookEdit كانتا تستبدلان كل حرف غير ASCII في الملفات التي ليست UTF-8 صحيحًا. ويذكر السجل أمثلة على هذه الترميزات: Windows-1252 وShift-JIS وGBK. والإصلاح أن مثل هذه التعديلات تُرفض الآن.

ولا يذكر السجل ترميز Windows-1256، وهو ترميز Windows القديم للعربية. لكن الملف العربي المحفوظ به ليس UTF-8 صحيحًا، فيقع في الوصف نفسه.

والآلية بسيطة. فحين يُقرأ ملف على أنه UTF-8 وهو ليس كذلك، يُستبدل كل بايت لا يمكن فك ترميزه بحرف بديل. ثم تُكتب النتيجة إلى القرص بعد التعديل، فيصبح الفقد دائمًا. وفي ملف عربي، يعني ذلك أن كل الحروف العربية تختفي، لا السطر المعدّل وحده. وقد عالج Claude Code قبل أسابيع خللًا آخر كان يحذف حرفًا خفيًا من النصوص العربية.

واختار الإصلاح رفض التعديل بدل محاولة تخمين الترميز. والتخمين قد يفسد الملف دون أي إشارة، أما الرفض فيُبلغ المستخدم بأن هناك مشكلة.

وفي الإصدار نفسه بند أمني ثانٍ. ففحص الأذونات في Bash كان يوافق تلقائيًا على بعض الأوامر التي تسند قيمة إلى متغير الـ shell المسمى BASH_ARGV0 ثم تستخدمه. والآن تطلب هذه الأوامر موافقة المستخدم. والخلل من نوع معروف: الفحص يقرأ نص الأمر، بينما يمكن أن يتغير ما يُنفَّذ فعليًا عبر متغير.

ويظهر في سجل npm أن الوسم stable ما زال عند 2.1.287، بينما الوسم latest عند 2.1.296. والتثبيت الافتراضي يأخذ latest، أي أن التثبيت الافتراضي يحصل على الإصلاحين مباشرة، ومن ثبّت الأداة على stable لا يحصل عليهما بعد.

المصادر

  1. سجل تغييرات Claude Code
  2. صفحة الحزمة على npm، وفيها الوسمان stable وlatest
  3. توثيق أداة file لمعرفة ترميز الملف
  4. جدول ترميز Windows-1256 العربي

من عدد السبت 29 ربيع الآخر - 10 أكتوبر

أخبار ذات صلة

أخبار السبت 29 ربيع الآخر - 10 أكتوبر