تخطٍّ إلى المحتوى

ما الجديد

سجل إصدارًا بإصدار لتطوير Fendix. صدر الإصدار v3.7.0 في أكتوبر 2026: صار إجراء GitHub يُفشل المهمة حين يتعذّر عمل Semgrep، وصار تشغيل Semgrep الذي ينتهي بخطأ فادح يُسجَّل فاشلًا بدل أن يمرّ كأنه فحص نظيف. يذكر كل إدخال أدناه ما تغيّر في ذلك الإصدار.

Phase 0 مكتمل

Foundation

February 2026

  • Go module and Python package initialization
  • Finding, ScanConfig, and severity scoring models
  • Cobra CLI skeleton with version command
  • GitHub Actions CI workflow
  • Makefile for build, test, lint, and clean
  • ADR-001 and ADR-002 architecture decision records

صدر الإصدار v3.7.0 في أكتوبر 2026 — صار إجراء GitHub يشترط عمل Semgrep في فحص الشيفرة ويُفشل المهمة حين يتعذّر تشغيله، ولا يثبّت إلا الحزم الجاهزة (wheels)، ولا يرفع SARIF إلا لفحص اكتمل، وصار تشغيل Semgrep المنتهي بخطأ فادح يُسجَّل فاشلًا؛ ولا تغييرات في مخطط التقرير أو SARIF أو البصمات أو سياسة القرار، ويبقى لكل رمز خروج معناه. صدر الإصدار v3.6.5 في أكتوبر 2026 — أصلحت تحديثات Semgrep 1.182.1 وMCP 1.29.0 وgolang.org/x/mod 0.40.0 آخر الثغرات عالية الخطورة القابلة للإصلاح في الصورة الرسمية، ولم يعد Semgrep يتصل بخادم semgrep.dev، وصارت مشغّلات CI ذاتية الاستضافة على Linux تحتاج إلى glibc 2.34 أو أحدث لتشغيل Semgrep؛ ولا تغييرات في الفاحصات أو البصمات أو مخطط التقرير أو سياسة القرار أو رموز الخروج. صدر الإصدار v3.6.4 في أكتوبر 2026 — أُعيد بناؤه باستخدام Go 1.27.3 وبحزمة certifi 2026.10.23، فلم تعد اتصالات TLS تثق بسلطات التصديق الوسيطة الثماني التابعة لـ emSign التي اختُرقت مفاتيحها الخاصة، ولم يعد بإمكان هدف فحص خبيث عبر HTTP/2 أن يستنزف معالج الفاحص؛ ولا تغييرات في الفاحصات أو البصمات أو مخطط التقرير أو سياسة القرار أو رموز الخروج. صدر الإصدار v3.6.3 في أكتوبر 2026 — صارت أربع قواعد Semgrep مضمّنة لم تكن تطابق شيئًا تُبلغ عن نتائجها، بالحالة WARN افتراضيًا مع --fail-on المقيّدة بمستوى الثقة؛ وتنص إرشادات المصادقة في Flask على وضع المُزخرِف أسفل @app.route(...)؛ وصار لإحدى عشرة قاعدة نص ثابت في الفهرس؛ ولا تغيير في هوية النتائج. صدر الإصدار v3.6.2 في أكتوبر 2026 — صارت الفحوصات القائمة على الفروق مع مسار --code نسبي تفحص الملفات المتغيّرة من جديد، ويتحول نطاق الفروق الذي لا يمكن تمثيله بأمان إلى فحص كامل. صدر الإصدار v3.6.1 في أكتوبر 2026 — صار ملف SARIF لفحص بلا نتائج صالحًا، وصار إجراء GitHub يتحقق من توقيع الإصدار قبل تشغيل الملف التنفيذي. صدر الإصدار v3.6.0 في أكتوبر 2026 — صارت خطوط الأساس وقواعد .fendix-ignore وملفات SARIF تعمل على كل وقوع أمني على حدة، فلم يعد بإمكان بيانات اختبار مُدرجة في خط الأساس أو مستبعدة أن تخفي بيانات اعتماد إنتاجية جديدة مجمّعة معها؛ مع صيغة خط الأساس 2، ونتيجة SARIF لكل وقوع، وتتبّع fendix jira وfendix verify لكل وقوع. صدر الإصدار v3.5.1 في أكتوبر 2026 — صار fendix init يكتب ملفات CI تثبّت إصدارًا محددًا من Fendix بعد التحقق من توقيعه، وصار brew upgrade يصل إلى التثبيتات التي سجّلها Homebrew القديم بالإصدار 64، وصار بإمكان المثبّت اشتراط التوقيع أو بصمة SHA-256 محددة؛ ولا تغييرات في الفاحصات أو البصمات أو مخطط التقرير أو سياسة القرار أو رموز الخروج. صدر الإصدار v3.5.0 في أكتوبر 2026 — صارت --fail-on ترفض العتبة غير الصالحة بدل أن تُجري المسح بلا عتبة بصمت، ولم يعد fendix verify يعدّ المدخلات المفقودة دليلًا على الإصلاح، وتُنشر الصور على Docker Hub؛ ولا تغييرات في البصمات أو مخطط التقرير أو سياسة القرار. صدر الإصدار v3.4.1 في سبتمبر 2026 — تُبنى صور المحرك الآن بلغة Go 1.27 وتشحن بها، فيرتفع سقف الوحدات المدعومة في govulncheck من 1.25؛ ولا تغييرات في الفاحصات أو البصمات أو رموز الخروج، ويبقى الحد الأدنى لإصدار وحدات Go عند 1.25. صدر الإصدار v3.4.0 في سبتمبر 2026 — لم يعد بالإمكان أن يبدو المسح مكتملًا وهو ليس كذلك: يسجّل كل محلل ما إذا كان قد عمل ولماذا لم يعمل، ويحمل التقرير كتلة تغطية تسمّي الفجوات، ويكتب مسح URL الذي لا يجد نقاط نهاية تقريره بدل أن يختفي، وتحوّل رايتان اختياريتان فجوة التغطية إلى بناء مُخفق. صدر الإصدار v3.3.0 في سبتمبر 2026 — ولم تعد الترقية تقسم النتيجة التي تتابعها إلى مغلقة وجديدة، وصارت قائمة الفحوص تُبنى مما اكتمل لا مما جرى إعداده. وفي v3.2.0 — وفيه صار كل قرار حظر يشرح نفسه. تحمل نتيجة BLOCK الآن السياسة التي اتُّخذت بموجبها وصنف الدليل الذي برّرها، عبر تخزين Fendix نفسه وحتى ملف SARIF الذي تصدّره، فيصير خط الإنتاج المخفق قابلًا للتفسير من التقرير وحده. وتذكر النتائج المحجوزة سبب حجزها، وتأتي درجات الثقة مصحوبة بالقواعد التي أنتجتها، ويُوسم صراحةً أي بناء حُظر لمجرد أن فرض الثقة كان مُعطَّلًا. وأوقف الإصدار v3.1.0 ادعاء النتائج بأكثر مما أثبتته — من CORS بحرف بدل مع بيانات الاعتماد، إلى ترتيب أولويات تحديد المعدّل، وتقييم الترويسات بحسب نوع الاستجابة، وصياغة اجتياز المسارات، وبيانات الاعتماد الاختبارية، وقابلية تطبيق الاعتماديات. ومنح الإصدار v3.0 النتائج هوية مستقرة مبنية على القاعدة التي أطلقت النتيجة، وفي أي ملف، وداخل أي دالة، وحول أي عملية. أعد حفظ خطوط الأساس مرة واحدة بعد الترقية من إصدار أقدم من v3.0، وأعد كتابة أي قاعدة .fendix-ignore تثبّت قيمة fingerprint: — أما القواعد التي تستخدم محددات المعرّف أو نقطة النهاية أو الفئة المدعومة فلا تتأثر بتغيير البصمة، مع أن معرّفات ‎SEC-NNN‎ موضعية ولا تناسب إلا المعالجة المؤقتة.