From 82a5cf70f2029fb45bb8287ef68f7e7b39399902 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Tue, 10 Feb 2026 12:40:52 -0500 Subject: [PATCH] fix(middleware): Correct rate limit header type conversion - Fix string(rune(remaining)) to strconv.Itoa(remaining) in device_auth.go - Prevents garbage characters in X-RateLimit-Remaining header - No functionality changes, only fixes broken headers Testing: Verified with code inspection that headers return proper integers --- internal/middleware/device_auth.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/middleware/device_auth.go b/internal/middleware/device_auth.go index 8a45663..a964def 100644 --- a/internal/middleware/device_auth.go +++ b/internal/middleware/device_auth.go @@ -88,7 +88,7 @@ func (m *DeviceAuthMiddleware) Authenticate(next echo.HandlerFunc) echo.HandlerF remaining := m.rateLimiter.GetRemainingRequests(deviceID, requestType, config) c.Response().Header().Set("X-RateLimit-Limit", "60") - c.Response().Header().Set("X-RateLimit-Remaining", string(rune(remaining))) + c.Response().Header().Set("X-RateLimit-Remaining", strconv.Itoa(remaining)) ctx := DeviceContext{ ID: device.ID.Bytes,