Närvaro
OpenClaw ”närvaro” är en lättviktig vy enligt best effort av:- Gatewayn själv, och
- klienter som är anslutna till Gateway (mac-app, WebChat, CLI, osv.)
Närvarofält (vad som visas)
Närvaroposter är strukturerade objekt med fält som:instanceId(valfritt men starkt rekommenderat): stabil klientidentitet (vanligenconnect.client.instanceId)host: lättläst värdnamnip: IP-adress enligt best effortversion: klientens versionssträngdeviceFamily/modelIdentifier: hårdvaruindikationermode:ui,webchat,cli,backend,probe,test,node, …lastInputSeconds: ”sekunder sedan senaste användarinmatning” (om känt)reason:self,connect,node-connected,periodic, …ts: tidsstämpel för senaste uppdatering (ms sedan epok)
Producenter (var närvaro kommer ifrån)
Närvaroposter produceras av flera källor och slås samman.1. Gatewayns egen post
Gateway skapar alltid en ”egen”-post vid uppstart så att UI:er visar gateway-värden redan innan några klienter ansluter.2. WebSocket-anslutning
Varje WS-klient börjar med enconnect-begäran. Vid lyckad handskakning höjer
Gateway en närvaropost för den anslutningen.
Varför engångskommandon i CLI inte syns
CLI ansluter ofta för korta, one‐off kommandon. För att undvika spamming av listan instanser,client.mode === "cli" är inte förvandlas till en närvaropost.
3. system-event-beacons
Klienter kan skicka rikare periodiska fyrar via system-event-metoden. Appen mac
använder detta för att rapportera värdnamn, IP och lastInputSeconds.
4. Nodanslutningar (roll: node)
När en nod ansluter via Gateway-WebSocket medrole: node uppdaterar Gateway
(en upsert) en närvaropost för den noden (samma flöde som för andra WS-klienter).
Sammanfogning + deduplicering (varför instanceId är viktigt)
Närvaroposter lagras i en enda minnesbaserad map:
- Poster nycklas med en närvaronyckel.
- Den bästa nyckeln är en stabil
instanceId(frånconnect.client.instanceId) som överlever omstarter. - Nycklar är skiftlägesokänsliga.
instanceId kan den visas som en
duplicerad rad.
TTL och begränsad storlek
Närvaro är avsiktligt flyktig:- TTL: poster äldre än 5 minuter rensas bort
- Max antal poster: 200 (äldsta tas bort först)
Fjärr-/tunnel-varning (loopback-IP:n)
När en klient ansluter över en SSH-tunnel / lokal port framåt kan Gateway se fjärradressen som127.0.0.1. För att undvika att skriva över en bra klientrapporterad
IP-adresser ignoreras.
Konsumenter
macOS-fliken Instances
MacOS-appen renderar utdata frånsystem-presence och tillämpar en liten
statusindikator (Active/Idle/Stale) baserat på åldern på den senaste uppdateringen.
Felsökningstips
- För att se rålistan, anropa
system-presencemot Gateway. - Om du ser dubbletter:
- bekräfta att klienter skickar en stabil
client.instanceIdi handskakningen - bekräfta att periodiska beacons använder samma
instanceId - kontrollera om den anslutningshärledda posten saknar
instanceId(dubbletter är förväntade)
- bekräfta att klienter skickar en stabil