جمّعت الحلّ الذي اشتغلته قبل قليل على جهازي لمشكلة تفويت تنبيهات Codex في أداة صغيرة:
ونشرتها أيضًا في قسم النقاشات الخاص بـ openai/codex:
المشكلة التي يحلّها هي: تنبيه نهاية الـ turn الافتراضي في Codex لا يغطي كل الحالات التي “تحتاجك ترجع تتدخل فيها”. مثلًا إذا وصل تنفيذ المهمة لنصف الطريق واحتاج موافقة صلاحيات، أو كان على وشك تنفيذ أوامر مثل sudo xcodebuild -license accept أو المُثبّت (installer) أو softwareupdate… وهي أوامر غالبًا ستطلب كلمة مرور المدير. إذا لم تكن النافذة في المقدمة فمن السهل أن تظن أن Codex ما زال يعمل، بينما هو في الحقيقة عالق بانتظار تدخّل منك.
النتيجة:
- عندما يرسل Codex حدث
PermissionRequestيظهر إشعار نظام macOS. - تنبيه مسبق قبل تنفيذ أوامر شائعة تتطلب تدخّلًا يدويًا، مثل
sudoوxcodebuild -licenseوxcodebuild -runFirstLaunchومُثبّت.pkgوsoftwareupdateوAppleScript administrator privileges. - الأوامر العادية لا تُنبِّه، فلن يظهر إشعار عند كل
lsأوgitأو build. - يقوم بالإشعارات وتسجيل السجلات فقط، ولا يوافق/يرفض تلقائيًا ولا يعيد كتابة استدعاءات أدوات Codex.
- تُكتب السجلات إلى
~/.codex/logs/codex-attention-notifier.log.
طريقة التثبيت:
git clone https://github.com/constansino/codex-attention-notifier.git
cd codex-attention-notifier
python3 install.py
بعد التثبيت أعد تشغيل Codex Desktop، أو افتح جلسة Codex جديدة، لكي تدخل إعدادات hooks الجديدة حيّز التنفيذ.
يمكنك الاختبار بهذا الأمر؛ لن يشغّل sudo فعليًا، بل فقط يحاكي إدخال Codex hook:
printf '%s\n' '{"hook_event_name":"PreToolUse","tool_name":"Bash","cwd":"'"$PWD"'","tool_input":{"command":"sudo xcodebuild -license accept"}}' \
| python3 ~/.codex/hooks/codex_attention_notify.py
إذا كان كل شيء طبيعيًا سترى إشعار macOS، وسترى أيضًا السجل:
tail -n 5 ~/.codex/logs/codex-attention-notifier.log
ووضّحت القيود أيضًا: هذه ليست ميزة رسمية من الدرجة الأولى، بل مجرد ترقيعة عملية مبنية على Codex hooks. في حالات “عملية فرعية بدأت بالفعل ثم علِقت عند stdin/password”، لا يملك Codex حاليًا hook ثابتًا لحدث انتظار الإدخال، لذا تعتمد هذه الأداة على التعرّف مسبقًا على الأوامر عالية الخطورة قبل تنفيذها لتغطية السيناريوهات الشائعة.