Skip to content

v0.2.9 — DaydreamDEMON-TD User-Agent on cloud REST calls

Choose a tag to compare

@hthillman hthillman released this 02 Jun 18:58
· 49 commits to main since this release

Mirrors rtmg-vst#7.

Every cloud REST call now sends User-Agent: DaydreamDEMON-TD/<ver> (e.g. DaydreamDEMON-TD/0.2.9). This lets the cloud orchestrator (demon-public-demo) tag each session by client — VST vs web vs TouchDesigner — from the User-Agent, replacing the brittle "no Origin header" heuristic. Shared convention across clients: DaydreamDEMON-<CLIENT>/<ver> (the VST sends DaydreamDEMON-VST/b<build>).

Changes

  • New src/version.py — single source of truth for DEMON_TD_VERSION and the derived USER_AGENT. Pure module (no TouchDesigner / third-party deps), imported by the HTTP modules via the same mod()/import dual-shim the rest of the codebase uses, with a literal fallback so a missing module can never break a request (the header is advisory).
  • queue_client.py — User-Agent added to _headers(); rides every /api/queue/{join,status,claim,extend,leave} call.
  • oauth.py — User-Agent added to the /users/profile API-key validation call.
  • build_tox.pyversion.py added to the synced source DATs + the module-reload list.
  • Tests assert the header is present on both the queue and auth clients.

Scope matches the VST: REST calls only. The WebSocket connects to a pre-signed URL and the session is tagged at queue/join time, so the REST-layer User-Agent is sufficient.

Tests: 72 passed. Drift: clean against demon-public-demo @ f2be73b. BUILD_MARKER = v0.2.9-user-agent

Note: the demonTD.tox asset is attached after a fresh rebuild that includes the new version.py DAT.