v0.2.9 — DaydreamDEMON-TD User-Agent on cloud REST calls
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 forDEMON_TD_VERSIONand the derivedUSER_AGENT. Pure module (no TouchDesigner / third-party deps), imported by the HTTP modules via the samemod()/importdual-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/profileAPI-key validation call.build_tox.py—version.pyadded 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.toxasset is attached after a fresh rebuild that includes the newversion.pyDAT.