Smilende bomuldsfigur fra det oprindelige Cotton-logo, med baggrund og bogstaver fjernet
Tilbage til salen

Cotton

Translation workflow

Genererede oversættelser gøres til resultater, der kan gennemgås.

En oversættelsesarbejdsgang til spildialog.

2026.05.06 — 2026.05.26

Arbejdsprojekt · oversættelsesbehandling, vurdering og gennemgangssti

  • WebappImplementeret · udvikling

En race condition fundet ved gennemgang, hængende job sendt tilbage efter årsag

Én case, hvor retningslinjer og commit nævner Claude til implementering og Codex til gennemgang, og én, der gjorde hængende job mulige at diagnosticere.

Fuld signaturforklaring

Sådan læser du · én grammatik for alle cases

  • Kolonner viser, hvem der handlede; oppefra og ned er tid
  • Fuldt optrukket: en registreret overdragelse eller et næste trin
  • Kraftig lapis ↩: et fund, der sendte arbejdet tilbage
  • Stiplet: ikke en registreret udførelse (en nedskrevet regel, råd uden beføjelse, en ubekræftet grænse)
  • Rektangel: en handling
  • Afrundet: en observeret tilstand eller et fund
  • Foldet hjørne: et artefakt eller belæg
  • Skraveret kolonne: dele af produktet under udvikling (ikke de agenter, der blev brugt til at bygge det)

Case 1 / 2 · En ændring, der standser, når kvoten er opbrugt, blev rettet i samme PR, inklusive den race condition, gennemgangen fandt

May 19, 2026

En ændring, der standser, når kvoten er opbrugt, blev rettet i samme PR, inklusive den race condition, gennemgangen fandt

  1. PersonPerson

    HandlingStop forbrug, når kvoten er opbrugt · ingen automatisk fallback

    • overdragelseImplementeringsbegrænsning→ Implementér checkpoint · halt · manuel genoptagelse (Claude)
  2. KodeagentClaude

    HandlingImplementér checkpoint · halt · manuel genoptagelse

    • overdragelseGennemgang i samme PR→ Fund: race condition · dobbelte tilstandsovergange (Codex)
  3. Gennemgang · verifikationCodex

    Observation · fundFund: race condition · dobbelte tilstandsovergange

  4. ArtefakterSamme PR

    ArtefaktI samme PR: rækkelås · unik scorenøgle · atomisk overgang

    • overdragelse→ Lokal fixture · logs over DB-integrationskontroller (Samme PR)
  5. ArtefakterSamme PR

    ArtefaktLokal fixture · logs over DB-integrationskontroller

    • ikke en registreret udførelseKontrolleret omfang→ Ingen nye resultater fra CI eller produktionsudrulning indsamlet (Samme PR)
  6. ArtefakterSamme PR

    Regel · ubekræftetIngen nye resultater fra CI eller produktionsudrulning indsamlet

Kontekst
Betingelsen, en person satte, var at stoppe forbruget, når kvoten slipper op, uden automatisk fallback. Claude implementerede checkpoint, halt og manuel genoptagelse, og en Codex-gennemgang kørt via projektets MCP fandt en race condition og dobbelte tilstandsovergange.
Resultat
Overgange ved indgang og genoptagelse kører inden for en lås, bedømmerscorer har en unik nøgle mod dubletter, og transaktionsgrænsen blev fastlagt. Det betyder ikke, at alle race conditions blev fjernet.
Begrænsning
Commit'en angiver 140 kontroller og den senere integrations-CHANGELOG 160, så de slås ikke sammen til ét kørselstal. Ifølge retningslinjerne er Codex-gennemgang et valgfrit lokalt trin, så det betyder ikke, at alle tidligere PR'er gik igennem den.
Kilder og resterende begrænsninger
  • Retningslinjerne fastlægger rækkefølgen: Claude implementerer, Codex gennemgår lokalt via projektets MCP, gennemgangen vedhæftes PR'en, og uenigheder undersøges sammen med Claudes gennemgangsagent. Automatisk Codex-gennemgang i CI var udskudt.
  • Udviklingskontroller bruger fixtures og mocks, og reelle modelkald kræver deres eget omfang. Fund fra gennemgangen foldes ind i samme PR og squash-merges feature → main.

May 26, 2026

Hængende job blev gjort mulige at diagnosticere og sendt tilbage efter årsag

  1. Under udviklingOversættelses-worker · kø

    Observation · fundJob efterladt i draft · forsøg opbrugt

    • overdragelseObserverede værdier→ Sammenhold failedReason · exitkoder · draft-tilstand (Udvikler)
  2. PersonUdvikler

    HandlingSammenhold failedReason · exitkoder · draft-tilstand

    • overdragelse→ Årsag: nedarvede NODE_OPTIONS kolliderer i underprocesser (Udvikler)
  3. PersonUdvikler

    Observation · fundÅrsag: nedarvede NODE_OPTIONS kolliderer i underprocesser

  4. ArbejdssessionKodeændringer

    HandlingFjern NODE_OPTIONS · loft over samtidighed pr. proces

    • overdragelse→ Køtilstand: waiting · active · failed · stale (Kodeændringer)
  5. ArbejdssessionKodeændringer

    HandlingKøtilstand: waiting · active · failed · stale

    • overdragelse→ Oprydning af hængende job: mangler i køen vs. forsøg opbrugt, forgrenet efter om der findes et resultat (Kodeændringer)
  6. ArbejdssessionKodeændringer

    HandlingOprydning af hængende job: mangler i køen vs. forsøg opbrugt, forgrenet efter om der findes et resultat

    • overdragelseÉn cyklus→ Oprydning i udvikling: 200 kandidater → 106 flyttet · 2 sat i kø igen · 0 fejl (Artefakter)
  7. ArtefakterArtefakter

    ArtefaktOprydning i udvikling: 200 kandidater → 106 flyttet · 2 sat i kø igen · 0 fejl

    • ikke en registreret udførelseFortolkningens grænse→ De 106 er ikke vellykkede oversættelser (Artefakter)
  8. ArtefakterArtefakter

    Regel · ubekræftetDe 106 er ikke vellykkede oversættelser

Kontekst
En sammenholdning af BullMQ's failedReason, underprocessers exitkoder og job efterladt i draft viste, at nedarvede NODE_OPTIONS kolliderede i underprocesser. Derefter blev samme situation gjort synlig som køtilstand.
Resultat
Hængende job deles i dem, der mangler i køen, og dem, der har opbrugt deres forsøg; de sidste flyttes med en begrundelse til needs_review eller needs_credential, afhængigt af om der findes et resultat. Menneskelig gennemgang bevares.
Begrænsning
Loftet over samtidighed gælder pr. proces. Originale kørselslogs var ikke tilgængelige i det gennemgåede materiale; latenstal er udeladt, fordi de anmodede modeller og effort ikke blev registreret. Build- og release-kode alene er ikke belæg for offentlig udrulning.
Kilder og resterende begrænsninger
  • CHANGELOG indeholder et forslag om parallelle adapter-branches, men det gøres ikke til en optegnelse af faktisk parallel udførelse.
  • Resten af de 200 er ikke opdelt i dette materiale.