aYOUne
translate
Not in your language

This page is not yet available in en. You're reading the de version.

Breaking Changes

Calendar-Versioning + "latest" auf Foundation-Deps bedeutet, dass Breaking Changes in der Regel gestaffelt ankommen. Hier die wichtigsten der letzten Quartale — wer hochzieht, sollte einmal durchscrollen.

registerModuleStates _appName-Scope (Core 2026.53.1+)

Was war das Problem? Wenn zwei Services denselben moduleName teilten (z.B. marketing-api und ads-api beide module="marketing"), haben sie sich beim Boot gegenseitig deprekiert — jeder Pod-Boot löschte die States des anderen Service.

Fix: Sweep ist jetzt auf _module + _appName gescoped. Default appName = AYOUNE_RELEASE_NAME || moduleName. Cache-Key v2.

Migration: Wer Multi-Service-pro-Modul fährt, MUSS AYOUNE_RELEASE_NAME setzen. Anderenfalls gilt der moduleName als Default und alles bleibt wie vorher.

# K8s ConfigMap pro Service
AYOUNE_RELEASE_NAME: "marketing-api"   # bzw. "ads-api"

Mongoose 8 — Document.update() entfernt

Was war das Problem? Mongoose 8 hat die instanz-Methode doc.update(...) ersatzlos entfernt. Code, der das nutzt, crashed zur Laufzeit (TypeError) — tsc erwischt's nicht.

Fix: Alle .update() auf Document-Instanzen müssen .updateOne(...) werden:

// alt (crashed in 2026.44+)
await user.update({ lastLogin: new Date() });

// neu
await user.updateOne({ lastLogin: new Date() });

Migration: Repo-weiten Grep ausführen:

rg '\.update\(' --type ts -g '!*.test.ts' platform/models/

Manche Treffer sind harmlos (Model.update() als Static), manche kritisch (doc.update() als Instanz).

swc statt tsc in Pipelines

Was war das Problem? tsc läuft im Bitbucket-Runner mit size:4x und 6GB Heap im OOM (SIGKILL nach >20min). Lokal 9s, in Pipeline >20min.

Fix: Auf swc umsteigen — baut in 57ms.

Migration: Im Service:

npm install -D @swc/core @swc/cli

Plus eine .swcrc und Anpassung im Dockerfile (die .swcrc MUSS in den Build-Context kopiert werden — vergisst man leicht). Reference-Dockerfile: domains/marketing/gui-content-suite/Dockerfile.

helm --atomic kann Release wipen

Was war das Problem? Bei einem first-install-fail mit --atomic löscht Helm das Release komplett (kein vorheriges Revision für Rollback da). Beim nächsten helm upgrade --install ist's wie ein neuer Erst-Install.

Fix: Erst-Install ohne --atomic, fixen, ab dem zweiten Deploy mit --atomic. Oder --cleanup-on-fail=false setzen (riskant — Pods bleiben fehlerhaft am Cluster).

Foundation-Deps müssen "latest" sein

Bestätigt durch link-portal #59 und marketing-api #38 Pipeline-Fails: Caret-Range ^2026.x.y zusammen mit committetem Lockfile pinnt die Version effektiv. Foundation-Deps (@tolinax/ayoune-interfaces, -models, -core) MÜSSEN "latest" sein, der prebuild-Hook zieht @latest. Nach npm run update-core MUSS das Lockfile committed werden.

CLI muss @tolinax/* als Runtime-Dep meiden

Was war das Problem? @tolinax/ayoune-core als Runtime-Dep der CLI zog ~55 transitive Deps mit (mongoose, ioredis, prom-client, bullmq, express). Resultat: ERR_SOCKET_BAD_PORT, mongoose-duplicate-index-Warnings, prom-client metric-Registry-Init bei jedem ay-Aufruf.

Fix: Seit CLI v2026.11.4 NUR noch native fetch + reine Type-Imports (devDependency). npm pack-Test im CI verhindert Regressions.

Webhook-Signature-Verify aktuell SKIPPED

Was ist das Problem? domains/payments/api/ Stripe + PayPal Webhook-Handler skippen die Signatur-Verifizierung, weil der globale JSON-Parser den Raw-Body verschluckt. Der Cross-cutting Fix in core (path-based Raw-Body-Middleware) ist in Arbeit, geplant für 2026.51.

Workaround: Bis dahin: Webhooks hinter eigenen API-Gateway, der signatur-prüft, oder Stripe-CLI für lokales Forwarding.

Verbindungen