La vieille adresse ne disait pas que la maison vivait encoreSWE-agentThe old address did not say the house was still aliveSWE-agent
La maison a changé de rue. L’ancienne porte renvoie à la nouvelle et le service continue. Dedans, deux ennuis : des commis écrivent sur la même ardoise, et l’addition ne correspond plus à ce qui a été cuisiné.SWE-agent a changé d’identité de repository : l’ancien chemin d’organisation redirige et le repository canonique actif se résout sous une nouvelle organisation. Quatre dossiers s’y rattachent : ce transfert lu à tort comme une disparition, un contrôle dont l’état par exécution était partagé entre exécutions parallèles, et une famille de défauts de contrôle des coûts où limites nominales et dépense réelle divergent.The house moved streets. Its old door points to the new one and service continues. Inside are two troubles: cooks write on the same board, and the bill no longer matches what was cooked.SWE-agent changed repository identity: the former organization path redirects and the active canonical repository resolves under a new organization. Four dossiers attach here: that transfer misread as disappearance, a control whose per-run state was shared across parallel runs, and a family of cost-control defects where nominal limits and actual spend diverge.
Le service bat son pleinActifService is in full swingActiveLa maison déménage, puis paie deux fois la commandeChronologieThe house moves, then pays for the order twiceTimeline
Au départ, la maison n’a qu’une adresse, et tous ceux qui la suivent la connaissent. Le constat reste au passe.Le projet est publié sous le chemin de repository de l’organisation Princeton-NLP.At the start, the house has one address, and everyone following it knows where to find it. The finding remains at the pass.The project is published under the Princeton-NLP organization repository path.
Puis elle change de rue. Un mot reste sur l’ancienne porte pour guider vers la nouvelle.Un transfert et un renommage d’organisation interviennent ; l’ancien chemin commence à rediriger.Then it changes streets. A note remains on the old door to guide people to the new one.An organization transfer and rename occur; the former path starts redirecting.
La nouvelle adresse est désormais la bonne, et le service y continue chaque jour. Le constat reste au passe.Le repository canonique actif se résout désormais sous l’organisation SWE-agent, et le développement actif y continue.The new address is now the right one, and service continues there every day. The finding remains at the pass.The active canonical repository now resolves under the SWE-agent organization, and active development continues there.
Le service entre dans le coup de feu : plusieurs commandes arrivent ensemble. Deux commis écrivent sur la même ardoise, effacent les notes de l’autre et un plat se retrouve à la mauvaise table.Un contrôle conservait, pour chaque exécution, conditions d’environnement et données de problème dans des champs ordinaires d’une instance unique. Le mode par lots a fait partager cette instance par des exécutions concurrentes, qui pouvaient s’écraser mutuellement et enregistrer une sortie sous le mauvais dossier de problème.Service enters the rush and several orders arrive at once. Two cooks write on the same board, rub out each other’s notes, and a plate ends up at the wrong table.A control kept each run’s environment conditions and problem data in ordinary fields of a single instance. Batch mode made concurrent runs share that instance, so they could overwrite one another and record an output under the wrong problem folder.
Chaque commis reçoit son propre carnet. Puis deux commandes sont rejouées exprès en même temps pour s’assurer que cela tient.Le correctif a déplacé l’état par exécution vers un stockage propre au thread, avec un test de régression déterministe à deux exécutions.Each cook receives a pad of their own. Then two orders are deliberately run together to make sure it holds.The fix moved per-run state into thread-local storage, with a deterministic two-run regression test.
Une commande compte six couverts. Un seul plat rate à la fin, mais les six repartent et les six sont payés une deuxième fois au fournisseur.Reproduit sur main : la politique de retry enveloppe un lot de n échantillons au lieu de l’échantillon en échec, donc une défaillance de queue transitoire refacture des appels fournisseur déjà réussis.An order has six covers. One plate fails at the end, but all six go again and the supplier is paid a second time for all six.Reproduced on main: retry policy wraps an n-sample batch rather than the failed sample, so a transient tail failure rebills provider calls that already succeeded.
Le patron avait dit : au-delà de cette somme, le service s’arrête net. Mais quelqu’un au milieu entend l’ordre, le traite comme un ennui ordinaire et laisse le service continuer.Reproduit également : une couche auxiliaire de sélection intercepte l’exception de limite de coût que la couche d’orchestration définit comme fatale, et la convertit en repli générique. Une borne dure de budget devient ainsi une poursuite d’exécution.The owner had said: beyond this figure, service stops dead. But someone in the middle hears the order, treats it as an ordinary trouble, and lets service continue.Also reproduced: a helper selection layer catches the cost-limit exception that the orchestration layer defines as fatal and converts it into a generic fallback. A hard budget boundary thereby becomes continuation behavior.
Un poste avait été laissé hors de l’enveloppe, volontairement. Il disparaît alors aussi de la note. Ce qu’il coûte est bien réel, mais n’est lu nulle part.Reproduit enfin, sur les chemins internes réels de comptabilité de coût avec réseau simulé : le coût du sélecteur, délibérément exclu d’un budget, est aussi omis des statistiques de trajectoire rapportées, ce qui rend la dépense réelle invisible.One station had deliberately been left outside the envelope. It then disappears from the bill as well. Its cost is real, yet nobody reads it anywhere.Reproduced last, over the real internal cost-accounting paths with mocked network: the chooser’s cost, deliberately excluded from one budget, is also omitted from reported trajectory statistics, which makes actual spend invisible.
Les réparations sont notées sur un coin de table. À ce jour, aucune n’est passée aux fourneaux.Au cutoff observé, les correctifs de coût identifiés restent des propositions ouvertes et non fusionnées ; aucun correctif n’est revendiqué.The repairs are noted on a scrap of paper. So far, not one has reached the stoves.At the observed cutoff the identified cost repairs remain open, unmerged proposals; no fix is claimed.
Le comptoir ne voit pas tout ce qui travailleMécanismeThe till cannot see all the workMechanism
Chaque fois, le même défaut revient : celui qui compte ne voit pas tout le travail. On fixe une somme sans savoir combien de fois un plat repart. On donne une ardoise commune à des commis qui travaillaient encore chacun leur tour. Et l’on suit une maison par le nom sur sa porte, au lieu de suivre la maison elle-même.Les trois familles partagent une forme : un contrôle est placé à une couche qui ne possède pas le graphe qu’il prétend borner. L’enforcement du budget vivait à une couche sans vue complète des retries et des choix de modèle, faisant diverger opération logique et opérations facturables. Le contrôle d’exécution supposait une durée de vie égale à une exécution unique, et le passage au parallèle a changé le modèle de propriété sans que le modèle de stockage suive. Le monitoring, lui, était lié à un chemin de repository mutable et confondait migration d’identité et absence.Each time, the same flaw returns: whoever counts cannot see all the work. A sum is set without knowing how often a plate goes back. One board is handed to cooks who still worked one at a time. And a house is followed by the name on its door instead of by the house itself.The three families share one shape: a control sits at a layer that does not own the graph it claims to bound. Budget enforcement lived at a layer with no complete view of retries and model choices, so logical operation and billable operations drifted apart. The execution control assumed a lifetime equal to a single run, and going parallel changed the ownership model while the storage model stayed put. Monitoring, in turn, was bound to a mutable repository path and read identity migration as absence.
L’ordre d’arrêter doit tenir jusqu’au dernier posteRéponseThe order to stop must hold to the last stationResponse
Si un plat rate, on refait ce plat, pas la table entière déjà servie et payée. L’ordre du patron d’arrêter doit rester intact jusqu’au dernier poste. Un poste tenu hors de l’enveloppe reste tout de même sur la note. Et chaque commis garde son carnet, même au coup de feu.Ne réessayer que la plus petite opération en échec, et n’enrober jamais un lot d’appels déjà réussis et déjà facturés dans la même borne de retry sans idempotence ni rollback. Les exceptions qui portent une limite dure de politique — coût, permission, sûreté — doivent conserver leur type sémantique à travers chaque couche auxiliaire et contourner les gestionnaires de repli génériques. Une exclusion de budget délibérée n’autorise jamais une exclusion de reporting : la comptabilité suit tout l’arbre des descendants d’une tâche logique. L’état par exécution s’isole par thread, tâche ou identité d’exécution explicite, et l’identité stable du repository ainsi que ses aliases se résolvent avant tout calcul de santé projet.If one plate fails, remake that plate, not a whole table already served and paid for. The owner’s order to stop must stay intact to the last station. A station kept outside the envelope still belongs on the bill. And every cook keeps a pad of their own, rush or no rush.Retry only the smallest operation that failed, and never wrap a batch of already-billed successful calls inside the same retry boundary without idempotency or rollback. Exceptions carrying a hard policy limit — cost, permission, safety — must keep their semantic type through every helper layer and bypass generic fallback handlers. A deliberate budget exclusion never authorizes a reporting exclusion: accounting follows the full descendant tree of a logical task. Per-run state is isolated by thread, task or explicit run identity, and stable repository identity with its aliases is resolved before any project-health computation.
La nouvelle adresse sert, l’addition reste fausseÉtat actuelThe new address serves; the bill stays wrongCurrent state
La maison est ouverte à sa nouvelle adresse et le service s’y poursuit. Peu de nouvelles cartes ne veut pas dire que les fourneaux sont froids. Les carnets séparés sont bien en place. Pour l’addition, la panne a été rejouée devant témoin, tandis qu’aucune réparation n’est encore passée aux fourneaux.Actif après changement d’identité : le repository canonique continue sous la nouvelle organisation et l’ancien chemin redirige. Des releases espacées n’impliquent ici aucune mort, la cadence seule ne classant ni la santé ni la fin d’un projet. Le partage d’état par exécution dispose d’un correctif établi. Les trois défauts de coût disposent d’une reproduction, et leurs correctifs restent ouverts et non fusionnés au cutoff observé.The house is open at its new address and service continues there. Few new menus do not mean the stoves are cold. The separate pads are in place. On the bill, the fault was staged again before witnesses, while no repair has reached the stoves yet.Active after an identity change: the canonical repository continues under the new organization and the old path redirects. Sparse releases imply no death here, since cadence alone classifies neither project health nor project end. The per-run state sharing has an established fix. The three cost defects have reproductions, and their repairs stay open and unmerged as of the observed cutoff.
Une limite ne tient qu’en voyant toute la cuisineLeçonA limit holds only when it sees the whole kitchenLesson
Une maison qui change d’adresse ne ferme pas pour autant. Une somme à ne pas dépasser ne tient que si son gardien voit tout le travail facturé. Cette seconde règle a été vue échouer, mais jamais encore réparée.L’état d’un repository n’est pas la cause d’un projet : archive, read-only, maintenance et transfert se classent séparément, et une redirection signifie continuité, pas mort. Une limite n’est tenue que si la couche qui l’applique possède le graphe complet du travail qu’elle facture ; sinon les budgets suivent le nombre d’appels et non le travail logique. Ici, cette seconde règle repose sur des reproductions, pas sur des correctifs fusionnés.A house that changes address does not thereby close. A ceiling on spending holds only when its guard sees every bit of billed work. That second rule has been seen to fail, but has not yet been seen repaired.Repository state is not project cause: archive, read-only, maintenance and transfer classify separately, and a redirect means continuity rather than death. A limit only holds when the layer enforcing it owns the full graph of the work it bills; otherwise budgets track call counts instead of logical work. Here that second rule rests on reproductions, not on merged fixes.

