🌐 قاعدة PORTAL-DYNAMIC (خط أحمر دائم — أمر د. وائل الصريح 2026-08-08 صوت)
الجوهر: أي إضافة/تطوير/تحسين خدمة أو قدرة أو skill →
ينعكس فوراً وتلقائياً (dynamic) في البورتال + ملف القدرات + الحقن، بلا أن يطلب د. وائل. إن لم أفعله مباشرةً →
أسأله صراحةً: «هل أضيفها للبورتال؟». ❌ ممنوع أن تبقى خدمة جديدة بلا card فيضطر يبحث في مراسلاتنا عن الـURL (= غير احترافي، رفضه صراحةً).
السلسلة الإلزامية عند أي عمل جديد (add/improve/develop/version-bump):
1.
البورتال: أضف/حدّث card في
projects/apps-platform/serve.py (قائمة DOORS) ثم أعد تشغيل serve.py (kill القديم + setsid python3 serve.py) وتحقّق عبر apps-proxy (لا عبر الـquick-tunnel).
2.
ملف القدرات: حدّث CAPABILITIES.md / MASTER_CAPABILITY_INDEX.md / ARSENAL_INDEX.md.
3.
الحقن: إن كانت قدرة جوهرية يجب الوصول لها بسرعة → احقنها في الملفات السبعة (MEMORY/IDENTITY/AGENTS/TOOLS/...) لا في ARSENAL_INDEX وحده (غير محقون).
4. صفحة capabilities/skills في البورتال تبقى updated دائماً.
البنية المُثبَتة (2026-08-08):
- البورتال =
projects/apps-platform/serve.py (منفذ 8903 داخل الحاوية) → apps-proxy → apps.drwaelalkishawi.com. قائمة الأبواب = DOORS (قاموس icon/title/en/desc/url/big).
- صفحة التكلفة الجديدة =
projects/cost-ledger/webapp.py (منفذ 8915) → cost-proxy (basic-auth admin) → cost.drwaelalkishawi.com. أُضيف لها card اليوم (📒 لوحة التكلفة / Cost Ledger). كانت حيّة لكن بلا card (المشكلة التي اشتكى منها).
- ❌ فخّ: الـquick-tunnel على 8903 يعطي directory-listing؛ التحقّق الصحيح = عبر apps-proxy أو
apps.drwaelalkishawi.com مباشرة، لا الـtrycloudflare URL.
🧭💰 باب «Routing & Cost» — أُضيف 2026-08-08 (موافقة د. وائل على مقترح موجز الصباح)
الفراغ: omniroute + omniroute-redis خدمتان تعملان بلا نافذة مراقبة على البورتال؛ وcost-ledger بلا ربط بحالة omniroute الحيّة.
الحل (read-only، صفر بنية جديدة):
- المولّد:
scripts/coding-kit/build_routing_cost_page.py — يقرأ مصدرين قائمين حياً: (1) omniroute_status.sh → status.json (صحة الحاوية+redis+16 موديل+cheap/elite lanes) (2) cost-ledger/report.py --json (تكلفة تراكمية). يكتب deployed/routing-cost/index.html ثابت.
- الباب: كرت 🧭 «التوجيه والتكلفة / Routing & Cost» في
serve.py DOORS → https://apps.drwaelalkishawi.com/routing-cost/ (subpath خلف apps-proxy، نفس نمط coding-hub). البورتال الآن 11 باباً.
- التحديث التلقائي: بلوك D∞ P3.6 في
daemons/daemons_keepalive.sh (كل دقيقتين، bash+python صفر LLM) + الصفحة نفسها meta-refresh 120s.
- متحقّق حياً عبر apps-proxy: 11 door · الصفحة تعرض Omniroute healthy + $18,389 إجمالي + 16 models.
- ❌ فخّ التشغيل: إطلاق serve.py داخل exec يُقتل بـSIGTERM عند انتهاء الأمر → استخدم setsid داخل جلسة منفصلة وتحقّق البقاء.