What's Changed
🚀 New Features & Enhancements
- Coding Agent Telemetry & Detection:
- Track and persist client
User-Agentacross all gateway completion requests (@srouter/types,@srouter/db,apps/api). - Dedicated automatic detection for known coding agents and CLI tools: OpenCode, Claude Code, Cursor, Cline, Roo Code, Codex, Aider, Hermes, AGY / Antigravity, and Continue.dev.
- Track and persist client
- Analytics Overhaul:
- Added unified Breakdown & Distribution Tabs covering Models, Agents, and Providers in a clean, non-cluttered responsive view.
- Added authentic brand icons for coding agents and provider targets.
- Redesigned Request Audit Logs:
- Minimalist, cleaner table layout: merged Client IP under Timestamp, unified Model + Provider routing.
- Replaced side sheet with a centered, structured Log Detail Modal Dialog.
- Replaced bulky Raw JSON display with clean structured metadata, moving raw payloads into an optional collapsible section.
- Settings & Security Polish:
- Redesigned Admin Password management panel with a dedicated 3-column input grid, clear labels, and show/hide toggle.
- Fixed duplicate version display prefix (
vv...) in settings header. - Added dynamic status badge for Bearer Authentication (
EnforcedvsPermissive).
- Multi-Account & Quota Management:
- Multi-account round-robin load balancing across provider connections (#82).
- Render clean per-account quota sections inside unified provider cards.
- Pricing & Vision:
- Support loading model pricing dynamically from
models.jsonc. - Added vision/multimodal support to Antigravity and OpenCode adapters.
- Support loading model pricing dynamically from
- Database & Deployment Flexibility:
🐛 Bug Fixes
- Claude Code v2 Compatibility: Support for system role normalization, adaptive thinking headers, and unknown model warnings (#92).
- Provider Alias Routing: Resolved custom provider aliases to UUID-backed executors (#90, #95).
- Postgres Compatibility: Quoted camelCase aliases, coerced BIGINT aggregates to numeric values, and fixed integer overflow in timestamps (#94).
- API Error Codes: Ensured typed
ToContentfulStatusCodehelper is used across API responses (#93).
🔄 Pull Requests Included
- #82:
feat(providers): real round-robin load balancing across multi-account connections - #83:
feat(db): add PostgreSQL support via DATABASE_URL with async dual-driver - #86:
feat: remove built-in Playground feature - #89:
fix(db): enable TLS for Postgres (Heroku) - #90:
fix(providers): resolve custom provider aliases to UUID-backed executors - #91:
feat(antigravity): add gemini-3.8-flash model support - #92:
fix: Claude Code v2 compatibility — system role, adaptive thinking, unknown model warning - #93:
fix(db): enable TLS for Postgres (Heroku) - #94:
fix: Postgres compatibility — quote camelCase aliases + coerce BIGINT buckets - #95:
fix(providers): resolve custom provider aliases to UUID-backed executors - #98:
docs(skills): update and modularize SRouter agent skills
Full Changelog: v0.1.4...v0.1.5