Rate limiter fix (limiter.lisp): - Override simple-rate::tax-rate with fixed-window implementation The upstream version updates the timestamp on every request, which prevents the window from ever resetting while polling is active. This override only updates the timestamp when the window expires and the counter resets. - Override rate:left to correctly report expired windows as full budget, so with-limitation does not block on stale tracking entries. - These are monkey-patches on r-simple-rate; the upstream library is not modified. Polling normalization: - front-page.lisp: channel-name polling 10s → 15s (matches stream-player.lisp) Context: In frameset mode, front-page.js and stream-player.js both poll the channel-name and now-playing endpoints. The sliding-window bug meant the rate limit counter never reset as long as requests kept arriving within the 60s timeout, eventually exhausting the budget and producing 429 errors for all API endpoints. |
||
|---|---|---|
| .. | ||
| admin.lisp | ||
| auth-ui.lisp | ||
| dj-console.lisp | ||
| frameset-utils.lisp | ||
| front-page.lisp | ||
| parenscript-utils.lisp | ||
| player.lisp | ||
| profile.lisp | ||
| recently-played.lisp | ||
| spectrum-analyzer.lisp | ||
| stream-player.lisp | ||
| users.lisp | ||