Commit Graph

53 Commits

Author SHA1 Message Date
dbf5a0239b [31b88f42] Keine neuen Commits in dieser Session.
Keine neuen Commits in dieser Session.
2026-03-09 14:44:45 +00:00
73d29bd5cd [31e88f42] Keine neuen Commits in dieser Session.
Keine neuen Commits in dieser Session.
2026-03-09 13:25:43 +00:00
f35a702216 [31e88f42] Erreicht: Die Stabilität des SuperOffice Connectors wurde maßgeblich verbessert, um Endlos-Schleifen bei der Job-Verarbeitung zu verhindern und die Dashboard-Anzeige zu optimieren. Die Verarbeitung relevanter Änderungen wurde präzisiert.
Erreicht: Die Stabilität des SuperOffice Connectors wurde maßgeblich verbessert, um Endlos-Schleifen bei der Job-Verarbeitung zu verhindern und die Dashboard-Anzeige zu optimieren. Die Verarbeitung relevanter Änderungen wurde präzisiert.
Details der Implementierung:
 * Stabile Job-Verarbeitung (Poison Pill): Ein Poison Pill-Mechanismus wurde in queue_manager.py eingeführt. Jobs werden nun nach maximal 5 fehlgeschlagenen Versuchen automatisch als FAILED markiert.
 * Robuste SuperOffice API-Client-Authentifizierung: Die Fehlerbehandlung im superoffice_client.py wurde gehärtet. Authentifizierungsfehler und andere kritische API-Probleme lösen jetzt spezifische Exceptions aus.
 * Behebung des Worker-Startfehlers: Ein ImportError (ContactNotFoundException) im Worker wurde behoben.
 * Präzise Trigger-Logik: Eine Neubewertung von Accounts wird jetzt nur noch bei Änderungen an den Feldern name, urladdress, urls oder dem Vertical-UDF (SuperOffice:83) ausgelöst.
 * Korrekte Datumsanzeige im Dashboard: Die Dashboard-Formatierungslogik wurde angepasst, um updated_at-Zeitstempel anzuzeigen.
2026-03-09 12:38:08 +00:00
895e8b5c19 [31e88f42] Keine neuen Commits in dieser Session.
Keine neuen Commits in dieser Session.
2026-03-09 08:46:33 +00:00
9edfa78c26 [31988f42] Lead-Engine: Produktivsetzung und Anfrage per Teams
Implementiert:
*   **End-to-End Test-Button pro Lead:** Ein neuer Button "🧪 Test-Versand (an floke.com@gmail.com)" wurde in der Lead-Detailansicht hinzugefügt, um spezifische Leads sicher zu testen.
*   **Verbesserte E-Mail-Generierung:**
    *   Der LLM-Prompt wurde optimiert, um redundante Termin-Vorschläge und Betreffzeilen im generierten E-Mail-Text zu vermeiden.
    *   Der E-Mail-Body wurde umstrukturiert für eine klarere und leserlichere Integration des LLM-generierten Textes und der dynamischen Terminvorschläge.
*   **HTML-Signatur mit Inline-Bildern:**
    *   Ein Skript zum Extrahieren von HTML-Signaturen und eingebetteten Bildern aus -Dateien wurde erstellt und ausgeführt.
    *   Die -Funktion wurde überarbeitet, um die neue HTML-Signatur und alle zugehörigen Bilder dynamisch als Inline-Anhänge zu versenden.
*   **Bugfixes und verbesserte Diagnosefähigkeit:**
    *   Der  für  wurde durch Verschieben der Funktion in den globalen Bereich behoben.
    *   Die  im Kalender-Abruf wurde durch die explizite Übergabe der Zeitzoneninformation an die Graph API korrigiert.
    *   Fehlende Uhrzeit in Teams-Nachrichten behoben.
    *   Umfassendes Logging wurde in kritischen Funktionen (, , ) implementiert, um die Diagnosefähigkeit bei zukünftigen Problemen zu verbessern.
2026-03-09 08:21:33 +00:00
2c36c50f5c [30388f42] fix: Correct root endpoint in heatmap-backend 2026-03-08 15:36:33 +00:00
ee238fdd9a [30388f42] feat: Full stack integration and documentation overhaul 2026-03-08 12:24:35 +00:00
076fa5e43e Stabilize Lead Engine calendar logic (v1.4) and integrate GTM Architect, B2B Assistant, and Transcription Tool into Docker stack [30388f42] 2026-03-08 08:46:25 +00:00
e825c83caa [30388f42] Infrastructure Hardening & Final Touches: Stabilized Lead Engine (Nginx routing, manager.py, Dockerfile fixes), restored known-good Nginx configs, and ensured all recent fixes are committed. System is ready for migration.
- Fixed Nginx proxy for /feedback/ and /lead/ routes.
- Restored manager.py to use persistent SQLite DB and corrected test lead triggers.
- Refined Dockerfile for lead-engine to ensure clean dependency installs.
- Applied latest API configs (.env) to lead-engine and duckdns services.
- Updated documentation (GEMINI.md, readme.md, RELOCATION.md, lead-engine/README.md) to reflect final state and lessons learned.
- Committed all pending changes to main branch.
2026-03-07 20:01:48 +00:00
d1b77fd2f6 [30388f42] Infrastructure Hardening: Repaired CE/Connector DB schema, fixed frontend styling build, implemented robust echo shield in worker v2.1.1, and integrated Lead Engine into gateway. 2026-03-07 14:08:42 +00:00
a39efeb5b1 [2ff88f42] Full End-to-End integration: Webhooks, Auto-Enrichment, Notion-Sync, UI updates and new Connector Architecture 2026-02-19 16:13:16 +00:00
62aed99503 [30b88f42] Läuft wieder
Läuft wieder
2026-02-18 14:35:21 +00:00
Moltbot-Jarvis
bdbfaa470e feat: Documentation and Tool Config Update 2026-02-18 09:12:04 +00:00
337b804967 [30988f42] I have successfully implemented M4A audio support for the Meeting Assistant (Transcription Tool).
I have successfully implemented M4A audio support for the Meeting Assistant (Transcription Tool).
2026-02-16 11:58:22 +00:00
e43fc93703 [30988f42] chore(dev-session): Update session info and add frontend .gitignore 2026-02-16 11:58:02 +00:00
7a53904952 [2ff88f42] Zusammenfassung der erfolgreichen Ausführung:
Zusammenfassung der erfolgreichen Ausführung:
2026-02-16 10:34:55 +00:00
15db0cfe7f [2ff88f42] IDs für Felder herausfinden.
IDs für Felder herausfinden.
2026-02-12 11:08:17 +00:00
07ca427fc8 [2fd88f42] 1. Kartendarstellung (Neutralisierung):
1. Kartendarstellung (Neutralisierung):
       * Die TileLayer-URL in heatmap-tool/frontend/src/components/MapDisplay.tsx wurde auf eine neutrale CARTO light_all-Kachelansicht umgestellt und die Quellenangabe entsprechend angepasst.
2026-02-11 15:36:06 +00:00
96875247dd [2ff88f42] Wir haben versucht, auf eine neu erstellte Zusatz-Tabelle (ExtraTableId 1, auch y_marketing_copy oder Marketing Ansprache genannt) in SuperOffice zuzugreifen, um dort Marketing-Texte zu speichern. Dabei sind wir auf eine
Wir haben versucht, auf eine neu erstellte Zusatz-Tabelle (ExtraTableId 1, auch y_marketing_copy oder Marketing Ansprache genannt) in SuperOffice zuzugreifen, um dort Marketing-Texte zu speichern. Dabei sind wir auf eine
  hartnäckige Blockade gestoßen:
2026-02-11 13:36:57 +00:00
581ec01775 [2fd88f42] ✦ Das Heatmap-Tool zeigte einen Fehler beim Laden der Frontend-Anwendung, da die Datei /src/main.tsx nicht gefunden werden konnte.
✦ Das Heatmap-Tool zeigte einen Fehler beim Laden der Frontend-Anwendung, da die Datei /src/main.tsx nicht gefunden werden konnte.
2026-02-11 11:32:16 +00:00
d484ab08a0 [30388f42] Einrichtung der Entwicklungsumgebung auf der neuen VM docker1 (Ubuntu 24.04). Fehlerbehebung bei Docker-DNS-Problemen (systemd-resolved). Installation und Konfiguration einer frischen Gitea-Instanz via Docker Compose (manuelle Web-Installation für Konsistenz). Bereitstellung der Gemini CLI-Umgebung (Docker-basiert mit startgemini.sh Workflow). Dokumentation der Schritte in umzug.md erstellt.
Einrichtung der Entwicklungsumgebung auf der neuen VM docker1 (Ubuntu 24.04). Fehlerbehebung bei Docker-DNS-Problemen (systemd-resolved). Installation und Konfiguration einer frischen Gitea-Instanz via Docker Compose (manuelle Web-Installation für Konsistenz). Bereitstellung der Gemini CLI-Umgebung (Docker-basiert mit startgemini.sh Workflow). Dokumentation der Schritte in umzug.md erstellt.
2026-02-10 15:38:02 +00:00
68e0d31ed4 [2ff88f42] 1. Professionalisierung & Code-Härtung ("Enterprise Ready")
1. Professionalisierung & Code-Härtung ("Enterprise Ready")
   * Zentrales Logging: Wir haben eine logging_config.py implementiert. Der Connector schreibt jetzt professionelle, rotierende Log-Dateien (mit Zeitstempel und Modulnamen), statt nur
     print-Ausgaben in die Konsole zu werfen. Das ist essenziell für den stabilen Betrieb auf der VM.
   * Decoupling (Entkopplung): Alle festkodierten Werte (wie die mühsam ermittelten MA-Status-IDs 11–18 oder die UDF-ProgIds) wurden aus dem Logik-Code entfernt und in eine zentrale
     config.py ausgelagert. Diese kann nun einfach über Umgebungsvariablen für die Produktion (Prod) angepasst werden.
   * Refactoring: Sämtliche Module (SuperOfficeClient, AuthHandler, ExplorerClient) wurden bereinigt, redundante Kommentare entfernt und auf die neue Konfigurationsstruktur umgestellt.
2026-02-10 12:45:43 +00:00
f2ddd7ac09 [2ff88f42] 1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
       * Firmen (`Contact`)
       * Personen (`Person`)
       * Verkäufe (`Sale`) (entspricht D365 Opportunity)
       * Projekte (`Project`) (entspricht D365 Campaign), inklusive der Verknüpfung von Personen als Projektmitglieder.
   2. Robuste UDF-Aktualisierung: Wir haben eine generische und fehlertolerante Methode (update_entity_udfs) implementiert, die benutzerdefinierte Felder (UDFs) für sowohl Contact- als
      auch Person-Entitäten aktualisieren kann. Diese Methode ruft zuerst das bestehende Objekt ab, um die Konsistenz zu gewährleisten.
   3. UDF-ID-Discovery: Durch eine iterative Inspektionsmethode haben wir erfolgreich alle internen SuperOffice-IDs für die Listenwerte deines MA Status-Feldes (Ready_to_Send, Sent_Week1,
      Sent_Week2, Bounced, Soft_Denied, Interested, Out_of_Office, Unsubscribed) ermittelt und im Connector hinterlegt.
   4. Vollständiger End-to-End Test-Workflow: Unser main.py-Skript demonstriert nun einen kompletten Ablauf, der alle diese Schritte von der Erstellung bis zur UDF-Aktualisierung umfasst.
   5. Architekturplan für Marketing Automation: Wir haben einen detaillierten "Butler-Service"-Architekturplan für die Marketing-Automatisierung entworfen, der den Connector für die
      Textgenerierung und SuperOffice für den Versand und das Status-Management nutzt.
   6. Identifikation des E-Mail-Blockers: Wir haben festgestellt, dass das Erstellen von E-Mail-Aktivitäten per API in deiner aktuellen SuperOffice-Entwicklungsumgebung aufgrund fehlender
      Lizenzierung/Konfiguration des E-Mail-Moduls blockiert ist (500 Internal Server Error).
   7. Feiertagslogik ergänzt
2026-02-10 11:58:49 +00:00
312ce8aa1d [2ff88f42] 1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
1. Umfassende Entitäten-Erstellung: Wir haben erfolgreich Methoden implementiert, um die Kern-SuperOffice-Entitäten per API zu erstellen:
       * Firmen (`Contact`)
       * Personen (`Person`)
       * Verkäufe (`Sale`) (entspricht D365 Opportunity)
       * Projekte (`Project`) (entspricht D365 Campaign), inklusive der Verknüpfung von Personen als Projektmitglieder.
   2. Robuste UDF-Aktualisierung: Wir haben eine generische und fehlertolerante Methode (update_entity_udfs) implementiert, die benutzerdefinierte Felder (UDFs) für sowohl Contact- als
      auch Person-Entitäten aktualisieren kann. Diese Methode ruft zuerst das bestehende Objekt ab, um die Konsistenz zu gewährleisten.
   3. UDF-ID-Discovery: Durch eine iterative Inspektionsmethode haben wir erfolgreich alle internen SuperOffice-IDs für die Listenwerte deines MA Status-Feldes (Ready_to_Send, Sent_Week1,
      Sent_Week2, Bounced, Soft_Denied, Interested, Out_of_Office, Unsubscribed) ermittelt und im Connector hinterlegt.
   4. Vollständiger End-to-End Test-Workflow: Unser main.py-Skript demonstriert nun einen kompletten Ablauf, der alle diese Schritte von der Erstellung bis zur UDF-Aktualisierung umfasst.
   5. Architekturplan für Marketing Automation: Wir haben einen detaillierten "Butler-Service"-Architekturplan für die Marketing-Automatisierung entworfen, der den Connector für die
      Textgenerierung und SuperOffice für den Versand und das Status-Management nutzt.
   6. Identifikation des E-Mail-Blockers: Wir haben festgestellt, dass das Erstellen von E-Mail-Aktivitäten per API in deiner aktuellen SuperOffice-Entwicklungsumgebung aufgrund fehlender
      Lizenzierung/Konfiguration des E-Mail-Moduls blockiert ist (500 Internal Server Error).
2026-02-10 11:06:32 +00:00
23559cff08 [2ff88f42] 1. Strategische Klärung & Dokumentation: Wir haben die Rolle der SuperOffice-Entitäten Sale (als D365 Opportunity) und Project (als D365 Campaign) in unserem Integrationsplan geklärt
1. Strategische Klärung & Dokumentation: Wir haben die Rolle der SuperOffice-Entitäten Sale (als D365 Opportunity) und Project (als D365 Campaign) in unserem Integrationsplan geklärt
      und dies in der SUPEROFFICE_INTEGRATION_PLAN.md dokumentiert.
   2. `Sale` (Verkauf/Opportunity) Implementierung:
       * Ich habe die Methode create_sale in superoffice_client.py implementiert, um Verkaufschancen anzulegen.
       * Wir haben diese Funktion erfolgreich getestet und dabei gelernt, dass das Titelfeld in SuperOffice Heading statt Title heißt. Die Implementierung und das Logging wurden
         entsprechend korrigiert.
   3. `Project` (Projekt/Kampagne) Implementierung:
       * Ich habe die Methode create_project in superoffice_client.py implementiert, um Marketing-Projekte zu erstellen.
       * Nach anfänglichen API-Herausforderungen (falsche HTTP-Methode und Endpunkt für Projektmitglieder) habe ich die create_project-Methode so angepasst, dass Projektmitglieder direkt
         beim Erstellen des Projekts übergeben werden.
       * Diese Funktionalität wurde ebenfalls erfolgreich getestet.
   4. End-to-End-Workflow Demonstration: Das main.py-Skript demonstriert nun erfolgreich den gesamten Workflow: Anlegen einer Firma (Contact), einer Person (Person), eines Verkaufs (Sale)
      und eines Projekts (Project), wobei die Person direkt dem Projekt zugeordnet wird.
   5. Detaillierter Plan für Marketing Automation: Wir haben einen sehr detaillierten Plan für die Marketing-Automatisierung über SuperOffice erarbeitet. Dieser "Butler-Service"-Ansatz
      sieht vor, dass der Connector E-Mail-Inhalte generiert und in SuperOffice-Feldern speichert, während der Versand manuell durch den User im SuperOffice-Client erfolgt.
   6. Dokumentation des Marketing-Automationsplans: Dieser detaillierte Plan, einschließlich der benötigten benutzerdefinierten Felder (UDFs) und des Workflows, wurde 1:1 in der
      connector-superoffice/README.md dokumentiert.
2026-02-10 07:58:28 +00:00
c420bb31c3 [2ff88f42] feat(connector-superoffice): Implement Sale and Project entities, refine workflow
This commit extends the SuperOffice connector to support the creation and linking of Sale \(Opportunity\) and Project \(Campaign\) entities, providing a comprehensive foundation for both sales and marketing automation workflows.

Key achievements:
- **`SUPEROFFICE_INTEGRATION_PLAN.md`**: Updated to include strategic mapping of D365 concepts \(Opportunity, Campaign\) to SuperOffice entities \(Sale, Project\).
- **`connector-superoffice/superoffice_client.py`**:
    - Implemented `create_sale` method to generate new opportunities, correctly mapping `Title` to SuperOffices
2026-02-10 07:57:11 +00:00
47cd047bc8 [2ff88f42] 1. Analyse der Änderungen:
1. Analyse der Änderungen:
      * superoffice_client.py: Implementierung der Methoden create_contact (Standardfelder) und create_person (inkl. Firmenverknüpfung).
      * auth_handler.py: Härtung der Authentifizierung durch Priorisierung von SO_CLIENT_ID und Unterstützung für load_dotenv(override=True).
      * main.py: Erweiterung des Test-Workflows für den vollständigen Lese- und Schreib-Durchstich (Erstellung von Demo-Firmen und Personen).
      * README.md: Aktualisierung des Status Quo und der verfügbaren Client-Methoden.
2026-02-09 19:00:18 +00:00
a479058df2 [2ff88f42] Durchstich geschafft
Durchstich geschafft
2026-02-09 16:05:04 +00:00
6ced7f13e6 [2ff88f42] Zusammenfassung des bisherigen Fortschritts
Zusammenfassung des bisherigen Fortschritts
2026-02-06 13:53:12 +00:00
a04d92253a feat(superoffice): POC API handshake & auth flow [2ff88f42]
Establishes the initial structure for the SuperOffice connector. Implements the complete, iterative authentication process, culminating in a successful refresh token exchange. Documents the process and the final blocker (API authorization) in the integration plan, awaiting IT action to change the application type to 'Server to server'.
2026-02-06 13:52:44 +00:00
2172b9a1c2 [2f988f42] readme.md wiederhergestellt.
readme.md wiederhergestellt.
2026-02-04 20:43:00 +00:00
898ae98d5a [2fd88f42] Sehr guter erster Wurf, sollte sicher für 95% der Anforderungen genügen.
Sehr guter erster Wurf, sollte sicher für 95% der Anforderungen genügen.
2026-02-04 14:59:40 +00:00
f5ba056b92 feat([2fd88f42]): initial setup of heatmap tool 2026-02-04 14:59:36 +00:00
674de3d4ff [2f688f42] Dockercompose wiederhergestellt
Dockercompose wiederhergestellt
2026-02-04 10:26:58 +00:00
fd3e3a3414 [2f988f42] sollte jetzt ganz gut funktioniere. API Endpunkte wurden ergänzt und getestet.
sollte jetzt ganz gut funktioniere. API Endpunkte wurden ergänzt und getestet.
2026-02-01 20:02:07 +00:00
a83db7ddee [2f988f42] Moltbot hat das Tool kaputt gemacht. Habe es jetzt wieder mit Gemini CLI gefixt. Ist aber noch immer nicht ganz sauber - Optik ist kaputt, viele ja ja ja in der Transkription.
Moltbot hat das Tool kaputt gemacht. Habe es jetzt wieder mit Gemini CLI gefixt. Ist aber noch immer nicht ganz sauber - Optik ist kaputt, viele ja ja ja in der Transkription.
2026-01-31 08:31:10 +00:00
7e852ac7f7 [2f988f42] Webinterface wieder zum Laufen gebracht
Webinterface wieder zum Laufen gebracht
2026-01-31 05:49:27 +00:00
30b3042e85 [2f888f42] Container neu bauen und testne
Container neu bauen und testne
2026-01-30 11:55:37 +00:00
3c3632b9fa [2ea88f42] schaut gut aus
schaut gut aus
2026-01-29 11:03:21 +00:00
b9d4e32f21 [2ea88f42] habe nur die Frage zur Ursprungsdatei für den Import geklärt
habe nur die Frage zur Ursprungsdatei für den Import geklärt
2026-01-29 11:03:21 +00:00
6f95bce179 [2f688f42] Hat nach vielen Versuchen leider aufgrund einer Inkompatibilität der node js Version nicht geklappt.
Hat nach vielen Versuchen leider aufgrund einer Inkompatibilität der node js Version nicht geklappt.
2026-01-28 10:29:17 +00:00
314cfb2805 [2f688f42] Muss ich im readme-File prüfen
Muss ich im readme-File prüfen
2026-01-28 06:39:08 +00:00
d88e82eaca [2f488f42] Die GEMINI.md wurde aktualisiert, um den neuen #fertig-Befehl und den damit verbundenen Workflow zu dokumentieren. Diese Konvention stellt sicher, dass das Abschließen von Arbeitspaketen zuverlässig erkannt wird.
Die GEMINI.md wurde aktualisiert, um den neuen #fertig-Befehl und den damit verbundenen Workflow zu dokumentieren. Diese Konvention stellt sicher, dass das Abschließen von Arbeitspaketen zuverlässig erkannt wird.
2026-01-27 11:56:43 +00:00
7166c5aeea [2f488f42] Abschließende Überprüfung des /fertig-Workflows. Es wurden keine neuen Code-Änderungen festgestellt. Der Status wird in Notion aktualisiert, um den Task formal abzuschließen.
Abschließende Überprüfung des /fertig-Workflows. Es wurden keine neuen Code-Änderungen festgestellt. Der Status wird in Notion aktualisiert, um den Task formal abzuschließen.
2026-01-27 11:52:11 +00:00
415ca2594a [2f488f42] Der 'fertig'-Workflow wurde erfolgreich repariert und getestet. Ein veralteter post-commit-Hook, der Fehler verursachte, wurde entfernt. Der gesamte Prozess von der Zeiterfassung über den automatisierten Commit bis zum interaktiven Push funktioniert nun wie erwartet. Ein Test-Kommentar wurde zur Validierung hinzugefügt.
Der 'fertig'-Workflow wurde erfolgreich repariert und getestet. Ein veralteter post-commit-Hook, der Fehler verursachte, wurde entfernt. Der gesamte Prozess von der Zeiterfassung über den automatisierten Commit bis zum interaktiven Push funktioniert nun wie erwartet. Ein Test-Kommentar wurde zur Validierung hinzugefügt.
2026-01-27 11:50:06 +00:00
be86775c78 [2f488f42] Diesen Text sollte ich nicht selbst schreiben müssen.
Diesen Text sollte ich nicht selbst schreiben müssen.
2026-01-27 11:48:42 +00:00
a4f9f522bf [2f388f42] Implementierung der UI-Anpassungen zur Anzeige von ausstehenden Fehlerberichten (rote Flagge in der Unternehmensliste, Anzeige im Inspector) und zur Ermöglichung weiterer Fehlerberichte. Backend-APIs wurden entsprechend erweitert.
Implementierung der UI-Anpassungen zur Anzeige von ausstehenden Fehlerberichten (rote Flagge in der Unternehmensliste, Anzeige im Inspector) und zur Ermöglichung weiterer Fehlerberichte. Backend-APIs wurden entsprechend erweitert.
2026-01-27 11:18:36 +00:00
81d6da1622 [2f488f42] Der 'fertig'-Workflow wurde weiter gehärtet. Eine Prüfung stellt nun sicher, dass ein On branch main
Der 'fertig'-Workflow wurde weiter gehärtet. Eine Prüfung stellt nun sicher, dass ein On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean nur dann versucht wird, wenn auch tatsächlich Änderungen im Arbeitsverzeichnis vorhanden sind. Dies verhindert Fehler bei der Ausführung, wenn der Task-Abschluss nur der Status-Aktualisierung dient.
2026-01-27 10:44:06 +00:00
6b4901f981 [2f488f42] Zeitzone angepasst, Timetracking angepasst
Zeitzone angepasst, Timetracking angepasst
2026-01-27 10:27:44 +00:00
661d6c08e2 [2f488f42] Scheint bereits einigermaßen zu funktionieren.
{actual_summary}
2026-01-27 10:19:15 +00:00