Personajul zâmbitor de bumbac din logoul original Cotton, fără fundal și text
Înapoi în sală

Cotton

Translation workflow

Din traduceri generate, rezultate care pot fi revizuite.

Un flux de lucru pentru traducerea dialogurilor din jocuri.

2026.05.06 — 2026.05.26

Proiect de lucru · procesarea traducerilor, judecată și calea de revizuire

  • Aplicație webImplementat · dezvoltare

O condiție de concurență găsită de revizuire, joburi blocate returnate după cauză

Un caz în care politica și commitul îl numesc pe Claude pentru implementare și Codex pentru revizuire și unul care a făcut joburile blocate diagnosticabile.

Legenda completă

Cum se citește · aceeași gramatică pentru fiecare caz

  • Coloanele arată cine a acționat; de sus în jos curge timpul
  • Linie continuă: o predare sau un pas următor înregistrat
  • Linie groasă lapis ↩: o constatare care a trimis lucrul înapoi
  • Linie întreruptă: nu este o execuție înregistrată (o regulă scrisă, un sfat fără autoritate, o graniță neverificată)
  • Dreptunghi: o acțiune
  • Rotunjit: o stare observată sau o constatare
  • Colț îndoit: un artefact sau o dovadă
  • Coloană hașurată: părți ale produsului aflat în dezvoltare (nu agenții folosiți pentru a-l construi)

Caz 1 / 2 · O schimbare care oprește lucrul la epuizarea cotei a fost corectată în același PR, inclusiv condiția de concurență găsită de revizuire

May 19, 2026

O schimbare care oprește lucrul la epuizarea cotei a fost corectată în același PR, inclusiv condiția de concurență găsită de revizuire

  1. PersoanăPersoană

    AcțiuneOprirea cheltuielilor la epuizarea cotei · fără fallback automat

    • predareConstrângere de implementare→ Implementarea punctului de control · opririi · reluării manuale (Claude)
  2. Agent de programareClaude

    AcțiuneImplementarea punctului de control · opririi · reluării manuale

    • predareRevizuire în același PR→ Constatare: condiție de concurență · tranziții de stare duplicate (Codex)
  3. Revizuire · verificareCodex

    Observație · constatareConstatare: condiție de concurență · tranziții de stare duplicate

  4. ArtefacteAcelași PR

    ArtefactÎn același PR: blocare pe rând · cheie unică de scor · tranziție atomică

    • predare→ Fixture local · înregistrări ale verificării de integrare cu baza de date (Același PR)
  5. ArtefacteAcelași PR

    ArtefactFixture local · înregistrări ale verificării de integrare cu baza de date

    • nu este o execuție înregistratăDomeniu verificat→ Nu au fost colectate rezultate noi CI sau de implementare în producție (Același PR)
  6. ArtefacteAcelași PR

    Regulă · neverificatăNu au fost colectate rezultate noi CI sau de implementare în producție

Context
Condiția stabilită de o persoană a fost oprirea cheltuielilor când cota se epuizează, fără fallback automat. Claude a implementat punctul de control, oprirea și reluarea manuală, iar o revizuire Codex rulată prin MCP-ul proiectului a găsit o condiție de concurență și duplicare în tranzițiile de stare.
Rezultat
Tranzițiile de intrare și de reluare rulează sub blocare, scorurile judecătorului au o cheie unică împotriva duplicatelor, iar granița tranzacției a fost stabilită. Nu înseamnă că toate condițiile de concurență au fost eliminate.
Limită
Commitul menționează 140 de verificări, iar CHANGELOG-ul de integrare ulterior 160, așa că nu sunt reunite într-un singur număr de rulare. Conform politicii, revizuirea Codex este un pas local opțional, deci nu înseamnă că fiecare PR anterior a trecut prin ea.
Surse și limite rămase
  • Politica înregistrează ordinea: Claude implementează, Codex revizuiește local prin MCP-ul proiectului, revizuirea este atașată la PR, iar dezacordurile sunt investigate împreună cu agentul de revizuire al lui Claude. Revizuirea Codex automată în CI fusese amânată.
  • Verificările de dezvoltare folosesc fixture-uri și mock-uri, iar apelurile reale de model au nevoie de propriul domeniu. Constatările revizuirii sunt incluse în același PR și integrate prin squash merge feature → main.

May 26, 2026

Joburile blocate au fost făcute diagnosticabile și returnate după cauză

  1. Obiectul dezvoltăriiWorker de traducere · coadă

    Observație · constatareJoburi rămase în draft · încercări epuizate

    • predareValori observate→ Corelarea failedReason · coduri de ieșire · starea draft (Dezvoltator)
  2. PersoanăDezvoltator

    AcțiuneCorelarea failedReason · coduri de ieșire · starea draft

    • predare→ Cauza: NODE_OPTIONS moștenit intră în conflict în subprocese (Dezvoltator)
  3. PersoanăDezvoltator

    Observație · constatareCauza: NODE_OPTIONS moștenit intră în conflict în subprocese

  4. Sesiune de lucruSchimbări de cod

    AcțiuneEliminarea NODE_OPTIONS · limită de concurență per proces

    • predare→ Starea cozii: waiting · active · failed · stale (Schimbări de cod)
  5. Sesiune de lucruSchimbări de cod

    AcțiuneStarea cozii: waiting · active · failed · stale

    • predare→ Terificare stale: lipsă din coadă vs încercări consumate, ramificare după existența unui rezultat (Schimbări de cod)
  6. Sesiune de lucruSchimbări de cod

    AcțiuneTerificare stale: lipsă din coadă vs încercări consumate, ramificare după existența unui rezultat

    • predareUn singur ciclu→ Trecere în dev: 200 de candidați → 106 mutați · 2 repuși în coadă · 0 erori (Artefacte)
  7. ArtefacteArtefacte

    ArtefactTrecere în dev: 200 de candidați → 106 mutați · 2 repuși în coadă · 0 erori

    • nu este o execuție înregistratăLimita interpretării→ Cele 106 nu sunt traduceri reușite (Artefacte)
  8. ArtefacteArtefacte

    Regulă · neverificatăCele 106 nu sunt traduceri reușite

Context
Corelarea failedReason din BullMQ, a codurilor de ieșire ale subproceselor și a joburilor rămase în draft a arătat că NODE_OPTIONS moștenit intra în conflict în subprocese. După aceea, aceeași situație a fost făcută vizibilă ca stare a cozii.
Rezultat
Joburile blocate sunt împărțite în cele care lipsesc din coadă și cele care și-au consumat încercările; acestea din urmă trec, cu un motiv, în needs_review sau needs_credential, după cum există sau nu un rezultat. Revizuirea umană rămâne în vigoare.
Limită
Limita de concurență este per proces. Jurnalele originale ale rulărilor nu au fost disponibile în materialul revizuit; cifrele de latență sunt omise, deoarece modelele cerute și effort-ul nu au fost înregistrate. Codul de build și de release nu este singur o dovadă a implementării publice.
Surse și limite rămase
  • CHANGELOG-ul consemnează o propunere de ramuri de adaptor paralele, dar ea nu este transformată într-o înregistrare a unei execuții paralele reale.
  • Restul celor 200 nu este detaliat în această înregistrare.