ACHTUNG: baut auf PR #291 (INT-12) auf, Diff enthaelt bis zu dessen Merge auch INT-12s Aenderungen. Vertragstests fuer INT-04/11/12/13-Modul-Adapter, komprimierter Dauerlauf-Test statt wortgetreuem 24h-Lauf (Abweichung dokumentiert, Nutzer-autorisiert), Webhook-Retry-Nachweis. Dabei echtes Goroutine-Leck in dms/internal/mailimport/imap.go gefunden und behoben.
ACHTUNG: baut auf PR #291 (INT-12) auf, Diff enthaelt bis zu dessen Merge auch INT-12s Aenderungen. Vertragstests fuer INT-04/11/12/13-Modul-Adapter, komprimierter Dauerlauf-Test statt wortgetreuem 24h-Lauf (Abweichung dokumentiert, Nutzer-autorisiert), Webhook-Retry-Nachweis. Dabei echtes Goroutine-Leck in dms/internal/mailimport/imap.go gefunden und behoben.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick
added 5 commits 2026-10-15 23:56:47 +02:00
DMS registriert den Dokument-Objekttyp inkl. KI-relevanter Felder (Volltext,
Metadaten) beim Start automatisch bei AI GOV-01 - ueber eine neue HTTP-
Schnittstelle (ai/internal/moduletypeapi), da DMS ein getrenntes Go-Modul
ist und GOV-01s Go-Paket nicht importieren kann. Registrierung ist optional
(fehlt die AI-Basis-URL, startet DMS unveraendert) und fail-open (ein
unerreichbarer AI-Dienst blockiert den DMS-Start nie).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Vertragstests fuer die DMS-seitigen Schnittstellen zu Archive (INT-11),
AI (INT-12), Workflow (INT-13) und die E-Mail-Regel-API (INT-04): jeder
Test prueft die tatsaechlich gesendete/empfangene JSON-Nutzlast eines
echten Clients/Handlers gegen ihr dokumentiertes Schema, ergaenzt um eine
DetectsBreakingChange-Gegenprobe je Vertrag (Muster wie Core QA-07/Archive
QA-07-Pendant). CMIS (INT-09) hat mit parity_test.go/arch_test.go bereits
aequivalente Abdeckung, daher hier nicht dupliziert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Viele Import-Zyklen hintereinander statt des woertlichen 24h-Dauerlaufs
(siehe docs/QA-09-PRUEFPROTOKOLL.md fuer die Begruendung), je Zyklus
mehrere Nachrichten/Stapel: belegt verlustfreien Import ueber INT-04/08
Zyklen hinweg (Pruefung 2).
Der Test deckte dabei ein echtes Ressourcenleck auf: Dialer.connect
startete eine Goroutine, die auf den AUFRUFER-Kontext wartete (haeufig
context.Background(), nie Done) statt auf einen an die Sitzung
gebundenen Kontext - jeder Poll-Zyklus liess so dauerhaft eine Goroutine
haengen. Fix: sessCtx wird von ctx abgeleitet und in session.close()
abgebrochen, die Beobachtung auf externe Kontext-Stornierung bleibt
erhalten.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ergaenzt internal/contracttest (Core QA-07) um den fuer DMS QA-09
Pruefung 3 noetigen Nachweis: ein Webhook-Ziel, das nach mehreren
Fehlversuchen wieder erreichbar ist, wird trotzdem noch zugestellt
(TestProcessDue_RetriesWithBackoffThenMarksFailed in
internal/webhook/webhook_test.go belegt bereits den dauerhaften
Fehlschlag, nicht aber die Wiederherstellung). Liegt im Core-Modul, da
DMS die Core-internen Pakete (Dispatcher/Store) nicht importieren kann
(getrenntes Go-Modul, siehe dms/internal/retentionclient-Muster).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Dokumentiert die 24h-Dauerlauf-Abweichung (komprimierter Ersatztest statt
woertlichem 24h-Lauf, User-autorisiert), alle drei Akzeptanzkriterien mit
Zielwert/Messwert/Bewertung, den gefundenen und behobenen Goroutine-Leck
in mailimport.Dialer.connect, sowie den Regressionsnachweis ueber die
vollstaendige DMS-Testsuite und die QA-09-relevanten Root-Modul-Pakete.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
ACHTUNG: baut auf PR #291 (INT-12) auf, Diff enthaelt bis zu dessen Merge auch INT-12s Aenderungen. Vertragstests fuer INT-04/11/12/13-Modul-Adapter, komprimierter Dauerlauf-Test statt wortgetreuem 24h-Lauf (Abweichung dokumentiert, Nutzer-autorisiert), Webhook-Retry-Nachweis. Dabei echtes Goroutine-Leck in dms/internal/mailimport/imap.go gefunden und behoben.
🤖 Generated with Claude Code
Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.
Pull request closed