Server is CPU-only now (tts.py/main.py/install.sh/Dockerfile/docker-compose no longer branch on CUDA/ROCm) -- two hardware backends nobody here could test against wasn't worth maintaining. Extension can now reach a companion server on a different machine: optional_host_permissions + a runtime permission prompt (triggered from Settings > Test connection) grant a non-loopback host on request, keeping the default install scoped to localhost. Docker's README gains a "listening mode" section for the -p 8787:8787 (all interfaces) case. Gitea Actions: new build-extension.yml auto-bumps the patch version (manifest.json is canonical, mirrored to package.json/package-lock.json via scripts/bump-version.mjs), builds, and self-signs the extension with AMO on every push, publishing the .xpi as the build artifact. Reconciled the versions (manifest was 0.2.3, package.json was 0.2.1) to 0.2.3 as the new baseline. docker-build.yml simplified to CPU-only and now uses the DOCKER/CI_TOKEN secrets instead of REGISTRY_TOKEN. Co-Authored-By: Claude Sonnet 5 <[email protected]>