Add Knowledge Base frontend - pages, components, API routes, Plate editor
- 13 Next.js API proxy routes under /api/kb/ - KB home page with article tree, search, pinned articles - Article viewer, editor (Plate rich text), new article, ...
Add gateway routes for KB and RAG services
- /api/kb/** routes to kamowskb-service - /api/rag/** routes to kamowsrag-service - Updated application.yml and k8s configmap with service URLs
Add RAG context injection for Knowledge Base in AI chat
- New RagClient service for calling RAGService semantic search - ChatOrchestrationService injects KB context before AI responds - Configurable via AiOrgSettings...
Add Qdrant vector DB and MiniLM embedding model K8s manifests
- Qdrant v1.12.1 deployment + ClusterIP service (ports 6333/6334) - HuggingFace TEI with all-MiniLM-L6-v2 deployment + service (port 8080) - Updated deploy-serv...
Додати знання Підприємства, об'єкти, репозиторії та права
- 4 нових об'єктів: KbArticleStatus, KbReviewStatus, KbMediaType, KbEmbeddingStatus - ServiceType.KNOWLEDGE BASE(18) і 6 КБ РольВиберіть записи (21-26) - 6 JPA ...
Scaffold RAGService - NATS consumer, embedding pipeline, Qdrant vector store, semantic search API
Scaffold KBService - Knowledge Base article CRUD, versioning, review workflow, media upload, NATS events
Wire up sidebar session history, folders, search, and remove duplicate header icon
- Fix wrapped API response parsing for sessions and folders - Fix folder create to use parentFolderId field name - Fix session/folder updates to use PUT (backen...
Rich markdown rendering for AI chat responses
- Styled headings (h1-h4) with bottom borders and proper sizing - Bullet lists (ul) and numbered lists (ol) with proper indentation and spacing - Bold text with...
Use non-streaming chat completion for REST endpoint
Streaming over REST with blockLast() was producing empty responses because WebClient's SSE parsing doesn't work reliably with bodyToFlux(String.class). Added ha...
Add detailed error logging to HuggingFaceAdapter for debugging 400 errors
Captures and logs the actual HF error response body instead of just status code.
Switch HuggingFace to router.huggingface.co (api-inference is deprecated)
HF returns 410 on api-inference.huggingface.co with message to use router.huggingface.co instead.
Use HuggingFace OpenAI-compatible endpoint with model in request body
HF's /v1/chat/completions endpoint takes the model ID in the JSON body, not in the URL path. Switched from per-model URL routing to standard
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...
Fetch all provider models on edit, pre-populate active selections
- Fetch provider details with all models (active+inactive) when clicking Edit - Pre-populate editing.models with IDs of active models - Show full model list wit...
Add model count to provider list, switch HF to router endpoint
- Include modelCount in provider list GET response - Switch Hugging Face default base URL to router.huggingface.co - Support both api-inference and router URL f...
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 ...
Додати пошукByProviderId запиту в AiModelRepository для моделі включити / вимкнути
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.
Return full decrypted API key in provider responses
Users need to see and edit the full key, not a masked version.
Stay in edit mode after creating provider, show test and model buttons
- After creating a new provider, stay in edit mode with the returned ID so user can immediately test connection and add models - Fix id checks from === undefi...
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...
Normalize base URL to prevent /v1/v1 duplication
Strips trailing /v1 from base URL before appending /v1/chat/completions, so users can enter base URLs with or without the /v1 suffix.
Restructure test connection to discover models first, handle rate limits gracefully
- Model discovery (lightweight GET) runs before chat test (POST) - Rate limit (429) errors show user-friendly warning instead of failing - Auth errors (401/403)...
Як ви бачите відправлення?
Кожен з цих оновлень землі в робочому просторі автоматично. Почати вільний час і дивитися його на тиждень після тижня.