Commit graph

189 Commits

Autor SHA1 Nachricht Datum
dfb64e6e4f Promote develop → main (2026-05-17 11:09 UTC) 2026-05-17 13:09:21 +02:00
claude-dev
e292735a50 Fix weisser Streifen zwischen FAQ-Section und Footer
Wurzel: cookie-consent.css enthielt aus einer Demo-Page geerbtes
"footer { margin-top: 4rem; background: ... }" mit nacktem
Element-Selector. Das schlug auf den echten Site-Footer durch und
erzeugte einen ~64px Margin oben am Footer, durch den der helle
Body-Background (#F5F7FA) sichtbar wurde. Unter dunklen Sections
fiel das nicht auf, unter der neuen FAQ-Section wurde es sichtbar.

- cookie-consent.css: nackter 'footer { ... }'-Block (margin-top, background, padding, text-align) entfernt. footer nav / nav a Reststyles belassen, da sie unseren echten Footer (kein <nav> drin) nicht treffen.
- index.html / en/index.html: defensives '.footer { margin-top: 0; }' im inline-style-Block ergaenzt fuer den Fall, dass die Demo-Regel zurueckkommt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 13:02:40 +02:00
claude-dev
318b74d640 FAQ: weisser Balken gefixt + Standort aus DSGVO-Antwort raus
- Style-Block aus body in head verschoben (vermeidet Kaskaden-Quirks)
- .section-Klasse aus dem FAQ-section-Element entfernt (kein Konflikt mehr mit globalem .section { padding 88px 0 })
- Defensive Resets: margin:0, display:block auf .faq-section; explizite margin-resets auf h2, intro, details, faq-answer; details:last-of-type margin-bottom:0
- DSGVO-Antwort: 'Standort Langenfeld, NRW' raus, weil das den Eindruck erweckte, dort stuenden die Server (es ist nur der Firmensitz). Aussage bleibt: 'auf Servern in Deutschland'.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 12:52:57 +02:00
claude-dev
65965135ca FAQ-Wording: Quellen, Faktenpruefung, DSGVO, Zugang vereinfacht
- Quellen: 'weltweit' statt 'mehrsprachig in X'; Update-Takt aus FAQ rausgenommen (steht weiterhin im llms.txt-TLDR und in den Lagen-Schemas)
- Faktenpruefung: ohne Fachbegriffe IFCN/EUvsDisinfo, dafuer in Klartext (Uebereinstimmungen/Widersprueche, transparente Bewertung, verlinkte Originalquellen)
- DSGVO: Aussage zu personenbezogenen Profilen entfernt (war redundant)
- Zugang: Satz zur Preiskalkulation entfernt

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 12:24:29 +02:00
claude-dev
22b4d1a769 AEO/GEO: FAQ-Section, Service- und Dataset-Schemas, speakable, Q&A-llms.txt
- index.html (DE+EN): FAQPage mit 7 Q&A, Service-Schema, founder-Person-Stubs mit @id-Referenzen, speakable-Selektoren, sichtbares FAQ-Akkordeon vor Footer, Nav-Eintrag Fragen/FAQ
- lagen/* (DE+EN): Article auf NewsArticle erweitert (deepfakes bleibt Article), plus temporalCoverage, keywords, about, speakable, @id-Refs auf Organization; Dataset-Schema neu mit DataDownload auf current.json
- llms.txt: Umbau auf antwortorientiertes Q&A-Format mit 7 Fragen plus Glossar (OSINT, Lagebild, Faktencheck, IFCN, EUvsDisinfo, Klassifikation)
- sitemap.xml: lastmod auf 2026-05-17

Ziel: bessere Auffindbarkeit und Zitierfaehigkeit in KI-Suche (ChatGPT, Perplexity, Claude, Gemini). 51 Prozent der B2B-Kaeufer recherchieren laut drweb.de-Artikel inzwischen primaer in KI-Chatbots.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 10:46:48 +02:00
9af0b0404f Promote develop → main (2026-05-10 14:26 UTC) 2026-05-10 16:26:33 +02:00
claude-dev
ccad9dfc20 Doku: SSR Stufe 2 + Tech-Bundle ergaenzt
- sync-lagebild Service-Beschreibung um ssr_patch ergaenzt
- CHANGE_LOG 2026-05-10: SSR Stufe 2, Self-Hosting Leaflet, image-Sitemap, Performance Quick-Wins, Description-Fix
2026-05-10 16:24:24 +02:00
claude-dev
4c1b4b6da4 Tech: Self-Hosting Leaflet + Image-Sitemap
- Leaflet 1.9.4 + Markercluster 1.5.3 von unpkg.com lokal nach assets/vendor/leaflet/
  Spart externen DNS-Lookup, gibt Cache-Kontrolle, kein Third-Party-Call
  Inkl. marker/layers Bilder fuer Default-Marker
- preconnect zu unpkg.com aus 8 Seiten entfernt (nicht mehr noetig)
- sitemap.xml: image-Sitemap erweitert
  Pro URL og-image + Logo, Hauptseite zusaetzlich handshake
  Namespace xmlns:image hinzugefuegt
2026-05-10 16:17:59 +02:00
8c48f839bb Promote develop → main (2026-05-10 14:03 UTC) 2026-05-10 16:03:45 +02:00
claude-dev
51278e59ca Performance Quick-Wins: Logo-SVG, lazy images, preconnect
- Logo-Header: PNG (31.7 KB) -> SVG (6.3 KB) auf 12 Seiten, mit width/height fuer CLS
- loading=lazy auf 25 unter-Fold-Bilder (Feature-/Problem-/Trust-Icons + handshake)
  Logo bleibt eager (above-the-fold)
- preconnect zu unpkg.com (CDN fuer Leaflet) im Head von 8 Seiten
  Reduziert TLS-Handshake-Verzoegerung beim ersten Leaflet-Asset
2026-05-10 15:36:13 +02:00
claude-dev
82b3f91b33 SEO: 3 Lagen-Descriptions auf <=160 Zeichen gekuerzt
- cyberangriffe DE: 168 -> 158 Zeichen
- iran-conflict EN: 163 -> 152 Zeichen
- cyber-attacks EN: 161 -> 156 Zeichen
2026-05-10 15:30:16 +02:00
cad1e07813 Promote develop → main (2026-05-10 13:24 UTC) 2026-05-10 15:24:48 +02:00
claude-dev
d00bb4ba1d SEO Quick-Wins: Schema.org, Meta-Hygiene, llms.txt, Performance, Aufraeumen
- Title Iran-Konflikt mit Bindestrich (Konsistenz mit OG/Schema)
- Meta-Hygiene auf 12 Seiten: robots index/follow + max-image-preview:large, theme-color #0A1832, author AegisSight UG
- sitemap.xml: lastmod-Tag pro URL (besseres Crawl-Signal)
- Hauptseite (DE+EN): Schema.org WebSite + SoftwareApplication ergaenzt (Sitelinks, Rich Result fuer Software-Produkt)
- Lagen-Seiten (6): Schema.org BreadcrumbList (Home -> Topic)
- llms.txt: Site-Struktur fuer KI-Crawler (mit Hinweis Live-Search-Bots erlaubt, Training-Bots geblockt)
- Performance: Hero-Slides 2-5 preload=metadata -> none (Slide 1 bleibt auto/LCP)
- Aufraeumen: 5 tote CSS-Files, 7 tote JS-Files, robots-launch.txt + sitemap-launch.xml entfernt
2026-05-10 15:17:47 +02:00
f7f375bb32 Promote develop → main (2026-05-10 13:04 UTC) 2026-05-10 15:04:47 +02:00
claude-dev
025ddfcebd SEO Stufe 1: Indexierung freischalten + Lagen-Meta
- noindex/nofollow von 12 indexierbaren Seiten entfernt (Hauptseiten DE/EN, 3 Lagen DE/EN, Legal DE/EN)
- robots.txt scharf geschaltet: Crawling allgemein erlaubt, Live-Search-AI-Bots (OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot) erlaubt, Training-Bots (GPTBot, CCBot, anthropic-ai, Google-Extended, Applebot-Extended, Bytespider, ...) geblockt
- sitemap.xml: Inhalt aus sitemap-launch.xml uebernommen, mit Sitemap-Verweis in robots.txt
- Lagen-Seiten (3 DE + 3 EN): description, canonical, Open Graph, Twitter Card und Schema.org Article ergaenzt
- Lagen-Hero: Topic-Default in <p id="incident-title"> als Crawler-Fallback (JS ueberschreibt mit Datum bei Lade)
- CLAUDE.md CHANGE_LOG ergaenzt
2026-05-10 15:01:25 +02:00
claude-dev
a6481a11c0 Doku: CLAUDE.md auf aktuellen Stand der Hauptseite gebracht
- /vorschau/ entfernt (alte Vorab-Produktseite, durch index.html mit Hero-Slider und Live-Demos ersetzt)
- STRUCTURE: aktive vs. legacy CSS/JS getrennt, videos/, downloads/, insights/, accountforger-video.html ergaenzt
- Lagen: cyberangriffe und deepfakes binden Lagebild-Assets aus iran-konflikt ein
- SERVICES: sync-lagebild und insights ergaenzt
- DEPLOYMENT: Cache-/Auth-Besonderheiten dokumentiert
2026-05-10 14:28:17 +02:00
d41bd9d41d Promote develop → main (2026-05-06 22:49 UTC) 2026-05-07 00:49:37 +02:00
5e93e5b9d1 i18n: Summary-Section auch unter englischem Header erkennen
Der Monitor uebersetzt im research-Lagebild-Markdown die
Section-Ueberschrift "## Zusammenfassung" zu "## SUMMARY".
extractZusammenfassung und stripZusammenfassung matchten bisher
nur das deutsche Wort, daher zeigte die EN-Variante der
Deepfakes-Recherche eine leere Zusammenfassung.

Beide Funktionen erkennen jetzt 'zusammenfassung' und 'summary'
case-insensitive.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 00:47:18 +02:00
49fc3a6f64 i18n: app.js erkennt Sprache und laedt EN-Datenfiles
Die Index-Hauptseite hat noch eine Reihe dynamisch gefuellter Texte
(Live-Stats-Bar-Titel, Map-Legende, Default-Kategorie-Labels) und
laedt summary.json fuer die Excerpts. Auf der EN-Variante hat das
bisher zu sichtbarem deutschen Text gefuehrt.

- SITE_LANG wird einmal aus <html lang> abgeleitet
- lageTitles existiert pro Sprache
- defaultLabels (primary/secondary/tertiary/mentioned) pro Sprache
- Legende -> Legend in der Map-Legende
- summary.json -> summary_en.json bei EN, mit Fallback auf summary.json
  wenn EN-Variante nicht existiert (Monitor erzeugt beide bereits)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:44:01 +02:00
2840f42059 Staging: Mountpoint-Platzhalter fuer Lagen-Daten
Die /lagen/*/data/-Verzeichnisse sind nicht versioniert (.gitignore),
werden aber im Staging-Container per bind-mount aus dem Live-Pfad
eingeblendet. Bei read_only:true im Container muss das Mountpoint-
Verzeichnis bereits existieren - daher .gitkeep als Platzhalter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:40:43 +02:00
f874d1dee0 i18n: Aufraeumen und Doku-Update (Phase 5)
- lagebild.js: tote initLangToggle() und switchContent() entfernt;
  initTranslations()-Aufruf aus init() raus (translations.js gibt es
  nicht mehr). Kein neues Verhalten, nur Aufraeumen.
- CLAUDE.md aktualisiert: en/situations/-Struktur, Slug-Mapping,
  Daten-Freigabe-Konzept, Kontaktformular i18n-Hinweis,
  CHANGE_LOG erweitert.

Backend (contact-form.py) wurde live ausgerollt und ist nicht im
Repo (liegt unter /opt/v2-Docker/aegis-website/), Backup unter
contact-form.py.bak.<timestamp>.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:30:24 +02:00
645fb33898 i18n: EN-Lagen-Seiten + zweisprachiges Kontaktformular (Phase 3+4)
Phase 3 - Englische Lagebild-Seiten:
- /en/situations/iran-conflict/, /en/situations/cyber-attacks/,
  /en/situations/deepfakes/ erstellt (Mirror der DE-Lagen mit
  englischer UI)
- lagebild.js: curLang() liest jetzt direkt <html lang>; neuer
  dataBase()-Helper, damit EN-Seiten die JSON-Daten aus dem
  DE-Pfad nachladen koennen (window.LAGEBILD_DATA_BASE pro Seite)
- 4 zuvor hardcodierte DE-Strings (emptyDevelopments, emptySummary,
  Quelle-Tooltip, Schliessen-Aria) ueber t() und das vorhandene
  lang.de/lang.en-Dictionary uebersetzt
- DE-Lagen-Seiten: hreflang-Tags wieder aktiv, Toggle zeigt nun
  korrekt auf das EN-Pendant statt /en/
- en/index.html Karussell-Buttons zeigen auf EN-Lagen
- Sitemap mit hreflang-Alternativen fuer alle Lagen ergaenzt

Phase 4 - Kontaktformular zweisprachig (Frontend):
- js/app.js submitContact() liest <html lang>, sendet lang im POST
  und zeigt Sende-/Fehler-Texte in der jeweiligen Sprache
- Backend (contact-form.py) wird separat ausgerollt, ist aber
  abwaertskompatibel: bei fehlendem lang-Param defaultet es auf de

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:28:05 +02:00
03b18e145c Promote develop → main (2026-05-06 21:15 UTC) 2026-05-06 23:15:59 +02:00
8c8130509a i18n: Aufraeumen alter Mehrsprachigkeits-Reste
- js/translations.js entfernt (war im aktuellen Site-Stand ungenutzt
  und passte nicht mehr zur neuen Struktur)
- impressum-en.html und datenschutz-en.html entfernt (durch
  /en/legal-notice.html und /en/privacy.html ersetzt)
- data-translate Attribute aus den drei Lagen-Seiten entfernt
- <script src="/js/translations.js"> aus den Lagen-Seiten entfernt
- CLAUDE.md auf neuen Stand gebracht (i18n-Ansatz dokumentiert,
  CHANGE_LOG erweitert)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 22:13:55 +02:00
3229c6b1ea i18n: Sprachumschalter DE/EN und englische Seiten unter /en/
- Neuer .lang-switcher Komponente in css/lang-switcher.css, Variante
  fuer dunkle Lagebild-Seiten enthalten
- Sprachumschalter im Header und Mobile-Menue aller DE-Seiten
  (index, impressum, datenschutz, lagen/*)
- Englische Seiten unter /en/index.html, /en/legal-notice.html und
  /en/privacy.html mit kompletter Uebersetzung; rechtliche Texte mit
  Hinweis "German version shall prevail"
- hreflang-Tags (de/en/x-default) auf Hauptseite und rechtlichen
  Seiten; Lagen-Seiten ohne hreflang bis EN-Versionen existieren
- og:locale + og:locale:alternate gesetzt, Schema.org bleibt
- Sitemap mit xhtml:link Alternates fuer beide Sprachen ergaenzt
- DE-Lagen-Toggle zeigt vorerst auf /en/ (EN-Lagen folgen Phase 3)
- Cookie-Banner liest <html lang> bereits selbststaendig, daher
  englisch auf EN-Seiten ohne weitere Aenderung

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 22:12:19 +02:00
Claude Code
3905e90467 CLAUDE.md: Auto-Deploy + Promote-UI dokumentiert (TODO -> abgeschlossen)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 21:15:34 +02:00
Claude Code
95ada4dd39 CLAUDE.md: Staging-Umgebung dokumentiert (URL, Workflow, Auth-Service)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:56:27 +02:00
Claude Code
0b979c7d85 Texte: Einsatzfall -> Anwendungsfall (CTA + Kontakt-Modal)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:59:43 +02:00
Claude Code
0e0744779c Datenschutz und Impressum auf neues Layout migriert
- Wechsel von altem Multi-File-CSS-Setup (main.css/fonts.css/mobile.css) auf
  das neue /css/style.css der Hauptseite. Bebas-Neue-Headlines und
  Glassmorphism-Karten ersetzt durch Inter + flaches Design mit Navy/Gold-Akzent.
- Header (Navbar + Mobile-Menu + Mobile-Overlay) und Footer aus index.html
  uebernommen; Anker-Links zeigen auf die Hauptseite (/#features etc.).
- Inhalt 1:1 erhalten; Klassen normalisiert auf .legal-section/.legal-content.
- Inline-Styles am Quellverweis durch .source-note-Klasse ersetzt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:54:57 +02:00
Claude Code
2abf6f798a Passwortschutz von der Hauptseite entfernen
Das clientseitige Login-Gate (#login-gate, SHA256-Cookie-Pruefung)
stammt aus der Vorschau-Phase. Nach Befoerderung der Vorschau zur
Live-Hauptseite ist es nicht mehr erforderlich; der gesamte Block
inkl. CSS, HTML und JS wurde entfernt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:47:41 +02:00
Claude Code
19620aaa4b Hauptwebseite durch Vorschau-Iteration ersetzt
- /vorschau/ existiert nicht mehr; deren Inhalte sind jetzt unter /
- index.html, css/style.css, js/app.js und videos/ stammen aus dem ehemaligen
  vorschau/-Verzeichnis und ersetzen die bisherige Hauptseite.
- Alte CSS/JS-Dateien (main.css, main.js etc.) bleiben erhalten - sie werden
  weiterhin von /lagen/, /datenschutz, /impressum genutzt.
- Vorheriger Stand archiviert unter AegisSight/Webseite_alt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:24:07 +02:00
Claude Code
bea7c1eb7a Vorschau: Karussell-Excerpt vereinheitlicht + Hero-Slide-Uebergang glaetten
- demo-excerpt mit fester Hoehe (760px Desktop, 640px Mobile) und weicher
  Fade-out-Maske; vereinheitlicht die Kartenhoehe ueber alle Lagen ohne
  harte Abschneidung des Inhalts.
- heroGoTo() haelt die .ended-Klasse waehrend des Fade-outs aktiv und
  raeumt sie erst nach 400ms auf. Verhindert das Aufblitzen des
  pausierten Video-Frames beim Wechsel von der Endcard zur naechsten Slide.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:15:38 +02:00
Claude Code
2a9bbb312f Vorschau: Online-Schaltung vorbereitet (SEO, Cookie-Consent, Conversion-Tracking, LAUNCH-CHECKLIST)
Vorbereitungen fuer den Tag-X-Switch zur neuen Hauptseite. Schaltung selbst lauft ueber LAUNCH-CHECKLIST.md.

vorschau/index.html:
- Meta-Description, Canonical, Open Graph, Twitter Card, Schema.org Organization
- Cookie-Consent CSS+JS eingebunden (reused von alter Hauptseite, mit Umami-Anbindung)
- Footer um Cookie-Einstellungen-Link und dynamisches Jahr ergaenzt
- noindex/nofollow bleibt bis Tag X drin (Vorschau weiter passwortgeschuetzt)

vorschau/js/app.js:
- Conversion-Tracking: umami.track("contact_modal_open") und umami.track("contact_form_success")

assets/images/og-image.png (NEU):
- 1200x630 Open Graph Vorschaubild, Logo + Tagline auf Navy

datenschutz.html:
- Section 5 NEU: Kontaktformular und Anfragen (Daten, Speicherdauer, Rechtsgrundlage)
- Section 7 NEU: AegisSight Analytics (Umami) - cookielos, IP-anonymisiert, selbstgehostet
- Sections umnummeriert: Newsletter -> 6, Plugins -> 7, KI-Agenten -> 8

lagen/{iran-konflikt,cyberangriffe,deepfakes}/index.html:
- Cookie-Consent CSS+JS eingebunden
- Footer-Navigation auf neue Hauptseite-Anker umgestellt: /#features, /#demos, /#trust, /#contact
- Cookie-Einstellungen-Link im Footer
- Farbgebung der Lagen unveraendert (User-Wunsch)

NEUE inaktive Dateien fuer Tag X (per LAUNCH-CHECKLIST aktiviert):
- sitemap-launch.xml: Hauptseite + 3 Lagen + Impressum + Datenschutz
- robots-launch.txt: Crawler erlaubt, AI-Crawler/Spam-Bots/Archiv-Bots blockiert
- LAUNCH-CHECKLIST.md: vollstaendige Anleitung fuer den Schaltungs-Tag (Backup, Schritte, Smoke-Tests, Rollback)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 11:30:32 +02:00
Claude Code
5367b91945 Vorschau: Helligkeits-Tonleiter fuer helle Sections + Contact als heller Akzent
- Vier Tonstufen (--tone-1 bis --tone-4) fuer Problem, Workflow, Demos, Contact: Seite atmet beim Scrollen sanft von hell nach kuehler
- Contact in hellem Blau-Grau-Weiss (#ECF2F9) als frischer Akzent vor dem dunklen Trust
- Divider-Uebergaenge per Adjacent-Sibling an die neuen Tonstufen angepasst
- Trust und Contact in Page-Reihenfolge zurueckgetauscht: Contact vor Trust (Trust bleibt visueller Schluss-Anker), Navbar-Reihenfolge bleibt aber Funktionen-Live-Lagebilder-Ueber-uns-Kontakt
- Subpixel-Luecke unter dem Diagonal-Divider Contact->Trust mit margin-top:-1px geschlossen

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 10:02:18 +02:00
Claude Code
12dc13c089 Vorschau: Trust vor Contact + Navbar Versprechen->Über uns
- Trust-Section (Unser Versprechen) wandert vor die Contact-CTA, damit Vertrauen vor der Conversion-Aufforderung steht
- Divider angepasst: Demos -> Trust (diagonal-dark), Trust -> Contact (gradient-dark-to-base), Contact -> Footer (diagonal-dark mit Footer-Navy als Fill)
- Navbar-Label Versprechen -> Über uns (klarer fuer Erstbesucher) und neue Reihenfolge: Funktionen, Live-Lagebilder, Über uns, Kontakt (folgt der Scroll-Reihenfolge)
- Mobile-Menu identisch angepasst

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 09:31:11 +02:00
Claude Code
10e71eecbe Vorschau: Features-Section nach oben mit Gold-Glasmorphism, Problem-Section auf hellem Hintergrund
- Features (Was der Monitor leistet) wandert direkt unter Hero, bekommt section-dark
- Problem (Warum manuelle OSINT-Auswertung nicht skaliert) rutscht eine Position nach unten, bekommt section-base
- Feature-Cards im dunklen Kontext: Glasmorphism mit dezent transparentem Hintergrund, permanente Gold-Border, Gold-getoente Icon-Box, goldfarbene Icons (CSS-Filter), Hover mit kraeftigerer Gold-Border und Lift
- Neuer Divider divider-gradient-base-to-alt fuer den Uebergang Problem -> Workflow

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 09:23:06 +02:00
Claude Code
980dd3039e Lagebild: Zusammenfassung nicht mehr doppelt / nicht mehr im Recherche-Tab
- extractZusammenfassung: Header-Zeile aus Inhalt entfernen, damit sie nicht zusaetzlich zur Card-Headline erscheint
- renderSummary: stripZusammenfassung schneidet den Zusammenfassungs-Block raus, damit er exklusiv im Zusammenfassung-Tab gerendert wird

Betrifft research-Typ (Deepfakes). Adhoc-Lagen (Iran, Cyberangriffe) unberuehrt.
2026-04-24 23:42:21 +02:00
Claude Code
f1d17922ee Vorschau Hero: Dots weiter unten, eigener Raum unter dem Video
- Slider endet jetzt bei bottom:60px statt bottom:0 -> Video-Bereich
  beginnt unter der Navbar und endet oberhalb einer reservierten Zone
  fuer die Dots, damit sie keine Video-Schrift verdecken
- Dots auf bottom:22px (Desktop) / 18px (Mobile) statt 75/65px

Rollback-Punkt: fa17c1f
2026-04-21 01:52:03 +02:00
Claude Code
fa17c1fefb Vorschau Hero: Slider unter Navbar + Endcard 7s
- Slider-Container beginnt jetzt bei top:var(--nav-height) statt 0;
  das Video wurde zuvor oben durch die fixe Navbar ueberdeckt, obwohl
  object-fit:contain es komplett rendert
- HERO_ENDCARD_MS von 3000 auf 7000 (User-Feedback: zu kurz)

Rollback-Punkt: c85be47
2026-04-21 01:48:40 +02:00
Claude Code
c85be47307 Vorschau Hero: Video vollstaendig sichtbar + Endcard mit CTA am Ende
Umgebaut zu Video-getriebenem Slider mit Endcard-Phase:
- Video object-fit: contain (komplett sichtbar, Navy-Letterbox-Raender)
- Waehrend Video-Laufzeit: keine Overlays (Video spricht fuer sich)
- ended-Event triggert .ended/.endcard-Klassen -> 3s Endcard
- Endcard zeigt Titel + Tagline (zentriert) + Beispieltext + CTA
- Slide 2 ohne CTA: Endcard zeigt nur Titel + Tagline
- loop-Attribut aus allen 5 Videos entfernt (sonst feuert ended nicht)
- Festes 15s-Autoplay entfernt; Slide-Wechsel ist video-getrieben
- Fallback-Timer 25s falls ended-Event nicht kommt (Ladefehler etc.)
- Manuelle Navigation (Dots/Pfeile/Swipe) cleant alle Timer sofort
- Tab-Wechsel pausiert/resumt korrekt im jeweiligen Zustand

Rollback-Punkt: c693114
2026-04-21 01:28:42 +02:00
Claude Code
c6931142e7 Vorschau Hero: Video in voller Hero-Breite mit Overlay-Text
Hero-Slider umgebaut auf Vollbreiten-Video:
- Video fuellt gesamte Hero-Section (object-fit:cover, inset:0)
- Titel + Tagline als Overlay oben (ueber Gradient)
- Slide-Bottom (Beispieltext+CTA) als Overlay unten
- Pfeile auf Hero-Mitte seitlich, Dots zentriert unten
- Gradient-Overlay pro Slide (dunkel oben/unten, Safe-Zone Mitte)
- Mobile-Anpassungen (Pfeile ausgeblendet, kleinere Fonts)
- Tote Klassen entfernt (hero-claim, hero-cta, hero-slide-inner etc.)

Rollback-Punkt: a38a6e1
2026-04-21 01:11:22 +02:00
Claude Code
a38a6e1930 Latest-Developments: Pipe-Parser fuer Name|URL-Bullet-Format
Analog Monitor-Aenderung: Pills parsen {Name|URL, Name|URL} direkt und
nutzen die URL aus dem Bullet, statt ueber sources_json-Namen nachzuschlagen.
Damit verweist jeder Pill-Klick eindeutig auf den belegenden Post — keine
Name-Kollisionen mehr (insbesondere bei Telegram-Kanaelen mit mehreren
gleichnamigen sources_json-Eintraegen).

Legacy-Kompat: Items ohne Pipe gehen weiter per lookupByName durch.
2026-04-19 01:19:07 +02:00
Claude Code
f4334863a0 Source-Pill: Clip entfernt, langer Kanal-Pfad vollstaendig sichtbar
Analog Monitor: max-width/ellipsis raus, white-space: normal + overflow-wrap.
2026-04-19 00:57:57 +02:00
Claude Code
a65ad6085e Telegram-Pill: Kanal-Pfad statt generisches Label
Analog Monitor-Aenderung: (t.me/iranmilitarymag) statt (Telegram-Link).
2026-04-19 00:53:12 +02:00
Claude Code
0f2e4083df Quellen-Pills: (Telegram-Link) Suffix bei t.me-URLs
Quellen mit nichtlateinischem Namen wie Telegram: persisch-arabisch waren
schwer zuordenbar. Pill-Label bekommt jetzt bei allen Quellen mit URL auf
t.me einen Zusatz Telegram-Link in Klammern. Konsistent an drei Stellen:
Lagebild-Seite renderLatestDevelopmentsHtml und Vorschau renderLatestDevelopments.
2026-04-19 00:34:46 +02:00
Claude Code
c3bae27837 Lagebild-Seite: Tab Neueste Entwicklungen / Zusammenfassung
Live-Lagen (iran-konflikt, cyberangriffe) bekommen einen neuen ersten Tab
Neueste Entwicklungen mit Bullet-Cards, klickbaren Quellen-Pills und
Zeitstempel. Recherche-Lagen (deepfakes) bekommen an selber Stelle einen
Tab Zusammenfassung, der den Zusammenfassung-Abschnitt aus dem Markdown
extrahiert und mit Citation-Links rendert.

lagebild.js: renderUeberblick, renderLatestDevelopmentsHtml,
extractZusammenfassung ergaenzt. i18n-Keys tabUeberblick/Research.
Lang-Toggle aktualisiert Tab-Label und h2.

Vorschau-Karten zeigen wieder den Lagebild-Text fuer alle Lagen
(renderLatestDevelopments-Calls aus loadLiveData entfernt).
2026-04-19 00:19:14 +02:00
Claude Code
8b8072efe7 feat: Slide 3 KI-Recherche-Video v2 + Cache-Bust 2026-04-14 02:59:46 +02:00
Claude Code
c5415f7a6b feat: Slide 2 Faktencheck-Video v3 + Cache-Bust 2026-04-14 02:38:27 +02:00
Claude Code
51d1c0d905 feat: Slide 5 Flexibel-Video v2 + Cache-Bust 2026-04-14 02:31:54 +02:00
Claude Code
2b76e5f3bb feat: Slide 5 (Flexibel einsetzbar) mit Video statt Text 2026-04-14 02:27:10 +02:00