Hermes Agent
1183617af5
feat: Spieletreff-Artikel + Deal #15534 catid/metadaten fix
2026-07-10 10:27:23 +02:00
Hermes Agent
9491b78c2d
feat: BSN Dark-Mode-CSS für Vorbestell-Box & bsn-facts
...
- --vb-* Design-Token für [data-bs-theme=dark] überschrieben
- .vorbestell-box: background:#fff → #1e1e2e
- .vorbestell-box__panel: tint → dark tint
- .bsn-facts: background:#fff → #1e1e2e
- .bsn-facts__tile: tint → dark tint
- bsn-infobox, bsn-table, bsn-dachzeile, bsn-meta, bsn-recherche
Text- und Border-Farben für Dark Mode
Einfügen in: Astroid → Template Options → Custom Code → Custom CSS
2026-07-10 00:11:36 +02:00
Hermes Agent
2a06bcaee0
fix: <style>-Blöcke aus allen 24 Artikeln entfernt + Skill korrigiert
...
- artikel_*.html: 24 Dateien von <style>-Blöcken befreit (body, max-width zerstören Joomla)
- journalistic-article-writing SKILL.md: falsche 'AUSNAHME 09.07.' entfernt
- Ursache: Skill-Kommentar erlaubte Sub-Agenten <style> 'für Vorschau' — kein Gatekeeper existiert
2026-07-09 23:30:55 +02:00
Hermes Agent
9d3461750c
fix(15531): <style>-Block entfernt — zerstörte Joomla-Layout (body, max-width)
2026-07-09 23:26:55 +02:00
Hermes Agent
18fc7197fc
fix: Cache-Control-Header — Browser cached das iframe
2026-07-09 17:33:47 +02:00
Hermes Agent
32b7378466
fix: Formular-Texte neutralisiert — 'Wir' statt 'Basti'
2026-07-09 17:25:52 +02:00
Hermes Agent
31f814a28b
fix: Artikel-Link im Dashboard absolut auf brettspiel-news.de
2026-07-09 16:46:17 +02:00
Hermes Agent
589705d6c5
fix: Basti-Benachrichtigung via Dateisystem statt Telegram
...
- notify_basti() schreibt .md-Dateien nach fehler-server/eingang/
- Format: YYYYMMDD-HHMMSS_ID.md mit Artikel-Link und Fehlerbeschreibung
- Keine externe API nötig, funktioniert offline
2026-07-09 16:39:40 +02:00
Hermes Agent
6571254e52
feat: Fehler-Melde-Tool — Server auf :8888 + Dashboard in Article-Server
...
- fehler-server/server.py: Eigenständiger HTTP-Server (Python stdlib)
- POST /report: Fehlermeldung speichern + Telegram an Basti
- GET /api/stats: Statistiken (nur localhost)
- GET /api/meldungen: Alle Meldungen (nur localhost)
- GET /: HTML-Formular für iframe-Einbindung
- SQLite-DB, auto-created
- article_server.py: /fehler-Endpunkt + 🐛 Fehler-Link im Header
- Serverseitig gerendertes Dashboard
- Holt Daten vom Fehler-Server (localhost:8888)
- Statistik-Cards + Meldungstabelle
- Cloudflare-Tunnel: fehler.datenhimmel.work → :8888
2026-07-09 14:58:07 +02:00
Hermes Agent
3a3d41ba99
artikel: BGG-Rating-Kluft — Welche Spiele spalten die Community?
2026-07-03 23:49:20 +02:00
Hermes Agent
b3b6b702d1
chore: vollständiger Workspace-Snapshot 03.07.2026
...
- publish_gatekeeper.py (neues Gatekeeper-System)
- 4 Premium-Artikel: Veggie Match, Berlin 1960, Wild Tiled West, Scream Park
- Alle kumulierten Artikel, Scripts, Medien und Caches
2026-07-03 11:35:39 +02:00
Hermes Agent
0bc68ecd25
feat: publish_gatekeeper.py — VALIDATE→PUBLISH→VERIFY pipeline
...
Ersetzt alle manuellen curl/PATCH-Workflows.
- Strippt doppelte Überschriften (<title>, <h1>, <h2>, meta, dachzeile)
- Eindeutige Aliase mit Zeitstempel (verhindert 'same alias'-Fehler)
- Sofortige Post-Publish-Verifikation (text-Länge, Vorbestell-Box, Read-More)
- Kein HTTP 200 ohne echten Content mehr
2026-07-03 11:07:17 +02:00
Hermes Agent
fe071ffd8a
fix(nanobanana): Immer 16:9 Full HD nativ — kein Resize mehr
...
- Backend: aspect_ratio auf "16:9" erzwungen (ignoriert UI-Wert)
- imageConfig.aspectRatio im Gemini-API-Call (nativ, nicht per Prompt-Text)
- Post-Processing-Resize komplett entfernt → API-Output 1:1 ausgeliefert
- Nur noch PNG→JPG Konvertierung (DPI setzen, Format wechseln)
- Frontend: Aspect-Ratio-Dropdown entfernt → Fixtext "16:9 — Full HD"
- JS: aspectRatio hardcodiert auf '16:9'
User-Vorgabe: Immer nativ 16:9 rendern, niemals nachträglich verzerren.
2026-06-28 23:00:26 +02:00
Hermes Agent
ff334be4c4
fix(nanobanana): Aspect-Ratio-Bug doppelt behoben
...
- Bug #1 : img.resize((1920,1080)) war hartkodiert → auf _aspect_to_size() umgestellt
- Bug #2 : imageConfig.aspectRatio fehlte im Gemini-API-Call → ergänzt
Alle Aspect-Ratios (1:1, 2:3, 9:16, 21:9 etc.) werden jetzt korrekt gerendert.
2026-06-28 22:51:36 +02:00
Hermes Agent
0a63f0439f
Retro-Artikel #46-#57: BSN-Standard-Fixes + Abkürzungs-Check (Daniel 24.06.2026)
2026-06-24 23:07:48 +02:00
Hermes Agent
8902915f03
QC: CHECK 19 – Abkürzungen bei Erstverwendung definiert (Daniel 24.06.2026)
2026-06-24 22:54:09 +02:00
Hermes Agent
1056eef8db
Fix: Read-More-Doppelung + Bild-Dimensionen
...
- Read-More: introtext ohne <hr> (Joomla setzt eigenen)
- Bild-Dimensionen: PIL erkennt Größe → ?width=X&height=Y
2026-06-24 13:32:39 +02:00
Hermes Agent
4d90e4249d
fix: QC-Ratings aus 7 älteren Artikeln entfernt (CHECK 10)
2026-06-23 23:47:51 +02:00
Hermes Agent
e73e0e88de
fix: QC-Ratings (AAA/AA/A) aus Qork entfernt + verify CHECK 10 lehnt QC-Zeilen jetzt ab
2026-06-23 23:41:17 +02:00
Hermes Agent
0a1dffa027
fix: Datumszeile aus Gamegenic-Testartikel entfernt (System setzt Datum)
2026-06-23 23:38:36 +02:00
Hermes Agent
34ab91097f
artikel: Moytura (Thompson x Benjamin, Bitewing) — 0 QC-Fehler
2026-06-23 23:32:53 +02:00
Hermes Agent
e67eea9022
fix: Recherchestand nur Datum, keine Quellen-Wiederholung — Quellen stehen im Block
2026-06-23 23:13:54 +02:00
Hermes Agent
4323ab97a1
fix: Recherchestand-Fußzeile jetzt mit klickbaren Links + <p class=meta> entfernt (System setzt Datum)
2026-06-23 23:10:37 +02:00
Hermes Agent
7893c7b38d
fix: Read-More NACH Absatz 1 (nicht vor h2) — Daniel 23.06. + verify_article.sh CHECK 16 korrigiert
2026-06-23 23:06:32 +02:00
Hermes Agent
0fc75beab8
artikel: Chivalry (Turczi x dlp games) — 0 QC-Fehler
2026-06-23 23:03:24 +02:00
Hermes Agent
5d4d1b7471
fix: Read-More nach Einleitung (Joomla-Standard), Meta-Zeile entfernt (macht Server)
2026-06-23 22:50:47 +02:00
Hermes Agent
b2f03b6cfb
artikel: Chivalry - Dávid Turczi entführt mit dlp games in die Welt von König Artus
2026-06-23 22:48:14 +02:00
Hermes Agent
3457705be5
feat: verify_article.sh +5 Checks — Dachzeile, Infobox, Read-More-Pos, Quellen-Links, Recherchestand
2026-06-23 22:39:54 +02:00
Hermes Agent
3f66ba877e
fix: Pipeline — Dachzeile, Infobox, Read-More-Position, Quellen-Format v2
2026-06-23 22:39:31 +02:00
Hermes Agent
be19c0ec83
artikel: Gamegenic wird Partner von Tolarian Community Coll
2026-06-23 17:36:22 +02:00
Hermes Agent
bc1c025101
artikel: Gamegenic × Tolarian Community College — The Academic Deckbox
2026-06-23 17:33:39 +02:00
Hermes Agent
fa281391a9
feat: article_pipeline.py — Stage 0 Prompt-Builder für BSN-Artikel-Workflow
2026-06-23 14:35:52 +02:00
Hermes Agent
85aa2781f1
spec: article pipeline workflow for Cody
2026-06-23 14:26:02 +02:00
Hermes Agent
e63004daca
gamegenic: add head/body structure for article server listing
2026-06-23 12:57:32 +02:00
Hermes Agent
082af0a46b
gamegenic: fix unlinked PM source + html ending + h2/span Quellen
2026-06-23 12:55:40 +02:00
Hermes Agent
42069f9aa7
QC: fix Survivalist article + add checks 12-13 (XML-API refs, unlinked sources)
...
- Fix artikel_survivalist: 'BGG-Daten via XML API v2' -> klickbare Links
- verify_article.sh: CHECK 12 (keine XML-API-Referenzen)
- verify_article.sh: CHECK 13 (Quellen müssen verlinkt sein)
2026-06-23 12:37:59 +02:00
Hermes Agent
26f8ac477d
Fix 16:9 output + MIME detection for Image-to-Image
...
- Pillow installiert (fehlte → try/except lief ins Leere)
- _detect_image_mime(): Magic-Bytes-Erkennung (JPEG/PNG/WebP/HEIC)
- _gemini_generate_image(): kein hartes 'image/jpeg' mehr
- PIL-Resize 1920×1080 greift jetzt korrekt
2026-06-23 08:57:26 +02:00
Hermes Agent
202cb9da42
feat: Imagen → Gemini Flash Image (gemini-2.5-flash-image)
...
- Gemini kann Image-to-Image (Cover+Landschaft), Imagen nur Text
- generateContent statt predict, inlineData statt rawBytes
- PNG-Output, optionale PIL-Konvertierung zu JPEG
- image_base64 als Referenzbild im contents[].parts[]
- Getestet: Text-to-Image + Image-to-Image
2026-06-23 08:38:56 +02:00
Hermes Agent
23a4bff254
feat: Imagen Image-to-Image — Referenzbild als rawBytes übergeben
...
- _imagen_generate akzeptiert image_base64 (str|None)
- Multipart-Parser extrahiert hochgeladenes Bild als Base64
- rawBytes im Instance-Feld für Image-to-Image-Modus
- Duplicate import base64 as b64 entfernt
- Getestet: Text-to-Image + Image-to-Image funktionieren
2026-06-23 08:30:48 +02:00
Hermes Agent
53efc2f93b
feat: NanoBanana → Google Imagen Backend (synchron, kein Polling)
...
- Ersetzt NanoBanana (async, Credits-Probleme) durch Google Imagen
- Synchron: Bild kommt als Base64 direkt in der Response
- JS vereinfacht: pollStatus() komplett entfernt (-70 Zeilen)
- Assign-Handler unterstützt jetzt lokale /media/ Pfade
- Default-Auflösung 1K, Imagen-Key via bsn-secrets (google-imagen-key)
- Editor: Header auf Google Imagen aktualisiert
2026-06-22 23:50:24 +02:00
Hermes Agent
8299ad1e24
Fix: NanoBanana null-safe handling + bessere Fehlermeldungen
...
- _handle_nanobanana_generate: Prüfe code!=0 (z.B. 402=kein Guthaben), data=None-Safe
- _handle_nanobanana_status: data=None-Safe + response=None-Safe
- JavaScript: Bessere Fehlermeldung wenn resp.json() fehlschlägt
- Verhindert 'NoneType' object has no attribute 'get' Crash
2026-06-22 22:46:24 +02:00
Hermes Agent
513fc0e6af
feat: NanoBanana Bild-Generator — /nanobanana Editor mit Upload, Prompt, Polling, Artikel-Zuordnung
...
- Neue Unterseite /nanobanana im Article-Server (Port 8890)
- Foto-Upload per Drag/Drop (Referenzbild für Image-to-Image)
- Prompt-Textarea mit Char-Zähler + Ratio/Resolution-Selects
- BSN-Blau UI, Mobile-First CSS, Inline-JS
- Backend: /nanobanana/generate (POST), /status, /articles, /assign
- NanoBanana generate-2 API via bsn-secrets Key
- Automatisches Polling (5s, max 5min) mit Spinner
- Download-Button + Artikel-Zuordnung (unveröffentlichte Artikel)
- Live getestet: Page 200, Generate 200, Status successFlag=1
2026-06-22 22:35:44 +02:00
Hermes Agent
889acd8c6d
Fix: H1+Meta aus Joomla-Body strippen, Bild-Auto-Delete entfernt
...
- H1 und <p class=meta> werden vor dem Senden an Joomla aus dem Body gefiltert
(Daniel 19.06.: Titel+Lesezeit dürfen nicht im Fließtext landen)
- os.remove() für Bilder nach erfolgreichem Publish entfernt
(Bilder bleiben auf Disk erhalten für spätere Referenz/Live-Schaltung)
2026-06-19 09:17:41 +02:00
Hermes Agent
0f787589fe
fix: upload images to Spiele/<year>/ directory on publish
2026-06-19 00:50:43 +02:00
Hermes Agent
7629eecc24
fix: publish: auto-include meta description, keywords, image upload, Daniel as author
...
- Add metadesc + metakey extraction from HTML <meta> tags
- Upload article image to Joomla media endpoint before publish
- Set created_by=560 (Daniel Krause) for all articles
- Image is uploaded as both image_intro and image_fulltext
2026-06-19 00:49:15 +02:00
Hermes Agent
3e6db33027
feat: Rubrik-Dropdown beim Live-Stellen — freie Kategoriewahl
...
- Neuer <select id='rubricSelect'> neben dem 🔴 Live Toggle
- Alle 10 Rubriken: Nachrichten, Angebot, Crowdfunding, Branche,
Neuerscheinungen, Ankündigungen, Zubehör, Brettspieltest, Magazin, Video, Podcast
- Bei Live+Haken: Rubrik-Wahl pflicht (Toast wenn 'Rubrik wählen…' gesetzt)
- Backend _handle_publish: nutzt rubric vom Client statt meta category-id
- SAFETY GATE bleibt: ohne Live-Haken → immer Korrektur (catid=61)
- Confirm-Dialog zeigt gewählte Rubrik an
2026-06-19 00:38:33 +02:00
Hermes Agent
ced413710f
chore: Orphan-Section + Image1-6.jpg entfernt — war nur Test/Debug
...
- Verwaiste-Bilder-Sektion aus build_index() entfernt
- Image1.jpg–Image6.jpg vom Workspace gelöscht
- CSS (orphan-box etc.) bleibt harmlos im Stylesheet
2026-06-19 00:16:45 +02:00
Hermes Agent
a16b3368c6
fix: accept-Attribut von File-Inputs entfernt — Browser-Bug blockierte Bilder
...
- accept='image/*,.jpg,.jpeg,...' wird von Browsern unterschiedlich interpretiert
- Manche Browser machen UND statt ODER → keine Bilder sichtbar
- Fix: accept komplett raus, Server-Validierung bleibt aktiv (.jpg/.jpeg/.png/.webp/.gif/.svg)
2026-06-19 00:15:32 +02:00
Hermes Agent
6e20684af4
feat: Verwaiste-Bilder-Scanner — Orphans automatisch finden + per Dropdown zuordnen
...
- find_orphan_images(): scannt Workspace nach Bildern ohne article_images.json-Eintrag
- Gelbe Orphan-Box oben auf der Seite: alle verwaisten Bilder mit Artikel-Dropdown
- assignOrphan() JS: Dropdown-Auswahl → fetch /assign-image → Toast + Reload
- _handle_assign_image(): Backend validiert Bildpfad + Artikel + speichert Mapping
- Test-JPEGs aus media/ bereinigt, article_images.json sauber initialisiert
2026-06-19 00:12:59 +02:00
Hermes Agent
32d1e1ef86
fix: Upload-Zone vereinfacht — kein manueller Dateiname mehr
...
- Text-Input für Artikel-Dateinamen komplett entfernt
- uploadFile() nimmt jetzt den ERSTEN markierten Artikel (Checkbox)
- Drag&Drop-Zone oben: Ziel = markierter Artikel oder Hinweis
- JPEG-Accept verbessert: image/* + explizit .jpg,.jpeg,.png,.webp,.gif
- Obsolete CSS für input[type=text] in upload-zone entfernt
- Nach Upload: Auto-Reload für Badge-Update
2026-06-19 00:08:02 +02:00