Skip to content

fix: add a cache-busting query param for all HTTP calls to processor (essentials-v3) - #108

Open
equinoy wants to merge 1 commit into
feat/essentials-v3from
fix/cache-busting-http-calls-v3
Open

equinoy wants to merge 1 commit into
feat/essentials-v3from
fix/cache-busting-http-calls-v3

Conversation

@equinoy

@equinoy equinoy commented Sep 22, 2026

Copy link
Copy Markdown

Brings the cache-busting fix (58c2244) onto the feat/essentials-v3 line (base v1.25.0-feat-essentials-v3.27).

Companion to #107 (same fix into main) and the Essentials PRs #1484 / #1485.

Why

Newer Crestron CH5 runtimes (1.3.0.x, pulled onto DGE panels via auto-update) enabled an aggressive caching mode that serves stale responses for the app's HTTP calls to the processor — including joinroom — leaving panels stuck in a 1008 reconnect loop / half-loaded UI. Root-caused with A. Welker at KPMG, validated in the NYC lab, confirmed live at The New Yorker.

What

Adds an axios request interceptor on the library's httpClient that appends a unique query param (_=<base36 timestamp><base36 random>) to every request, so each URL is unique and bypasses the cache. Ignored by the MC server; WebSocket untouched.

Cherry-picked cleanly from 58c2244; builds clean (ES + UMD + type declarations).

@equinoy
equinoy requested a lite review from Copilot September 22, 2026 20:56
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.25.0-fix-cache-busting-http-calls-v3.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The public initialization Axios client still lacks cache busting, so not all processor HTTP calls are covered.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Adds cache-busting query parameters to processor HTTP requests through the WebSocket middleware client.

Changes:

  • Appends unique _ timestamp/random query parameters.
  • Leaves WebSocket traffic unchanged.
  • Does not update the separate public initialization client.
File Summary
src/​lib/​store/​middleware/​websocketMiddleware.ts Adds cache busting to middleware HTTP requests; the public initialization client remains uncovered.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/lib/store/middleware/websocketMiddleware.ts
@equinoy
equinoy requested a review from ndorin September 22, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants