Commit Graph

530 Commits

Author SHA1 Message Date
2e67c233f7 fix: Ostatnie odniesienie "Hub" → "Partner" w skrypcie Zabbix
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:12:58 +01:00
ff930f8724 fix: Pozostałe odniesienia "Biznes Hub" → "Biznes Partner"
- docs/architecture/01-system-context.md: diagram Mermaid
- docs/zabbix_setup.md: konfiguracja monitoringu

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:12:00 +01:00
cebe52f303 refactor: Rebranding i aktualizacja modelu AI
- Zmiana nazwy: "Norda Biznes Hub" → "Norda Biznes Partner"
- Aktualizacja modelu AI: Gemini 2.0 Flash → Gemini 3 Flash
- Zachowano historyczne odniesienia w timeline i dokumentacji

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:08:39 +01:00
fdf75ce152 fix(chat): Always start with Flash model (ignore saved preference)
- Flash is free and fast - best default for users
- Prevents accidental Pro usage and costs
- Users can still switch to Pro manually if needed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:08:06 +01:00
1cee516950 feat(chat): Update NordaGPT icon - smiling green robot (R4-A)
- Modern robot design with visor
- INPI green colors (#22c55e → #14b8a6 gradient)
- Glowing eyes effect
- Friendly smile
- Yellow antenna (north indicator)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:05:18 +01:00
bd78ba0688 feat(chat): New NordaGPT icon and updated example questions
- Created nordagpt-icon.svg combining Norda compass + INPI circuit motif
- Navy blue background with green AI chip center
- Yellow north indicator (Norda brand color)
- Updated header icon from robot emoji to new SVG
- Updated empty state icon
- Changed example questions to be more relevant:
  - 'Szukam partnera do projektu budowlanego'
  - 'Kto w Izbie zajmuje się marketingiem?'
  - 'Poleć firmę z dobrymi opiniami Google'
  - 'Co nowego na forum?'

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:54:14 +01:00
37b6aa33d8 docs(chat): Update model info panel with Flash/Pro details and pricing
- Show both models (Flash free, Pro premium) with visual distinction
- Add pricing section with costs and limits
- Update history timeline with today's changes
- Update benefits section with current features

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:46:37 +01:00
ca166cf02d fix(chat): Parse techInfo values as numbers to fix toFixed() error
- costUsd was a string, causing 'toFixed is not a function' error
- Added parseFloat() for cost and parseInt() for latency

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:33:59 +01:00
002a73863e fix(chat): Use correct AIAPICostLog model name for cost tracking
- Changed from AIApiCost to AIAPICostLog (actual model in database.py)
- Changed total_cost_usd to total_cost (actual field name)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:26:15 +01:00
1b2ba66ead feat(chat): Dwa klucze API - Free tier dla Flash, Paid dla Pro
- GOOGLE_GEMINI_API_KEY_FREE: klucz Free tier dla Flash (darmowy)
- GOOGLE_GEMINI_API_KEY: klucz Paid tier dla Pro (płatny)
- GeminiService automatycznie wybiera klucz na podstawie modelu
- Flash pricing ustawiony na $0.00 (Free tier)
- UI pokazuje Flash jako "Darmowy"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:19:59 +01:00
26db9a7cc9 feat(chat): Wybór modelu Flash/Pro zamiast Thinking Mode + koszt miesięczny
UI:
- Dropdown wyboru modelu: Flash (szybki, $0.05) vs Pro (analiza, $0.20)
- Wyświetlanie kosztu miesięcznego w headerze
- Badge odpowiedzi pokazuje: model, czas, koszt

Backend:
- Endpoint /api/chat/settings obsługuje model i monthly_cost
- NordaBizChatEngine przyjmuje parametr model
- Koszt zapisywany w tech_info odpowiedzi

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:04:29 +01:00
fa696b331f feat(chat): Różne instrukcje dla trybów thinking (high vs minimal)
- Tryb głęboki: wymaga rozbudowanej analizy, list, kontekstu
- Tryb szybki: zwięzłe odpowiedzi z linkami
- Dodano przykład odpowiedzi w trybie głębokim

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:56:29 +01:00
98b50b05c2 fix(chat): Poprawka URL forum /forum/{id} zamiast /forum/topic/{id}
- Naprawiono URL w kontekście (był /forum/topic/X, prawidłowy /forum/X)
- Dodano instrukcje o linkach do forum, B2B, news w system prompt
- Model MUSI używać URL z pola "url" przy odpowiedziach o forum

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:53:51 +01:00
5b2eb1a8af fix: Dodano info że email jest tymczasowy (docelowo: kontakt@nordabiznes.pl)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:50:50 +01:00
edd3151d9e fix: Zmiana email kontaktowy na maciej.pienczyn@inpi.pl
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:50:19 +01:00
eb057404bb fix: Email kontakt@nordabiznes.pl oznaczony jako "w przygotowaniu"
Skrzynka mailowa nie istnieje jeszcze - wyłączono klikalny link
i dodano informację dla użytkowników.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:49:41 +01:00
827168fb24 feat(chat): Obsługa linków wewnętrznych i lepszy badge thinking
- Dodano style CSS dla forum-link (fiolet), news-link (zieleń), b2b-link (żółty)
- formatMessage() obsługuje teraz linki wewnętrzne (/forum/, /news/, /b2b/)
- Badge thinking pokazuje opis jakościowy (np. "dogłębna analiza z weryfikacją")

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:47:34 +01:00
08aee8864a feat(chat): Full forum, news and B2B content in NordaGPT context
- Forum: treść tematów, autorzy, odpowiedzi, linki, popularność
- B2B: pełne opisy ogłoszeń, budżet, autor
- News: opis, AI streszczenie, słowa kluczowe, linki
2026-01-29 10:40:43 +01:00
9a7ac1586c feat(chat): Show thinking mode and response time in AI messages 2026-01-29 10:35:20 +01:00
31350d6428 fix: Add thinking_level to API logs for debugging 2026-01-29 10:30:00 +01:00
30729ef83e feat(ai): Thinking Mode dla NordaGPT
- Nowy SDK google-genai z obsługą thinking mode
- Przełącznik poziomu rozumowania w UI chatu (3 poziomy)
- Błyskawiczny (minimal) - szybkie odpowiedzi
- Szybki (low) - zrównoważony
- Głęboki (high) - maksymalna analiza
- Endpoint /api/chat/settings do zapisywania preferencji
- Dokumentacja dla NotebookLM (prezentacja)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:20:58 +01:00
2c13509cd1 feat(model-comparison): Pełny kontekst NordaGPT
Dodano:
- Audyty GBP (Google Business Profile) - oceny, recenzje
- Audyty SEO (PageSpeed) - wyniki dla stron WWW
- Baza wiedzy ZOPK - elektrownia jądrowa, offshore wind, infrastruktura
- Zasada prywatności - nie podawać ukrytych danych kontaktowych

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:18:51 +01:00
3aa302d399 fix(model-comparison): Dodanie brakującego importu ZOPKNews
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:16:12 +01:00
095c9c0df5 feat(model-comparison): Przycisk 'Uruchom ponownie' symulację
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:14:46 +01:00
e589a13a71 fix(model-comparison): Pełny kontekst NordaGPT zamiast uproszczonego
- Wszystkie firmy z pełnymi danymi (nie tylko 50)
- Osoby w firmach (zarząd, wspólnicy, udziały)
- Tematy forum
- Wydarzenia
- Ogłoszenia B2B
- Rekomendacje
- Aktualności ZOPK
- Social media

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:12:07 +01:00
32b42ad8eb fix(admin): Fix Company attribute name description_short 2026-01-29 09:02:05 +01:00
11f73fe5e1 fix(admin): Use gemini_service directly for model comparison 2026-01-29 09:00:13 +01:00
c285d29ed4 fix(admin): Fix model comparison - use internal methods and /tmp for results 2026-01-29 08:50:54 +01:00
323dfca9de fix(admin): Add CSRF token to model comparison simulation 2026-01-29 08:47:49 +01:00
652a441a30 feat(admin): Add AI model comparison page
- New admin page /admin/model-comparison for comparing AI responses
- Side-by-side comparison: old model (2.5 Flash-Lite) vs new (3 Flash)
- Questions from real conversations (Artur Wiertel, Maciej Pienczyn)
- Run simulation button to generate new responses
- Added link in admin menu under "Porównanie modeli"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:45:33 +01:00
e0df7f2adf feat(ai): Upgrade NordaGPT to Gemini 3 Flash Preview
- Changed AI model from Gemini 2.5 Flash-Lite to Gemini 3 Flash Preview
- Added Gemini 3 models (3-flash, 3-pro) to GEMINI_MODELS config
- Updated GEMINI_PRICING with current 2026 prices
- Updated chat UI: badge, model info modal, specs, timeline
- Benefits: 7x better reasoning, thinking mode, 78% SWE-bench

Cost estimate: ~$40/month at 1000x current usage (Tier 1)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:38:02 +01:00
c8f70dc2cf refactor: Centralizacja COMPANY_COUNT_MARKETING = 150
- Dodano stałą globalną COMPANY_COUNT_MARKETING w app.py
- Dodano do context_processor jako COMPANY_COUNT
- Zaktualizowano szablony: index.html, chat.html, landing.html, release_notes
- Jedno miejsce do zmiany gdy Izba zaktualizuje cel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:27:04 +01:00
79c1b2ddd9 feat(health): Nowe endpointy + połączenie release notes v1.19.0
Health monitoring:
- Dodano: /settings/privacy, /settings/blocks, /settings/2fa
- Dodano: /wiadomosci, /wiadomosci/wyslane, /wiadomosci/nowa
- Dodano: /edukacja, /admin/insights

Release notes:
- Połączono v1.18.0 i v1.19.0 w jeden wpis (28 stycznia 2026)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:21:43 +01:00
6b8840cf92 feat(categories): Reorganizacja kategorii + release notes v1.19.0
Zmiany w kategoriach:
- Utworzono "Budownictwo ogólne" (9 firm) i "Produkcja ogólna" (13 firm)
- Utworzono "Usługi finansowe" (banki, kantory, ubezpieczenia)
- Rozdzielono "Księgowość" od "Usługi finansowe"
- Przeniesiono INPI i SEO PARTNER do "IT i Technologie"
- Dodano kategorię "Do uzupełnienia" (żółta, 27 firm bez opisu)

Zmiany UI:
- Sortowanie podkategorii malejąco po liczbie firm
- Poprawka podświetlania aktywnej kategorii
- Dropdown blokowania: domena emaila przy duplikatach nazw

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:19:22 +01:00
23726f3c10 feat(categories): Sortowanie podkategorii malejąco po liczbie firm
Podkategorie są teraz sortowane od największej do najmniejszej
liczby przypisanych firm (od lewej do prawej).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:11:38 +01:00
75c6b9ca68 feat(ui): Żółta kategoria "Do uzupełnienia" + email w dropdown blokowania
1. Kategoria "Do uzupełnienia":
   - Żółty kolor (wyróżnia się od innych)
   - Pozycja z prawej strony (margin-left: auto)

2. Dropdown blokowania użytkowników:
   - Wyświetla domenę emaila w nawiasie: "Jan Kowalski (gmail)"
   - Rozwiązuje problem duplikatów imion/nazwisk

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:07:07 +01:00
9339fa7245 fix(categories): Poprawka podświetlania kategorii w katalogu
- Główne kategorie nie są już domyślnie podświetlone na niebiesko
- Tylko aktywna kategoria (Wszystkie LUB wybrana główna) jest podświetlona
- Hover nadal działa dla wszystkich kategorii

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:01:46 +01:00
2b933367b7 fix(branding): Zmiana 112 → 150 w katalogu firm
- 150 podmiotów gospodarczych (cel marketingowy)
- 4 kategorie • 17 podkategorii (zamiast "16 branż")

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:56:35 +01:00
db781f06cd feat(ui): Hierarchiczny filtr kategorii firm
Nowy układ filtrów:
- Rząd 1: Wszystkie + kategorie główne (sortowane wg liczby firm)
- Rząd 2: Podkategorie (pojawiają się po kliknięciu głównej)

Zachowanie:
- Wszystkie → pokazuje wszystkie firmy
- Kategoria główna → pokazuje firmy z głównej + podkategorii
- Podkategoria → pokazuje tylko firmy z tej podkategorii

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:54:59 +01:00
ab117c962d chore(branding): Zmiana 111 → 150 podmiotów gospodarczych
Landing page i chat timeline - cel marketingowy 150 podmiotów
zamiast dynamicznej liczby z bazy (111).

Zmieniono również terminologię:
- "firm członkowskich" → "podmiotów gospodarczych"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:49:29 +01:00
eac72f48f6 feat(pwa): Apple Touch Icon + Web Manifest + PNG fallbacks
Dodano pełne wsparcie dla ikon na wszystkich urządzeniach:
- apple-touch-icon.png (180x180) - iOS "Dodaj do ekranu głównego"
- favicon-192.png, favicon-512.png - Android PWA
- favicon-16.png, favicon-32.png - PNG fallback dla starszych przeglądarek
- site.webmanifest - PWA manifest z theme_color #233e6d
- meta theme-color - kolor paska adresu na mobile

Gwiazda Nordy z żółtym wskaźnikiem północy (różni się od Izby
dla łatwego rozróżnienia zakładek).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:44:11 +01:00
dddd7fb01f feat(branding): Favicon z gwiazdą Nordy (kompas)
- Stworzono SVG favicon z kompasem/gwiazdą Nordy
- Żółty wskaźnik północy, białe ramiona, granatowe tło
- Zgodne z brandingiem Norda Biznes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:33:37 +01:00
ef0834636d fix(footer): Poprawka email kontaktowego na kontakt@nordabiznes.pl
Zgodnie z notatką ze spotkania z Arturem (2026-01-28), email ma być:
kontakt@nordabiznes.pl (nie biuro@norda-biznes.info)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:30:08 +01:00
4cd65234c9 chore(footer): Aktualizacja danych kontaktowych na dane Izby NORDA
- Email: biuro@norda-biznes.info (zamiast prywatnego)
- Telefon/WhatsApp: +48 729 716 400 (biuro Izby)
- Adres: ul. 12 Marca 238/5 (oficjalny adres Izby)

Źródło: https://norda-biznes.info/kontakt

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:29:25 +01:00
900ff45c33 style(nav): Reorganizacja navbar dla niezalogowanych
- Usunięto 'Firmy' z menu dla niezalogowanych (bez sensu bez logowania)
- Przesunięto 'Strefa Gościa' na prawo od 'Rejestracja'
- Nowy układ: Zaloguj | Rejestracja | Strefa Gościa

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:27:20 +01:00
7f9a524f6d fix(nav): Usunięcie 'Strefa Gościa' dla zalogowanych użytkowników
Strefa Gościa ma sens tylko dla niezalogowanych osób, które chcą
odwiedzić stronę Izby. Zalogowani użytkownicy nie potrzebują tego linku.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:23:16 +01:00
81127258b4 feat(nav): Dodanie 'Strefa Gościa' dla niezalogowanych
Link do norda-biznes.info widoczny w navbar dla gości
przed przyciskami Zaloguj/Rejestracja.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:20:53 +01:00
6c1059f133 docs(release): Dodanie v1.18.0 do release notes
Nowe funkcje w v1.18.0 (28 stycznia 2026):
- Prywatność: ukrywanie telefonu/emaila, preferencje kontaktu
- Blokowanie kontaktów (bidirectional)
- Hierarchiczne kategorie firm
- Platforma Edukacyjna
- Panel Insights dla adminów
- RODO: sanityzacja danych wrażliwych w czacie
- Security: izolacja sesji czata

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:19:39 +01:00
b19dfa7227 feat(insights): Baza wiedzy i insights dla rozwoju portalu
System zbierania feedbacku z interakcji użytkowników:
1. Źródła wiedzy:
   - Forum (tematy, odpowiedzi)
   - Chat AI (tylko odpowiedzi asystenta - fakty publiczne)
   - Analiza wzorców pytań (zanonimizowana)

2. Kategorie insights:
   - feature_request (propozycje funkcji)
   - bug_report (zgłoszenia błędów)
   - company_search (wyszukiwania firm)
   - question (częste pytania)

3. Panel admina: /admin/insights
   - Przeglądanie insights
   - Zmiana statusów (new → planned → implemented)
   - Synchronizacja z forum/chat

PRIVACY: Pytania użytkowników są analizowane wzorcowo (anonimizacja),
treść pytań NIE trafia do bazy wiedzy.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:09:05 +01:00
ca03cb0b3b feat(security): Silnik sanityzacji danych wrażliwych (RODO)
Automatyczne wykrywanie i maskowanie danych wrażliwych w czacie:
- PESEL (walidacja sumy kontrolnej)
- Numery kart kredytowych (algorytm Luhn)
- IBAN (konta bankowe)
- Hasła (detekcja kontekstowa)
- Dowody osobiste i paszporty

NIE wykrywa (zgodnie z wymogami):
- NIP (publiczne dane biznesowe)
- Adresy email (celowo podawane)

API dla adminów: POST /api/admin/test-sanitization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:00:18 +01:00