نشرت Agno الإصدار v3.0.3 في 30 أغسطس عند 20:45:21 بتوقيت UTC، مع طرح مجموعة أدوات لإدارة المعرفة. ثم نشرت v3.0.4 عند 22:40:41 بتوقيت UTC — أي بعد ساعة وخمس وخمسين دقيقة — واستخدمت هذا الإصدار التصحيحي لإعادة كتابة الواجهة العامة لمجموعة الأدوات.

ما الذي تغيّر في إصدار تصحيحي

ثلاثة أشياء لا تنتمي إلى إصدار تصحيحي. فقد انتقل مسار الوحدة، من دون ترك أي shim للتوافق. وأُعيدت تسمية أربعة أعلام للبناء. كما أن طريقة تعامل منشئ الكائن مع وسائط الكلمات المفتاحية غير المعروفة تعني أن الأسماء القديمة لا تُرفض — بل تُتجاهل بصمت.

لماذا يفعل الصمت ما لا يفعله الجهر، وبشكل سيئ

هذه التفصيلة الأخيرة هي الأخطر. إذا أدّى تغيير اسم علم إلى خطأ، فإن كل عملية نشر متأثرة ستفشل بصوت عالٍ عند بدء التشغيل، وسيُصلحها أحدهم خلال دقائق. أما إذا جرى إسقاط الاسم القديم بهدوء، فإن المنشئ يعود إلى قيمته الافتراضية الخاصة به — ويحصل المشغّل الذي كتب علمًا خصيصًا لتعطيل قدرة ما على أن تصبح تلك القدرة مفعّلة بعد الترقية، من دون خطأ أو تحذير أو سطر في السجل. تبدو الترقية وكأنها نجحت. لكن الإعدادات التي كانت تحملها لا تنجو منها.

البند الذي يبدو إصلاحًا أمنيًا

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

ما يخطئ فيه الإطار الشائع

يُقرأ الإصدار الدلالي على نطاق واسع باعتباره عقدًا: أي زيادة في رقم patch تعني أنه آمن للتحديث. هنا يغطي رقم patch نقل وحدة من دون shim، وإعادة تسمية أربعة أعلام، وتغيير القيمة الفعلية الافتراضية — وهو تعريف تغيير كاسر للتوافق. وكانت لدى المشروع معرفة بالمبدأ: إصدار أسبق في اليوم نفسه جادل بوجوب رفض وسائط الكلمات المفتاحية التي يُتجاهلها بصمت بدل ابتلاعها. جرى التصريح بالموقف ثم لم يُطبّق على إعادة التسمية الخاصة به بعد ساعات.

كيف تتعامل مع الترقية

لا تتعامل مع 3.0.3 إلى 3.0.4 كترقية روتينية. ابحث عن أسماء الأعلام القديمة ومسار الوحدة القديم قبل الترقية، لأن لا المُثبّت ولا وقت التشغيل سيخبرانك بأنهما لم يعودا يعنيان شيئًا.