Lächelnde Baumwollfigur aus dem ursprünglichen Cotton-Logo, ohne Hintergrund und Schriftzug
Zurück zum Saal

Cotton

Translation workflow

Aus generierten Übersetzungen prüfbare Ergebnisse machen.

Ein Übersetzungs-Workflow für Spieldialoge.

2026.05.06 — 2026.05.26

Arbeitsprojekt · Übersetzungsverarbeitung, Beurteilung und Review-Pfad

  • Web-AppImplementiert · Entwicklung

Eine vom Review gefundene Race Condition, hängende Jobs nach Ursache zurückgeführt

Ein Fall, in dessen Vorgabe und Commit Claude für die Implementierung und Codex für das Review genannt sind, und einer, der hängende Jobs diagnostizierbar machte.

Vollständige Legende

Lesehilfe · eine Grammatik für jeden Fall

  • Spalten zeigen, wer handelte; von oben nach unten verläuft die Zeit
  • Durchgezogen: eine aufgezeichnete Übergabe oder ein nächster Schritt
  • Dicke Lapislinie ↩: ein Befund, der die Arbeit zurückschickte
  • Gestrichelt: keine aufgezeichnete Ausführung (eine schriftliche Vorgabe, ein Rat ohne Befugnis, eine ungeprüfte Grenze)
  • Rechteck: eine Handlung
  • Abgerundet: ein beobachteter Zustand oder Befund
  • Eselsohr: ein Artefakt oder Beleg
  • Schraffierte Spalte: Teile des Produkts in Entwicklung (nicht die Agenten, mit denen es gebaut wird)

Fall 1 / 2 · Eine Änderung, die bei erschöpfter Quota anhält, wurde im selben PR korrigiert, einschließlich der vom Review gefundenen Race Condition

May 19, 2026

Eine Änderung, die bei erschöpfter Quota anhält, wurde im selben PR korrigiert, einschließlich der vom Review gefundenen Race Condition

  1. MenschMensch

    HandlungAusgaben bei erschöpfter Quota stoppen · kein automatischer Fallback

    • ÜbergabeImplementierungsbedingung→ Checkpoint · Halt · manuelle Wiederaufnahme implementieren (Claude)
  2. Coding-AgentClaude

    HandlungCheckpoint · Halt · manuelle Wiederaufnahme implementieren

    • ÜbergabeReview im selben PR→ Befund: Race Condition · doppelte Zustandsübergänge (Codex)
  3. Review · VerifikationCodex

    Beobachtung · BefundBefund: Race Condition · doppelte Zustandsübergänge

  4. ArtefakteDerselbe PR

    ArtefaktIm selben PR: Row Lock · eindeutiger Score-Schlüssel · atomarer Übergang

    • Übergabe→ Lokale Fixture · Aufzeichnungen der DB-Integrationsprüfung (Derselbe PR)
  5. ArtefakteDerselbe PR

    ArtefaktLokale Fixture · Aufzeichnungen der DB-Integrationsprüfung

    • keine aufgezeichnete AusführungGeprüfter Umfang→ Keine neuen CI- oder Produktions-Deployment-Ergebnisse erhoben (Derselbe PR)
  6. ArtefakteDerselbe PR

    Vorgabe · ungeprüftKeine neuen CI- oder Produktions-Deployment-Ergebnisse erhoben

Hintergrund
Die von einem Menschen gesetzte Bedingung lautete, die Ausgaben zu stoppen, wenn die Quota aufgebraucht ist, ohne automatischen Fallback. Claude implementierte Checkpoint, Halt und manuelle Wiederaufnahme, und ein über das Projekt-MCP ausgeführtes Codex-Review fand eine Race Condition und Duplikate in den Zustandsübergängen.
Ergebnis
Eintritts- und Wiederaufnahmeübergänge laufen innerhalb einer Sperre, Bewertungsscores tragen einen eindeutigen Schlüssel gegen Duplikate, und die Transaktionsgrenze wurde festgelegt. Das heißt nicht, dass jede Race Condition beseitigt wurde.
Grenze
Der Commit nennt 140 Prüfungen und das spätere Integrations-CHANGELOG 160, daher werden sie nicht zu einer Laufzahl zusammengeführt. Laut Vorgabe ist das Codex-Review ein optionaler lokaler Schritt, daher heißt das nicht, dass jeder frühere PR es durchlief.
Quellen und verbleibende Grenzen
  • Die Vorgabe hält die Reihenfolge fest: Claude implementiert, Codex reviewt lokal über das Projekt-MCP, das Review wird an den PR angehängt, und Abweichungen werden gemeinsam mit dem Review-Agenten von Claude untersucht. Ein automatisches Codex-Review in der CI war zurückgestellt.
  • Entwicklungsprüfungen verwenden Fixtures und Mocks, und echte Modellaufrufe brauchen einen eigenen Umfang. Review-Befunde werden in denselben PR eingearbeitet und per Squash-Merge feature → main zusammengeführt.

May 26, 2026

Hängende Jobs diagnostizierbar gemacht und nach Ursache zurückgeführt

  1. In EntwicklungÜbersetzungs-Worker · Queue

    Beobachtung · BefundIn draft verbliebene Jobs · Versuche erschöpft

    • ÜbergabeBeobachtete Werte→ failedReason · Exit-Codes · draft-Zustand abgleichen (Entwickler)
  2. MenschEntwickler

    HandlungfailedReason · Exit-Codes · draft-Zustand abgleichen

    • Übergabe→ Ursache: geerbte NODE_OPTIONS kollidieren in Subprozessen (Entwickler)
  3. MenschEntwickler

    Beobachtung · BefundUrsache: geerbte NODE_OPTIONS kollidieren in Subprozessen

  4. ArbeitssessionCodeänderungen

    HandlungNODE_OPTIONS entfernen · Nebenläufigkeitslimit pro Prozess

    • Übergabe→ Queue-Zustand: waiting · active · failed · stale (Codeänderungen)
  5. ArbeitssessionCodeänderungen

    HandlungQueue-Zustand: waiting · active · failed · stale

    • Übergabe→ Stale-Sweep: fehlt in der Queue vs. Versuche verbraucht, verzweigt danach, ob ein Ergebnis existiert (Codeänderungen)
  6. ArbeitssessionCodeänderungen

    HandlungStale-Sweep: fehlt in der Queue vs. Versuche verbraucht, verzweigt danach, ob ein Ergebnis existiert

    • ÜbergabeEin Zyklus→ Dev-Sweep: 200 Kandidaten → 106 verschoben · 2 erneut eingereiht · 0 Fehler (Artefakte)
  7. ArtefakteArtefakte

    ArtefaktDev-Sweep: 200 Kandidaten → 106 verschoben · 2 erneut eingereiht · 0 Fehler

    • keine aufgezeichnete AusführungGrenze der Deutung→ Die 106 sind keine erfolgreichen Übersetzungen (Artefakte)
  8. ArtefakteArtefakte

    Vorgabe · ungeprüftDie 106 sind keine erfolgreichen Übersetzungen

Hintergrund
Der Abgleich von failedReason in BullMQ, Exit-Codes von Subprozessen und in draft verbliebenen Jobs ergab, dass geerbte NODE_OPTIONS in Subprozessen kollidierten. Danach wurde dieselbe Situation als Queue-Zustand sichtbar gemacht.
Ergebnis
Hängende Jobs werden in solche geteilt, die in der Queue fehlen, und solche, die ihre Versuche aufgebraucht haben; Letztere gehen mit Begründung zu needs_review oder needs_credential, je nachdem, ob ein Ergebnis existiert. Das menschliche Review bleibt bestehen.
Grenze
Das Nebenläufigkeitslimit gilt pro Prozess. Originale Laufprotokolle lagen im geprüften Material nicht vor; Latenzwerte entfallen, weil die angefragten Modelle und der Effort nicht aufgezeichnet wurden. Build- und Release-Code allein ist kein Beleg für ein öffentliches Deployment.
Quellen und verbleibende Grenzen
  • Das CHANGELOG hält einen Vorschlag für parallele Adapter-Branches fest, doch er wird nicht in eine Aufzeichnung tatsächlicher paralleler Ausführung umgedeutet.
  • Der Rest der 200 wird in dieser Aufzeichnung nicht aufgeschlüsselt.