Round-6 follow-up: UX polish + client-IP fix #26
Reference in New Issue
Block a user
Delete Branch "feature/ux-polish-ipfix"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to the round-6 batch (single PR → one deploy). #4 and #5 are deferred to the next PR as agreed.
(3) Client IP — the admin Messages list showed
172.18.0.3(the docker-network caddy hop), not the real client. The compose caddy (Caddy 2.7+) wasn't trusting the host caddy'sX-Forwarded-For. Fix:trusted_proxies static private_rangesindeploy/caddy/Caddyfile— test contour trusts the private-IP host caddy → real client IP; prod (no host caddy) clients are public → untrusted → real peer used, so the one config is correct and spoof-safe in both. This also fixes the gateway's per-IP rate limiter, which was bucketing on the same hop.peerIPunit-tested; Caddyfile validated.(2) Ad banner gated off behind a compile-time
SHOW_AD_BANNER=false— the{#if}branch, theAdBannerimport andbanner.tsare tree-shaken out of the prod bundle (verified); code kept for later.(8) Landing Telegram entry → just the 64px logo (clickable, no button/caption).
(9) TG-fullscreen header → title + menu as a centred pair (hamburger right of the title), pinned to the bottom of the TG nav band.
(6) Edge-swipe back → a left-edge rightward drag navigates back (touch/pen only, armed from ≤24px so it never fights the board; skipped inside Telegram).
(7) Chat soft-keyboard → a bottom-sheet
Modallifted above the keyboard by avisualViewport-driventransform(compositor-only — the board behind and the sheet no longer relayout). iOS-specific; needs on-device fine-tuning. NativeKeyboard.setResizeMode('none')awaits Capacitor (not wired yet).(1) Tests backfilled for the merged round-6 work: e2e for the in-game "✓ in friends" item + a board→board tile relocation; codec units for
last_activity_unix+OutgoingRequestList.Green locally: gofmt/build/vet, gateway tests; svelte-check 0, 116 unit, 64 e2e, build (banner tree-shaken).
New commits pushed, approval review dismissed automatically according to repository settings