Nodes and media
الحضور النشط على الحاسوب
يشير حضور الكمبيوتر النشط إلى Gateway بشأن عقدة macOS المتصلة التي تلقت
أحدث إدخال فعلي من الماوس أو لوحة المفاتيح. يستخدم OpenClaw هذه الإشارة
لوضع علامة active على أحد أجهزة Mac، وتزويد الوكيل بتلميح ثابت عن العقدة النشطة، وتوجيه
تنبيهات اتصال العقدة إلى الكمبيوتر الذي يُرجّح وجودك أمامه.
يختلف هذا عن حضور النظام، وهو القائمة المباشرة
لعملاء Gateway، وعن إشارات node.presence.alive الدائمة، التي
تسجّل آخر وقت استيقظت فيه عقدة محمولة من دون اعتبارها متصلة.
المتطلبات
- تطبيق OpenClaw لنظام macOS مقترن ومتصل في وضع العقدة.
- يُمنح تطبيق OpenClaw الموقّع إذن Accessibility.
- بالنسبة إلى تنبيهات الاتصال، يُمنح أيضًا إذن Notifications وتوفّر
عقدة Mac
system.notify.
يُنفّذ الإبلاغ عن النشاط حاليًا بواسطة عقدة macOS الأصلية. يمكن لمضيفي العقد على iOS وAndroid وwatchOS والمضيفين بلا واجهة الإبلاغ عن حالة الاتصال أو حالة آخر ظهور في الخلفية، لكنهم لا يتنافسون على تعيين الكمبيوتر النشط.
التحقق من الكمبيوتر النشط
-
في تطبيق macOS، افتح Settings -> Permissions وامنح إذن Accessibility في إعدادات نظام macOS.
-
تأكد من اتصال عقدة Mac:
bash openclaw nodes status --connected -
حرّك الماوس أو اضغط مفتاحًا على جهاز Mac ذاك، ثم شغّل:
bash openclaw nodes statusopenclaw nodes describe --node <node-id-or-name>
تُوضع علامة active على أحدث جهاز Mac مؤهل. يعرض مخرج الحالة المدة المنقضية منذ آخر إدخال؛
ويعرض describe القيم active وlastActiveAtMs وpresenceUpdatedAtMs.
يُدمج النشاط عمدًا، لذا قد يستغرق العرض نحو 15
ثانية كحد أقصى ليعكس إدخالًا آخر بعد تقرير حديث.
كيف يتحول النشاط إلى حضور
تأخذ أداة الإبلاغ في macOS عينة من ساعة خمول نظام HID كل ثانيتين. وهي تُبلغ مرة واحدة عندما يصبح اتصال العقدة جاهزًا، ثم تُبلغ عن النشاط الفعلي الأحدث بمعدل لا يزيد على مرة كل 15 ثانية. أثناء الخمول، ترسل إشارة إبقاء اتصال كل ثلاث دقائق. تُحد مدة الخمول عند 30 يومًا كي لا تنزاح عينة قديمة جدًا إلى الأمام وتصبح خطأً أحدث كمبيوتر.
لا يقبل Gateway النشاط إلا عندما تتحقق كل الشروط الآتية:
- ينتمي الحدث إلى الاتصال الحالي المصادق عليه لمعرّف العقدة ذاك؛
- تمتلك العقدة إذن
accessibility: trueالفعّال؛ - تحتوي الحمولة على قيمة عدد صحيح محدودة
idleSeconds.
يطرح Gateway idleSeconds من وقت الرصد الخاص به لاشتقاق
lastActiveAtMs. وهو لا يثق مطلقًا بطابع زمني لساعة الحائط توفره العقدة. ومن بين
أجهزة Mac المتصلة والمؤهلة، يفوز أحدث lastActiveAtMs؛ وعند التعادل يُستخدم أحدث
تحديث للحضور.
الحضور محلي للعملية ومرتبط بالاتصال. يؤدي قطع اتصال الجلسة الحالية، أو استبدالها بجلسة أخرى تستخدم معرّف العقدة نفسه، أو إلغاء إذن Accessibility، إلى مسح حالة نشاط تلك العقدة وإعادة احتساب جهاز Mac النشط.
الخصوصية وسياق النموذج
يرسل OpenClaw مدة الخمول، لا محتوى الإدخال. ولا يرسل قيم المفاتيح، أو إحداثيات الماوس، أو أسماء التطبيقات، أو عناوين النوافذ، أو أحداث الإدخال الخام. تقرأ أداة الإبلاغ في macOS حالة HID الخاصة بالأجهزة، ولذلك لا تجعل أحداث التحكم الاصطناعية في الكمبيوتر جهاز Mac مؤتمتًا يبدو كأنه الكمبيوتر الذي استخدمته فعليًا.
لا ينشئ النشاط المستمر أحداث نظام مرئية للنموذج. يحتوي سطر وقت التشغيل الديناميكي فقط على معرّف العقدة المصادق عليه:
active_node=<node-id>تبقى الطوابع الزمنية الدقيقة وأسماء العرض التي تتحكم بها العقدة خارج الموجّه
لتجنب حقن الموجّه واضطراب ذاكرة التخزين المؤقت. عندما يحتاج الوكيل إلى التفاصيل الحالية،
يمكن لأداة nodes قراءة node.list أو node.describe بدلًا من ذلك.
كيفية توجيه تنبيهات الاتصال
بعد أن تنهي العقدة مصافحة Gateway، ينتظر OpenClaw مدة 750 مللي ثانية كي يتمكن جهاز Mac المتصل من إرسال عينة نشاطه الأولى. ثم يحاول الإرسال إلى جهاز Mac المتصل القادر على عرض الإشعارات وصاحب أحدث نشاط.
- إذا نجح التسليم الأساسي، فلن يتلقى أي جهاز Mac آخر التنبيه.
- إذا لم يتوفر جهاز Mac نشط أو فشل التسليم الأساسي، ينتظر OpenClaw خمس
ثوانٍ ويحاول الإرسال إلى كل جهاز Mac متصل متبقٍ يوفّر
system.notify. - يُمنع تنبيه إعادة الاتصال للعقدة نفسها لمدة خمس دقائق بعد محاولة تسليم فعلية، مما يمنع تقلبات إعادة الاتصال من إحداث عاصفة إشعارات.
ترتبط التنبيهات باتصالات العقد الدقيقة. لا يمكن لجلسة مصدر انقطع اتصالها أو استُبدلت إكمال تنبيه قديم مجدول، ويظل بإمكان اتصال وجهة بديل المشاركة في التسليم الاحتياطي.
استكشاف الأخطاء وإصلاحها
| العَرَض | ما يجب التحقق منه |
|---|---|
لا يحمل أي صف علامة active |
تأكد من اتصال عقدة macOS أصلية ومن أن openclaw nodes describe --node <id> يعرض permissions.accessibility: true. |
| يظل جهاز Mac الخطأ نشطًا | استخدم جهاز Mac ذاك فعليًا، وانتظر انقضاء نافذة الدمج، ثم أعد تشغيل openclaw nodes status. لا تُحتسب إجراءات التحكم الاصطناعية في الكمبيوتر. |
| تختفي بيانات آخر إدخال | تحقق مما إذا كان اتصال جهاز Mac قد انقطع، أو استُبدلت جلسة عقدته، أو أُلغي إذن Accessibility. يمسح كل شرط النشاط عمدًا. |
| يظهر التنبيه على عدة أجهزة Mac | لم يكن التسليم الأساسي متاحًا أو فشل، ولذلك نُفّذ المسار الاحتياطي المؤجل. تحقق من أن جهاز Mac النشط متصل، ويسمح بالإشعارات، ويوفّر system.notify. |
| لا يذكر الوكيل جهاز Mac النشط | ابدأ دورًا جديدًا بعد تغيّر النشاط. تلميح وقت التشغيل ثابت وموجز؛ استخدم أداة nodes للحصول على البيانات الوصفية الحالية الدقيقة. |
لاستعادة TCC، راجع أذونات macOS. ولحل مشكلات اتصال العقدة وفشل الأوامر، راجع استكشاف أخطاء Node وإصلاحها.