# gogo3 (10.172.21.3) AllowedIPs Evidence # Public Key: F4M0nSSI7TkdOOb7IDNKLuhu++jvYxJUtF4gwqQAiHY= # # === STATE TIMELINE === # BASELINE (before fix): # allowed ips: (none) <-- BUG: even though DB has 10.172.21.0/24 # # AFTER IMMEDIATE FIX (wg set wg0 peer F4M0nSSI7TkdOOb7IDNKLuhu++jvYxJUtF4gwqQAiHY= allowed-ips 10.172.21.0/24): # allowed ips: 10.172.21.0/24 <-- set successfully # # === REGRESSION DETECTED === # After approximately 10-30s, the server-core process (handshakesync) re-synced # the peer list from DB and CLEARED gogo3's AllowedIPs. # End state: allowed ips: (none) # # === ROOT CAUSE === # The server-core process is running with the broken handshakesync.go (per # the plan's investigation). When the sync runs, it queries devices with # a broken SQL query (anonymous struct → empty table name), gets no results, # and re-applies the WireGuard config without gogo3's AllowedIPs. # # === VERIFICATION COMMANDS === # ssh root@172.20.8.191 'wg show wg0 | grep -A 4 "F4M0nSSI7TkdOOb7IDNKLuhu++jvYxJUtF4gwqQAiHY="' # Expected (transient): allowed ips: 10.172.21.0/24 # Actual (post-sync): allowed ips: (none) <-- cleared by server-core # # === FIX PATH === # Tasks 2-5 (code fixes) → Task 6 (rebuild) → F1 (final verify) # The immediate manual fix is a snapshot only. Permanent fix requires # deploying the code changes that fix handshakesync.go SQL.