Aller au contenu
quest'n'click

Studio d'équipeGuidePour auteursS'applique de 4.2.3

Commentaires

This page in EnglishCette page sur le wiki GitHub

Sur un Studio d'équipe, les membres commentent ce que le jeu nomme (une salle, une porte, un objet, une règle, une case du storyboard) ou le jeu lui-même, en fils de discussion. Les commentaires sont gardés par le Studio, jamais dans un fichier du jeu : un reviewer peut donc commenter aussi.

Ce que vous obtenez

Un fil ancré sur un identifiant stable du jeu, avec la révision où il a été écrit, auquel l'équipe répond, qu'elle résout et rouvre ; et les anciennes notes de notes.json reprises en commentaires.

Contexte et versions

Un Studio hébergé (le Studio Server), depuis la 4.2.3. Le Studio local a des notes (notes.json), pas de commentaires. Le code est studio-server/src/server/comments.ts.

Prérequis

  • N'importe quel rôle : un reviewer commente, répond et résout ses propres fils ; un dev ou un owner résout n'importe quel fil ; faire entrer les notes revient à un owner (voir Rôles et actions).

Où lancer les commandes

Dans le Studio, l'onglet Notes, panneau Comments. Ou par l'API avec le jeton d'un membre.

Étapes

  1. Écrire un commentaire. Dans le champ about, tapez ce dont il parle : l'identifiant d'une salle (hall), une entité (hall.door), un objet (item:key), un personnage (char:lou), l'identifiant d'une règle, un objectif (objective:<id>), un point de passage (checkpoint:<id>), ou l'identifiant d'une planche ou d'une case du storyboard. Laissez-le vide pour le jeu lui-même. Tapez le texte (1 à 4 000 caractères), puis Comment.
  1. Répondre. Sous un fil, tapez dans Reply. Un fil n'a qu'un niveau : la réponse à une réponse rejoint le même fil, sur son ancre.
  1. Résoudre, ou rouvrir. Resolve ferme tout le fil ; Open again le rouvre.
  1. Faire entrer les notes (owner). Bring the notes in transforme chaque note de notes.json en commentaire, une seule fois : son about devient l'ancre quand c'est un identifiant, sinon la note rejoint le fil du jeu, son about en tête du texte. Le relancer ne fait entrer que les nouvelles notes. La réponse est {imported, already}.

Par l'API :

# n'importe où, avec le jeton d'un membre
curl -H "Authorization: Bearer $TOKEN" "https://studio.example.fr/api/comments?anchor=hall.door"
curl -X POST -H "Authorization: Bearer $TOKEN" -H "content-type: application/json" \
  -d '{"anchor": "hall.door", "text": "The door should creak."}' https://studio.example.fr/api/comments
curl -X PUT -H "Authorization: Bearer $TOKEN" -H "content-type: application/json" \
  -d '{"resolved": true}' https://studio.example.fr/api/comments/<id>
RouteFait
GET /api/comments[?anchor=<id>]tous les commentaires (ou ceux d'une ancre), du plus ancien au plus récent, les 2 000 derniers au plus
POST /api/comments {anchor?, text, parent?}un commentaire, ou une réponse avec parent (201)
PUT /api/comments/<id> {text?, resolved?}son texte changé (par son auteur seulement), son fil résolu ou rouvert
POST /api/comments/import-notesles notes de notes.json, chacune une fois (owner)

Chaque commentaire a id, anchor ('' pour le jeu), rev (la révision où il a été écrit), parent, author, text, resolved, at, edited, et orphan.

Les règles

  • Un commentaire garde sa révision. Il dit de quelle version du jeu il parlait.
  • Orphelin, jamais déplacé. Un commentaire dont l'ancre n'est plus nommée par le jeu (une salle supprimée, un identifiant renommé) s'affiche « orphan: the game no longer names it » ; il n'est jamais rattaché ailleurs. Les ancres sont les salles, règles, scripts, entités, objectifs et points de passage du jeu, et les planches et cases du storyboard. L'identifiant d'une ligne n'est pas une ancre. Tant que le jeu ne se charge pas, aucun commentaire n'est dit orphelin.
  • Seul son auteur change son texte. Le panneau du Studio n'a pas de bouton de modification : le texte se change par PUT /api/comments/<id> avec text.
  • Un reviewer résout ses propres fils ; un dev ou un owner, n'importe lequel.
  • Gardés par le Studio : dans sa base et dans ses sauvegardes, jamais dans un fichier du jeu ; aucun fichier du jeu n'est écrit, donc un commentaire ne demande aucun pan et n'est jamais refusé par une 423.

Résultat attendu, et comment le vérifier

Le fil apparaît dans le panneau Comments de chacun, sous son ancre, avec sa révision. GET /api/comments?anchor=<id> le liste.

Erreurs courantes

SymptômeCauseCorrection
a comment is a text of 1 to 4000 characters (400)Vide ou trop longRaccourcissez, ou coupez-le en deux
an anchor is a stable id of the game (letters, digits, . : @ - _) (400)Des espaces ou d'autres caractères dans aboutMettez l'identifiant, pas une phrase
only its author changes a comment's text (403)Le commentaire de quelqu'un d'autreRépondez plutôt
a reviewer resolves their own threads (403)Un reviewer sur le fil d'un autreDemandez à un dev
comments are a shared Studio's (404)Un Studio Server sans OIDC (mode local)Les commentaires demandent un Studio d'équipe

Fichiers ou données modifiés

Des lignes de la table studio_comments. Aucun fichier du jeu, aucune révision.

Revenir en arrière

Un fil résolu par erreur se rouvre. Un texte se corrige par son auteur. Rien d'autre ne s'annule.

Références