# Changelog All notable changes to this project are documented here, newest first. Every change is committed and pushed so the history can be followed in git as well. ## [1.1.1] - 2026-09-08 ### Fixed - IPv6 trace showed `n/a (fetch failed)`: Node's `fetch` (undici) mangles IPv6 literals during TLS hostname verification. The check now uses `node:https` with the `family` option against `www.cloudflare.com`, so both families work with normal certificate validation. ## [1.1.0] - 2026-09-08 ### Changed - WARP check now queries Cloudflare over IPv4 and IPv6 separately and logs both egress IPs: `ipv4=104.28.x.x (warp=on) ipv6=2a09:bac1:... (warp=on) colo=AMS loc=NL`. - `/warp` slash command shows the IPv4 and IPv6 Cloudflare IPs on separate lines. - "Connected" now means the IPv4 path (the one Discord uses) reports `warp=on`; IPv6 is informational. ### Verified on the host (192.168.5.67) - Host public IP reports `warp=off`; inside the container both families report `warp=on`, colo `AMS`. - The Node process's Discord gateway socket originates from `172.16.0.2` on the `CloudflareWARP` interface, so bot traffic really goes through the tunnel. - Docker health check reports `healthy`; `/ping` and `/warp` are registered in the test guild. ## [1.0.0] - 2026-09-08 ### Added - discord.js 14 bot (`bot/src/index.js`) with `/ping` and `/warp` slash commands. - Periodic Cloudflare WARP check that logs the egress IP, `warp=on` flag, colo and `warp-cli status`, with automatic `warp-cli connect` when the tunnel is down. - `docker/Dockerfile`: `node:22-bookworm-slim` with the Cloudflare WARP Debian 12 client (`2026.7.1377.0`) installed from the official download URL; `npm ci` runs inside the build. - `docker/entrypoint.sh`: starts dbus and `warp-svc`, registers, sets `mode warp`, connects, and only starts the bot once Cloudflare's trace endpoint reports `warp=on`. - `docker-compose.yml`: one self-contained service per bot (own WARP tunnel, own registration volume), `NET_ADMIN`, `/dev/net/tun`, required sysctls, log rotation and a `warp=on` health check. - `scripts/deploy.sh`: ships the committed tree to the Docker host over SSH and restarts the stack. - `package-lock.json` generated inside a `node:22-bookworm-slim` container (no Node on the workstation). - README, `.env.example`, `.gitignore`, `.dockerignore`, `.gitattributes` (LF line endings). ### Removed - Placeholder `test` file from the initial commit.