Zwei Lücken beim Befund Lage 96 (Verfassungsänderung Japan): die japanische
Asahi-Shimbun-Quelle wurde durch das Sprach-aware Keyword-Matching (#27) und
Pre-Topic-Translate (#28) erstmals durchgereicht, landete aber mit
language='en' und ohne englische Headline in der DB. Damit ist sie im
Frontend nur als Kanji-Headline zu lesen und das Summary-LLM kann den
Treffer nicht aussagekräftig referenzieren.
1. INSERT INTO articles erweitert um headline_en und content_en. Werte
stammen primär vom Translator (headline_en, falls TRANSLATOR_ENABLED den
Pfad einmal in Englisch befüllt), Fallback auf die für den Topic-Filter
angefertigte Mini-Übersetzung (headline_en_for_topic /
content_en_for_topic). So liegt die englische Variante dauerhaft in der
DB statt nur während des Refresh-Laufs im Speicher.
2. RSS- und Telegram-Parser setzen 'language' nun primär aus der Quell-/
Kanal-Konfiguration (primary_language). Vorher war es hart 'de' wenn die
Headline deutsch wirkte, sonst 'en' - mit dem Resultat, dass ein
Kanji-Titel als language='en' landete. Mit dem Fix bekommen Asahi & Co.
korrekt language='ja', russische Telegram-Kanäle 'ru' etc.
- src/agents/orchestrator.py: INSERT erweitert, Kommentar zur Fallback-Logik
- src/feeds/rss_parser.py: language aus feed_config.primary_language
- src/feeds/telegram_parser.py: channel_lang durch _fetch_channel reichen
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bisher generierte Haiku Keywords nur in DE/EN/Romaji. Japanische RSS-Feeds
(z.B. MOD-GNews mit "防衛省・自衛隊の宇宙政策") matchten daher nie, weil
"jieitai" ≠ "自衛隊". Arabische/persische Telegram-Channels matchten nur
durch Zufall (lateinische Eigennamen in Hashtags/URLs).
Drei zusammenhängende Änderungen:
1. get_feeds_with_metadata liefert primary_language pro Feed mit.
2. FEED_SELECTION_PROMPT_TEMPLATE und KEYWORD_EXTRACTION_PROMPT verlangen
sprach-gruppierte Keywords ({de:[...], en:[...], ja:[...], ru:[...], ...}).
"en" enthält lateinische Eigennamen (universell). Andere Sprachen werden
nur gegen Feeds derselben Sprache gematcht.
3. RSS- und Telegram-Parser kombinieren pro Feed/Channel die "en"-Universalbegriffe
mit den Keywords der Quellsprache. Die Spezifik-Schwelle (1-Treffer-Match)
greift jetzt auch ab 3 Zeichen bei Non-ASCII (CJK, Arabisch, Kyrillisch).
Backward-kompatibel: flache Keyword-Listen werden weiter akzeptiert.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>