# SKANDER servertelegram v3.8.0 — Persistent Control + Server-Managed Recovery

هذا التحديث يعالج مشكلتين في لوحة السيرفر:

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

## ما تم إصلاحه

- حفظ إعداد المضاعفات في `data/state.json` مع فحص نجاح الكتابة قبل إرجاع نجاح للوحة.
- إعداد المضاعفات أصبح Server-Managed لتوصيات Telegram:
  - تشغيل/إيقاف.
  - عدد المضاعفات 1–8.
  - المضاعف ×2 / ×2.2 / ×2.5.
- `حفظ وتطبيق على الأجهزة` يحفظ أولاً ثم يرسل `set_recovery` لكل جهاز.
- عند إعادة اتصال أي جهاز يعيد السيرفر إرسال الإعداد المحفوظ تلقائياً.
- إذا كان الجهاز داخل صفقة ورفض تغييراً دائماً مثل المضاعفات أو الإعدادات، يعيد السيرفر المحاولة آلياً كل 8 ثوانٍ حتى 12 محاولة بدلاً من ضياع التغيير.
- إعدادات الجهاز الفردية أصبحت تحفظ كـ Desired Settings على السيرفر، وليس مجرد أمر لحظي.
- الإعداد الموحد لجميع الأجهزة أصبح محفوظاً في `settings.fleetDefaults` ويعود كما هو بعد تحديث الصفحة/إعادة تشغيل السيرفر.
- واجهة الجهاز تعرض القيم المحفوظة من الإدارة أولاً، مع إبقاء Telemetry الفعلية من التطبيق.
- تم إصلاح اختيار قيمة المضاعف في نافذة الجهاز؛ ×2.2 أو ×2.5 تظهر فعلياً كقيمة محددة بدلاً من الرجوع دائماً إلى ×2.
- تم منع تحديثات WebSocket للوحة من مسح القيم التي يكتبها الأدمن في صفحة التحكم قبل الضغط على حفظ/تطبيق.
- لكل قناة Telegram أصبح هناك خيار واضح:
  - حسب إعداد السيرفر.
  - تشغيل المضاعفات إجبارياً.
  - إيقاف المضاعفات إجبارياً.

## نقاط مهمة للنشر

لا ترفع نسخة جديدة فوق هذه الملفات:

- `.env`
- `data/state.json`
- `data/state.json.bak`

احتفظ بها من السيرفر الحالي حتى تبقى القنوات، الأجهزة، الإعدادات والسجل.

بعد رفع ملفات v3.8.0 شغّل Restart Application من cPanel.

## التطبيق المطلوب

يفضل استخدام التطبيق v1.25.33 مع هذا السيرفر. هذه النسخة تنتظر حفظ الإعداد محلياً قبل إرسال ACK `applied` للسيرفر، وإذا كانت هناك صفقة مفتوحة ترجع `rejected` بدلاً من الادعاء أن المضاعفات تغيرت، ثم يعيد السيرفر المحاولة تلقائياً.
