7da0cbb714
MASQUERADE rewrites the source IP of forwarded packets from the cell's WG address (10.0.x.1) to cell-wireguard's bridge IP (172.20.x.9). The peer-sync endpoint authenticates callers by checking that the source IP is inside a known cell's vpn_subnet, so MASQUERADE caused all pushes to fail with 403. Fix: _push_permissions_to_remote() now calls _local_wg_ip() to get the local wg0 address and passes it as X-Forwarded-For. _authenticate_peer_cell() already supports XFF for exactly this proxying scenario. Also adds a test verifying the header is present in the constructed curl command. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>