Czat AI, inteligentna mapa i floating toolbar
Filip Borkowski, Backend/Frontend/Fullstack Engineer
Asystent AI — Claude Haiku
Platforma Ai-Cargo zyskała wbudowanego asystenta AI opartego na modelu Claude Haiku od Anthropic. Każdy użytkownik podaje swój klucz API w ustawieniach konta — klucz jest weryfikowany przed zapisem (test połączenia z API Anthropic). Czat dostępny jest jako pełna strona (/dashboard/czat) ze streamingiem odpowiedzi w czasie rzeczywistym.
System bezpiecznie przechowuje klucze API w Supabase, a koszty korzystania z Claude Haiku są rozliczane bezpośrednio na koncie Anthropic użytkownika.
Floating AI Toolbar
Nowy przycisk w prawym dolnym rogu każdej strony dashboard otwiera szybki panel czatu z Claude. Bez opuszczania bieżącej strony można zadać pytanie o zlecenia, kontrahentów czy flotę. Panel zawiera link do pełnego czatu, czyszczenie historii i wskaźnik modelu.
Inteligentna mapa — mapcn
Panel mapy został przepisany z imperatywnego kodu MapLibre GL na deklaratywne komponenty React z biblioteki mapcn. Nowe funkcje:
- Automatyczna detekcja theme — mapa przełącza się między trybem jasnym a ciemnym bez dodatkowej konfiguracji
- Tooltips — po najechaniu na marker pojazdu wyświetla się tag pojazdu
- Popupy — kliknięcie markera otwiera popup z pełnymi danymi pojazdu, ostylowany zgodnie z shadcn design system
- Geolokalizacja — wbudowany przycisk lokalizacji użytkownika
- Fullscreen — tryb pełnoekranowy mapy jednym kliknięciem
- Animowane markery — pulsujące kółka z kolorami statusów (aktywny, nieaktywny, serwis)
Poprawki i ulepszenia
- Powiadomienia email — czerwony gradient z animacją pulsowania dla lepszej widoczności nowych zleceń
- Parametry logiki — naprawiono layout przycisków toggle nakładających się na tytuł sekcji
- Zadania — synchronizacja z Supabase w tle, panel ładuje się natychmiast bez blokowania
- Auto-pracownik — przy tworzeniu nowego podmiotu właściciel jest automatycznie dodawany do listy pracowników
- Mapa — naprawiono wyświetlanie po migracji na mapcn (konflikt prop style z MapLibre GL)
- AI toolbar — ikona zastąpiona logo AI-CARGO
- Email aliasy — poprawiona czcionka adresów email w ustawieniach podmiotów
- Powiadomienia o release — automatyczne emaile do użytkowników przy nowym deploy (endpoint + webhook Vercel)
- Czat AI — fix streaming: naprawiono błąd 500 przy odpowiedziach (AI SDK v6
streamTextbezawait) - Toolbar AI — zmiana nazwy z "Asystent AI" na "Ai-Cargo"
- Webhook changelog — automatyczne pobieranie listy zmian z release notes do emaili
- Wydajność zegara — DOM refs zamiast setState, zero re-renderów co 1s
- Wydajność zadań — upsert zamiast delete+insert, dane wyświetlane natychmiast
- Header — usunięto kółko avatara i zieloną kropkę online
- WorkDesk — usunięto panel "Wysłane do akceptacji"
- AI toolbar glow — pulsacyjna animacja blasku wokół ikony czatu
- Czat AI + Supabase — agent odpowiada z realnymi danymi z bazy (pojazdy, pracownicy, zlecenia)
- AI Tool Calling — agent może modyfikować dane: update, insert, delete, wyszukiwanie
- Webhook email fix — równoległa wysyłka (Promise.allSettled), lepsza diagnostyka
- Email zlecenia — najnowsze wątki domyślnie na górze
- Stały rozmiar okna podglądu emaila w bibliotece danych
- Nowa kategoria "Ustawienia" w tabeli reguł parametrów
- Logo w czacie AI — ikona robota zastąpiona logo AI-CARGO w oknie czatu