Un palier d'espace de travail tient dans une chaîne sur votre compte, et un enregistrement de configuration décide de son prix.
L'échelle compte huit paliers avec la catégorie ai_workspace dans PLAN_OBJ (config.json:2206 pour le palier gratuit, puis :2225, :2245, :2265, :2285, :2305, :2325 et :2345). Chacun porte id, name, storage, category, price, ai_credits, size, price_id et un tableau features de sept phrases marketing, plus un member_price_id sur les sept paliers payants, et rien d'autre. Aucun rank, aucun price_note, aucun flags, dans un objet où six autres catégories portent un rank, treize portent des flags et une porte un price_note. Le palier lui-même est le champ ai_workspace_plan sur le document de compte dans xuda_accounts, initialisé à free_ai_workspace à la création du client Stripe (stripe_module:2213 et :4823) et accompagné d'un horodatage ai_workspace_plan_changed à chaque changement. Chaque prix, chaque nombre de crédits et chaque étiquette de stockage sur cette page sont lus directement dans ces huit paliers. Le nombre de jetons qu'un crédit permet d'acheter ne l'est pas, car il ne peut pas l'être : la formule est dans le dépôt, le total d'usage faisant autorité provient d'une fonction de liste CouchDB qui ne l'est pas, et le code recale l'un pour atteindre l'autre. C'est pourquoi cette page le dit plutôt que de deviner.

Paliers ai_workspace dans PLAN_OBJ de config.json
Identifiants de palier dont le chiffre ne correspond pas aux crédits accordés
Points d'appel qui créditent le grand livre, et aucun n'est un palier d'espace de travail
Paliers dont l'identifiant de prix Stripe est encore un placeholder TODO
La version de cette page que vous avez peut-être lue est erronée à quatre endroits, dont le titre.
La page publiée s'ouvre sur le routage de modèle, et cette affirmation ne survit pas à la lecture de la fonction sur laquelle elle repose. Trois autres de ses affirmations non plus. La colonne de gauche paraphrase ce que dit cette page plutôt que de la citer ; la colonne de droite est la source, avec le fichier et les lignes. Tout ce qui suit ce bloc s'appuie uniquement sur la seconde colonne.
Ce que dit la page publiée | Ce que dit la source | |
|---|---|---|
| Routage de modèle | Chaque étape d'une construction est associée à un modèle adapté, si bien que le travail courant n'est pas facturé au tarif le plus élevé. | La sélection automatique n'existe que dans une seule fonction, pick_dashboard_model (ai_module:11152-11163), appelée depuis une seule ligne sur le chemin de l'assistant de projet, avec deux issues possibles. Son palier fort retombe sur gpt-3 car strong_ai_model est absent de config.json, si bien que gpt-4 et gpt-5 ne sont jamais atteints automatiquement. |
| GPT-5.5 | GPT-5.5 est le modèle coûteux que le routage vous évite. | GPT-5.5 n'est pas un nom de catalogue. C'est une clé d'alias à config.json:625 pointant vers le code gpt-5, dont l'identifiant de modèle réel est gpt-5.6-sol. L'alias aboutit bien à une entrée de catalogue active, donc rien n'est facturé à un tarif obsolète, mais ce nom n'est pas un modèle. |
| Le palier gratuit | L'espace de travail gratuit accorde 30 crédits AI par mois. | Ni mensuel, ni en un seul octroi. Un bonus d'accueil unique de 30 crédits (misc_module:938), plus 1 crédit de période toutes les 24 heures pour les comptes encore sur free_ai_workspace (account_module:9597). Les crédits de période ne se reportent pas ; le bonus d'accueil reste disponible jusqu'à ce qu'il soit dépensé. |
| Le tableau des paliers | Un tableau de six paliers, avec les crédits et le stockage pour chacun. | Six sur huit : 200_ai_workspace et 1500_ai_workspace sont absents. Les chiffres de crédits sont ceux d'avant la refonte, appliqués au stockage actuel, si bien que quatre de ses six lignes sous-estiment les crédits, et le tableau ne comporte aucun champ de prix. |
Les huit paliers, tels que stockés.
Par ordre de prix, directement issu de config.json : gratuit 0 $ pour 30 crédits et 15 Go, 200_ai_workspace 8 $ pour 200 crédits et 100 Go, 400_ai_workspace 15 $ pour 400 crédits et 500 Go, 600_ai_workspace 25 $ pour 800 crédits et 1 To, 1500_ai_workspace 45 $ pour 1500 crédits et 2 To, 2000_ai_workspace 75 $ pour 2500 crédits et 3 To, 3000_ai_workspace 115 $ pour 4000 crédits et 5 To, 6000_ai_workspace 230 $ pour 10000 crédits et 10 To. Les sept paliers payants portent aussi un member_price_id à côté de celui affiché ici ; le palier gratuit est le seul sans aucun prix membre. Deux limites méritent d'accompagner le tableau plutôt que de figurer en dessous. La colonne stockage est une étiquette : le champ réellement lu par le code pour les droits est size, en octets, et les deux peuvent diverger. Et ce sont les copies du dépôt, connues pour diverger de la configuration maîtresse en production, donc traitez chaque chiffre comme non vérifié face à la plateforme réelle.
Prix mensuel | ai_credits sur le palier | Étiquette de stockage | Identifiant de prix Stripe | |
|---|---|---|---|---|
| free_ai_workspace | 0 $US | 30 | 15 Go | Un identifiant de prix réel |
| 200_ai_workspace | 8 $US | 200 | 100 Go | price_LIVE_200_AI_WORKSPACE_TODO |
| 400_ai_workspace | 15 $US | 400 | 500 Go | Un identifiant de prix réel |
| 600_ai_workspace | 25 $US | 800 | 1 To | Un identifiant de prix réel |
| 1500_ai_workspace | 45 $US | 1500 | 2 To | price_LIVE_1500_AI_WORKSPACE_TODO |
| 2000_ai_workspace | 75 $US | 2500 | 3 To | Un identifiant de prix réel |
| 3000_ai_workspace | 115 $US | 4000 | 5 To | Un identifiant de prix réel |
| 6000_ai_workspace | 230 $US | 10000 | 10 To | Un identifiant de prix réel |
La clé dit 600. Le palier accorde 800.
Pour quatre des huit paliers, le chiffre dans l'identifiant est une étiquette historique plutôt que le nombre de crédits accordés. 600 accorde 800, 2000 accorde 2500, 3000 accorde 4000 et 6000 accorde 10000. Seuls gratuit, 200, 400 et 1500 restent cohérents avec leur propre clé. Ce qui s'est passé est visible dans le palier : la chaîne name a été mise à jour avec le nouveau chiffre et la clé est restée telle quelle, et le PlanCard du tableau de bord affiche name, si bien qu'un client ne voit jamais l'identifiant. Le commit 8a9b09673, daté du 2026-07-09, a effectué cette refonte et le dit dans son propre message : deux nouveaux paliers plus des hausses de crédits sur les échelons 600, 2000, 3000 et 6000. Rien dans le code n'extrait un chiffre de l'identifiant, donc l'écart est cosmétique pour le moteur d'exécution et dangereux uniquement pour les humains qui en écrivent la description.
Divisez chaque palier par lui-même : la remise de volume est de 42,5 pour cent, avec un palier plat au milieu.
Diviser un prix par le chiffre figurant dans l'identifiant du palier donne une courbe qui n'existe pas. Le diviser par ai_credits sur le même palier donne la vraie courbe, et elle est plus plate que ne le suggèrent les identifiants : de 0,0400 $ par crédit sur l'échelon payant le moins cher à 0,0230 $ sur le plus grand, soit un total de 42,5 pour cent de remise, répartie sur sept échelons plutôt que concentrée en haut de l'échelle.
- Les sept échelons payants, prix divisé par ai_credits sur le même palier : 0,0400 $, 0,0375 $, 0,03125 $, 0,0300 $, 0,0300 $, 0,02875 $ et 0,0230 $.
- La courbe est monotone mais plate à un endroit. 45 $ et 75 $ coûtent exactement le même prix par crédit, donc la seule raison de passer d'un échelon à l'autre est le téraoctet supplémentaire et le plafond plus élevé, pas un meilleur tarif.
- L'avantage membre est une remise de 10 pour cent sur le même produit, portée sur chaque palier payant via member_price_id, appliquée tant que l'abonnement est payant, avec retour au prix standard dès son expiration (stripe_module:211-223). Les montants vivent dans Stripe et aucun champ de config ne les contient, donc cette page n'affiche aucun montant membre en dollars. NON VÉRIFIÉ.
- Chiffres du dépôt uniquement. La configuration maîtresse en production est connue pour diverger, et config_dev.json tarife les deux mêmes identifiants, 200_ai_workspace et 1500_ai_workspace, à 1 100 $ et 3 500 $ pour des produits entièrement différents.
Sur un abonnement gratuit, le palier d'espace de travail que vous avez payé n'est pas comptabilisé du tout.
get_effective_entitlements n'ajoute le palier d'espace de travail à l'allocation d'abonnement que si membership_plan est défini et n'est pas la chaîne free (account_module:677-683). Sur un abonnement gratuit, le palier n'est jamais lu, donc ni son ai_credits ni son size ne sont ajoutés, et le compte reste sur l'allocation d'abonnement gratuit de 30 crédits et 15 Go, quel que soit le palier d'espace de travail détenu. Le module complémentaire Drive juste en dessous est traité de façon délibérément opposée : il s'ajoute à tous les paliers d'abonnement, y compris gratuit (:686-689), avec un commentaire précisant que refuser un espace qui a sa propre ligne de facturation reviendrait à ne rien vendre du tout. La même fonction contient donc deux politiques, appliquées à deux modules complémentaires, à quelques lignes d'écart. La même condition d'abonnement payant conditionne aussi les deux modes d'images générées dans le créateur de site, gen_low et gen_high, qui exigent chacun un abonnement payant et un palier d'espace de travail non gratuit (ai_module:4608-4625). La limite se situe à l'autre bout du flux, et c'est elle qui décide si ce cas est même atteignable : nous n'avons pas vérifié si le passage en caisse empêche un compte à abonnement gratuit d'acheter un palier d'espace de travail. NON VÉRIFIÉ.
Abonnement gratuit | Abonnement payant | |
|---|---|---|
| ai_credits de votre palier | Non lu. La branche à :677 ne s'ouvre jamais, donc le chiffre n'est ajouté nulle part | Ajouté à l'allocation d'abonnement comme droit affiché |
| Le stockage de votre palier | Non lu non plus, même branche, donc aucun stockage n'est ajouté | Ajouté, et size est le champ en octets, pas l'étiquette de stockage |
| Ce qu'il vous reste | La seule allocation d'abonnement gratuit : 30 crédits et 15 Go | L'abonnement plus le palier d'espace de travail détenu par le compte |
| Le module complémentaire Drive | S'ajoute quand même, sur tous les paliers y compris gratuit (:686-689) | S'ajoute de la même façon, par le même chemin inconditionnel |
| Images générées dans le créateur de site | gen_low et gen_high tous deux refusés (ai_module:4608-4625) | Les deux modes disponibles sur un palier d'espace de travail non gratuit |
Le chiffre qui devient votre solde est calculé en dehors de ce dépôt.
Cinq étapes séparent un appel de modèle du chiffre lu par le portail, et la quatrième n'est pas dans ce dépôt. Les trois premières sont : un appel renvoie un objet d'usage, une fonction le tarife par rapport à une copie figée du catalogue, et un document atterrit dans une base de données. La quatrième est une fonction de liste CouchDB qui produit le total de période faisant autorité, et le code qui l'appelle indique clairement que le coût brut en jetons n'est pas l'unité de crédit rapportée par le grand livre. C'est pourquoi cette page n'affiche aucun chiffre crédits par jeton ni crédits par dollar. Non parce que le calcul serait difficile, mais parce que le dépôt définit la forme de la conversion, et quelque chose d'autre en définit l'échelle.
Une seule fonction écrit chaque charge, et son étiquette source est toute la piste d'audit.
Chaque facturation sur la plateforme est un unique appel à account_module.record_ai_usage, qui écrit un document docType ai_usage et diffuse le nouveau solde. Il n'existe pas de second chemin de facturation, ce qui signifie que la liste des étiquettes source est la liste de tout ce qui vous coûte quoi que ce soit. Cela signifie aussi qu'une omission est invisible : une surface qui n'appelle jamais cette fonction est gratuite, et rien dans le code ne précise si c'était voulu ou oublié.
- Dix-sept points d'appel actifs : quinze dans ai_module, un à voice_module:3812 et un dans le proxy Xucode à http_module:327, portant seize étiquettes source distinctes entre eux. Deux des dix-sept ne peuvent jamais écrire de palier du tout, car ils ne fournissent aucun account_profile_info et la fonction lève une exception dès sa première ligne.
- Le traitement des e-mails est facturé comme submit chat sur gpt-1, via deux points d'appel de synthèse, l'un pour un corps texte et l'autre pour un corps HTML (email_module:2885 et :2898). L'enrichissement de contact atteint le même compteur via quatre méthodes ai_module appelées depuis le chemin de contact : get_business_info, is_business_contact_has_person, get_person_info et get_name_from_email_addr.
- Un appel vocal en temps réel accumule des jetons à chaque response.done et écrit un palier unique au raccroché, tarifé à voice-2, l'entrée la plus chère du catalogue. La transcription est mesurée tout autrement : 0 jeton en entrée et le nombre de caractères de la transcription retournée comme jetons de sortie, contre whisper-1. C'est ce que fait le code, et ce n'est pas un prix à la minute audio. Les deux fonctionnalités vocales sont désactivées dans la configuration.
- L'effort de raisonnement est un argument par appel, pas une fonctionnalité de forfait ni un réglage utilisateur. Quatre valeurs, chacune avec ses propres délais de requête, et internal_ai_effort est absent à la fois de config.json et de config_dev.json, si bien que chaque tâche interne retombe sur sa valeur codée en dur. L'effort n'a pas de prix propre et ne joue sur la facture qu'à travers le nombre de jetons.
La plus grande surface de chat de la plateforme vérifie votre solde et ne le débite jamais.
dashboard_chat appelle validate_credits_limit à ai_module:11513 et refuse à zéro crédit, et il n'y a de record_ai_usage nulle part dans son corps, de la ligne 11340 à la ligne 12142. Il lit le solde et ne le modifie jamais. chat_studio n'a ni le portail ni l'enregistrement : il exécute un plugin npm privé dans un NodeVM dont tout l'environnement se limite à couch, app_id, uid, userName et agent_info, et la OPENAI_API_KEY appartenant à la plateforme est injectée dans la configuration du plugin. La création et la modification de plugins AI passent par ce même constructeur. misc_module.submit_chat_gpt_prompt est un second client OpenAI sans aucune facturation. Deux limites méritent d'être signalées ici. Le paquet du constructeur est un npm privé, absent de ce dépôt, donc savoir s'il se mesure lui-même par une voie invisible ici est NON VÉRIFIÉ ; rien dans le bac à sable qui lui est confié n'en fournit une. L'absence de portail et d'enregistrement côté Xuda est vérifiée par la lecture des fichiers. Et rien nulle part n'indique si dashboard_chat est censé être gratuit ou s'il lui manque un appel.
Refuse à zéro crédit | Écrit un palier d'usage | |
|---|---|---|
| dashboard_chat, l'assistant de projet | Oui, validate_credits_limit à ai_module:11513 | Non. Rien entre les lignes 11340 et 12142 |
| chat_studio, le constructeur d'applications Studio | Aucun portail nulle part sur le chemin | Aucun enregistrement. Le plugin s'exécute dans un NodeVM avec la clé de la plateforme |
| Création et modification de plugins AI | Aucun portail. Même constructeur, même chemin | Aucun enregistrement côté Xuda de l'appel |
| misc_module.submit_chat_gpt_prompt | Aucun portail. Un second client OpenAI entièrement distinct | Aucune facturation d'aucune sorte |
| Les deux appels d'images de vêtements | Non contrôlés | Exception immédiate : pas d'account_profile_info (account_module:9477) |
Sept portes créditent un compte, et votre palier d'espace de travail n'en fait pas partie.
Le solde dépensable n'est pas un chiffre de droits. C'est un grand livre : documents d'octroi actifs moins usage enregistré, et la seule façon d'y faire entrer un crédit est un appel à record_ai_credit. Il existe exactement sept points d'appel de ce type dans cpi, et tous les sept arrivent ici comme des flèches entrantes, regroupées sur les cinq lignes au-dessus de la ligne de séparation. La sixième ligne est le palier d'espace de travail lui-même, qui atteint le droit affiché et s'arrête là, parce que les deux chemins d'octroi pilotés par forfait testent d'abord la catégorie et refusent tout ce qui n'est pas un abonnement.
Deux bassins, et un seul survit à la fin d'un mois.
Chaque document de crédit porte un kind, et il en existe deux (CREDIT_KIND, account_module:9532-9536). La dépense est prélevée en priorité sur le bassin de période, ce qui est le détail qui décide de tout le reste : le bassin qui expire est celui qui se vide en premier, si bien qu'un pack acheté est toujours là quand l'allocation de forfait est retirée. Les crédits de période sont l'allocation pour une fenêtre de facturation, et la fenêtre est la période de facture Stripe quand elle est estampillée et courante, sinon le mois calendaire.
Les mots exacts que vous recevez, et lequel est le vôtre.
_SCOPE_REASON est une table de six entrées à account_module:8934-8941. Le portail choisit l'entrée du grand livre quand la première clé de dépassement est ledger, et sinon l'entrée nommée par la portée du dépassement, avec repli sur la chaîne pool. Les refus de gel et d'accès au modèle ne proviennent pas du tout de cette table : ils portent leurs propres chaînes et leur propre block_kind. Deux surfaces reformulent le refus pour le client plutôt que de transmettre la chaîne brute, le créateur de site à ai_module:4597-4599 et l'assistant de projet à :12093. La première ligne ci-dessous, en minuscules et peu grammaticale, est la chaîne historique, et c'est celle que reçoit un compte ordinaire, car seuls Team et au-dessus peuvent enregistrer des règles, et un compte sans règles emprunte la branche ledger.
Une seule fonction, un ordre fixe, et elle échoue en laissant passer.
Chaque appel AI passe par account_module.evaluate_credit_gate(req), qui prend uid, profile_id, model et source (account_module:8955-9035). ai_module.validate_credits_limit est un adaptateur léger qui transforme un blocage en erreur portant credit_limit_error. Le gel intervient avant toute lecture d'usage, donc il agit dès le prochain appel, tandis qu'un dépassement de plafond est comparé à un chiffre mis en cache. L'accès au modèle a trois modes : off ne bloque rien, deny bloque les codes listés, allow bloque tout ce qui n'est pas listé, et une liste allow vide ne bloque rien. Les cinq plafonds sont comparés avec supérieur ou égal, si bien qu'une limite dure de N refuse dès N. Tout dépassement dur refuse avec la première raison rencontrée tout en signalant aussi les dépassements souples ; un dépassement uniquement souple renvoie block false et l'appel s'exécute.
La gestion des crédits commence à Team, et deux lignes de sa propre communication publiée en exagèrent la portée.
_is_team_tier compare le rang du forfait du compte à celui de team (free 0, pro 1, team 2 à 149 $, agency 3, enterprise_t1 à t3 de 4 à 6), et set_credit_rules refuse tout ce qui est en dessous avec la chaîne exacte « Credit management is available on the Team plan. » (:9339). get_credit_management est lisible sur n'importe quel forfait et renvoie can_edit false, ce qui explique pourquoi un compte Free ou Pro voit la page d'incitation à l'achat et non l'éditeur. Un conflit à signaler plutôt qu'à répéter : la configuration déclare min_plan « pro » sur set_credit_rules, si bien qu'un compte Pro franchit le portail de la méthode avant d'être refusé par le code. Team est l'affirmation exacte.
- Ce qui persiste réellement : une limite d'avertissement et une limite d'arrêt sur le bassin, sur chaque profil et sur chaque membre ; le gel par profil et par membre ; une liste d'autorisation ou de refus de modèle sur les deux ; deux canaux d'alerte. L'enregistrement transmet l'objet de règles complet via set_credit_rules.
- Le pourcentage n'est autorisé que sur pool, profile et member. Les plafonds de modèle et de source sont forcés en crédits absolus par le normaliseur, les valeurs au-dessus de 100 sont plafonnées à 100, et le pourcentage se calcule contre get_effective_entitlements().ai_credits, l'allocation de forfait. L'indication « environ N crédits » de l'éditeur est calculée à partir de l'octroi réel du grand livre, si bien que cette indication est une estimation et non le chiffre effectivement appliqué.
- Les puces de seuils d'alerte sont inertes. rules.alerts.thresholds est initialisé par défaut à [80, 100], normalisé, enregistré et affiché sous forme de puces à 50, 75, 80, 90 et 100 pour cent, et aucun chemin de code ne le lit. Les alertes se déclenchent sur la limite souple configurée. credit.vue:135, qui promet des alertes à ces pourcentages, est une ligne à ne pas croire.
- Les plafonds par action sont le contrôle le plus faible ici. Cinq chaînes source sont jamais transmises au portail, et seules deux d'entre elles, voice call et xucode run, correspondent à une étiquette sous laquelle un usage est réellement enregistré, si bien que les trois autres consultent une clé sans aucune dépense et ne se déclenchent jamais. L'éditeur a cessé de les exposer le 2026-08-11, ils sont conservés mais non modifiables.
Monter est facturé aujourd'hui. Descendre n'est jamais facturé, et le changement prend effet en fin de période.
La direction n'est pas déclarée par l'appelant. _change_direction la détermine, et comme les paliers ai_workspace ne portent aucun rank, le comparateur retombe sur le prix numérique (stripe_module:335-386). Les deux sens de cette comparaison ne se comportent pas du tout de la même façon. Une montée en gamme est de l'argent immédiat et un échange sur une facture payante. Une descente en gamme est un échéancier d'abonnement Stripe, rien de facturé, rien de crédité, et un marqueur que l'écran de facturation lit pour afficher un changement en attente avec un bouton d'annulation à côté.
Un point d'entrée change un palier, et il n'écrit jamais lui-même le champ.
Le palier est une seule chaîne sur le document de compte, ai_workspace_plan, portant la clé PLAN_OBJ, initialisée à free_ai_workspace à la création du client Stripe. Trois éléments le déplacent, et un seul l'écrit réellement. À retenir pour la troisième carte : pour toute autre catégorie, un identifiant de prix placeholder est transformé en un vrai prix Stripe issu du catalogue au premier achat, à partir d'une clé de recherche incluant le montant. ai_workspace emprunte une branche spécifique à :474-476 et :551-554 et lit le prix directement dans le palier de configuration, si bien que les deux identifiants TODO sont transmis à Stripe tels quels. Raisonné à partir du chemin de code, aucun achat n'a été tenté. NON VÉRIFIÉ.
- 01
Le passage en caisse appelle une méthode
checkout.vue:233-280 appelle stripe_update_plan pour chaque catégorie, et stripe_get_proration affiche l'aperçu selon la même classification, si bien que le devis affiché et la charge facturée sont calculés de la même façon. Aucun des deux n'écrit ai_workspace_plan. L'interface met à jour l'état local par catégorie et s'arrête là, et sur un changement planifié elle ne bascule délibérément pas le forfait.
- 02
Stripe échange la ligne
La ligne d'espace de travail sur l'abonnement consolidé est pointée vers le nouveau prix : le prix membre tant que l'abonnement est payant, le prix standard une fois expiré. Seule cette ligne est jamais touchée, ce qui évite qu'un changement d'espace de travail ne perturbe les lignes d'abonnement, de support ou de drive sur le même abonnement.
- 03
Un webhook écrit la chaîne
customer.subscription.updated synchronise le champ associé à la catégorie via _PLAN_FIELD_BY_CATEGORY et estampille ai_workspace_plan_changed (:358-370, :1733-1735). Rater ce webhook laisse le compte avec l'ancienne chaîne de palier alors que Stripe facture le nouveau. Le code porte une auto-réparation pour l'octroi de crédit d'abonnement, mais aucune pour ce champ, si bien que rien ne le remarque ni ne le corrige.
Neuf choses que cette page ne vous dira pas, et pourquoi.
- Chaque chiffre ici provient des copies du dépôt de config.json et config_dev.json, et la configuration maîtresse en production est connue pour diverger du dépôt, donc aucun chiffre de cette page n'est confirmé en production.
- Il n'y a ci-dessus aucun chiffre crédits par jeton ni crédits par dollar, parce que la formule est dans le dépôt et l'unité faisant autorité se trouve dans un document de conception CouchDB qui ne l'est pas. Le code recale son propre chiffre brut vers cette vue, et cette étape de calibrage est la preuve que les deux diffèrent.
- Le prix membre est une remise de 10 pour cent selon le commentaire à stripe_module:211-223, mais les montants vivent dans Stripe et aucun champ de config ne les contient, donc aucun montant membre en dollars n'est affiché.
- Les échelons à 8 $ et 45 $ portent des identifiants de prix Stripe placeholder, et ai_workspace est la seule catégorie qui contourne le mécanisme de frappe automatique, donc ni l'un ni l'autre n'a sa place sur une page avec un bouton d'achat fonctionnel pour l'instant.
- config_dev.json tarife ces deux mêmes identifiants à 1 100 $ et 3 500 $ pour 50 000 et 200 000 crédits. Le produit désigné par un identifiant dépend de la configuration chargée par le serveur.
- Le ai_credits d'un palier d'espace de travail n'est jamais transmis à record_ai_credit. Il augmente le droit affiché plutôt que le solde dépensable, établi par recherche exhaustive et non confirmé face à un compte payant réel.
- La gestion des crédits est enregistrée comme vérifiée en développement, avec une configuration de production préparée mais non déployée au 2026-07-22, et rien de lu cette session ne prouve un déploiement depuis.
- Les puces de seuil d'alerte sont stockées et jamais lues, et les plafonds par action ne sont pas modifiables et ne correspondent à une étiquette d'usage enregistrée que pour deux des cinq chaînes source jamais transmises au portail.
- La taille sur 6000_ai_workspace est de 10 737 418 240 000 octets, soit 10 000 Gio pour une étiquette de 10 To, et get_effective_entitlements la divise par 1073741824 et livre 10 000 Go.
Les questions qu'une liste de prix vous pousse à poser
Sept réponses, chacune se terminant sur la limite qu'elle rencontre. Deux d'entre elles se terminent sur quelque chose que nous n'avons pas pu confirmer du tout, et elles le disent dans le même souffle que l'affirmation elle-même.
L'enregistrement dont hérite cette page.
Ceci est l'enregistrement que le précédent document workspace_plans portait déjà dans son champ youtube, conservé ici plutôt que supprimé. Une page assemblée à partir de clés de configuration, de points d'appel et de chaînes de refus est un piètre moyen de suivre l'évolution du produit, et cet enregistrement est la partie de l'ancien document que rien dans cette réécriture ne remplace. Une règle pour le regarder. Là où l'enregistrement et cette page se contredisent sur un chiffre, c'est la page qui l'emporte, construite depuis le code source en août 2026, lue dans config.json et les modules cpi plutôt que reprise du texte précédent. Cette règle mérite sa place ici plutôt que d'être une simple politesse, car la version publiée de ce document listait six des huit paliers d'espace de travail et affichait les chiffres de crédits d'avant la refonte contre les étiquettes de stockage actuelles, ce qui laissait quatre de ses six lignes sous-estimer les crédits accordés. Elle ne comportait non plus aucun champ de prix. Un nom de palier ou un chiffre de crédits énoncés dans cet enregistrement peuvent donc être plus anciens que le palier qu'ils décrivent, et les tableaux ci-dessus reflètent ce que dit le fichier de configuration aujourd'hui.
Chaque chiffre de cette page a été lu en août 2026 dans les copies du dépôt de config.json et config_dev.json, ainsi que dans le code source des modules cpi qui les accompagnent. La configuration maîtresse en production est connue pour diverger du dépôt, donc lisez chaque chiffre comme fidèle au dépôt à cette date plutôt que comme une confirmation de production.
Ouvrez l'écran de forfait et lisez votre propre palier.
Votre palier d'espace de travail est une seule chaîne sur votre document de compte, ai_workspace_plan, portant la clé d'un palier dans le catalogue de forfaits. L'écran affiche le champ name de ce palier, ce qui explique pourquoi les mots que vous voyez portent le chiffre de crédits actuel alors que la clé en dessous peut encore porter l'ancien. Le solde affiché à côté est le grand livre, et vous savez désormais que c'est un chiffre différent, pour des raisons qui n'ont rien à voir avec ce que vous avez payé. Rien n'est facturé du simple fait de regarder. Une descente en gamme ne prélève aucun argent aujourd'hui, écrit un échéancier qui bascule en fin de période naturelle, et reste annulable jusqu'au bout. Une montée en gamme prévisualise la prochaine facture et vous indique le montant prorata avant de le facturer, et si cette charge échoue, le palier ne bouge pas. Deux points à vérifier pendant que vous y êtes. D'abord, si votre abonnement est gratuit, car le module complémentaire d'espace de travail ne s'ajoute que lorsque le forfait d'abonnement est défini et n'est pas gratuit, si bien que sur un abonnement gratuit ni ses crédits ni son stockage ne sont comptabilisés et le compte reste sur les chiffres d'abonnement. Ensuite, si l'échelon que vous consultez est l'un des deux dont l'identifiant de prix Stripe dans la configuration est encore un placeholder littéral se terminant par TODO, car la catégorie espace de travail est la seule catégorie qui ne crée pas de prix à la demande. Tout ce qui précède a été assemblé en lisant les données plutôt que le discours marketing, et l'écran que vous allez ouvrir lit les mêmes données.