Android Chrome loses the user gesture when getUserMedia is awaited before
recognition.start(). Add an explicit permission banner/button and only
start speech recognition synchronously after mic access is granted.
Co-authored-by: Cursor <cursoragent@cursor.com>
Web-App-Manifest, Service Worker und Icons für Install-Prompt;
Permissions-Policy erlaubt Mikrofon (self); getUserMedia vor Speech API.
Co-authored-by: Cursor <cursoragent@cursor.com>
The hook container has no ssh binary; origin on boka is ssh://.
Always pull from the HTTPS remote URL instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use git -c safe.directory instead of git config --global in the
container; set HOME=/tmp for deploy-hook.
Co-authored-by: Cursor <cursoragent@cursor.com>
Avoids global name conflicts when compose project name differs from
orphaned containers (playgroundschwenkonline vs playground).
Co-authored-by: Cursor <cursoragent@cursor.com>