fix(wake): l'XFF d'identita' non puo' essere loopback #19

Merged
claudia merged 1 commit from fix/wake-identity-xff-default into main 2026-09-15 10:00:51 +00:00
Owner

Problema

Il default GW_WAKE_WS_IDENTITY_XFF=127.0.0.1 introdotto in #18 fa fallire il connect d'identità con HTTP 403: l'IP dichiarato coincide col peer loopback, quindi per OpenClaw non c'è nessun proxy davanti da credere.

In produzione il waker ripiegava sulla password e il turno di risveglio tornava con avatar e nome dell'owner della sessione — cioè esattamente il problema che #18 doveva togliere. Log:

WARNING Wake connect con identita' agent-runner@soltea.it fallito
        (server rejected WebSocket connection: HTTP 403): ripiego sulla
        credenziale condivisa, il turno prendera' avatar e nome dell'owner

Verificato sul gateway reale

X-Forwarded-For handshake
assente NOT_PAIRED / device identity required
127.0.0.1 HTTP 403
IP non-loopback OK

Fix

Default a 10.10.10.10 (valore dichiarativo: rappresenta il client dietro il proxy), vincolo documentato in README e .env.example, test che inchioda il "non-loopback" così il default non torna indietro.

100 passed.

🤖 Generated with Claude Code

## Problema Il default `GW_WAKE_WS_IDENTITY_XFF=127.0.0.1` introdotto in #18 fa fallire il connect d'identità con **HTTP 403**: l'IP dichiarato coincide col peer loopback, quindi per OpenClaw non c'è nessun proxy davanti da credere. In produzione il waker ripiegava sulla password e il turno di risveglio tornava con avatar e nome dell'owner della sessione — cioè esattamente il problema che #18 doveva togliere. Log: ``` WARNING Wake connect con identita' agent-runner@soltea.it fallito (server rejected WebSocket connection: HTTP 403): ripiego sulla credenziale condivisa, il turno prendera' avatar e nome dell'owner ``` ## Verificato sul gateway reale | `X-Forwarded-For` | handshake | |---|---| | assente | `NOT_PAIRED / device identity required` | | `127.0.0.1` | **HTTP 403** | | IP non-loopback | OK | ## Fix Default a `10.10.10.10` (valore dichiarativo: rappresenta il client *dietro* il proxy), vincolo documentato in README e `.env.example`, test che inchioda il "non-loopback" così il default non torna indietro. 100 passed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Il default 127.0.0.1 introdotto in #18 fa fallire il connect d'identita' con
HTTP 403: l'IP dichiarato coincide col peer loopback, quindi per OpenClaw non
c'e' nessun proxy davanti da credere. In prod il waker ripiegava sulla
password e il turno tornava con avatar e nome dell'owner della sessione --
cioe' esattamente il problema che #18 doveva togliere.

Verificato sul gateway reale: assente -> NOT_PAIRED, 127.0.0.1 -> 403, IP
non-loopback -> OK. Default portato a 10.10.10.10 (valore dichiarativo:
rappresenta il client dietro il proxy), vincolo documentato in README/.env.
claudia deleted branch fix/wake-identity-xff-default 2026-09-15 10:00:51 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Soltea-org/soltea-agent-gateway!19
No description provided.