Add ProcessContext::host_render_mode(), defaulting to None. The CLAP
wrapper returns the mode last set through clap_plugin_render::set().
nih-plug already stores that value, but only hands it to the plugin via
BufferConfig on the next initialize(). CLAP hosts - and clap-wrapper's
AAX wrapper when Pro Tools enters an offline bounce - may switch the
render mode without re-activating, so a plugin whose real-time path
polls a worker thread without blocking had no way to know it should
block for the length of a faster-than-real-time bounce.
The default implementation keeps every other wrapper and every existing
ProcessContext implementor source-compatible.
Stopped AAX playback needs parameter delivery without blocking the next audio callback. This adds an explicit opt-in private extension that applies atomic parameter values and drains a separate parameter output queue while DSP continues. Standard CLAP params.flush retains its process exclusion contract.
Generation tokens require same-thread release. The extension validates the entire input batch before mutation and retains rejected output events in order. Its status distinguishes unconsumed input from consumed input with output pending. Opt-in is restricted to plugins without MIDI, poly modulation, or sample-accurate automation. The branch includes the product-pinned host_render_mode change for mid-session offline transitions.
A single-variant EnumParam advertises [0, 0]. Previously its valid value 0 was rejected, so even a valid batch containing a neighboring parameter was never applied. Zero is now accepted; non-finite and out-of-range values still reject the whole batch. CLAP normalization uses a divisor of at least one to avoid 0/0 for zero-step parameters.
CodeQL uses GitHub-hosted ubuntu-latest because this public repository has zero eligible self-hosted runners: its codeql-mini runners belong to a group that denies public repository access. Both languages, security-and-quality queries, pinned actions, permissions, timeout, and serial matrix are retained.
Validation:
The canonical product pin and signed candidate remain unchanged. A separate product checkout now pins df6852c; its working review241 and locked metadata validation pass. A rebuilt signed candidate and retail Pro Tools acceptance are still required for the product release.