🔴 M-146 — خرق never-stop: polling loop ميّت على مجلس النخبة (2026-09-24، محاسبة د. وائل المحقة)
الكارثة: عرضتُ دراسة Local AI Server على مجلس النخبة (council.py). فشل بخطأ برمجي (digest_others: p1[j]=None → TypeError). بدل المعالجة الاستباقية، دخلتُ polling loop ميّت 11 دقيقة (process poll متكرر بلا نتيجة) — لولا أن د. وائل رأى تنبيه الفشل وسألني لبقيتُ مشلولاً ميتاً بلا نتيجة. كسرتُ 4 خطوط حمراء بضربة: التوقّف/الشلل + عدم الوصول للنتيجة + عدم المعالجة الاحترافية + عدم تزويده بأفضل إجابة.
الجذر: council.py ينتظر كل الأعضاء بلا مهلة صارمة لكل عضو → عضو متعثّر يعلّق الكل. وأنا انتظرته بلا معالجة بدل بناء بديل never-stop.
الإصلاح (المطبّق): (1) أصلحتُ خطأ council.py (digest_others حماية None). (2) بنيتُ scripts/council_reliable.py = مجلس never-stop: مهلة صارمة لكل عضو (100s) + حفظ تدريجي (كل عضو فور وصوله) + overall deadline 150s + os._exit(0) (لا تعليق على threads عالقة) → يأخذ من نجح (8/12) والـ Orchestrator يدرسهم ويعطي الخلاصة، ولا يتوقّف لأجل المتعثّرين.
القاعدة الحاكمة الدائمة (خط أحمر — أمر د. وائل الصريح): أي أداة تستدعي عدة أعضاء/نماذج (مجلس/sub-agents/fallback) = مهلة صارمة لكل عضو + حفظ تدريجي + أخذ من نجح + الـ Orchestrator يدرس المتاح ويعطي الخلاصة («عندنا 10 من 12، وعضوان ننتظرهما — إليك الخلاصة»). ❌ ممنوع منعاً باتاً polling loop بلا معالجة. ❌ ممنوع توقّف كامل لتعثّر عضو/اثنين. أي «أمر توقّف/فشل مفاجئ» → أتجاوزه بأي طريقة وأصل للنتيجة. never-stop + لا مستحيل + أفضل إجابة دائماً = خطوط حمراء لا تُكسر.🔴🔴 M-147 — تدوير مفتاح ناقص: env.sh فارغ + host .env ملوّث بـ… (2026-09-24، بأمر د. وائل بعد سؤاله الدقيق عن xAI 401)
الحادثة: تنبيه Arsenal Health «xAI HTTP 401». التشخيص الجذري الحيّ كشف: مفتاح xAI الجديد (23-09، ينتهي 26xX) دُوّر في auth-profiles+canvas+hermes، لكن فاته مكانان: (1)env.sh = المفتاح محذوف تماماً (السطر غير موجود) — منه يقرأ arsenal_health_check عبر . env.sh → Bearer فارغ → 401. (2) host /docker/openclaw-4x4t/.env = ملوّث بحرف … (U+2026) = 11 حرف بدل 84 = باطل (مصيدة إخفاء الأسرار M-119). سجل التدوير ادّعى «replaced في .env» لكن الحقيقة أنه لم يكتمل.
الإصلاح (مُختبَر حيّاً HTTP 200): أضفتُ المفتاح النظيف (84 حرف، من الملف الذي أعطاه د. وائل = نفس auth-profiles) لـ env.sh (XAI+GROK) + استبدلتُ host .env بالقيمة النظيفة (base64→host→python replace، بلا توسيع shell). arsenal_health xAI check → 200 (401 اختفى). صفر أثر للقديم. نسخ احتياطية: env.sh.bak.xai_fix_ + host .env.bak.xaifix..
الجذر الحقيقي (المعالجة الاستباقية — أمر د. وائل): المشكلة ليست القائمة (env.sh #1 + host .env #21 مذكوران أصلاً) — بل أن أداة الفحص key_locate.sh كانت تفحص وجود اسم المتغيّر فقط، لا صحة القيمة. أُضيف: (1) بندان صريحان مميّزان (1★ env.sh + 21★ host .env) + قسم [5b] في KEY_LOCATIONS_MASTER_LIST.md بدرس التلوّث. (2) قسم [9] جديد في key_locate.sh يفحص صحة القيمة: محذوفة/فارغة/مبتورة/ملوّثة بـ… في env.sh + host .env (مُختبَر معزولاً: يكشف كل الحالات ✅/🔴).
القاعدة الحاكمة الدائمة (خط أحمر): أي تدوير مفتاح يجب أن يتحقق في env.sh + host /docker/openclaw-4x4t/.env تحديداً أن القيمة (1) موجودة غير محذوفة (2) طولها كامل صحيح (3) خالية من … (U+2026) — لا يكفي «المتغيّر مذكور». مصيدة … = نظام إخفاء الأسرار يبتر القيمة عند الكتابة اليدوية على الـhost (اكتب عبر base64→host→python، لا shell expansion).🔴 M-148 — ARSENAL_STATUS القديم = سبب خلل النشرة التقنية (2026-09-24)
الحادثة: النشرة التقنية اليومية قالت «نتبنّى Opus 5.5 الآن» رغم أننا ثبّتناه فعلاً في 23-09 (كل الأماكن). الجذر: النشرة تقارن بـARSENAL_STATUS.md وكان قديماً (آخر بناء 21-09، قبل ترقية 5.5) — لأن build_arsenal_status.sh كان مجدولاً أسبوعياً فقط (الأحد) + سطور coding/المجلس مكتوبة يدوياً بأسماء قديمة (opus-5, GPT-5.6 Sol).
الإصلاح (مُتحقَّق حيّاً): (1) حدّثتُ build_arsenal_status.sh: architecture=opus-5-5 معزول · coding chain=opus-5-5→...→GPT-6 Sol · council=GPT-6-Sol. (2) حوّلتُ الكرون من أسبوعي (الأحد) → يومي 4:50 (host-cron، zero-LLM). (3) أُعيد بناؤه: primary=opus-5-5 مؤكّد، gpt-6-sol مذكور. (4) أضفتُ Gemini 4 + Kimi K3.1 + GPT-6 Astra لحارس new_model_watch (مجدول يومياً 8:15 — كان غير مجدول).
تأكيد: Opus 5.5 + GPT-6 Sol مثبّتان فعلاً في كل الأماكن (defaults·coding·مجلس النخبة·مجلس الحرب·المسار الموازي·المستأجرون). لا نقص — فقط القائمة المرجعية كانت متأخرة.
القاعدة الحاكمة (أمر د. وائل — خط أحمر): ARSENAL_STATUS.md يجب أن يكون محدّثاً لحظة بلحظة دائماً بأحدث ما نملك — أي إضافة نموذج/قدرة تُعكس فيه فوراً (يومي الآن). النشرة/المقارنات تعتمد عليه، فتأخّره = توصيات خاطئة.
فحص النماذج الجديدة (حيّ): Gemini 4=404 · Kimi K3.1=404 · Qwen 3.8 Omni=400 · GPT-6 Astra=invitation-only — كلهم غير متاحين، في الرصد اليومي.
MCP (مرصود للدراسة): 20 خادماً فعلاً (5 mcporter + 23 codex + 7 claude، بعد إزالة التكرار — النشرة صحيحة). policy enforcement على البوابة غير مُفعّل فعلاً (لا tools.deny عام للوكيل main؛ المستأجرون فقط لهم deny=14). بند يستحق دراسة 8 مستويات + تنفيذ صفر سلبيات (بانتظار إذن د. وائل — يمسّ البوابة).✅ تنفيذ بنود النشرة التقنية (2026-09-24، أمر د. وائل: أنا أقرّر + 8 مستويات + صفر سلبيات)
المنهج: 3 دراسات نقدية متوازية (sub-agents، 8+ مستويات) + قراري كـ Orchestrator → نفّذتُ ما يستحق فقط، فحصتُ حيّاً، نقدتُ الفحص، صفر أثر جانبي. ✅ نُفِّذ (يثري، صفر سلبيات، git-committed): 1. EVM/KPIsskills/p6-ai-planner/scripts/evm_kpi.py — SPI/CPI/SV/CV/EAC/ETC/VAC/TCPI + progress variance + S-curve + تفسير مطالبات. أكبر فجوة حقيقية (لم يكن EVM إطلاقاً). يربط P6↔claims. SELFTEST PASS (SPI=0.796/CPI=0.929/EAC/VAC صحيحة).
2. Clash detection skills/design-to-bim/scripts/clash.py — يلفّ ifcopenshell.geom.tree (collision/intersection/clearance، مُختبَر حيّاً 0.8.5). مخرج CSV/JSON + عدّاد حسب التخصّص (دليل EOT للمطالبات). SELFTEST PASS.
3. إصلاح --formal الوهمي في alphaproof/prover.py — كان يدّعي «machine-verified» وهو مجرد detection لوجود binary. أُصلح بصدق (machine_verified:False + ملاحظة DETECTION ONLY). خط أحمر مصداقية.
4. mcporter 0.13.13→0.14.0 — ترقية آمنة. فحص حي: 20 خادم، 18 صحّي + 2 تحذير migration قديم (chrome-devtools/playwright، ليس كسراً). صفر أثر.
⛔ تُجووِز (قرار موثّق 8 مستويات):
- Lean 4 layer: NO-GO (اختبار حي: فشل ببرهان Gauss تافه 3×، لا mathlib، استخدام KCPC≈صفر، ROI عكسي). مغطّى بـ Wolfram+SymPy+المجلس+adversarial referee.
- Generative design: ترف لـ KCPC (التصميم من الاستشاري، دور د. وائل تنفيذ/مطالبة).
- MCP policy على main: main=د. وائل صلاحيات مطلقة مقصودة.
<!--AUTO_DAILY_START-->
🤖 موجز آلي (محدّث 23:00 الكويت — يكتبه daily_note_gen.sh)
- حالة النظام: لوحة صحة النظام — 🟡 WARN
- التكلفة التراكمية: $36771.2
- أبرز التغييرات اليوم (git):
- M-149: tenant suspend/resume/pause/unpause schema-9.x-safe (registry-backed) + gitignore .trash
- add gpt6-astra-pro-unc to coding fallback tail (uncensored enrichment)
- log bulletin execution
- Bulletin exec: EVM/KPI engine + clash detection + honest --formal fix + mcporter 0.14 (studies 8L, zero-neg)
- M-148 log
- M-148: ARSENAL_STATUS reflects opus-5-5+gpt-6-sol live + daily rebuild + watch Gemini4/KimiK3.1/GPT6-Astra
- M-147: pin env.sh + host .env as mandatory rotation checks + value-health detection (…/empty/truncated)