Closing as superseded. PR #284 (same scope: rate-limit buckets keyed on peer address instead of client-controlled XFF) was merged to dev (eca8533) and verified live on palette-dev with the…
QA PASS (attempt 1). PR #285 merged into dev (ed435c5), CI green (test + docker), deployed to palette-dev. Evidence: served /static/jump.js sha256 3c68b42d... matches origin/dev tip. Rendered…
Note: a competing un-PR'd implementation (commit a0b3437 on fix-280, trusted-proxies + PALETTE_CLIENT_IP_HEADER design, pushed 01:34 UTC) was superseded by merged PR #284; its branch was deleted…
QA PASS (fix attempt 1). Merged PR #286 and deployed to palette-dev.
Evidence (live, post-rollout):
- text/plain attachment: GET /raw/ddngmc -> 200, Content-Type "text/plain; charset=utf-8", 42…
QA pass on PR #284 (merged to dev eca8533, deployed to palette-dev). Merged under OWNER REVIEW, not closed: one wiring gap.
Verified live on palette-dev (fix deployed, CI docker green): -…