- Add I18nContext provider with useI18n hook and localStorage persistence
- Add translations.ts with complete strings for English, Chinese, Japanese, Korean
- Wrap App in I18nProvider, replace hardcoded toast messages with t() calls
- Add language selector to SettingsModal with Globe icon
- Add localization credits in About section
- Default language: English
- Add I18N_USAGE.md documentation
AudioMass uses a custom fork of wavesurfer.js with getLoudness()
and other extensions. The dist/ folder was excluded by server/.gitignore.
Added gitignore exception for audio-editor/dist/.
- Add lmModel parameter through full chain (types, API, routes, service)
- Add LM Model dropdown in Advanced Settings (defaults to 0.6B)
- Pass lmModel and lmBackend to format/enhance endpoint
- Update format_sample.py to accept --lm-model and --lm-backend args
- Auto-download model from HuggingFace if not present locally
- Persist model selection in localStorage
- Improve format route error logging with exit code and stdout/stderr
Fixes#9
On Windows, 'localhost' can resolve to IPv6 ::1 instead of IPv4
127.0.0.1, causing ECONNREFUSED when the Vite dev proxy tries to
reach the Express server. Using explicit 127.0.0.1 avoids this.
Fixes#12
The onToggleLike handler expected a string songId but RightSidebar
was passing the entire Song object, causing a FOREIGN KEY constraint
error when SQLite received '[object Object]' as the song_id.
Fixes#22