Repository navigation
FR Equipe Reprise
English · Type : dépannage · Public : auteur · Contexte : Studio hébergé · Statut : prête · S'applique depuis : 4.2.3
Le Studio Server (Studio d'équipe hébergé) · contrat : expérimental · vérifié par la CI (matrice de support de la 4.4.0, 2026-10-23) : Postgres, S3 et Keycloak en CI ; Chromium et Firefox (job studio-hosted) ; WebKit sous macOS, à la main seulement · vérifications automatiques : jobs
studio-hosted,studio-install-smoke; plan de CIstudioHosted; 3 fichiers de tests · passes humaines :studio-hostedpas faite (#149),studio-collabpas faite (#150),studio-previewpas faite (#166),studio-assets-hostedpas faite (#167),studio-mcp-remotepas faite (#196),studio-oidc-genericpas faite (#197) · limites connues :no-offline-editing
Sur un Studio d'équipe, quelque chose a interrompu votre travail : une salle que vous teniez est passée à quelqu'un d'autre, la connexion a sauté, vos écritures attendent, vous voilà renvoyé à la page de connexion, ou le jeu affiché n'est pas le plus récent. Cette page distingue ces cas et dit comment reprendre. Dans aucun d'eux, rien de confirmé n'est perdu.
- Votre enregistrement dans une salle où vous travailliez est refusé par une 423 qui nomme quelqu'un d'autre, après une pause, un onglet fermé ou un portable en veille (bail perdu).
- Un bandeau : « Reconnecting… last revision seen: N. Nothing is lost: what changed meanwhile is read from the journal. » (déconnexion), ou « Some changes made while the connection was cut could not be read back. », avec Reload the Studio.
- Un bandeau : « N changes not answered yet, sent again with the same id: each applies once. » (écritures en attente).
- La page de connexion, la page « Identity provider unreachable », ou « Access not granted » (session).
- L'étiquette sous la vue de salle dit « preview of revision N · revision M ready: reload to see it », « revision M building… » ou « revision M does not build: … » ; l'onglet Play montre un jeu plus ancien ; un cadre de jeu ne montre plus rien de neuf (aperçu périmé).
- Votre bail a expiré. Un bail dure 120 secondes et votre Studio le renouvelle toutes les 30 secondes tant qu'il est ouvert et connecté. Fermé, en veille ou hors ligne plus de deux minutes, vous le perdez ; n'importe qui peut alors prendre le pan.
- Quelqu'un vous l'a repris. Un owner a repris le pan (c'est noté dans le journal d'audit), ou un job a pris le jeu entier (le bail exclusif).
- Le flux en direct a sauté : le réseau, un proxy, ou un redéploiement du serveur.
- Le serveur n'a pas répondu à une écriture : un redéploiement (la nouvelle instance ne sert pas les écritures pendant quelques secondes), une coupure.
-
Votre session a pris fin ou a été suspendue : ses limites (8 heures d'inactivité et 24 heures en tout par
défaut, les clés
sessions.idleHoursetsessions.absoluteHoursde la configuration), un owner y a mis fin, vous avez été retiré ou votre rôle a changé, ou le fournisseur d'identité n'a pas pu la confirmer pendant 15 minutes. - L'aperçu est en retard sur la tête : chaque modification construit un nouvel aperçu sur le worker, ce qui prend du temps, et une vue qui montre un jeu le garde jusqu'à ce que vous chargiez le nouveau.
-
Spans… (votre nom dans l'en-tête) liste qui tient quoi, et jusqu'à quand.
GET /api/leasesdonne la même chose :span,holderName,until(l'horloge du serveur, en millisecondes). - Le point de révision de l'en-tête est vert tant que le flux en direct fonctionne ; le bandeau dit quand il est coupé.
- Le journal d'audit (owners) montre un
lease-takeover,sessions-revoked,member-roleoumember-removed. - L'étiquette de l'aperçu dit quelle révision montre la vue du jeu, et ce qui se construit ou échoue.
-
/readyzrépond 503 tant qu'aucune instance ne sert les écritures (un redéploiement).
- Ouvrez Spans…. Si le pan est libre, cliquez sur Take (ou enregistrez simplement : enregistrer le prend). Si quelqu'un le tient, cliquez sur Tell me when it is free dans la fenêtre du refus, ou demandez-lui : voir 423. Votre brouillon reste dans la fenêtre ; Copy the draft si vous en avez besoin ailleurs.
- S'il a été repris par un owner, le journal d'audit dit qui. Mettez-vous d'accord avec lui avant de le reprendre.
- Un script qui envoie
x-studio-fencesreçoityour lease on <span> ended or was taken again: take it again(423) : il reprend le pan (POST /api/leasesavec{"spans": ["room:kitchen"]}), garde les nouveaux jetons, et renvoie son écriture.
Un job qui tient le jeu entier renouvelle son bail exclusif toutes les 30 secondes tant qu'il tourne et le rend à la fin. Si l'instance redémarre pendant un job, l'état du job est perdu ; son bail expire en 120 secondes au plus.
- Attendez. Le navigateur rouvre le flux tout seul. Quand le serveur l'a refusé (401, 503), la page demande d'abord qui est votre session, puis le rouvre, en attendant un peu plus à chaque fois, 30 secondes au plus.
- À la reconnexion, le Studio lit ce qu'il a manqué dans le journal (
GET /api/ops?after=<dernière révision vue>), dans l'ordre, et le bandeau disparaît. Si le journal ne peut pas être lu après cinq essais, le bandeau dit que certains changements n'ont pas pu être relus : cliquez sur Reload the Studio. - Si l'histoire du projet a changé entre-temps (un nouvel import, une restauration : une autre époque), la page se recharge d'elle-même.
- Laissez l'onglet ouvert. Une écriture restée sans réponse, ou qui a reçu une 502, 503 ou 504, est renvoyée avec le même identifiant d'opération, jusqu'à huit fois de plus, en attendant 0,5 seconde puis le double, jusqu'à 8 secondes. Le serveur l'applique une seule fois, quel que soit le nombre d'essais. Pendant un redéploiement, les écritures sont refusées un court moment ; voir Redéploiements.
- Si le bandeau reste et que les écritures finissent en erreur, le serveur est arrêté ou injoignable : regardez
/readyz, et voir Worker, PostgreSQL ou Cellar en panne.
- Renvoyé à la page de connexion : reconnectez-vous ; vous revenez où vous étiez. Les brouillons des fenêtres de refus ne survivent pas à la connexion : copiez-les d'abord si une fenêtre est ouverte.
- « Identity provider unreachable » : le fournisseur n'a pas confirmé votre session depuis 15 minutes, alors le Studio se met en pause (« Nothing was sent during the pause. »). Cliquez sur Try again now une fois le fournisseur revenu.
- « Access not granted » : vous êtes connecté mais n'êtes plus membre. Demandez une invitation à un owner.
- La page redémarre toute seule : votre rôle a changé ; le Studio repart avec vos nouveaux droits.
- La vue de salle charge le nouvel aperçu d'elle-même une fois construit, sauf si un placement n'est pas enregistré. Enregistrez-le (Save layout), ou cliquez sur Reload view (le placement non enregistré est perdu).
- L'onglet Play garde l'aperçu qu'il a chargé, pour ne jamais interrompre une partie en cours : cliquez sur Load the latest preview.
- Un cadre de jeu resté inactif au-delà de sa session de jeu de 15 minutes ne montre plus rien de neuf : Reload view, ou rouvrez l'onglet Play.
- « revision M does not build: … » : le dernier aperçu construit reste servi. Survolez l'étiquette pour la raison complète, corrigez le jeu, et la révision suivante se construit. Un aperçu se construit à partir des seuls fichiers texte du jeu : un jeu dont le code importe une feuille de style ou une image ne peut pas être prévisualisé.
- Une sauvegarde faite dans un autre contenu demande avant d'être reprise : Resume here (elle peut se jouer bizarrement si cette révision a retiré ce dont la sauvegarde parle), Restart, ou Stay in revision N (la révision propre de la sauvegarde) ; Échap annule (ADR 0026).
- L'onglet Check marque ses résultats comme périmés dès que la tête a avancé : relancez la vérification.
Limite ·
no-offline-editingUn Studio hébergé n'a pas de mode hors ligne : tant que le serveur est injoignable, rien n'est enregistré, et seules les écritures déjà envoyées sont retentées. Un brouillon dans une fenêtre de refus ouverte ne vit que dans cet onglet.
Le point de révision est vert et aucun bandeau ne s'affiche ; votre enregistrement suivant répond avec une nouvelle révision ; Spans… montre le pan comme le vôtre ; l'étiquette de l'aperçu dit « preview of revision N » avec N la tête.
- Une 423 alors que le bail n'était pas à vous avant : quelqu'un tient simplement ce pan. Voir Écriture refusée : pan verrouillé (423).
- Une 409 « The file changed since you read it » : pas un verrou, une lecture périmée. Voir Écriture refusée : révision de base périmée (409).
- Des 503 pendant des minutes, pour tout le monde : l'instance ou l'un de ses services est en panne ; voir Dépannage Clever Cloud.
- Un aperçu qui ne se construit jamais, pour tout le monde : le worker est peut-être en panne ; voir Worker, PostgreSQL ou Cellar en panne.
Generated publication · publication générée — current documentation · documentation courante: quest'n'click 4.4.0 r1, documentation revision · révision de la documentation 8dc717c69acb62c4742b69c54a7e7dfb620f75d8.
Earlier versions and permalinks · versions précédentes et liens permanents: https://wanoo.github.io/quest-n-click/docs/
An edit made in this wiki is overwritten at the next publication · une modification faite dans ce wiki est écrasée à la publication suivante.
Edit the source · Modifier la source · Report an error · Signaler une erreur
Index (6)
Démarrer (6)
Jouer (9)
Installer (17)
- Prérequis
- Installer depuis l'archive de la release
- Installer depuis npm, une fois publié
- Installer depuis le dépôt pour travailler sur le moteur
- doctor : vérifier sa machine
- Outils pour les images
- Outils audio : ffmpeg, fluidsynth, Furnace, uv
- Mettre à jour
- Notes de mise à jour : 4.4
- Notes de mise à jour : 4.3
- Notes de mise à jour : 4.2
- Notes de mise à jour : 4.1
- Notes de mise à jour : v3
- Notes de mise à jour : v2 vers v3
- Venir de web-scumm
- Référence du paquet
- Dépannage de l'installation
Créer un jeu (55)
- Votre premier jeu
- Organisation d'un projet créé et du dépôt du moteur
- La boucle de travail
- Principes du contenu et contrat d'identité
- Salles
- Géométrie : placement, zones de marche, masques, calques, caméra
- Un objet est visible mais inaccessible
- Réactions
- Commandes du jeu
- Conditions
- Drapeaux, variables et événements : lequel choisir
- Code sur mesure
- Personnages
- Objets et inventaire
- Carte du monde
- Dialogues
- Scripts et événements
- Faire bouger les personnages : patrouilles et marches
- Sorties
- Chapitres et objectifs
- État et sauvegardes : persistant ou temporaire, renommer un id, migrations
- Mise en scène : salles larges et animations
- La scène : lumières, particules, sols
- Habillage et polices
- Titre et générique
- Héros : plusieurs personnages et choix du héros
- Mini-jeux intégrés
- Un mini-jeu sur mesure
- Traductions
- Musique en stems
- Bruitages
- Voix : par langue et par héros
- Images : prompts, découpe des planches, transparence, échelle
- Provenance des assets
- Le storyboard, source de vérité
- Concevoir des énigmes
- Mécaniques classiques
- Pages de relecture
- Référence du DSL
- Vérifier son jeu
- Ce que prouve le solveur
- Options du solveur
- Playtests
- Remix
- Speedrun pour les auteurs
- La fin scellée
- Modèle de production
- Jeux d'exemple
- Travailler avec une IA
- Construire et publier un jeu
- Publier sur GitHub Pages
- Le jeu statique sur Clever Cloud
- Autres hébergeurs statiques
- Sous-chemin, cache et service worker, déploiement incomplet, retour arrière
- Tester sur un téléphone en réseau local
Studio local (24)
- Le Studio local : présentation et lancement
- Modifier une salle
- Placement et scène
- Aperçu, application, annulation
- Storyboard
- Assets et découpe
- Vérifier : validateur, solveur, chemin critique, chaleur, santé, couverture
- Captures avant et après
- Diff sémantique
- Jouer et rejouer une session
- Explication des règles
- Langue et objectifs
- Voix et matrice héros × langues
- Carte
- Notes
- Remix dans le Studio
- Musique
- L'Assistant : votre propre clé
- Mode démo et studio-apply
- Sécurité en local et en réseau local
- API du Studio
- MCP local : configurer chaque client
- Outils MCP
- Dépannage du Studio
Studio d'équipe (21)
- Ce qui tourne où
- Concepts : révision, transaction, pan, bail, aperçu, build
- Débuter comme dev invité
- Travailler ensemble au quotidien
- Rôles et actions : la matrice complète
- Invitations
- Gérer les membres
- Écriture refusée sur le Studio hébergé : révision de base périmée (409)
- Écriture refusée sur le Studio hébergé : pan verrouillé (423)
- Reprendre après un bail perdu, une déconnexion ou un aperçu périmé
- Commentaires
- Carte et diff sémantique
- Publier des builds
- MCP distant
- Le jeu dans Git
- Mettre à jour le moteur d'un jeu hébergé
- Assets hébergés
- La ligne de commande du serveur
- Routes de santé et de métriques
- L'essayer en local avec compose.yml
- Limites connues
Clever Cloud (23)
- Clever Cloud : vue d'ensemble, coût et prérequis
- Applications et add-ons
- Domaines et TLS
- Keycloak
- OIDC générique et GitLab
- Configuration
- Premier déploiement
- Sauvegardes
- RPO et RTO
- Exercice de restauration sur une installation vierge
- Redéploiements
- Mettre à jour le serveur et vérifier l'état après une migration
- Limites du retour arrière
- Supervision
- Sécurité
- Renouveler les clés
- Récupérer l'accès administrateur
- Changer de domaine ou de fournisseur OIDC
- Worker, PostgreSQL ou Cellar en panne
- Exporter le jeu et quitter l'installation
- Rétention
- Dépannage sur Clever Cloud
- Coûts et démontage
Reality Bridge et connecteurs (16)
- Le Reality Bridge : ce que c'est
- Démarrage rapide
- Garanties
- Installer et lancer le Bridge
- Sauvegarde et restauration
- Plusieurs tenants
- Signaux et manifeste
- La ligne de commande du Bridge
- Vue d'ensemble des connecteurs
- Connecteur email
- Connecteur Telnet
- Connecteur SSH
- Connecteur Open Badges
- Le SDK des connecteurs
- Sécurité : Biscuit et signatures
- Dépannage du Bridge et des connecteurs
Contribuer (25)
- Bienvenue
- Préparer son poste de développement
- La boucle de développement
- Avant une pull request
- Conventions
- Écrire la documentation
- Architecture
- Visite du code
- Frontières d'import
- Quels tests tournent quand
- Tests de mutation
- Le cliquet de couverture
- La référence de qualité
- La CI expliquée
- Passes de terrain
- Mesures de performance
- Publier une release
- Paquets npm
- Décisions et ADR
- Gouvernance
- Pull requests des bots
- Contribuer avec des agents IA
- Politique de sécurité
- Code de conduite
- Licences et crédits