aYOUne

Changelog

What changed — grouped by release, filterable by component and repository.

Other changes 1
New shop

verwandte Produkte am Produkt + CSS fuer den `quotes`-Block (W9)

VERWANDTE PRODUKTE — die Auftrags-Auflage war eine Messung, nicht eine Vermutung
("woraus folgt die Verwandtschaft?"). Gemessen an `IProduct` UND am Schema: sie
ist GEPFLEGT, nicht abgeleitet — fuenf Achsen als `[{product: ObjectId(ref
'Products'), name}]`. Vier davon sind Empfehlungen und werden angezeigt;
`bundleProducts` bleibt DRAUSSEN, weil eine Stueckliste ("dieses Set enthaelt X")
eine andere Frage beantwortet als "was koennte Sie noch interessieren". Der
Bestand stuetzt das: die 91 Buendel verweisen ueberwiegend auf Varianten
DESSELBEN Titels — als "verwandtes Produkt" gezeigt waere das schlicht falsch.

`isPublic: true` wirkt fail-closed (derselbe Schalter wie `getShopProduct`): ein
nicht-oeffentliches Produkt erscheint nicht, auch wenn es verknuepft ist. Ohne
den Filter waere die Empfehlungs-Achse ein Weg, Unveroeffentlichtes zu zeigen.

Diese Strecke liest LIVE — die Frage "Marker oder Publizier-Zeit" stellt sich
hier gar nicht, anders als bei den gebackenen Seiten der cms-api. Die Karte kommt
von `renderProductCard` (Wiederverwendung), nicht von einem zweiten Zeichner.

CSS FUER `quotes` — der cms-Renderer gibt `.ay-quote*` aus; ohne Regeln faellt der
Block als linksbuendiger Stapel auf die Seite. Das ist dieselbe STILLE Klasse,
die 2026-08-17 die Kundenlogos und Referenzen traf: fehlendes CSS wirft nichts
und faellt in keinem Bau auf. Die sechs Selektoren sind im Layout-Wachposten
festgenagelt, der genau dieses Auseinanderlaufen melden soll.

Proben: 10 neu (related-products.test.mjs), volle Menge 1538/1538 gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PmMj9oQCU9nxusjcbD8Dp8