Le raccourci « c » provoque un conflit de brouillon lors de la création d'un autre sujet depuis une page de sujet

Je peux reproduire un conflit de brouillon sur meta.discourse.org en créant deux brouillons de nouveaux sujets en utilisant le raccourci clavier natif c tout en affichant un sujet existant.

Étapes pour reproduire

  1. Ouvrir un sujet public existant.
  2. Appuyer sur c pour créer un nouveau sujet.
  3. Saisir un titre et un corps de message.
  4. Attendre que le brouillon soit enregistré, puis cliquer sur le bouton Enregistrer et fermer (X) du composeur.
  5. Toujours en affichant un sujet existant, appuyer à nouveau sur c pour créer un autre nouveau sujet.
  6. Saisir un titre différent.
  7. Appuyer sur Tab pour passer du champ titre au corps du message et attendre l’enregistrement automatique.

Les deux composeurs de nouveaux sujets doivent être ouverts tout en affichant un sujet existant pour la reproduction que j’ai confirmée sur Meta.

Résultat actuel

Un avertissement s’affiche indiquant que le brouillon est en cours de modification dans une autre fenêtre et me demande de recharger la page.

Cela se produit sans que le brouillon ne soit modifié dans une autre fenêtre.

Sur mon propre site, la requête d’enregistrement automatique échouée vers /drafts.json renvoie HTTP 409.

Résultat attendu

Le deuxième nouveau sujet devrait obtenir son propre brouillon, en conservant le premier brouillon enregistré sans conflit.

Où je l’ai reproduit

  • Sur meta.discourse.org, en suivant les étapes ci-dessus.
  • Sur mon propre site en Mode Sûr, avec les thèmes et toutes les personnalisations de plugins côté client désactivés.
  • Mon site exécute Discourse 2026.10.0-latest, commit b28f2a44c.

Cause possible

L’inspection du code suggère que le repli (fallback) dans KeyboardShortcuts#createTopic utilise toujours la clé fixe Composer.NEW_TOPIC_KEY (new_topic) et ne fournit pas de draftSequence :

https://github.com/discourse/discourse/blob/ec4cea91ea81d926cedab5f0d61c9313f42aba24/frontend/discourse/app/services/keyboard-shortcuts.js#L565-L569

En comparaison, composer.openNewTopic() génère une clé de brouillon unique.

Dans la reproduction capturée sur mon site, le premier brouillon a été enregistré sous new_topic et a atteint la séquence 1. Le deuxième composeur a tenté d’enregistrer sous la même clé sans séquence, ce qui a entraîné un HTTP 409 et l’avertissement.

Ce repli pourrait-il utiliser composer.openNewTopic() afin que chaque nouveau sujet obtienne un brouillon distinct ?

Cordialement,
Prof. Caju