active, fornire all’agente un’indicazione stabile del Node attivo e instradare
gli avvisi di connessione dei Node al computer presso il quale è più probabile che l’utente sia presente.
Questa funzionalità è distinta dalla presenza di sistema, che rappresenta l’elenco in tempo reale
dei client del Gateway, e dai beacon permanenti node.presence.alive, che
registrano l’ultima riattivazione di un Node mobile senza considerarlo connesso.
Requisiti
- L’app OpenClaw per macOS è associata e connessa in modalità Node.
- L’autorizzazione Accessibility è concessa all’app OpenClaw firmata.
- Per gli avvisi di connessione, è concessa anche l’autorizzazione Notifications e il
Node Mac espone
system.notify.
Verificare il computer attivo
- Nell’app macOS, aprire Settings -> Permissions e concedere Accessibility nelle impostazioni di sistema di macOS.
-
Verificare che il Node Mac sia connesso:
-
Muovere il mouse o premere un tasto su quel Mac, quindi eseguire:
active. L’output dello stato mostra il tempo
trascorso dall’ultimo input; describe espone active, lastActiveAtMs e presenceUpdatedAtMs.
L’attività viene intenzionalmente aggregata, pertanto dopo una segnalazione recente la visualizzazione può impiegare fino a circa 15
secondi per riflettere un altro input.
Come l’attività diventa presenza
Il reporter macOS campiona ogni due secondi l’orologio di inattività del sistema HID. Invia una segnalazione quando la connessione di un Node diventa pronta, quindi segnala le nuove attività fisiche non più di una volta ogni 15 secondi. Durante l’inattività, invia un keepalive ogni tre minuti. La durata dell’inattività è limitata a 30 giorni, affinché un campione molto vecchio non possa avanzare nel tempo e diventare erroneamente quello del computer più recente. Il Gateway accetta l’attività soltanto quando tutte queste condizioni sono soddisfatte:- l’evento appartiene alla connessione autenticata corrente per quell’ID Node;
- il Node dispone dell’autorizzazione effettiva
accessibility: true; - il payload contiene un valore intero limitato
idleSeconds.
idleSeconds dal proprio tempo di osservazione per ricavare
lastActiveAtMs. Non considera mai attendibile un timestamp dell’orologio di sistema fornito dal Node. Tra
i Mac idonei connessi, prevale il valore lastActiveAtMs più recente; in caso di parità, viene utilizzato l’aggiornamento di presenza
più recente.
La presenza è locale al processo e vincolata alla connessione. La disconnessione della sessione
corrente, la sua sostituzione con un’altra sessione che utilizza lo stesso ID Node o la revoca
di Accessibility cancella lo stato di attività di quel Node e ricalcola il Mac attivo.
Privacy e contesto del modello
OpenClaw invia la durata dell’inattività, non il contenuto degli input. Non invia i valori dei tasti, le coordinate del mouse, i nomi delle applicazioni, i titoli delle finestre o gli eventi di input non elaborati. Il reporter macOS legge lo stato HID dell’hardware, pertanto gli eventi sintetici di controllo del computer non fanno apparire un Mac automatizzato come il computer utilizzato fisicamente. L’attività continua non crea eventi di sistema visibili al modello. La riga dinamica di runtime contiene soltanto l’ID Node autenticato:nodes può invece leggere node.list o node.describe.
Come vengono instradati gli avvisi di connessione
Dopo che un Node completa l’handshake con il Gateway, OpenClaw attende 750 millisecondi affinché il Mac in fase di connessione possa inviare il primo campione di attività. Quindi prova a utilizzare il Mac connesso in grado di inviare notifiche con l’attività più recente.- Se la consegna primaria riesce, nessun altro Mac riceve l’avviso.
- Se non è disponibile alcun Mac attivo o la consegna primaria non riesce, OpenClaw attende cinque
secondi e prova tutti gli altri Mac connessi che espongono
system.notify. - Un avviso di riconnessione per lo stesso Node viene soppresso per cinque minuti dopo un effettivo tentativo di consegna, evitando che l’instabilità della riconnessione produca una raffica di notifiche.
Risoluzione dei problemi
Per il ripristino di TCC, consultare autorizzazioni macOS. Per gli errori
di connessione e dei comandi dei Node, consultare Risoluzione dei problemi dei Node.