MotifPattern

Au passe — Commande close au passe, cuisson toujours en coursChez LangGraph, l’expiration portait sur l’attente, pas sur le travailAt the pass — Written off at the pass, still cooking behindIn LangGraph, expiration applied to the wait, not to the work

Le minuteur sonne au passe et la commande est déclarée terminée. Au fond, le feu reste pourtant allumé et la première cuisson continue. La brigade relance le même plat : deux préparations avancent alors côte à côte.Chez LangGraph, un timeout à la frontière de l’appelant ne terminait pas nécessairement le travail sous-jacent. Une tentative de remplacement pouvait recouvrir l’exécution d’origine, avec des effets de bord et un coût dupliqués. L’expiration décrivait l’attente de l’appelant, jamais l’état du travail.The timer rings at the pass and the order is marked finished. In back, the flame remains lit and the first cooking continues. The brigade starts the same dish again, so two preparations move down the line together.In LangGraph a timeout at the caller boundary did not necessarily terminate the underlying work. A replacement attempt could then overlap the original execution, duplicating side effects and cost. Expiration described the caller’s wait and never the state of the work.

La cuisson et les reprisesExécution, arrêt et récupérationCooking and restartingExecution, cancellation and recovery

Au passe — Le minuteur sonne et deux plats avancentSignauxAt the pass — Nobody walked back to look at the flameSignals

Au service, La même commande sort deux fois à quelques minutes d’écart, et l’addition en compte deux. La relance est partie sur la seule sonnerie, sans que personne aille voir le feu. Or le silence du fond n’a jamais prouvé qu’une cuisson était finie.Trois signaux : des effets de bord dupliqués pour une seule demande logique, un coût facturé deux fois, et un retry émis sur la seule expiration de l’attente. Le silence du descendant est le plus trompeur des trois, puisqu’il n’établit aucun état terminal. L’absence d’état terminal observable est ce qui marque le motif.During service, The same order goes out twice within minutes, and the bill counts both. The restart left on the bell alone, with nobody walking back to look at the flame. Quiet from the back has never once proved a pot was finished.Three signals: duplicated side effects for a single logical request, a cost billed twice, and a retry issued on expiry of the wait alone. The descendant’s silence is the most misleading of them, since it establishes no terminal state. Absence of an observable terminal state is what marks the pattern.

Au passe — La sonnerie ne coupe aucun feuMécanismeAt the pass — The bell reaches the waiter, never the flameMechanism

Au service, Sonner, c’est décider d’arrêter d’attendre. Ce n’est pas décider d’arrêter de cuire. Le feu obéit à celui qui se tient devant, et celui-là n’était pas au passe. La sonnerie règle donc le sort de celui qui attend, jamais celui du plat.Poser une deadline donne le droit de cesser d’attendre, pas le moyen de terminer l’effet. La propriété de la terminaison reste chez le détenteur du processus ou du travail distant, et l’expiration ne la transfère pas. La transition observée — expiré — est lisible et complète côté appelant, ce qui la fait passer pour un état du travail.During service, Ringing settles one thing only: whoever was waiting stops waiting. It settles nothing about the heat. The flame answers to the person standing in front of it, and that person was never at the pass.Setting a deadline grants the right to stop waiting, not the means to end the effect. Ownership of termination stays with whoever holds the process or the remote job, and expiry does not transfer it. The observed transition — expired — is legible and complete on the caller’s side, which is why it reads as a state of the work.

Au passe — Éteindre le feu soi-même avant de relancerRéponseAt the pass — Put the flame out before you fire againResponse

Avant de relancer, la brigade coupe elle-même le feu ou écarte le plat pour qu’il ne puisse plus partir en salle. Elle inscrit ensuite la commande comme réellement close. Ce piège est décrit comme durable dans le cas observé, et aucune réparation n’y est établie.Une deadline doit terminer ou fencer le travail dont elle est propriétaire, puis exposer un état terminal observable. Le retry se décide sur cet état et non sur l’expiration d’une attente ; à défaut, le travail doit être rendu sûr au chevauchement. Le cas LangGraph est décrit comme un motif durable pour l’exécution d’outils et les tâches de fond ; aucun correctif n’y est établi.Before trying again, the brigade turns off the heat itself or sets the dish aside so it can never reach the dining room. Only then is the order marked truly closed. The observed case describes this as a lasting trap, with no established repair.A deadline must terminate or fence the work it owns, then publish an observable terminal state. Retries are decided on that state rather than on the expiry of a wait; failing that, the work itself has to be safe to overlap. The LangGraph case is described as a durable pattern for tool execution and background tasks, with no fix established.

Au passe — Une sonnerie mesure la patience, pas la cuissonLeçonAt the pass — The bell timed the wait, not the potLesson

Au service, Tant que la sonnerie n’éteint aucun feu, elle ne renseigne que sur l’humeur de celui qui attendait. La cuisson, elle, n’en sait rien.Un timeout qui n’arrête pas le travail est un timeout de l’observateur. Sans état terminal publié, une relance ne remplace rien : elle s’ajoute.During service, As long as the bell puts out no flame, it reports on the patience of whoever waited. The cooking knows nothing about it.A timeout that does not stop the work is the observer’s timeout. With no published terminal state, a restart replaces nothing — it adds.