Reorder AI settings tabs, rename Sales Agent Setup to AI Sales Agent Setup
- Provider Setup is now the first tab, Usage & Overview is last - Renamed "Sales Agent Setup" to "AI Sales Agent Setup" - Updated settings slideout nav and sett...
Support enabling/disabling models via PUT /api/ai/providers/{id}
When the frontend sends a 'models' array of model IDs in the provider update request, models in the array are set active and models not in the array (belonging ...
Add findByProviderId query to AiModelRepository for model enable/disable
Wire up end-to-end chat messaging with loading states
- Add POST handler to messages API route - Fix message type mismatches between input, context, and messages component - Show user message immediately, display l...
Add POST **************** endpoint for sending chat messages
Receives user message, sends to AI provider via ChatOrchestrationService, returns complete response. Supports REST-based chat flow.
Add Hugging Face as dedicated provider type with custom adapter
- HuggingFaceAdapter handles HF's URL structure **************** - Model discovery via HF API (warm text-generation models) - Registered in ProviderAdapterFacto...
Auto-grow input to 11 lines when maximized, Enter sends, Alt+Enter newline, fix sidebar detection
- Input grows up to 11 lines (220px) when window is maximized, 6 lines otherwise - Enter submits message, Alt+Enter inserts newline (was Shift+Enter) - Use Resi...
Add manual model creation UI and POST /api/ai/models route
- Add "Add model manually" form in Provider Setup edit view - Add POST handler to /api/ai/models API route - Users can specify model ID and display name for cus...
Add manual model creation, handle 410/404 in test, use discovered model for CUSTOM providers
- POST /api/ai/models endpoint for manually adding models - DELETE /api/ai/models/{id} endpoint - CUSTOM providers use first discovered model for chat test inst...
Implement model auto-discovery on provider test connection
Each provider adapter discovers available models from the provider API. Models are automatically saved to the database when Test Connection succeeds.
Add detailed help tips, update provider types, improve model display
- Replace placeholder help tips with user-friendly explanations for all AI settings tabs (Usage, Providers, MCP, Security, Sales Agents) - Update PROVIDER_TYP...
Show configured providers in AI chat model selector dropdown
Fetches both models and providers. Shows providers as selectable options alongside any configured models, so users can pick a provider even when specific models...
Switch AI chat tool from dark theme to light theme matching other tools
Uses light backgrounds, var(--color-primary) accents, and org theme colors consistent with Calculator, Softphone, and other tool windows.
Add Sales Agent Setup tab, update settings nav slideout, fix subtitle
- Add Sales Agent Setup tab to AI settings (placeholder) - Add Artificial Intelligence section to settings slideout panel - Fix My Account nav links (Relationsh...
Scaffold AIService project with providers, services, websocket, and controllers
AI chat orchestration service on port 4205 with: - WebSocket streaming with session auth via ***/Redis - Chat orchestration with auto-routing, usage tracking, a...
Scaffold MCPGatewayService with auth, controllers, transports, and health monitoring
Wire spam reporting into MessageBrowser with toast and state handling
Add tooltips to WYSIWYG toolbar buttons in New Email tool
Applies title attributes to all Quill toolbar buttons and pickers after mount: Bold, Italic, Underline, Strikethrough, Text Color, Background Color, Heading, Al...
Dynamically update tool window title from email subject
Add tool:title event to the tool window system. The New Email tool dispatches it as the subject field changes, showing the subject as the window title (abbrevia...
Add New Email tool icon to NavTop bar
Adds a mail icon button to the left of the Softphone button that opens the New Email tool window.
Add GET endpoint for message labels
GET **************** returns label IDs applied to a specific message.
Pass org theme URL to Docs for per-org logo and favicon
Construct theme path from X-Forwarded-Host (e.g., internal.kamocrm.com -> **************** and append as &theme= query param in the Docs URL. Docs reads this to...
Add sync conversations button for backfilling from IMAP
Shows a "Sync Conversations" button when no conversations are found, triggering bulk indexing of existing IMAP messages into conversation view.
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.