✨ Feature Release — Custom Provider Models in /v1/models
Compatible provider models are now saved to the customModels database, making them visible via /v1/models for all OpenAI-compatible clients.
✨ New Features
- Custom Provider Model Persistence — Compatible provider models (manual or imported) are now saved to the
customModelsdatabase so they appear in/v1/modelslisting for clients like Cursor, Cline, Antigravity, and Claude Code (PR #122 by @nyatoru) - Provider Models API — New
/api/provider-modelsendpoint (GET/POST/DELETE) for managing custom model entries with full authentication - Unified Model Deletion — New
handleDeleteModelremoves models from both alias configuration andcustomModelsdatabase - Provider Node Prefix Resolution —
getModelInforefactored for accurate custom provider model resolution
🔒 Security
- Authentication on Provider Models API — All endpoints require API key or JWT session authentication
- URL Parameter Injection Fix — Applied
encodeURIComponentto all user-controlled URL parameters - Shared Auth Utility — Authentication logic extracted to
@/shared/utils/apiAuth.ts
🔧 Improvements
- Toast Notifications — Replaced blocking
alert()with non-blocking toast notifications - Transactional Save — Database save must succeed before alias creation
- Consistent Error Handling — All model operations provide user-facing feedback