Repository navigation
FR Equipe Limites Connues
English · Type : référence · Public : auteur, administrateur · Contexte : Studio hébergé · Statut : prête · S'applique depuis : 4.4.0
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 :one-instance,preview-of-a-revision,preview-text-only,preview-kept,game-frame-idle,diagnostics-on-worker,read-revision,health-bounds,worker-lanes,snapshot-shared,outside-folder,assets-hosted,local-only-features,base-revision-scope,room-editor-save,groupings-span-by-hand,undo-not-for-all,people-limits,browsers
Ce que le Studio d'équipe (le Studio Server) ne fait pas, ou ne fait que dans certaines bornes, d'après le code actuel. Chaque limite dit où elle s'applique ; les pages liées donnent le détail.
Limite ·
one-instanceUn jeu par instance, et une seule instance sert les écritures à la fois : le serveur prend un bail de service, et une seconde instance l'attend. Pendant un redéploiement, les écritures sont refusées un court moment (voir Redéploiements).
Limite ·
preview-of-a-revisionLe jeu dans le Studio est l'aperçu d'une révision (4.2.2) : après chaque modification, le worker construit la tête (une rafale de modifications ne construit que sa dernière révision), et la vue de salle le charge une fois prêt, sauf si un placement n'est pas enregistré. En attendant, les cadres montrent le dernier aperçu prêt, et l'étiquette sous la vue de salle dit de quelle révision il s'agit, celle en construction, et une révision qui ne se construit pas, avec sa raison. Une sauvegarde faite dans un autre contenu demande avant d'être reprise : la reprendre ici, recommencer, ou rester dans sa propre révision (ADR 0026). L'onglet Play garde l'aperçu qu'il a chargé jusqu'à « Load the latest preview ».
Limite ·
preview-text-onlyUn aperçu se construit à partir des seuls fichiers texte du jeu (sources, données) : un jeu dont le code importe une feuille de style ou une image ne peut pas être prévisualisé.
Limite ·
preview-keptL'aperçu de chaque révision est gardé, sans expiration :gcne ramasse jamais un blob qu'un aperçu nomme. La base/preview/<rev>/est écrite dans la page et son code, si bien que peu de fichiers sont partagés d'une révision à l'autre (moins de 1 Mo de code par révision pour le jeu de démo : un chiffre de conception, pas une mesure, tiré du spike d'aperçu de la 4.2.2, 18 octobre 2026).
Limite ·
game-frame-idleUn cadre de jeu resté inactif au-delà de sa session de jeu de 15 minutes ne montre plus rien de neuf : « Reload view » (ou l'onglet Play) le rouvre.
Limite ·
diagnostics-on-workerLes diagnostics qui exécutent le code du jeu (lint, solveur, playtests) tournent sur le worker, avec les commandes propres du jeu (4.2.2) ; le solveur s'y arrête après 45 s et dit qu'il a été interrompu. Chaque lecture dit la révision à laquelle elle a été faite : l'onglet Check l'affiche, et marque ses résultats comme périmés dès que la tête a avancé.
Limite ·
read-revisionLa révision d'une lecture est la tête du journal : une instance qui ne tient pas encore le bail (un déploiement) peut répondre depuis un dossier en retard, et une nouvelle histoire (un import, une restauration) n'est pas distinguée d'une révision plus ancienne.
Limite ·
health-boundsLa santé d'une révision dans l'en-tête passe le validateur, puis le solveur depuis une nouvelle partie (45 s au plus), sur le worker, après chaque rafale de modifications. Une bissection nomme la première révision en échec en ⌈log₂ n⌉ jugements au plus, jamais qui l'a faite. Un solveur interrompu dit « inconnu », jamais « valide », et arrête une bissection ; une révision qui n'a pas pu être jugée cinq fois dit « ne peut être jugée ». Un verdict plus ancien est affiché en gris, jamais en vert. Une passe de l'onglet Check retient les lectures de l'instance pendant que le worker exécute ses diagnostics : une écriture l'attend. Voir Routes de santé et de métriques.
S'applique depuis la 4.4.0
Limite ·
worker-lanesLe worker exécute un job à la fois par file (4.4.0) : la construction d'un aperçu (ou d'un build publié) dans sa propre file, toutes les autres sortes dans l'autre, donc deux processus enfants au plus à la fois. Chaque révision lui demande trois jobs : la construction d'un aperçu, le validateur et une passe du solveur (jusqu'à 45 s) ; l'aperçu n'attend plus les deux autres, et la validation de la modification suivante peut encore les attendre. Une bissection demande jusqu'à deux jobs par révision qu'elle juge. Chaque file tient 8 jobs au plus (en cours ou en attente) ; le suivant est refusé (429).
Limite ·
snapshot-sharedDepuis la 4.4.0, un seul instantané par révision est empaqueté (sous le verrou, le dossier réparé) et partagé par l'aperçu, la santé, les builds publiés et la montée de version du moteur, redonné tant que la tête n'a pas bougé. Ses fichiers sont stockés 8 à la fois, et un blob que cette instance a stocké il y a moins d'une heure n'est pas réécrit. Le Studio répond dès qu'il a lu le résultat du worker, son dépôt effacé ensuite. Ce que prend chaque phase est dans la ligne de journalpreviewet dansstudio_preview_phase_seconds. Le cache de Vite n'est pas gardé d'un job à l'autre : unvite buildne s'en sert pas, et un dossier où écrit le code du jeu ne doit pas survivre à son job (ADR 0028).
Limite ·
outside-folderUn jeu qui importe des fichiers hors de son propre dossier ne peut pas tourner sur le worker.
Limite ·
assets-hostedLes uploads font 10 Mio au plus une fois décodés, et leur type se lit dans leurs octets : des images PNG, JPEG ou WebP (un décor : PNG ou JPEG), des sons Ogg, MP3 ou WAV (un Studio local prend aussi M4A, FLAC, AAC, Opus et WebM). Un Studio hébergé ne garde pas la planche téléversée elle-même. Prepare est refusé, et le jeu se prépare sur un Studio local, au-delà d'environ 31 Mio d'art et de sons (en base64) ou d'environ 22 Mio de fichiers préparés, avec unsources.json, ou quand le nouveau manifeste perdrait une image ou un son. Les builds publiés servent l'ensemble préparé tel qu'il est maintenant. Un seul job tourne à la fois, quatre autres attendent (429 au-delà) ; l'état d'un job est perdu à un redémarrage. Voir Assets hébergés.
Limite ·
local-only-featuresLes captures (et les captures avant/après du diff) ne sont pas disponibles sur un Studio hébergé. L'onglet Play montre le jeu avec son panneau DEV ; l'inspecteur d'état, l'explication des règles et les rejeux à côté ont besoin du jeu sur l'origine du Studio, donc du Studio local seulement. L'Assistant n'est pas encore sur un Studio hébergé. Le MCP d'un Studio hébergé ne propose ni captures, ni suite de tests, ni documentation, ni prompts d'assets (MCP distant).
Limite ·
base-revision-scopeDepuis la 4.2.3, les éditeurs du Studio envoient la révision de ce qu'ils ont lu (x-studio-base) avec chaque écriture qui se rattache à une lecture (une salle, le storyboard, les notes, les regroupements, les voix…), et un fichier que quelqu'un d'autre a écrit depuis donne une 409. La vérification se fait par fichier. Une écriture qui dérive un fichier (l'export Markdown du storyboard) n'en envoie pas. Les clients de la CLI et du MCP n'en envoient pas non plus : leurs écritures se font sur le fichier tel qu'il est, dans les règles des pans (409).
Limite ·
room-editor-saveLe bouton Save de l'éditeur de salle ne fait rien sur un Studio hébergé : « Save layout » dans le Studio enregistre (la page de l'éditeur est celle du jeu, et seul le membre lance une écriture).
Limite ·
groupings-span-by-handLe pangroupings(la carte du scénario) est pris par une écriture comme les autres, mais il ne peut pas être pris d'avance, rendu ni repris à la main : la liste des noms de pans de l'API ne le contient pas (400, «spansis a list of span names »), alors que le panneau Spans l'affiche.
Limite ·
undo-not-for-allL'annulation ne reprend que vos propres opérations annulables. Les uploads, les découpes, Prepare, un import Git et le renommage de l'ancien nom sont écrits sans annulation : une sauvegarde faite avant est leur chemin du retour.
Limite ·
people-limitsTrois rôles fixes, pas de droit par salle. Une invitation en attente ne peut pas être retirée. L'API d'audit donne les 200 dernières entrées, sans pagination. Aucune sous-commande en ligne de commande ne gère les membres (Gérer les membres). Un fournisseur qui émet des jetons d'accès opaques (les applications OAuth de GitLab, au moment où ces lignes sont écrites) sert le navigateur mais ni la CLI ni le MCP distant (OIDC générique et GitLab).
Limite ·
browsersLa CI lance l'e2e hébergé sous Chromium et Firefox ; WebKit sous macOS garde le cookie partitionné du jeu, et n'est testé qu'à la main (la matrice de support de la 4.4.0, 23 octobre 2026). WebKit sous Linux (GNOME Web) ne garde aucun cookie posé par un cadre d'un autre hôte : les cadres du jeu y restent vides. Un vrai Safari, sous macOS et iOS, est la passe humainestudio-hosted, pas encore faite.
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