aYOUne

Changelog

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

Other changes 1
New workspaces

Tagespreis der Groessen-Leiter — live aus der Anbieter-Preisliste

Die Route meldete das Literal `pricing: 'unavailable'`. Sie leitet den Kunden-
Tagespreis jetzt LIVE aus `GET /v1/pricing` ab — derselben Ressource, derselben
Formel (min(Std x 24, Monat / 30)) und demselben Aufschlag (x2, CEO 2026-08-10),
aus denen der Abrechnungs-Lauf seine Betraege bildet. Wizard und Rechnung koennen
damit per Bauart nicht auseinanderlaufen (CEO-Entscheid 2026-08-22, Wege A1+B1).

- lib/templatePricing.ts — reine Ableitung, Zwilling von hetznerBilling.ts
(gespiegelt statt importiert, mit Begruendung); Waehrung wird GELESEN, nicht
angenommen; location aus der Vorlage statt hartkodiert.
- lib/hetznerPricingSource.ts — Zugang aus dem Vault (CEO 2026-08-15),
ausdruecklich OHNE Umgebungs-Rueckfall: ein fremdes Konto zeigte einen falschen
Listenpreis. Vorhalt 15 min. Wirft per Bauart nie.
- Ein Fehlschlag reisst die Groessen-Leiter NICHT mit — dann bleibt es bei
pricing: 'unavailable', der ehrlichen Richtung.
- costAggregator bleibt bewusst tot: befuellen hiesse eine ZWEITE, eingefrorene
Preis-Quelle neben der live entstehenden Rechnung.

Proben: 23 neu (Formel, Waehrung, Standort, Vault-Feld, die drei Betraege,
Negativ-Kontrolle ohne Preisliste, Groesse ohne Zeile). Flip-Proben beidseitig:
Aufschlag 2->1 und min->max machen je 3 Faelle rot, rueckstandsfrei zurueck.