Le dernier nom effaçait l’adresse de toutes les tablesUne connexion partagée que le dernier arrivé remplaceThe latest name overwrote every table’s addressA shared connection the latest arrival replaces
Une seule adresse de livraison restait au tableau et chaque nouvelle table pouvait y écrire la sienne. Une assiette destinée à l’un pouvait donc suivre le dernier nom inscrit. Aucune mauvaise livraison n’a été constatée, mais le mécanisme la rendait possible.Dans l’écosystème MCP, un état de connexion mutable et partagé permettait à une session ultérieure de remplacer la connexion globalement courante. Un événement destiné à un utilisateur pouvait alors suivre celui qui avait écrit en dernier : la livraison croisée entre sessions est une possibilité ouverte par ce mécanisme, pas un incident constaté. L’isolation multi-utilisateur est précisément la séparation que ce partage supprime — identités, connexions, autorisations et états concurrents.One delivery address stayed on the board, and each new table could write its own there. A plate meant for one guest could therefore follow the latest name written. No wrong delivery has been observed, but the arrangement made one possible.In the MCP ecosystem, mutable shared connection state let a later session replace the globally current connection. An event meant for one user could then follow whoever wrote last: cross-delivery between sessions is a possibility this mechanism opens, not a reported incident. Multi-user isolation is exactly the separation such sharing removes — identities, connections, authorizations and concurrent state.
Les plans de travailConcurrence et isolationThe worktopsConcurrency and isolationLa seule adresse du tableau n’appartenait à personneSignauxThe board’s only address belonged to nobodySignals
Le signe se voit avant toute réclamation : une seule ligne, modifiable, sans nom de table. Le dernier qui écrit gagne et l’assiette ne transporte pas son destinataire. La possibilité d’une erreur suffit à montrer que les tables ne sont pas vraiment séparées.Le signal est structurel avant d’être observable : un enregistrement de connexion unique, mutable, sans propriétaire attaché. Le dernier écrivain gagne, et rien dans l’événement lui-même ne dit à qui il revient. Dans l’écosystème MCP, aucun incident de livraison croisée n’est rapporté ; c’est la possibilité d’une telle livraison qui est établie, ce qui suffit à qualifier le défaut d’isolation.The sign appears before any complaint: one mutable line with no table name. Whoever writes last wins, and the plate carries no recipient. The possibility of an error is enough to show that tables are not truly separated.The signal is structural before it is observable: a single mutable connection record with no owner attached to it. Last writer wins, and nothing inside the event itself says whom it belongs to. In the MCP ecosystem no cross-delivery incident is reported; what is established is the possibility of one, which is enough to qualify the isolation defect.
Le tableau confondait l’adresse du moment et celle de l’assietteMécanismeThe board confused the current address with the plate’s addressMechanism
L’adresse courante du tableau n’est pas l’adresse d’une assiette donnée. Tant qu’il n’y a qu’une table, la dernière écriture est toujours la bonne. Quand plusieurs tables se croisent, la livraison suit l’ordre d’arrivée plutôt que son origine. Un service solitaire cache le défaut.Deux notions sont confondues : la destination courante et la destination d’un événement donné. Tant que la destination vit dans un emplacement global partagé, elle est une variable du processus et non une propriété du message ; sa valeur au moment de la livraison dépend de l’ordre d’arrivée des sessions, pas de l’origine de la demande. Le défaut reste invisible en usage mono-utilisateur, où le dernier écrivain est toujours le bon.The board’s current address is not the address of a given plate. With one table, the latest writing is always right. When several tables overlap, delivery depends on arrival order rather than origin, and a solitary service hides the fault.Two notions are conflated: the current destination and the destination of a given event. While that destination lives in one shared global slot, it is a process variable rather than a property of the message; its value at delivery time depends on the arrival order of sessions, not on where the request came from. The defect stays invisible under single-user use, where the last writer is always the right one.
Faire voyager le nom de la table avec chaque assietteRéponseLet each plate carry its table nameResponse
Écrivez le nom de la table sur l’assiette, pas dans une ligne commune. Chaque table garde sa propre adresse et ses propres droits, sans tableau que le suivant puisse effacer. Faites l’essai avec des services qui se chevauchent : une seule table masque exactement ce risque.Attacher le destinataire à l’événement lui-même plutôt qu’à un emplacement courant : la propriété voyage avec le message. Donner à chaque session sa propre connexion et son propre état d’autorisation, sans emplacement mutable partagé qu’un arrivant plus tardif puisse écraser. Éprouver le comportement en concurrence, puisqu’un usage séquentiel masque exactement la classe de défaut visée.Write the table’s name on the plate, not on one shared line. Each table keeps its own address and rights, with no board for the next arrival to erase. Try overlapping services: one table hides this exact risk.Bind the recipient to the event itself rather than to a current slot: ownership travels with the message. Give each session its own connection and its own authorization state, with no shared mutable slot a later arrival can overwrite. Exercise the behavior under concurrency, since sequential use hides precisely this class of defect.
Le destinataire doit voyager avec l’assietteLeçonThe recipient must travel with the plateLesson
Le destinataire doit accompagner l’assiette du départ à l’arrivée. Lire un nom sur un tableau commun au dernier moment ne sépare pas les tables. Même sans mauvaise livraison observée, le risque demeure.La propriété doit voyager avec l’événement. Un destinataire lu dans un emplacement partagé au moment de la livraison n’est pas une garantie d’isolation, même quand aucune livraison croisée n’a été observée.The recipient must accompany the plate from start to arrival. Reading a name from a shared board at the last moment does not separate tables, even if no plate has yet reached the wrong guest.Ownership must travel with the event. A recipient read from a shared slot at delivery time is not an isolation guarantee, even when no cross-delivery has been observed.

