JamesDSP browser port source revision: a982b53c4ab347d1d9c50f4ce7ee3c2735eaa817 Repository: /home/josh/development/personal/jamesdsp-web (main) Vendored source files: web/jamesdsp-node.js, params.js, ir-utils.js, ir-builtins.js, ir-store.js, worklet.js, dsp/jamesdsp.js and dsp/jamesdsp.wasm. Integration adaptations: wrapper dependencies and WASM URLs use the page's manifest-hashed Lazy.url map; the worklet statically imports the pinned jamesdsp-a982b53.mjs module because AudioWorkletGlobalScope rejects dynamic import. The wrapper keeps the shared AudioGraph route and does not create a MediaElementSource. Liveprog, DDC and arbitrary text effects are rejected and not serialized in ytplayer. All runtime code remains in lazy feature:jamesdsp; its offline completion membership requires the explicit jamesDsp opt-in. The generated engine, parameter tables, IR utilities/store and built-in IR set are copied from the pinned revision. The uploaded/generated IR cap is 65,536 frames at the internal 44.1/48 kHz rate (low-power devices use 24,000 frames). License provenance: LICENSE.txt is the port's GPL-3.0-or-later license. The upstream snapshot at upstream/Main/LICENSE contains GPL-2.0 text; see README.md.