══════════ جداکردن اپ مشتری از اپ مدیریت (گوشی) ══════════
مشکل: هر دو اپ روی یک دامنه و یک scope بودند و یک Service Worker (sw.js) مشترک داشتند.
 • روی یک گوشی، اشتراک اعلان (Push) هر دو اپ یکی می‌شد و آخرین ثبت، قبلی را پاک می‌کرد ← اعلان پیام به مدیر/مشتری نمی‌رسید.
 • اعلان‌ها و لینک‌ها می‌توانستند پنجرهٔ اپ اشتباه را باز کنند.
 • sw.js صفحهٔ مخفی پنل را در گوشی همهٔ مشتری‌ها کش می‌کرد.
راه‌حل:
 • اپ مشتری: scope = chat.html ، اپ مدیریت: scope = panel-aaf2d6f1b2e7.html (کاملاً جدا)
 • sw-admin.js (جدید): Service Worker مخصوص پنل، جدا از sw.js
 • sw.js: پنل را کش نمی‌کند (کش v20؛ کش قدیمی پاک می‌شود)
بعد از آپلود (مهم):
 ۱) روی گوشی‌ای که قبلاً اپ نصب کرده‌اید، هر دو اپ (مشتری و مدیریت) را حذف کنید.
 ۲) اپ مشتری را از  /chat.html  و اپ مدیریت را از  /panel-aaf2d6f1b2e7.html  دوباره «نصب» کنید.
 ۳) در پنل مدیریت یک بار اجازهٔ اعلان بدهید (اشتراک جدید ثبت می‌شود).
خطای امنیتی مشتری‌ها: اول گواهی SSL را در cPanel (بخش SSL/TLS Status) برای دامنه و www بررسی کنید. اگر سالم بود، سه خط کامنت‌شدهٔ بالای .htaccess را فعال کنید تا http به https برود.
فایل‌های تغییرکرده: sw.js ، sw-admin.js (جدید) ، manifest.json ، manifest-admin.json ، panel-aaf2d6f1b2e7.html ، .htaccess
