feat: analysis providers, settings UI, song search, WAV duration fix

- Multi-provider AI analysis (Anthropic, OpenAI, Ollama, Algorithmic)
- server-only guards on all provider files; client bundle fix
- /settings page with provider status, Ollama model picker, preferences
- Song search box on /analyze replacing raw MBID input (debounced, keyboard nav)
- Auto-register song via MusicBrainz on POST /api/tracks (no more 404)
- Fix WAV duration bug: last section songEnd was double-counting elapsed time
- Registry sync comment updated for self-hosted HTTPS git servers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
AJ Avezzano
2026-04-03 18:46:17 -04:00
parent 51f67f0aeb
commit 8b9d72bc9d
22 changed files with 1803 additions and 293 deletions

View File

@@ -1,14 +1,18 @@
/**
* Git Registry Sync
*
* Pulls CTP files from a remote GitHub repository (the "community registry")
* and upserts them into the local database.
* Pulls CTP files from a remote git repository (the "community registry")
* served over HTTPS. Compatible with any self-hosted git server
* (Gitea, Forgejo, GitLab CE, Gogs, etc.) or any public git host.
*
* The registry repo is expected to contain CTP JSON files at:
* <repo-root>/<artist-initial>/<artist-slug>/<recording-mbid>.ctp.json
*
* Configuration:
* REGISTRY_REPO — GitHub repo URL, e.g. https://github.com/org/clicktrack-registry
* REGISTRY_REPO — HTTPS URL of the registry repo,
* e.g. https://git.yourdomain.com/org/clicktrack-registry
* To authenticate, embed credentials in the URL:
* https://user:token@git.yourdomain.com/org/clicktrack-registry
* REGISTRY_BRANCH — branch to pull from (default: main)
*/