Vault password prompt is now the first thing shown when opening
uncloseai. No chat, no greeting, no data written until the user
creates or unlocks their vault. Each site has its own vault with
AES-256 encryption using password + device-specific salt.
- Add vault gate overlay blocking modal until password entered
- Remove plaintext conversation fallback from storage.js
- Route TTS mode, selected voice, language through vault
- Route custom API config reads through vault in models.js
- Add vault gate i18n strings (26 languages) explaining per-site
encryption of chat history, API keys, and settings
- Add missing keys to migration (voice, TTS mode)
- Re-show vault gate on lock from settings
- Permacomputer headers across all source files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove redundant newlines in fmt.Println calls (go/http/uncloseai.go)
- Update Go version to 1.19 for compatibility across all modules
- Add go.mod for examples directory with proper module replacement
- Add go.mod for uncloseai library package
- Run go mod tidy to resolve openai SDK dependencies
- Add guile-gnutls package to Dockerfile for HTTPS support
- Fix unbound variables by ensuring proper module imports (rnrs bytevectors, srfi srfi-43)
- Fix vector/list handling in model discovery with vector->list conversion
- All tests now pass: model discovery, non-streaming chat, and streaming chat work correctly