# 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 separate `ai-spel-static` Nginx service serves pinned Swedish Piper models and ONNX/Piper runtime files from same-origin `/static/piper-wasm-v1/` URLs with immutable caching. Game text is synthesized on-device and must never be sent to a TTS provider. - This pipeline bundles only the Piper worker/client glue. Model/runtime downloads, image builds, and deployment belong to `ai-spel/ai-spel-static` and the existing `large` runner. Never build or run these assets locally.