aYOUne

Changelog

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

No milestone 2
New migrate

uptime-kpis-to-dailystats — einmalige Uebertragung der Uptime-Tageszeilen

globalkpis(typ:"check-uptime-daily") -> checkdailystats, CEO-Entscheid 2026-08-23
Weg B. Rein additiv: die Quelle wird NICHT angefasst.

🔴 Der Rechenweg wird aus platform/stats-generator/dist GELADEN, nicht nachgebaut.
Zwei Kopien derselben Feld-Zuordnung waeren eine Drift-Quelle, und die gefaehrliche
Richtung ist hier eindeutig: die Altzeile zaehlt ERREICHBARE (`count`), der Vertrag
FEHLGESCHLAGENE (`failed`) — vertauscht steht die Verfuegbarkeit auf dem Kopf.
Fehlt das dist, bricht der Lauf mit einer klaren Ansage ab, statt auf eine zweite
Umsetzung auszuweichen.

Ein Nachhol-Lauf des Verdichters kann das NICHT ersetzen: checkresults traegt
14 Tage Verfall, alles Aeltere existiert nur noch als Kennzahl-Zeile.

Gefahren gegen Produktion (2026-08-23), Ergebnis:
- 2.077 gelesen, 2.077 geschrieben, 0 uebersprungen
- zweiter Lauf: 2.077 -> 2.077, keine Verdopplung (gegen den materialisierten
unique-Index {_customerID,_check,day})
- verlustfrei gegengeprueft: sumTotal 9.839.313 = 9.839.313, failed 247.981 =
metrics.unhealthyRuns, Quer-Probe total-count ergibt dieselbe Zahl
- 28 Tage / 122 Pruefungen / 2 Mandanten deckungsgleich, 0 negative Werte

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

task-status-type-kanon — Bestand von tasks.status/.type auf den Kanon

Bestands-Nachtrag zu CEO-Entscheid 2026-08-21 (E7+E10). Zwei getrennte Achsen:

status 'Nicht begonnen'->open, 'Abgeschlossen'/'Erledigt'->done, ... — die Paare
stehen bereits in TASK_LIKE_STATUS_MAP, der Schreib-Haken deckt aber nur
NEUE Schreibvorgaenge; dieser Lauf holt den Bestand nach.
type NUR Schreibweisen-Dubletten: 'Code-Agent'->'CodeAgent', 'Task'->'Aufgabe'.

NICHT zusammengefuehrt wird 'CodeAgent-Todo': am Bestand gemessen ist das ein
EINZELPUNKT INNERHALB einer Sitzung (origin code-agent-hook:<id>), nicht die
Sitzungs-Aufgabe (origin code-agent-hook), und der lebende Erzeuger sucht ihn
idempotent ueber genau diesen Wert.

Die Sprachmischung (Bug/Aufgabe/...) wird NICHT aufgeloest — Produkt-Entscheid, CEO.

Trocken als Vorgabe. --apply zieht VORHER ein vollstaendiges Rueckroll-Abbild und
schreibt ohne dieses nicht (harter Abbruch, kein catch).

Gefahren 2026-08-22 gegen Produktion: 15 (status) + 302 (type) geschrieben,
Zweitlauf 0 Kandidaten, Kreuzprobe 42521 == 42521 auf beiden Achsen.
Abbilder mitversioniert unter .claude/reports/status-typ-kanon/.

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