Codex previously graded D (blocking) for two security concerns: 1. trust proxy:1 trusts any direct connection as a proxy 2. extractTailscaleIPs reads raw X-Forwarded-For/X-Real-IP headers Fixes: - trust proxy changed from '1' to ['loopback', '172.16.0.0/12', '10.0.0.0/8'] - Covers bare-metal (Caddy on localhost) and Docker bridge deployments - External IPs cannot appear in list → cannot spoof X-Forwarded-For - extractTailscaleIPs now uses req.ip (resolved by Express trust-proxy chain) instead of reading raw headers directly - Codex re-grade: B (no blocking issues) - All 1775 tests pass Security verified on test server: - Sensitive routes: 403 from external ✓ - Public routes: 200 ✓ - Health endpoints: JSON 200 ✓