
Cotton
Translation workflow
Από παραγόμενες μεταφράσεις σε αποτελέσματα που ελέγχονται.
Ροή εργασιών μετάφρασης για διαλόγους παιχνιδιών.
Μια συνθήκη ανταγωνισμού που βρήκε η αναθεώρηση, στάσιμες εργασίες που επέστρεψαν ανά αιτία
Μια περίπτωση της οποίας η πολιτική και το commit ονομάζουν το Claude για την υλοποίηση και το Codex για την αναθεώρηση, και μία που έκανε τις στάσιμες εργασίες διαγνώσιμες.
May 19, 2026
Μια αλλαγή που σταματά όταν εξαντληθεί η ποσόστωση διορθώθηκε στο ίδιο PR, μαζί με τη συνθήκη ανταγωνισμού που βρήκε η αναθεώρηση
ΆνθρωποςΆνθρωπος
ΕνέργειαΔιακοπή δαπανών όταν εξαντληθεί η ποσόστωση · χωρίς αυτόματο fallback
- παράδοσηΠεριορισμός υλοποίησης→ Υλοποίηση checkpoint · διακοπής · χειροκίνητης συνέχισης (Claude)
Πράκτορας κώδικαClaude
ΕνέργειαΥλοποίηση checkpoint · διακοπής · χειροκίνητης συνέχισης
- παράδοσηΑναθεώρηση στο ίδιο PR→ Εύρημα: συνθήκη ανταγωνισμού · διπλές μεταβάσεις κατάστασης (Codex)
Αναθεώρηση · επαλήθευσηCodex
Παρατήρηση · εύρημαΕύρημα: συνθήκη ανταγωνισμού · διπλές μεταβάσεις κατάστασης
- επιστράφηκεΣυνθήκη ανταγωνισμού · ταυτοδυναμία→ Στο ίδιο PR: κλείδωμα γραμμής · μοναδικό κλειδί βαθμού · ατομική μετάβαση (Ίδιο PR)
ΤεχνουργήματαΊδιο PR
ΤεχνούργημαΣτο ίδιο PR: κλείδωμα γραμμής · μοναδικό κλειδί βαθμού · ατομική μετάβαση
- παράδοση→ Τοπικό fixture · καταγραφές ελέγχου ενοποίησης DB (Ίδιο PR)
ΤεχνουργήματαΊδιο PR
ΤεχνούργημαΤοπικό fixture · καταγραφές ελέγχου ενοποίησης DB
- όχι καταγεγραμμένη εκτέλεσηΕύρος που ελέγχθηκε→ Δεν συλλέχθηκαν νέα αποτελέσματα CI ή ανάπτυξης σε παραγωγή (Ίδιο PR)
ΤεχνουργήματαΊδιο PR
Κανόνας · ανεπαλήθευτοΔεν συλλέχθηκαν νέα αποτελέσματα CI ή ανάπτυξης σε παραγωγή
- Πλαίσιο
- Η συνθήκη που έθεσε ένας άνθρωπος ήταν να σταματούν οι δαπάνες όταν εξαντλείται η ποσόστωση, χωρίς αυτόματο fallback. Το Claude υλοποίησε checkpoint, διακοπή και χειροκίνητη συνέχιση, και μια αναθεώρηση Codex που εκτελέστηκε μέσω του MCP του έργου βρήκε συνθήκη ανταγωνισμού και διπλότυπα στις μεταβάσεις κατάστασης.
- Αποτέλεσμα
- Οι μεταβάσεις εισόδου και συνέχισης εκτελούνται μέσα σε κλείδωμα, οι βαθμοί του κριτή φέρουν μοναδικό κλειδί κατά των διπλοτύπων, και ορίστηκε το όριο της συναλλαγής. Αυτό δεν σημαίνει ότι εξαλείφθηκε κάθε συνθήκη ανταγωνισμού.
- Όριο
- Το commit αναφέρει 140 ελέγχους και το μεταγενέστερο CHANGELOG ενοποίησης 160, οπότε δεν συγχωνεύονται σε έναν αριθμό εκτελέσεων. Σύμφωνα με την πολιτική, η αναθεώρηση Codex είναι προαιρετικό τοπικό βήμα, οπότε αυτό δεν σημαίνει ότι κάθε παλαιότερο PR πέρασε από αυτήν.
Πηγές και όρια που απομένουν
- Η πολιτική καταγράφει τη σειρά: το Claude υλοποιεί, το Codex αναθεωρεί τοπικά μέσω του MCP του έργου, η αναθεώρηση επισυνάπτεται στο PR, και οι διαφωνίες διερευνώνται μαζί με τον πράκτορα αναθεώρησης του Claude. Η αυτόματη αναθεώρηση Codex στο CI είχε αναβληθεί.
- Οι έλεγχοι ανάπτυξης χρησιμοποιούν fixtures και mocks, και οι πραγματικές κλήσεις μοντέλων χρειάζονται δικό τους εύρος. Τα ευρήματα της αναθεώρησης ενσωματώνονται στο ίδιο PR και συγχωνεύονται με squash feature → main.
May 26, 2026
Οι στάσιμες εργασίες έγιναν διαγνώσιμες και επέστρεψαν ανά αιτία
Υπό ανάπτυξηWorker μετάφρασης · ουρά
Παρατήρηση · εύρημαΕργασίες που έμειναν σε draft · εξαντλημένες προσπάθειες
- παράδοσηΠαρατηρούμενες τιμές→ Αντιπαραβολή failedReason · κωδικών εξόδου · κατάστασης draft (Προγραμματιστής)
ΆνθρωποςΠρογραμματιστής
ΕνέργειαΑντιπαραβολή failedReason · κωδικών εξόδου · κατάστασης draft
- παράδοση→ Αιτία: οι κληρονομημένες NODE_OPTIONS συγκρούονται στις υποδιεργασίες (Προγραμματιστής)
ΆνθρωποςΠρογραμματιστής
Παρατήρηση · εύρημαΑιτία: οι κληρονομημένες NODE_OPTIONS συγκρούονται στις υποδιεργασίες
- επιστράφηκεΣύγκρουση κληρονομημένων επιλογών→ Αφαίρεση NODE_OPTIONS · όριο ταυτοχρονισμού ανά διεργασία (Αλλαγές κώδικα)
Συνεδρία εργασίαςΑλλαγές κώδικα
ΕνέργειαΑφαίρεση NODE_OPTIONS · όριο ταυτοχρονισμού ανά διεργασία
- παράδοση→ Κατάσταση ουράς: waiting · active · failed · stale (Αλλαγές κώδικα)
Συνεδρία εργασίαςΑλλαγές κώδικα
ΕνέργειαΚατάσταση ουράς: waiting · active · failed · stale
- παράδοση→ Σάρωση στάσιμων: απούσα από την ουρά έναντι εξαντλημένων προσπαθειών, με διακλάδωση ανάλογα με το αν υπάρχει αποτέλεσμα (Αλλαγές κώδικα)
Συνεδρία εργασίαςΑλλαγές κώδικα
ΕνέργειαΣάρωση στάσιμων: απούσα από την ουρά έναντι εξαντλημένων προσπαθειών, με διακλάδωση ανάλογα με το αν υπάρχει αποτέλεσμα
- παράδοσηΈνας κύκλος→ Σάρωση ανάπτυξης: 200 υποψήφιες → 106 μεταφέρθηκαν · 2 ξανά στην ουρά · 0 σφάλματα (Τεχνουργήματα)
ΤεχνουργήματαΤεχνουργήματα
ΤεχνούργημαΣάρωση ανάπτυξης: 200 υποψήφιες → 106 μεταφέρθηκαν · 2 ξανά στην ουρά · 0 σφάλματα
- όχι καταγεγραμμένη εκτέλεσηΌριο ερμηνείας→ Οι 106 δεν είναι επιτυχείς μεταφράσεις (Τεχνουργήματα)
ΤεχνουργήματαΤεχνουργήματα
Κανόνας · ανεπαλήθευτοΟι 106 δεν είναι επιτυχείς μεταφράσεις
- Πλαίσιο
- Η αντιπαραβολή του failedReason του BullMQ, των κωδικών εξόδου υποδιεργασιών και των εργασιών που έμειναν σε draft έδειξε ότι οι κληρονομημένες NODE_OPTIONS συγκρούονταν στις υποδιεργασίες. Έπειτα, η ίδια κατάσταση έγινε ορατή ως κατάσταση ουράς.
- Αποτέλεσμα
- Οι στάσιμες εργασίες χωρίζονται σε όσες λείπουν από την ουρά και όσες εξάντλησαν τις προσπάθειές τους. Οι δεύτερες μεταφέρονται, με αιτιολογία, σε needs_review ή needs_credential ανάλογα με το αν υπάρχει αποτέλεσμα. Ο ανθρώπινος έλεγχος παραμένει.
- Όριο
- Το όριο ταυτοχρονισμού ισχύει ανά διεργασία. Τα αρχικά αρχεία καταγραφής εκτελέσεων δεν ήταν διαθέσιμα στο υλικό που εξετάστηκε, και οι αριθμοί καθυστέρησης παραλείπονται επειδή τα μοντέλα και το effort που ζητήθηκαν δεν καταγράφηκαν. Ο κώδικας build και έκδοσης από μόνος του δεν τεκμηριώνει δημόσια ανάπτυξη.
Πηγές και όρια που απομένουν
- Το CHANGELOG καταγράφει πρόταση για παράλληλους κλάδους adapter, αλλά αυτή δεν μετατρέπεται σε καταγραφή πραγματικής παράλληλης εκτέλεσης.
- Οι υπόλοιπες από τις 200 δεν αναλύονται σε αυτή την καταγραφή.