Commit Graph

528 Commits

Author SHA1 Message Date
21a78befad feat(contacts): Baza kontaktów zewnętrznych dla członków Norda
- Nowy model ExternalContact z pełnymi danymi kontaktowymi, social media, related_links (JSONB)
- Migracja SQL 020_external_contacts.sql z full-text search
- Routes: /kontakty (lista), /kontakty/dodaj, /kontakty/<id>, /kontakty/<id>/edytuj
- Szablony: lista z filtrami, karta szczegółów, formularz CRUD
- Nawigacja: link "Kontakty zewnętrzne" w dropdown Społeczność
- Poprawka: aktualizacja liczby firm z 80 na 111

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 08:35:06 +01:00
a172f7af49 feat(announcements): Śledzenie odczytów ogłoszeń (seen by)
- Nowa tabela announcement_reads do śledzenia kto przeczytał
- Avatary użytkowników z inicjałami (tooltip z nazwiskiem)
- Statystyki: liczba i procent użytkowników którzy przeczytali
- Progress bar wizualizujący zasięg ogłoszenia
- Automatyczny zapis odczytu przy otwarciu ogłoszenia

Autor: Maciej Pienczyn
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 08:19:39 +01:00
d443fe312e docs: Release notes v1.17.0 - System ogłoszeń i aktualności
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:31:42 +01:00
da8eb48f2b ux(announcements): Dodanie autora ogłoszenia na stronie szczegółów
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:23:09 +01:00
505f40e1c1 nav: Dodanie linku Aktualności w menu Społeczność
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:16:06 +01:00
e14d95394d feat(announcements): System ogłoszeń i aktualności dla członków
- Model Announcement z kategoriami, statusami, slugami URL
- Panel admina /admin/announcements (CRUD, filtry, AJAX)
- Strona /ogloszenia tylko dla zalogowanych członków
- Szczegóły ogłoszenia /ogloszenia/<slug>
- Migracja SQL rozszerzająca istniejącą tabelę
- Testowe ogłoszenia: ARP baza noclegowa, Tytani Przedsiębiorczości
- Pliki PDF regulaminu i harmonogramu konkursu Tytani

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:10:54 +01:00
587d000b9b docs: Reorganizacja dokumentacji - wydzielenie DEVELOPMENT, ROADMAP, CREDENTIALS
- CLAUDE.md uproszczony - tylko kluczowe info dla Claude
- docs/DEVELOPMENT.md - szczegóły SearchService, Chatbot, Testy AI, SEO, News
- docs/ROADMAP.md - plan rozwoju, priorytety, strategia monetyzacji 3-tier
- docs/CREDENTIALS.md - zasady zarządzania hasłami i kluczami API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 10:26:24 +01:00
9e82c00ca4 ux(landing): Przeniesiono "Jak to działa?" wyżej na stronie głównej
Feedback od testera: sekcja wyjaśniająca flow powinna być widoczna
wcześniej, przed szczegółowymi kartami funkcji.

Nowa kolejność:
1. Hero (nagłówek + statystyki + CTA)
2. "Jak to działa?" (1→2→3) ← przeniesione wyżej
3. Karty funkcji (Pełny katalog, AI Asystent, Filtry)
4. "Do czego użyjesz tego portalu?"
5. Bottom CTA

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 08:29:09 +01:00
ebbf75e7a0 fix(calendar): Poprawiono godzinę "Chwila dla Biznesu" z 18:00 na 19:00
Skrypt importu miał błędną godzinę 18:00. Faktyczne spotkania
"Chwila dla Biznesu" odbywają się o 19:00.

Zaktualizowano:
- Komentarz w linii 50
- Opis wydarzenia (description)
- time_start: time(19, 0)

Istniejące wydarzenia w bazie zostały zaktualizowane ręcznie (UPDATE SQL).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 21:56:55 +01:00
c1ab97e60a fix(chat): Naprawa z-index - dropdown navbar widoczny nad purpurowym paskiem
Dodano position: relative i z-index: 50 do .chat-header, aby elementy
dropdown menu użytkownika (z-index: 200) były wyświetlane nad paskiem NordaGPT.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 21:00:11 +01:00
4d67dfa079 feat(zopk): Frontend dla sugestii Timeline z bazy wiedzy
- Dodano przycisk 'Sugestie z bazy wiedzy' na stronie Timeline
- Modal z listą sugestii milestone z bazy wiedzy:
  - Statystyki (total facts, w timeline, do dodania)
  - Karty sugestii z edytowalnym tytułem i kategorią
  - Przyciski Dodaj/Pomiń dla każdej sugestii
- Toast notifications dla feedbacku
- Auto-refresh timeline po dodaniu sugestii

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 17:37:03 +01:00
7a6631881f fix: Naprawiono błąd składni f-string w _extract_date_from_text
- Przeniesiono logikę kwartału z inline dict do funkcji _quarter_to_date()
- f-string z dict literal nie jest wspierany w Python 3.11

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 17:34:44 +01:00
40116d3321 feat(zopk): Timeline auto-populate + fix /zopk 500 + rozszerzony health check
- Dodano funkcje automatycznego uzupełniania Timeline z bazy wiedzy:
  - get_timeline_suggestions() - pobiera milestone facts jako sugestie
  - create_milestone_from_suggestion() - tworzy milestone z faktu
  - categorize_milestones_with_ai() - kategoryzacja AI (nuclear/offshore/etc)
  - Auto-detekcja kategorii, dat i statusu z tekstu polskiego

- API endpoints:
  - GET /api/zopk/timeline/suggestions - lista sugestii z bazy wiedzy
  - POST /api/zopk/timeline/suggestions/approve - zatwierdź sugestię

- Fix: /zopk zwracał 500 (nieistniejąca kolumna is_verified)
  - Dodano kolumnę is_verified do modelu ZOPKMilestone
  - Usunięto filtr is_verified z query (do migracji)

- Health check rozszerzony z 15 do 55+ endpointów:
  - Public pages, Raporty, ZOPK, Chat, IT Audit
  - API publiczne, Admin Core, Admin Audits, Admin ZOPK

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 17:32:54 +01:00
6156277629 fix(chat): Dodanie słów kluczowych ZOPK dla NordaGPT
Dodano brakujące słowa kluczowe do _is_zopk_query():
- "kaszubia", "kaszub", "projekt kaszubia"
- "kamienie milowe", "roadmapa", "timeline", "harmonogram"
- "inwestycje pomorze", "inwestycje pomorskie", "rozwój pomorza"

Dzięki temu pytania takie jak "co wiesz o projekcie Kaszubia?"
będą rozpoznawane jako pytania ZOPK i chat będzie używał
bazy wiedzy.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 16:35:49 +01:00
43c22650f1 feat(zopk): Modal przeglądu wyników uczenia z weryfikacji
- Backend zwraca teraz pełne dane zweryfikowanych faktów (nie tylko count)
- Nowy modal pokazuje listę zweryfikowanych faktów z:
  - Tekstem faktu i typem
  - Procentem podobieństwa do wzorca
  - Fragmentem wzorca który dopasował
- Możliwość cofnięcia weryfikacji dla pojedynczych faktów
- Statystyki: zweryfikowane / wzorce użyte / cofnięte
- Stylizowane karty z animacjami

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 16:33:39 +01:00
f126341eed fix(zopk): Naprawka importu func + ładne toasty/modale w UI
Poprawki:
- Dodano brakujący import `func` w find_similar_to_verified_facts()
- Dodano brakujący import `func` w auto_verify_similar_to_verified()

UI/UX:
- Zamieniono brzydkie alert() na stylizowane toasty
- Zamieniono confirm() na ładne modale z ikonami
- Dodano animacje slideIn/slideOut dla toastów
- Dodano animacje fadeIn/scaleIn dla modali

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 16:29:20 +01:00
009cd09492 fix: Poprawka składni @limiter.request_filter dla Flask-Limiter 4.0 2026-01-17 16:24:28 +01:00
d785b5094f fix(security): Wyłączenie rate limiting dla adminów
Zalogowani użytkownicy z is_admin=True są teraz wyłączeni z limitów
requestów (request_filter=is_admin_exempt). Rozwiązuje problem
"Too Many Requests" w panelu admina ZOPK.

Limity dla zwykłych użytkowników pozostają bez zmian:
- 200/dzień
- 50/godzinę

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 16:23:05 +01:00
818ddd96eb feat(zopk-knowledge): Dodanie funkcji uczenia się z weryfikacji
- Nowa funkcja find_similar_to_verified_facts() w zopk_knowledge_service.py
  używa pg_trgm do wyszukiwania podobnych faktów
- Nowa funkcja auto_verify_similar_to_verified() automatycznie weryfikuje
  fakty podobne do już zweryfikowanych (próg 80% podobieństwa)
- Nowy endpoint POST /api/zopk/knowledge/auto-verify/similar
- Nowy endpoint GET /api/zopk/knowledge/suggest-similar-facts
- Przycisk "Ucz się z weryfikacji" na dashboardzie bazy wiedzy ZOPK

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 16:21:08 +01:00
121fb593db fix(zopk): Poprawka nazwy kolumny confidence_score w auto_verify_top_facts
- Funkcja używała nieistniejącej kolumny importance_score
- Zmieniono na confidence_score (rzeczywista nazwa w tabeli)
- Poprawka analogiczna do wcześniejszej w find_duplicate_facts
2026-01-17 11:31:35 +01:00
56bfbeed37 fix(zopk): Poprawka statystyk weryfikacji na dashboardzie
- Funkcja renderVerificationStats używała nieistniejącego klucza data.verification
- API zwraca dane w strukturze: data.entities, data.facts, data.chunks
- Naprawiono mapowanie danych do właściwej struktury
- Obliczanie 'oczekuje' jako total - verified
2026-01-17 11:27:01 +01:00
5d24aa30b0 fix(zopk): Poprawka wyświetlania confidence_score w deduplikacji faktów 2026-01-17 11:21:53 +01:00
0adb9bed0e fix(zopk): Poprawka nazwy kolumny confidence_score w deduplikacji faktów 2026-01-17 11:16:53 +01:00
b3249f5b22 fix(zopk): Użycie operatora % z indeksem GiST dla deduplikacji faktów
Zapytanie similarity() bez indeksu powodowało timeout przy 3414 faktach.
Teraz używamy SET pg_trgm.similarity_threshold + operator % który
wykorzystuje indeks GiST (idx_facts_fulltext_trgm).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:09:01 +01:00
96fa0058c2 feat(zopk): Rozbudowa bazy wiedzy ZOPK
- Dodano skrypt cron do automatycznej ekstrakcji wiedzy (scripts/cron_extract_knowledge.py)
- Dodano panel deduplikacji faktów (/admin/zopk/knowledge/fact-duplicates)
- Dodano API i funkcje auto-weryfikacji encji i faktów
- Dodano panel Timeline ZOPK (/admin/zopk/timeline) z CRUD
- Rozszerzono dashboard bazy wiedzy o statystyki weryfikacji i przyciski auto-weryfikacji
- Dodano migrację 016_zopk_milestones.sql dla tabeli kamieni milowych
- Naprawiono duplikat modelu ZOPKMilestone w database.py

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:57:11 +01:00
3b27dcaf0d fix(zopk): Naprawa NaN w podglądzie faktów przy łączeniu encji
Problem: JS oczekiwał facts_subject + facts_object, API zwraca facts
Rozwiązanie: Zmiana JS na ${p.transfers.facts || 0}

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:32:41 +01:00
51378176c9 fix(zopk): Prawidłowe nazwy kolumn w ZOPKKnowledgeRelation
Model używa entity_a_id/entity_b_id, nie source_entity_id/target_entity_id.

Naprawione miejsca:
- get_entity_merge_preview(): zliczanie relacji
- merge_entities(): przenoszenie relacji

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:29:57 +01:00
4dcfc1b8e8 fix(zopk): Naprawa błędu JSONB cast w SQLAlchemy
Problem: `:entity_json::jsonb` było interpretowane przez SQLAlchemy
jako parametr `:entity_json` z dodatkowym `:jsonb` (błąd składni SQL)

Rozwiązanie: Użycie CAST(:entity_json AS jsonb) zamiast ::jsonb

Naprawione miejsca:
- get_entity_merge_preview() - linia 1919
- merge_entities() - linia 1831

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:22:58 +01:00
8bdbd04c8c fix(zopk): Sortowanie duplikatów encji od największego podobieństwa
Zmiana kolejności ORDER BY w find_duplicate_entities():
- Teraz: sim DESC, entity_type, mentions DESC
- Wcześniej: entity_type, mentions DESC, sim DESC

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:19:16 +01:00
9ae72bb2fa fix(zopk): Naprawa łączenia encji - brak kolumn subject_entity_id/object_entity_id
Problem: ZOPKKnowledgeFact nie ma kolumn subject_entity_id i object_entity_id.
Zamiast tego używa entities_involved (JSONB array).

Zmiany:
- get_entity_merge_preview(): użycie JSONB @> query do liczenia faktów
- merge_entities(): użycie JSONB update do zamiany entity ID w facts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:57:30 +01:00
b69882bbb2 perf(zopk): Cache dla grafu relacji (TTL 5 min)
- Dodano in-memory cache dla API /api/zopk/knowledge/graph/data
- Cache key oparty o parametry: entity_type, min_cooccurrence, limit
- TTL = 300 sekund (5 minut)
- Flaga 'cached' w odpowiedzi informuje czy dane z cache

Korzyść: Drugie i kolejne ładowania grafu są natychmiastowe.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:34:52 +01:00
36d24d1735 fix(zopk): Naprawa inicjalizacji grafu relacji
Problem: D3.js ładowane przez base.html PO bloku extra_js,
więc initGraph() była wywoływana gdy D3 jeszcze nie istniało.

Rozwiązanie: użycie window.addEventListener('load', ...)
zamiast natychmiastowego sprawdzenia typeof d3.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:24:33 +01:00
85c3f75e9b feat(zopk): Graf relacji encji (Priorytet 5)
- Dodano endpoint /admin/zopk/knowledge/graph z wizualizacją D3.js
- Dodano API endpoint /api/zopk/knowledge/graph/data
- Graf współwystępowania encji z kolorami według typu
- Rozmiar węzłów proporcjonalny do liczby wzmianek
- Filtry: typ encji, minimalna liczba współwystąpień
- Tooltips z informacjami o encjach
- Zoom i drag-and-drop interakcje

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:14:30 +01:00
143f5c674a feat(zopk): Implementacja łączenia duplikatów encji (Priorytet 4)
Nowe funkcje w zopk_knowledge_service.py:
- find_duplicate_entities() - wyszukiwanie podobnych encji (pg_trgm)
- merge_entities() - łączenie encji z transferem relacji
- get_entity_merge_preview() - podgląd przed połączeniem

Nowe endpointy w app.py:
- GET /admin/zopk/knowledge/duplicates - panel zarządzania duplikatami
- POST /api/zopk/knowledge/duplicates/preview - podgląd merge
- POST /api/zopk/knowledge/duplicates/merge - wykonanie merge

Nowy szablon:
- templates/admin/zopk_knowledge_duplicates.html - UI z kartami encji

Dodatkowo:
- Aktualizacja CLAUDE.md z procedurą wdrażania
- Skrypt scripts/run_migration.py do uruchamiania migracji SQL

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:09:22 +01:00
6d1f75bce5 fix(admin): Naprawiono błędne nazwy endpointów w breadcrumbs
Zmieniono admin_dashboard i admin_zopk_dashboard na admin_zopk

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:03:01 +01:00
d0dda10bd7 feat(zopk): Panel admina bazy wiedzy, poprawa odpowiedzi AI, timeline
Priorytet 1 - Panel admina bazy wiedzy ZOPK:
- /admin/zopk/knowledge - dashboard ze statystykami
- /admin/zopk/knowledge/chunks - lista chunks z filtrowaniem
- /admin/zopk/knowledge/facts - lista faktów z typami
- /admin/zopk/knowledge/entities - lista encji z mentions
- CRUD operacje: weryfikacja, usuwanie

Priorytet 2 - Poprawa jakości odpowiedzi NordaGPT:
- Linki markdown do źródeł w kontekście ZOPK
- Ulepszone formatowanie (bold, listy, nagłówki)
- Sekcja "Źródła" na końcu odpowiedzi
- Instrukcje w system prompt dla lepszej prezentacji

Priorytet 3 - Timeline ZOPK:
- Model ZOPKMilestone w database.py
- Migracja 016_zopk_milestones.sql z sample data
- Sekcja "Roadmapa ZOPK" na stronie /zopk
- Pionowa oś czasu z markerami lat
- Statusy: completed, in_progress, planned, delayed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 08:56:55 +01:00
7cc5f033fe fix: Poprawiono nazwy kluczy w pipeline skrypcie
Zmieniono 'processed' -> 'success' i 'generated' -> 'success' aby
pasowały do wartości zwracanych przez batch_extract() i
generate_chunk_embeddings().

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 00:27:08 +01:00
cbd9c5cc4d feat(zopk): Skrypt pipeline do automatycznej ekstrakcji wiedzy
Uruchamia po kolei: scraping treści, ekstrakcję AI, generowanie embeddingów.
Do użycia w cron job co godzinę.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 23:39:49 +01:00
081c0d7ec5 fix: Naprawiono dekodowanie URL-i Google News
Zmieniono kolejność metod dekodowania - googlenewsdecoder jest teraz
używany jako pierwsza metoda zamiast ostatniej. Poprzednia kolejność
powodowała wpadanie w pętlę z consent.google.com i wyczerpanie max_depth
przed wywołaniem działającej biblioteki.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 23:34:40 +01:00
900a3b4ed9 fix(admin): Naprawiono błąd importu w SSE scraping endpoint
Problem: Podwójny import ZOPKContentScraper powodował błąd 'cannot access local variable'
Rozwiązanie: Przeniesiono import na początek funkcji generate()

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 23:28:16 +01:00
37af8abc73 feat(admin): Paski postępu dla operacji AI w panelu ZOPK
Dodano Server-Sent Events (SSE) dla śledzenia postępu w czasie rzeczywistym:
- Scraping treści artykułów
- Ekstrakcja wiedzy przez Gemini AI
- Generowanie embeddingów

Funkcje:
- Modal z paskiem postępu i statystykami
- Live log operacji z kolorowaniem statusów
- Podsumowanie na zakończenie (sukces/błędy/czas)
- Możliwość zamknięcia modalu po zakończeniu

Zmiany techniczne:
- 3 nowe SSE endpointy (/stream)
- ProgressUpdate dataclass w scraperze
- Callback pattern w batch_scrape, batch_extract, generate_chunk_embeddings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 23:23:05 +01:00
31d5a112b8 feat(admin): Sekcja Baza Wiedzy AI w panelu ZOPK
- Dodano sekcję "🧠 Baza Wiedzy AI" do /admin/zopk
- Statystyki scrapingu: zatwierdzonych, zescrapowanych, oczekujących
- Statystyki wiedzy: chunks, fakty, encje
- Statystyki embeddingów: z/bez embeddingów
- Przyciski: Scrapuj treść, Ekstrakcja AI, Generuj embeddingi
- Top encje z kolorowymi pillami (firmy, osoby, miejsca, projekty)
- Rozszerzono get_extraction_statistics() o pending_scrape i embeddings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:17:44 +01:00
3e90cdbfc7 feat(scraper): Dekodowanie URL-i Google News do oryginalnych źródeł
- Dodano funkcję decode_google_news_url() z 3 metodami dekodowania:
  1. Base64 decoding (preferowana, bez HTTP request)
  2. HTTP redirect following
  3. googlenewsdecoder library jako fallback
- Scraper automatycznie dekoduje URL-e Google News przed scrapowaniem
- Zaktualizowano news.url i news.source_domain po dekodowaniu
- Dodano news.google.com do SKIP_DOMAINS (wymaga dekodowania)
- Dodano googlenewsdecoder do requirements.txt

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:12:27 +01:00
41141eb540 fix: Remove is_verified filter from get_relevant_facts
All 328 auto-extracted facts had is_verified=False, causing
empty results. Changed to confidence_score >= 0.3 filter instead.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 22:03:15 +01:00
9421f2847f fix: Improve extraction prompt with JSON structure and fix fact parsing
- Updated prompt to specify expected JSON structure for facts and entities
- Added 'text' field support in fact parsing (alongside 'full_text')
- Listed explicit type values for facts and entities

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 21:14:56 +01:00
624114d443 fix: Remove max_tokens parameter that triggered Gemini safety filters
Testing revealed that max_tokens=2000 parameter causes Gemini to block
requests with safety filters, even for safe content.

Removed max_tokens from generate_text() call - Gemini will use default.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 21:10:45 +01:00
ac0aceb30e fix: Reduce chunk size and truncate prompts for Gemini safety filters
Testing revealed that Gemini 2.5 safety filters block texts longer than
~2000 chars. Applied two fixes:

1. Truncate chunk text to 2000 chars in _extract_with_ai() as safety net
2. Reduce MAX_CHUNK_SIZE from 1000 to 500 tokens (~2000 chars)

This ensures all AI extraction requests stay within Gemini's safe limits.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 21:05:48 +01:00
4045106b3c fix: Ultra-simplified extraction prompt to avoid Gemini safety filters
The complex JSON schema with pipe characters was triggering Gemini 2.5's
safety filters. Simplified to minimal prompt that still produces valid output.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 20:59:00 +01:00
e1f29229a3 fix(zopk): Uproszczone prompty ekstrakcji - rozwiązanie safety filters
Problem: Połączenie skomplikowanego system_prompt + user_prompt
         wyzwalało safety filters Gemini mimo płatnego API

Rozwiązanie:
- Usunięto system_prompt (pusty string)
- Uproszczono user_prompt do minimum
- Zachowano niezbędny format JSON

Testowane: prosty prompt działa, pełny przebieg do weryfikacji

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 20:54:22 +01:00
1e42c4fbd8 fix(scraper): Dodano domeny paywall do SKIP_DOMAINS
- wyborcza.pl - paywall Gazety Wyborczej
- rp.pl - paywall Rzeczpospolitej
- wykop.pl - agregator bez oryginalnej treści
- reddit.com - agregator

Te domeny zwracają cookie dialog zamiast treści artykułów

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 20:48:26 +01:00