تعزيز إضافة Cron ومحاذاة المخططات
السياق
تُظهر سجلات Gateway الحديثة تكرار إخفاقاتcron.add مع معاملات غير صالحة (غياب sessionTarget وwakeMode وpayload، وتشويه schedule). يشير ذلك إلى أن عميلًا واحدًا على الأقل (على الأرجح مسار استدعاء أداة الوكيل) يرسل حمولات مهام مُغلَّفة أو محددة جزئيًا. وبشكل منفصل، يوجد تباين بين تعداد مزوّد cron في TypeScript، ومخطط Gateway، وأعلام CLI، وأنواع نماذج واجهة المستخدم، إضافةً إلى عدم تطابق في واجهة المستخدم لـ cron.status (تتوقع jobCount بينما يعيد Gateway jobs).
الأهداف
- إيقاف ضوضاء
cron.addمن نوع INVALID_REQUEST عبر توحيد أشكال التغليف الشائعة واستنتاج حقولkindالمفقودة. - محاذاة قوائم مزوّدي cron عبر مخطط Gateway، وأنواع cron، ووثائق CLI، ونماذج واجهة المستخدم.
- جعل مخطط أداة cron الخاصة بالوكيل صريحًا بحيث ينتج نموذج اللغة الكبير (LLM) حمولات مهام صحيحة.
- إصلاح عرض عدد مهام حالة cron في واجهة التحكم.
- إضافة اختبارات لتغطية التوحيد وسلوك الأداة.
غير الأهداف
- تغيير دلالات جدولة cron أو سلوك تنفيذ المهام.
- إضافة أنواع جداول جديدة أو تحليل تعابير cron.
- إعادة تصميم واجهة المستخدم/التجربة لـ cron بما يتجاوز إصلاحات الحقول اللازمة.
النتائج (الفجوات الحالية)
- يستبعد
CronPayloadSchemaفي Gateway كلًا منsignal+imessage، بينما تتضمنها أنواع TypeScript. - تتوقع CronStatus في واجهة التحكم
jobCount، لكن Gateway يعيدjobs. - يسمح مخطط أداة cron الخاصة بالوكيل بكائنات
jobاعتباطية، ما يتيح مدخلات مشوّهة. - يتحقق Gateway بصرامة من
cron.addدون توحيد، لذا تفشل الحمولات المُغلَّفة.
ما الذي تغيّر
- يقوم
cron.addوcron.updateالآن بتوحيد أشكال التغليف الشائعة واستنتاج حقولkindالمفقودة. - أصبح مخطط أداة cron الخاصة بالوكيل مطابقًا لمخطط Gateway، ما يقلل الحمولات غير الصالحة.
- تمت محاذاة تعدادات المزوّدين عبر Gateway وCLI وواجهة المستخدم ومنتقي macOS.
- تستخدم واجهة التحكم حقل عدد
jobsمن Gateway للحالة.
السلوك الحالي
- التوحيد: يتم فك تغليف حمولات
data/job؛ ويُستدل علىschedule.kindوpayload.kindعندما يكون ذلك آمنًا. - القيم الافتراضية: تُطبَّق قيم افتراضية آمنة لـ
wakeModeوsessionTargetعند الغياب. - المزوّدون: تُعرض Discord/Slack/Signal/iMessage الآن بشكل متسق عبر CLI/واجهة المستخدم.
التحقق
- راقب سجلات Gateway لرصد انخفاض أخطاء INVALID_REQUEST من نوع
cron.add. - أكّد أن حالة cron في واجهة التحكم تُظهر عدد المهام بعد التحديث.
متابعات اختيارية
- اختبار يدوي لواجهة التحكم: إضافة مهمة cron لكل مزوّد + التحقق من عدد مهام الحالة.
أسئلة مفتوحة
- هل ينبغي أن يقبل
cron.addقيمةstateصريحة من العملاء (مرفوضة حاليًا بواسطة المخطط)؟ - هل ينبغي السماح بـ
webchatكمزوّد تسليم صريح (مُرشَّح حاليًا في حلّ التسليم)؟