Un nivel de workspace es una cadena en su cuenta, y un registro de configuración decide cuánto cuesta.
La escalera son ocho registros con categoría ai_workspace en PLAN_OBJ (config.json:2206 para el gratuito, y luego :2225, :2245, :2265, :2285, :2305, :2325 y :2345). Cada uno lleva id, name, storage, category, price, ai_credits, size, price_id y un arreglo features con siete frases de marketing, más un member_price_id en los siete peldaños de pago, y nada más. Sin rank, sin price_note, sin flags, dentro de un objeto donde otras seis categorías llevan un rank, trece llevan flags y una lleva un price_note. El nivel en sí es el campo ai_workspace_plan del documento de cuenta en xuda_accounts, con valor predeterminado free_ai_workspace cuando se crea por primera vez el cliente de Stripe (stripe_module:2213 y :4823) y acompañado de una marca de tiempo ai_workspace_plan_changed cada vez que cambia. Cada precio, cada cantidad de créditos y cada etiqueta de almacenamiento de esta página se leen directamente de esos ocho registros. La cantidad de tokens que compra un crédito, no, porque no puede serlo: la fórmula está en el repositorio, el total de uso autoritativo proviene de una función list de CouchDB que no lo está, y el código reescala uno para llegar al otro. Por eso esta página lo dice en lugar de adivinar.

Niveles ai_workspace en PLAN_OBJ de config.json
Ids de nivel cuyo número no es el de los créditos que otorgan
Puntos de llamada que acuñan créditos en el ledger, y ninguno es un nivel de workspace
Niveles cuyo price id de Stripe sigue siendo un marcador TODO
La versión de esta página que usted pudo haber leído se equivoca en cuatro puntos, y uno de ellos es el titular.
El documento publicado abre con el enrutamiento de modelos, y esa afirmación no sobrevive a una lectura de la función en la que se apoya. Otras tres de sus afirmaciones tampoco. La columna izquierda parafrasea lo que lleva esa página en lugar de citarla; la derecha es el código fuente, con el archivo y las líneas. Todo lo que sigue a este bloque se construye únicamente sobre la segunda columna.
Lo que dice la página publicada | Lo que dice el código fuente | |
|---|---|---|
| Enrutamiento de modelos | Cada paso de una construcción se asigna a un modelo apropiado, de modo que el trabajo rutinario no se factura a las tarifas más altas. | La selección automática existe en una sola función, pick_dashboard_model (ai_module:11152-11163), invocada desde una línea en la ruta del asistente de proyecto, con dos resultados posibles. Su nivel fuerte cae hacia gpt-3 porque strong_ai_model no está en config.json, así que gpt-4 y gpt-5 nunca se alcanzan de forma automática. |
| GPT-5.5 | GPT-5.5 es el modelo caro del que el enrutamiento le mantiene alejado. | GPT-5.5 no es un nombre del catálogo. Es una clave alias en config.json:625 que apunta al código gpt-5, cuyo id de modelo real es gpt-5.6-sol. El alias sigue cayendo en una entrada viva del catálogo, así que nada se factura a una tarifa obsoleta, pero el nombre no es un modelo. |
| El nivel gratuito | El workspace gratuito otorga 30 créditos de IA mensuales. | Ni mensuales ni un único otorgamiento. Una recarga de bienvenida única de 30 créditos (misc_module:938), más 1 crédito de periodo cada 24 horas para las cuentas que siguen en free_ai_workspace (account_module:9597). Los créditos de periodo no se acumulan; la recarga de bienvenida permanece hasta gastarse. |
| La tabla de planes | Una tabla de seis niveles, con créditos y almacenamiento en cada uno. | Seis de los ocho: faltan 200_ai_workspace y 1500_ai_workspace. Las cifras de créditos son las anteriores a la reestructuración, contrastadas con el almacenamiento actual, de modo que cuatro de sus seis filas subestiman los créditos, y la tabla no lleva campo de precio en absoluto. |
Los ocho niveles, exactamente como están almacenados.
En orden de precio, directamente desde config.json: free $0 por 30 créditos y 15 GB, 200_ai_workspace $8 por 200 y 100 GB, 400_ai_workspace $15 por 400 y 500 GB, 600_ai_workspace $25 por 800 y 1 TB, 1500_ai_workspace $45 por 1500 y 2 TB, 2000_ai_workspace $75 por 2500 y 3 TB, 3000_ai_workspace $115 por 4000 y 5 TB, 6000_ai_workspace $230 por 10000 y 10 TB. Los siete registros de pago llevan además un member_price_id junto al que se muestra aquí; el registro gratuito es el único sin precio para miembros. Dos limitaciones van con la tabla y no debajo de ella. La columna de almacenamiento es una etiqueta: el campo que el código realmente lee para las prestaciones es size, en bytes, y ambos pueden discrepar. Y estas son las copias del repositorio, que se sabe que divergen de la configuración maestra en producción, así que trate cada cifra como no verificada frente a la plataforma en ejecución.
Precio mensual | ai_credits en el registro | Etiqueta de almacenamiento | Price id de Stripe | |
|---|---|---|---|---|
| free_ai_workspace | 0 US$ | 30 | 15 GB | Un price id real |
| 200_ai_workspace | 8 US$ | 200 | 100 GB | price_LIVE_200_AI_WORKSPACE_TODO |
| 400_ai_workspace | 15 US$ | 400 | 500 GB | Un price id real |
| 600_ai_workspace | 25 US$ | 800 | 1 TB | Un price id real |
| 1500_ai_workspace | 45 US$ | 1500 | 2 TB | price_LIVE_1500_AI_WORKSPACE_TODO |
| 2000_ai_workspace | 75 US$ | 2500 | 3 TB | Un price id real |
| 3000_ai_workspace | 115 US$ | 4000 | 5 TB | Un price id real |
| 6000_ai_workspace | 230 US$ | 10000 | 10 TB | Un price id real |
La clave dice 600. El registro otorga 800.
En cuatro de los ocho niveles, el número del id es una etiqueta heredada y no el otorgamiento de créditos. 600 otorga 800, 2000 otorga 2500, 3000 otorga 4000 y 6000 otorga 10000. Solo free, 200, 400 y 1500 siguen coincidiendo con su propia clave. Lo ocurrido se ve en el registro: la cadena name se actualizó al número nuevo y la clave se dejó intacta, y el PlanCard del dashboard renderiza name, así que el cliente nunca ve el id. El commit 8a9b09673, del 2026-07-09, hizo la reestructuración y lo dice en su propio mensaje: dos niveles nuevos más aumentos de créditos en los peldaños 600, 2000, 3000 y 6000. Nada en el código extrae un número del id, así que el desajuste es cosmético para el runtime y peligroso solo para las personas que escriben textos al respecto.
Divida cada registro entre sí mismo y el descuento por volumen es del 42.5 por ciento, con un escalón plano en medio.
Dividir un precio entre el número del id del nivel da una curva que no existe. Dividirlo entre los ai_credits del mismo registro da la real, y es más plana de lo que sugieren los ids: de $0.0400 por crédito en el peldaño de pago más barato a $0.0230 en el más grande, un total de 42.5 por ciento menos, repartido a lo largo de siete peldaños en lugar de concentrarse en la cima.
- Los siete peldaños de pago, con el precio dividido entre los ai_credits del mismo registro: $0.0400, $0.0375, $0.03125, $0.0300, $0.0300, $0.02875 y $0.0230.
- La curva es monótona pero plana en un punto. $45 y $75 cuestan exactamente lo mismo por crédito, así que la única razón para moverse entre esos dos peldaños es el terabyte extra y el techo más alto, no una mejor tarifa.
- El beneficio para miembros es un 10 por ciento de descuento sobre el mismo producto, registrado en cada registro de pago como member_price_id y utilizado mientras la membresía esté al día, volviendo al precio estándar cuando caduca (stripe_module:211-223). Los importes viven en Stripe y ningún campo de configuración los contiene, así que esta página no imprime ninguna cifra en dólares para miembros. NO VERIFICADO.
- Solo cifras del repositorio. Se sabe que la configuración maestra en producción diverge, y config_dev.json fija esos mismos dos ids, 200_ai_workspace y 1500_ai_workspace, en $1,100 y $3,500 para productos completamente distintos.
Con una membresía gratuita, el nivel de workspace que pagó no se cuenta en absoluto.
get_effective_entitlements suma el registro del workspace a la asignación de la membresía solo cuando membership_plan está definido y no es la cadena free (account_module:677-683). Con una membresía gratuita el registro nunca se lee, así que no se suman ni sus ai_credits ni su size, y la cuenta se queda con la asignación de la membresía gratuita de 30 créditos y 15 GB, sea cual sea el nivel de workspace que tenga. El complemento de Drive, unas líneas más abajo, recibe el trato opuesto a propósito: se suma en todos los niveles de membresía, incluido el gratuito (:686-689), con un comentario que dice que retener espacio que tiene su propia línea de factura equivaldría a no vender nada. Así que la misma función contiene ambas políticas, aplicadas a dos complementos, con unas pocas líneas de diferencia. Esa misma condición de membresía de pago también controla los dos modos de imagen generada del constructor de sitios, gen_low y gen_high, que requieren cada uno una membresía de pago y un plan de workspace que no sea el gratuito (ai_module:4608-4625). La limitación está en el otro extremo del flujo, y es la que decide si esto llega a ser alcanzable: no se rastreó si el proceso de pago impide que una cuenta con membresía gratuita compre un nivel de workspace en primer lugar. NO VERIFICADO.
Membresía gratuita | Membresía de pago | |
|---|---|---|
| Los ai_credits de su nivel | No se leen. La rama en :677 nunca se abre, así que el número no se suma en ninguna parte | Se suman a la asignación de la membresía como prestación mostrada |
| El size de su nivel | Tampoco se lee, por la misma rama, así que no se suma almacenamiento | Se suma, y size es el campo en bytes, no la etiqueta storage |
| Con lo que se queda | Solo la asignación de la membresía gratuita: 30 créditos y 15 GB | La membresía más el nivel de workspace que tenga la cuenta |
| El complemento de Drive | Se suma de todos modos, en todos los niveles, incluido el gratuito (:686-689) | Se suma igual, por la misma ruta incondicional |
| Imágenes generadas en el constructor de sitios | gen_low y gen_high se rechazan ambos (ai_module:4608-4625) | Ambos modos disponibles con un plan de workspace que no sea el gratuito |
El número que se convierte en su saldo se calcula fuera de este repositorio.
Cinco etapas separan una llamada al modelo de la cifra que lee el control, y la cuarta de ellas no está en este repositorio. Las tres primeras sí: una llamada devuelve un objeto de uso, una función le pone precio contra una copia congelada del catálogo, y un documento aterriza en una base de datos. La cuarta es una función list de CouchDB que produce el total autoritativo del periodo, y el código que la invoca dice claramente que el costo bruto en tokens no es la unidad de crédito que reporta el ledger. Por eso esta página no imprime ninguna cifra de créditos por token ni de créditos por dólar. No porque la aritmética sea difícil, sino porque el repositorio define la forma de la conversión y algo más define su escala.
Una función escribe cada cargo, y su etiqueta de origen es todo el rastro de auditoría.
Cada cargo de la plataforma es una llamada a account_module.record_ai_usage, que escribe un documento con docType ai_usage y difunde el nuevo saldo. No hay una segunda vía de facturación, lo que significa que la lista de etiquetas de origen es la lista de todo lo que le cuesta algo. También significa que una omisión es invisible: una superficie que nunca la invoca es gratuita, y nada en el código fuente indica si eso se decidió o se olvidó.
- Diecisiete puntos de llamada activos: quince en ai_module, uno en voice_module:3812 y uno en el proxy de Xucode en http_module:327, que escriben dieciséis etiquetas de origen distintas entre todos. Dos de los diecisiete nunca pueden escribir un registro, porque no pasan account_profile_info y la función lanza un error en su primera línea.
- El procesamiento de correo se cobra como submit chat en gpt-1, mediante dos puntos de llamada de resumen, uno para un cuerpo de texto y otro para un cuerpo HTML (email_module:2885 y :2898). El enriquecimiento de contactos llega al mismo medidor a través de cuatro métodos de ai_module invocados desde la ruta de contactos: get_business_info, is_business_contact_has_person, get_person_info y get_name_from_email_addr.
- Una llamada de voz en tiempo real acumula tokens por cada response.done y vuelca un único registro al colgar, con precio de voice-2, la entrada más cara del catálogo. La transcripción se mide de otra forma: 0 tokens de entrada y el número de caracteres de la transcripción devuelta como tokens de salida, contra whisper-1. Eso es lo que hace el código, y no es un precio de audio por minuto. Ambas funciones de voz están desactivadas en la configuración.
- El esfuerzo de razonamiento es un argumento por llamada, no una característica del plan ni un ajuste del usuario. Cuatro valores con sus propios tiempos de espera de solicitud, e internal_ai_effort no está ni en config.json ni en config_dev.json, así que todo trabajo interno recurre a su literal fijo en el código. El esfuerzo no tiene un precio propio y mueve la factura solo a través del conteo de tokens.
La mayor superficie de chat de la plataforma comprueba su saldo y nunca lo debita.
dashboard_chat llama a validate_credits_limit en ai_module:11513 y rechaza con cero créditos, y no hay ningún record_ai_usage en todo su cuerpo, de la línea 11340 a la 12142. Lee el saldo y nunca lo mueve. chat_studio no tiene ni el control ni el registro: ejecuta un plugin de npm privado dentro de una NodeVM cuyo entorno completo es couch, app_id, uid, userName y agent_info, y la OPENAI_API_KEY de la plataforma se inyecta en la configuración del plugin. La construcción y modificación de plugins de IA pasan por ese mismo constructor. misc_module.submit_chat_gpt_prompt es un segundo cliente de OpenAI sin facturación de ningún tipo. Dos limitaciones corresponden a este bloque. El paquete del constructor es de npm privado y no está en este repositorio, así que si se mide a sí mismo por alguna vía invisible aquí queda NO VERIFICADO; nada en el entorno aislado que se le entrega se lo permite. La ausencia de control y de registro del lado de Xuda está verificada leyendo los archivos. Y en ningún lugar se indica si dashboard_chat debe ser gratuito o si le falta una llamada.
Rechaza con cero créditos | Escribe un registro de uso | |
|---|---|---|
| dashboard_chat, el asistente de proyecto | Sí, validate_credits_limit en ai_module:11513 | No. Nada entre las líneas 11340 y 12142 |
| chat_studio, el constructor de apps de Studio | Ningún control en toda la ruta | Ningún registro. El plugin se ejecuta en una NodeVM con la clave de la plataforma |
| Construcción y modificación de plugins de IA | Sin control. Mismo paquete constructor, misma ruta | Ningún registro del lado de Xuda en la llamada |
| misc_module.submit_chat_gpt_prompt | Sin control. Un segundo cliente de OpenAI por completo | Ninguna facturación de ningún tipo |
| Las dos llamadas de imágenes de camisetas | Sin control | Lanza error primero: sin account_profile_info (account_module:9477) |
Siete puertas acuñan un crédito, y su nivel de workspace no es ninguna de ellas.
El saldo gastable no es una cifra de prestaciones. Es un ledger: documentos de otorgamiento activos menos el uso registrado, y la única manera de que un crédito entre en él es una llamada a record_ai_credit. Hay exactamente siete de esos puntos de llamada en cpi, y los siete llegan aquí como flechas entrantes, agrupadas en las cinco filas por encima de la línea. La sexta fila es el propio nivel de workspace, que llega a la prestación mostrada y se detiene ahí, porque ambas rutas de otorgamiento guiadas por el plan comprueban primero la categoría y rechazan todo lo que no sea una membresía.
Dos reservas, y solo una de ellas sobrevive al final del mes.
Cada documento de crédito lleva un kind, y hay dos (CREDIT_KIND, account_module:9532-9536). El gasto sale primero de la reserva de periodo, y ese es el detalle que decide todo lo demás: la reserva que caduca es la que se agota primero, así que un paquete comprado sigue ahí cuando la asignación del plan se retira. Los créditos de periodo son la asignación de una ventana de facturación, y la ventana es el periodo de la factura de Stripe cuando hay uno vigente y registrado, y el mes calendario en caso contrario.
Las palabras exactas que recibe, y cuál es la suya.
_SCOPE_REASON es un mapa de seis entradas en account_module:8934-8941. El control elige la entrada del ledger cuando la primera clave de incumplimiento es ledger, y en caso contrario la entrada indicada por el alcance del incumplimiento, con la cadena pool como respaldo. Los rechazos por congelamiento y por acceso a modelo no provienen de ese mapa: llevan sus propias cadenas y su propio block_kind. Dos superficies reescriben el rechazo para el cliente en lugar de pasar la cadena en bruto: el constructor de sitios en ai_module:4597-4599 y el asistente de proyecto en :12093. La primera línea de abajo, en minúsculas y sin gramática correcta, es la cadena heredada, y es la que recibe una cuenta común, porque solo Team y superiores pueden guardar reglas y una cuenta sin reglas toma la rama del ledger.
Una función, un orden fijo, y falla permitiendo el paso.
Cada llamada de IA pasa por account_module.evaluate_credit_gate(req), que recibe uid, profile_id, model y source (account_module:8955-9035). ai_module.validate_credits_limit es un adaptador ligero que convierte un bloqueo en un error que lleva credit_limit_error. El congelamiento se sitúa antes de leer cualquier uso, así que actúa en la siguiente llamada, mientras que un incumplimiento de tope se compara con una cifra en caché. El acceso a modelo tiene tres modos: off no bloquea nada, deny bloquea los códigos listados, allow bloquea todo lo que no esté listado, y una lista allow vacía no bloquea nada. Los cinco topes se comparan con mayor o igual, así que un límite duro de N rechaza en N. Cualquier incumplimiento duro rechaza con el primer motivo y aun así reporta los blandos; un incumplimiento solo blando devuelve block false y la llamada se ejecuta.
La gestión de créditos empieza en Team, y dos líneas de sus propios textos publicados la exageran.
_is_team_tier compara el rango del plan de la cuenta con el rango de team (free 0, pro 1, team 2 a $149, agency 3, enterprise_t1 a t3 de 4 a 6), y set_credit_rules rechaza cualquier plan inferior con la cadena exacta "Credit management is available on the Team plan." (:9339). get_credit_management se puede leer en cualquier plan y devuelve can_edit false, y por eso una cuenta Free o Pro ve la página de presentación y ningún editor. Un conflicto que conviene señalar en lugar de repetir: la configuración declara min_plan "pro" en set_credit_rules, así que una cuenta Pro pasa el control del método y luego es rechazada por el código. Team es la afirmación veraz.
- Lo que realmente se guarda: un límite de aviso y uno de detención sobre la reserva, sobre cada perfil y sobre cada miembro; congelamiento por perfil y por miembro; una lista allow o deny de modelos en ambos; dos canales de alerta. Al guardar se envía el objeto de reglas completo a través de set_credit_rules.
- El porcentaje solo se permite en pool, profile y member. Los topes de model y source se fuerzan a créditos absolutos mediante el normalizador, los valores por encima de 100 se recortan a 100, y el porcentaje se resuelve contra get_effective_entitlements().ai_credits, la asignación del plan. La sugerencia "About N credits" del editor se calcula en cambio a partir del otorgamiento vivo del ledger, así que es una estimación y no el número que se aplica.
- Los chips de umbral son inertes. rules.alerts.thresholds toma por omisión [80, 100], se normaliza, se guarda y se representa como chips de 50, 75, 80, 90 y 100 por ciento, y ninguna ruta de código lo lee. Las alertas se disparan a partir del límite blando configurado. credit.vue:135, que promete alertas en esos porcentajes, es una línea que no conviene creer.
- Los topes por acción son el control más débil de todos. Solo cinco cadenas de origen llegan al control, y solo dos de ellas, voice call y xucode run, coinciden con una etiqueta bajo la que realmente se registra uso, así que las otras tres consultan una clave con cero gasto y nunca se activan. El editor dejó de exponerlas el 2026-08-11, y se conservan pero no son editables.
Subir se cobra hoy. Bajar no se cobra nunca, y se aplica al final del periodo.
Quien llama no declara la dirección. _change_direction la deduce, y como los registros ai_workspace no llevan rank, el comparador recurre al precio numérico (stripe_module:335-386). Los dos lados de esa comparación no se comportan igual en absoluto. Una mejora de plan es dinero ahora y un cambio de ítem sobre una factura pagada. Una reducción es una programación de suscripción en Stripe: nada se cobra, nada se acredita, y queda un marcador que la pantalla de facturación lee para mostrar un cambio pendiente con un botón de cancelar al lado.
Un único punto de entrada cambia un nivel, y nunca escribe el campo por sí mismo.
El nivel es una cadena en el documento de la cuenta, ai_workspace_plan, que contiene la clave de PLAN_OBJ y se fija en free_ai_workspace cuando se crea por primera vez el cliente de Stripe. Tres cosas lo mueven, y solo la última lo escribe. Vale la pena llevar esto a la tercera tarjeta: para todas las demás categorías, un price id de marcador se acuña como un precio real de Stripe a partir del catálogo en la primera compra, con una clave de búsqueda que incluye el importe. ai_workspace toma una rama especial en :474-476 y :551-554 y lee el precio directamente del registro de configuración, así que ambos ids TODO se entregan a Stripe tal cual. Deducido de la ruta de código, no se intentó ninguna compra. NO VERIFICADO.
- 01
El proceso de pago llama a un método
checkout.vue:233-280 llama a stripe_update_plan para cada categoría, y stripe_get_proration genera la previsualización mediante la misma clasificación, así que la cotización que se le muestra y el cargo que recibe se calculan de la misma forma. Ninguno de los dos escribe ai_workspace_plan. La interfaz actualiza el estado local por categoría y se detiene ahí, y ante un cambio programado deliberadamente no cambia el plan.
- 02
Stripe cambia el ítem
El ítem de workspace en la suscripción consolidada se apunta al precio nuevo: el precio de miembro mientras la membresía esté al día, el precio estándar cuando caduca. Solo se toca ese ítem, y eso es lo que evita que un cambio de workspace altere las líneas de membresía, soporte o drive que están en la misma suscripción.
- 03
Un webhook escribe la cadena
customer.subscription.updated sincroniza el campo al que la categoría se asigna mediante _PLAN_FIELD_BY_CATEGORY y estampa ai_workspace_plan_changed (:358-370, :1733-1735). Si se pierde ese webhook, la cuenta conserva su cadena de nivel anterior mientras Stripe factura el nuevo. El código incluye una autorreparación para el otorgamiento de créditos de membresía y ninguna para este campo, así que nada lo detecta y nada lo repara.
Nueve cosas que esta página no le va a contar, y por qué.
- Todas las cifras aquí provienen de las copias del repositorio de config.json y config_dev.json, y se sabe que la configuración maestra en producción diverge del repositorio, así que ningún número de esta página está confirmado en producción.
- No hay ninguna cifra de créditos por token ni de créditos por dólar en todo lo anterior, porque la fórmula está en el repositorio y la unidad autoritativa está en un documento de diseño de CouchDB que no lo está. El código reescala su propia cifra bruta hacia esa vista, y ese paso de calibración es la prueba de que ambas difieren.
- El precio de miembro es un 10 por ciento menos, según el comentario en stripe_module:211-223, pero los importes viven en Stripe y ningún campo de configuración los contiene, así que no se imprime ninguna cifra en dólares para miembros.
- Los peldaños de $8 y $45 llevan price ids de marcador de Stripe, y ai_workspace es la única categoría que se salta el mecanismo de acuñado de respaldo, así que ninguno de los dos debería estar todavía en una página con un botón de compra funcional.
- config_dev.json fija esos mismos dos ids en $1,100 y $3,500 por 50,000 y 200,000 créditos. Qué producto nombra un id depende de qué configuración cargó el servidor.
- Los ai_credits de un nivel de workspace nunca se pasan a record_ai_credit. Elevan la prestación mostrada y no el saldo gastable, algo establecido mediante un grep exhaustivo y no confirmado contra una cuenta de pago real.
- La gestión de créditos figura como verificada en dev, con la configuración de producción preparada y no desplegada al 2026-07-22, y nada de lo leído en esta sesión demuestra un despliegue posterior.
- Los chips de umbral de alerta se guardan y nunca se leen, y los topes por acción no son editables y coinciden con una etiqueta de uso registrada solo en dos de las cinco cadenas de origen que llegan al control.
- El size de 6000_ai_workspace es de 10,737,418,240,000 bytes, es decir 10,000 GiB frente a una etiqueta de 10 TB, y get_effective_entitlements lo divide entre 1073741824 y entrega 10,000 GB.
Las preguntas que una lista de precios le obliga a hacerse
Siete respuestas, cada una terminando en la limitación con la que se topa. Dos de ellas terminan en algo que no pudimos confirmar en absoluto, y esas dos lo dicen en la misma frase que la afirmación.
El recorrido guiado que hereda esta página.
Esta es la grabación que el documento anterior de workspace_plans ya llevaba en su campo youtube, conservada aquí en lugar de descartada. Una página armada a partir de claves de configuración, puntos de llamada y cadenas de rechazo es una mala forma de ver el producto en movimiento, y el recorrido guiado es la parte del documento antiguo que nada en esta reescritura sustituye. Una regla para verlo. Cuando el recorrido y esta página discrepen sobre un número, la página es la que se construyó a partir del código fuente en agosto de 2026, leída de config.json y de los módulos cpi en lugar de copiada de la redacción anterior. Esa regla se gana su lugar aquí y no es mera cortesía, porque la versión publicada de este documento listaba seis de los ocho niveles de workspace e imprimía las cifras de créditos anteriores a la reestructuración frente a las etiquetas de almacenamiento actuales, lo que dejaba cuatro de sus seis filas subestimando los créditos que otorgan. Tampoco llevaba campo de precio alguno. Así que un nombre de nivel o una cifra de créditos pronunciados en el recorrido pueden ser más antiguos que el registro que describen, y las tablas de arriba son lo que dice hoy el archivo de configuración.
Todas las cifras de esta página se leyeron en agosto de 2026 de las copias del repositorio de config.json y config_dev.json y del código fuente de los módulos cpi que las acompañan. Se sabe que la configuración maestra en producción diverge del repositorio, así que interprete cada número como exacto respecto al repositorio en esa fecha y no como una confirmación de producción.
Abra la pantalla de planes y lea su propio registro.
Su nivel de workspace es una cadena en el documento de su cuenta, ai_workspace_plan, que contiene la clave de un registro del catálogo de planes. La pantalla renderiza el campo name de ese registro, y por eso las palabras que ve corresponden a la cifra de créditos actual mientras la clave subyacente puede seguir llevando la antigua. El saldo impreso a su lado es el ledger, y a estas alturas ya sabe que es un número distinto por razones que nada tienen que ver con lo que pagó. Mirar no cuesta nada. Una reducción de plan no cobra dinero hoy, escribe una programación que se aplica al fin natural del periodo y sigue siendo cancelable hasta que llegue. Una mejora previsualiza la próxima factura y le indica el importe prorrateado antes de cobrarlo, y si ese cobro falla el nivel no cambia. Dos cosas que conviene revisar mientras esté ahí. Primero, si su membresía es gratuita, porque el complemento de workspace solo se suma cuando el plan de membresía está definido y no es gratuito, así que con una membresía gratuita no se cuentan ni sus créditos ni su almacenamiento y la cuenta se queda con las cifras de la membresía. Segundo, si el peldaño que está leyendo es uno de los dos cuyo price id de Stripe en la configuración sigue siendo un marcador literal terminado en TODO, porque la categoría de workspace es la única que no acuña un precio bajo demanda. Todo lo que está por encima de esta línea se armó leyendo los registros y no el marketing, y la pantalla que está a punto de abrir lee esos mismos registros.