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