# AI-spel frontend instructions - This repository owns only the static, accessible web client and its container/chart packaging. - Rust remains the sole authority for game state. The frontend calls the backend through same-origin `/api/...` and `/version` paths. - Keep frontend and backend behind `ai-spel.k3s.k0.nu` so session cookies remain same-origin. - `VERSION` is the only release-version source in this repository. Use `scripts/bump-version.py`; do not manually edit chart versions. - Changes are written locally and built, checked, published, and exercised by Gitea Actions on the existing `large` runner and Kubernetes. Never run apps, tests, containers, images, or binaries locally. Do not create or register runners. - Never commit secrets, generated credentials, kubeconfigs, or environment files. - Helm charts are published to `harbor.k3s.k0.nu/ai-spel`; Argo CD uses the existing `ai-spel` project and namespace. - Player-facing speech uses the local Piper WebAssembly adapter when the player has activated audio. The voice model is downloaded once from the configured model repository and cached by the browser; game text is synthesized on-device and must never be sent to a TTS provider. - Build Piper/ONNX WebAssembly files in the `large` runner and serve them from the frontend image under the versioned `/tts/piper-wasm-v1/` path. Never build or run these assets locally.