aYOUne

Changelog

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

No milestone 5
New tasks

Code-Agent-Aktion aus der Registry ziehen (Pin auf interfaces 2026.452.0)

Der Pin-Bump zieht den neuen entityActions-Eintrag `dispatch-code-agent` nach —
ohne ihn rendert kein Knopf, egal was publiziert ist (actionsForEntity liest die
INSTALLIERTE Registry). Wirksam wird er an den zwei Aufgaben-Tabellen
(registerStates.ts:483/589) und in der Rechte-Ableitung.

An der Detail-Ansicht wird der generische Eintrag BEWUSST herausgefiltert: dort
stehen seit CEO 2026-07-08 zwei handgebaute Knoepfe auf derselben Route, die die
Laufzeit-Wahl (bodyData dc/k8s) und einen Bestaetigungs-Dialog tragen —
entityActions kann beides nicht ausdruecken (actionsForEntity setzt bodyData
fest). Ohne den Filter stuenden dort drei Knoepfe auf einer Route, davon einer
namenlos.

Lock-Beleg vor dem Push: interfaces/models/core je genau EINE Aufloesung, alle
gleich dem publizierten Stand. 726/726 Proben gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Fix tasks

waitingOnOthers auf den Kanon-Wert blocked abbilden

Outlooks `waitingOnOthers` wurde auf `waiting` abgebildet — kein Wert des Kanons
`PmStatus`. CEO-Entscheid 2026-08-22 (via /interview), Weg (a): `blocked`.

Gemessen mit Positiv-Kontrolle: der Normalisierungs-Haken `TASK_LIKE_STATUS_MAP`
fuehrt sieben Eintraege, KEINER heisst `waiting` — die Annahme des Auftrags, der
Haken fange den Wert ohnehin ab, ist falsch. Diese Zeile ist der einzige Riegel.

Waechter-Test nagelt JEDEN ausgegebenen Status gegen den Kanon fest (nicht nur den
einen Fix); Flip-Probe: mit dem alten Wert 93/94 rot, mit dem Fix 94/94.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
New tasks

type-Normalisierung (Stufe 2) + zwei nachgetragene status/priority-Luecken

CEO-Entscheid 2026-08-21 (E10). Neue Karte TASK_TYPE_MAP faengt die zwei gemessenen
Schreibweisen-Dubletten am SCHREIBWEG ab: 'Code-Agent' -> 'CodeAgent', 'Task' -> 'Aufgabe'.
Registriert an `Tasks` neben status/priority.

WARUM DER HAKEN UND NICHT DIE UNION: gemessen 2026-08-22 schreiben die realen Erzeuger
ueber `any`/`string`-typisierte Objektliterale (`tooling/cli` dispatcher.ts:365 schreibt bis
heute 'Code-Agent'; `platform/middleware-worker` handleBitBucket.ts:66) — eine geschlossene
TypeScript-Union faengt davon NICHTS, dieser Haken alles. Er ist damit der tragende Riegel
des Auftrags, nicht der Vertrag.

NICHT in der Karte: 'CodeAgent-Todo'. Am Bestand gemessen ein EINZELPUNKT INNERHALB einer
Sitzung (origin `code-agent-hook:<id>`), nicht die Sitzungs-Aufgabe (origin
`code-agent-hook`) — der lebende Erzeuger sucht ihn idempotent ueber genau diesen Wert.

ZWEI GEMESSENE LUECKEN NACHGETRAGEN (dieselbe Schreibstelle, middleware-worker, ausgerollt):
`Erledigt` -> done und `Hoch` -> high waren der Karte UNBEKANNT und liefen damit unbehelligt
in den Bestand. Wirkt zugleich fuer Projects/FeatureRequests, die dieselbe Karte teilen.
Der Erzeuger liegt ausserhalb der Anspruchspfade — die Karte ist der Hebel ohne Fremd-Edit.

`waiting` (worker-outlook) bleibt BEWUSST unzugeordnet: es gibt kein offensichtliches
Kanon-Ziel, und raten waere schlimmer als offenlassen. Liegt als Rest-Schnitt-Brief.

19 neue Proben, davon vier gegen das ECHTE Tasks-Schema (die Attrappen-Tests belegen die
Mechanik, nicht die Verdrahtung). Flip-Probe: Haken-Zeile entfernt -> genau der eine
Verdrahtungs-Test faellt, alles andere bleibt gruen. Volle Reihe 707/707.

interfaces-Caret auf ^2026.451.0 (Fundament-interne Kette bleibt Caret).

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

die vier Zuteilungs-Rechte ausdruecklich registrieren

Ohne additionalRights sieht registerModuleRights sie nie -> sie stehen in
keiner Rolle und keinem Paket -> checkRights weist JEDEN Aufruf der vier
Lease-Wege mit 403 ab. Die Wege waeren tot geboren gewesen.

Die Praemisse des Auftrags ist widerlegt und nachgemessen:
CodingJobs.entityActions fuehrt claim/heartbeat/complete/cancel/approve/
reject — das dort zitierte 'hat keine Registry-Zeile' trifft nicht zu.
Die zweite genannte Praezedenz (dispatchCodeAgent) traegt nicht, weil sie
gar kein neues Recht erfindet.

additionalRights ist genau dafuer da und braucht keinen Fundament-Griff.
Drei Proben pinnen es fest, inkl. Textprobe auf app.ts.
New tasks

Zuteilung im Pull-Modell — claim/lease-heartbeat/lease-complete/lease-cancel

Portiert aus domains/coding/api/.../codingjobs (CEO-Entscheid 2026-08-21,
coding-pm-abschluss-zuteilung-und-spiegel: die Lease wandert an ITask,
CodingJobs wird eingestellt). Vier Wege plus drei Bibliotheken.

Die Abhol-Bereitschaft ist entschieden: ein unabhaengiges Merkmal aus
BESTEHENDEN Feldern (runtimePolicy als Designation + offener PmStatus +
keine lebende Lease), kein neuer Status-Wert und kein Workflow-Uebergang.
Ohne die Designation waeren 3.547 offene Aufgaben holbar (Prod gemessen).

Drei Stellen, an denen eine 1:1-Portierung STILL falsch gewesen waere:
- priority ist ein WORT, keine Zahl: sort{priority:-1} liefert normal vor
critical. Ersetzt durch Stufen-Durchgaenge; Flip-Probe belegt die Umkehr.
- ITask fuehrt weder availableAt noch attemptCount noch result: strict
haette diese Schreibvorgaenge verworfen. Ersetzt bzw. entfallen.
- complete existiert bereits im PM-Sinn -> lease-complete.

18 Proben gegen echten mongod, davon 20-fache Nebenlaeufigkeit.