
Cotton
Translation workflow
تحويل الترجمات المولَّدة إلى نتائج قابلة للمراجعة.
سير عمل لترجمة حوارات الألعاب.
حالة تسابق وجدتها المراجعة، ومهام متعثرة أُعيدت بحسب السبب
حالة تسمّي سياستها وإيداعها Claude للتطبيق وCodex للمراجعة، وحالة جعلت المهام المتعثرة قابلة للتشخيص.
May 19, 2026
أُصلح تغيير يوقف العمل عند نفاد الحصة في طلب الدمج نفسه، بما في ذلك حالة التسابق التي وجدتها المراجعة
شخصشخص
فعلإيقاف الإنفاق عند نفاد الحصة · بلا fallback تلقائي
- تسليمقيد التطبيق→ تطبيق checkpoint · الإيقاف · الاستئناف اليدوي (Claude)
وكيل البرمجةClaude
فعلتطبيق checkpoint · الإيقاف · الاستئناف اليدوي
- تسليممراجعة في طلب الدمج نفسه→ الملاحظة: حالة تسابق · انتقالات حالة مكررة (Codex)
المراجعة · التحققCodex
ملاحظة · نتيجةالملاحظة: حالة تسابق · انتقالات حالة مكررة
- أُعيدالتسابق · عدم التأثر بالتكرار→ في طلب الدمج نفسه: قفل الصف · مفتاح درجة فريد · انتقال ذرّي (طلب الدمج نفسه)
المُخرَجاتطلب الدمج نفسه
مُخرَجفي طلب الدمج نفسه: قفل الصف · مفتاح درجة فريد · انتقال ذرّي
- تسليم→ fixture محلي · سجلات فحص تكامل DB (طلب الدمج نفسه)
المُخرَجاتطلب الدمج نفسه
مُخرَجfixture محلي · سجلات فحص تكامل DB
- ليس تنفيذًا مسجّلًاالنطاق المفحوص→ لم تُجمع نتائج CI جديدة ولا نتائج نشر في الإنتاج (طلب الدمج نفسه)
المُخرَجاتطلب الدمج نفسه
قاعدة · غير متحقَّق منهالم تُجمع نتائج CI جديدة ولا نتائج نشر في الإنتاج
- السياق
- كان الشرط الذي وضعه شخص هو إيقاف الإنفاق حين تنفد الحصة، بلا fallback تلقائي. وطبّق Claude الـ checkpoint والإيقاف والاستئناف اليدوي، ووجدت مراجعة Codex التي شُغّلت عبر MCP المشروع حالة تسابق وتكرارًا في انتقالات الحالة.
- النتيجة
- تجري انتقالات الدخول والاستئناف داخل قفل، وتحمل درجات الحَكَم مفتاحًا فريدًا يمنع التكرار، وضُبطت حدود المعاملة. ولا يعني هذا إزالة كل حالات التسابق.
- الحد
- يذكر الإيداع 140 فحصًا ويذكر CHANGELOG التكامل اللاحق 160، لذا لا يُدمجان في عدد تشغيل واحد. وبحسب السياسة، مراجعة Codex خطوة محلية اختيارية، فلا يعني هذا أن كل طلب دمج سابق مرّ بها.
المصادر والحدود المتبقية
- تسجّل السياسة الترتيب: يطبّق Claude، ويراجع Codex محليًا عبر MCP المشروع، وتُرفق المراجعة بطلب الدمج، ويُحقَّق في الخلافات مع وكيل المراجعة لدى Claude. وكانت مراجعة Codex التلقائية في CI مؤجلة.
- تستخدم فحوص التطوير fixtures وmocks، وتحتاج استدعاءات النماذج الحقيقية إلى نطاق خاص بها. وتُضمّ ملاحظات المراجعة إلى طلب الدمج نفسه وتُدمج بـ squash من feature → main.
May 26, 2026
جُعلت المهام المتعثرة قابلة للتشخيص وأُعيدت بحسب السبب
قيد التطويرworker الترجمة · الطابور
ملاحظة · نتيجةمهام متروكة في draft · استُنفدت المحاولات
- تسليمالقيم المرصودة→ مطابقة failedReason · رموز الخروج · حالة draft (المطوّر)
شخصالمطوّر
فعلمطابقة failedReason · رموز الخروج · حالة draft
- تسليم→ السبب: تتعارض NODE_OPTIONS الموروثة في العمليات الفرعية (المطوّر)
شخصالمطوّر
ملاحظة · نتيجةالسبب: تتعارض NODE_OPTIONS الموروثة في العمليات الفرعية
- أُعيدتعارض الخيارات الموروثة→ إزالة NODE_OPTIONS · حد للتزامن لكل عملية (تغييرات الشيفرة)
جلسة العملتغييرات الشيفرة
فعلإزالة NODE_OPTIONS · حد للتزامن لكل عملية
- تسليم→ حالة الطابور: waiting · active · failed · stale (تغييرات الشيفرة)
جلسة العملتغييرات الشيفرة
فعلحالة الطابور: waiting · active · failed · stale
- تسليم→ مسح المهام الراكدة: غائبة عن الطابور مقابل محاولات مستنفدة، مع التفرّع بحسب وجود نتيجة (تغييرات الشيفرة)
جلسة العملتغييرات الشيفرة
فعلمسح المهام الراكدة: غائبة عن الطابور مقابل محاولات مستنفدة، مع التفرّع بحسب وجود نتيجة
- تسليمدورة واحدة→ مسح التطوير: 200 مرشح → نقل 106 · إعادة 2 إلى الطابور · 0 أخطاء (المُخرَجات)
المُخرَجاتالمُخرَجات
مُخرَجمسح التطوير: 200 مرشح → نقل 106 · إعادة 2 إلى الطابور · 0 أخطاء
- ليس تنفيذًا مسجّلًاحدود التفسير→ الـ106 ليست ترجمات ناجحة (المُخرَجات)
المُخرَجاتالمُخرَجات
قاعدة · غير متحقَّق منهاالـ106 ليست ترجمات ناجحة
- السياق
- كشفت مطابقة failedReason في BullMQ ورموز خروج العمليات الفرعية والمهام المتروكة في draft أن NODE_OPTIONS الموروثة تتعارض في العمليات الفرعية. وبعد ذلك صار الوضع نفسه مرئيًا حالةً في الطابور.
- النتيجة
- تُقسَم المهام المتعثرة إلى غائبة عن الطابور وأخرى استنفدت محاولاتها، وتنتقل الأخيرة مع سبب إلى needs_review أو needs_credential بحسب وجود نتيجة. وتبقى المراجعة البشرية قائمة.
- الحد
- حد التزامن لكل عملية. ولم تتوفر سجلات التشغيل الأصلية في المواد المراجَعة، وحُذفت أرقام زمن الاستجابة لأن النماذج والجهد المطلوبين لم يُسجَّلا. وشيفرة البناء والإصدار وحدها ليست دليلًا على نشر عام.
المصادر والحدود المتبقية
- يسجّل CHANGELOG اقتراحًا لفروع adapter متوازية، لكنه لا يتحول إلى سجل لتنفيذ متوازٍ فعلي.
- لا تُفصَّل بقية الـ200 في هذا السجل.