Czym jest Presence?
Mechanizm „presence" (obecności) w OpenClaw dostarcza lekkiego podglądu stanu Gateway i podłączonych klientów — aplikacji macOS, WebChat, CLI i innych. Główne zastosowanie to zakładka Instances w aplikacji macOS.
Pola danych obecności
Każdy wpis zawiera ustrukturyzowane dane:
- instanceId (zalecane) — stabilna tożsamość klienta
- host — czytelna nazwa hosta
- ip — adres IP (best-effort)
- version — wersja klienta
- deviceFamily / modelIdentifier — informacje o sprzęcie
- mode — typ klienta:
ui,webchat,cli,backend,probe,test,node - lastInputSeconds — sekundy od ostatniego wejścia użytkownika
- reason — źródło wpisu:
self,connect,node-connected,periodic - ts — znacznik czasu ostatniej aktualizacji w milisekundach
Źródła danych
Wpis własny Gateway
Gateway tworzy swój własny wpis przy starcie.
Połączenia WebSocket
Klienci generują wpisy po udanym handshake'u. Polecenia CLI zazwyczaj nie tworzą wpisów, aby nie zaśmiecać listy.
Sygnały zdarzeń systemowych
Klienty wysyłają okresowe aktualizacje metodą system-event z bogatszymi informacjami o stanie.
Połączenia węzłów
Węzły (Nodes) łączące się z rolą node generują własne wpisy obecności.
Deduplikacja i przechowywanie
Wpisy używają klucza obecności bez uwzględniania wielkości liter. Stabilny instanceId jest optymalny dla unikania duplikatów przy ponownych połączeniach. System utrzymuje ograniczony, efemeryczny rejestr:
- Wpisy starsze niż 5 minut są usuwane
- Maksymalna pojemność: 200 wpisów
Ograniczenia
Tunele SSH mogą pokazywać adresy loopback (127.0.0.1), które system ignoruje, aby zachować wcześniej raportowane adresy.
Debugowanie
Metoda system-presence pozwala wyświetlić surowe dane obecności i zweryfikować, czy klienty wysyłają spójne wartości instanceId.