# Changelog

## 2.1.0

- `cord login` y el asistente ya no piden comparar un código: autorizas en el navegador y la terminal se conecta sola. El CLI abre un regreso de un solo uso en 127.0.0.1, atado a su `state` y a PKCE; la llave solo se entrega con el código del navegador y el verificador que nunca sale de tu equipo. Por SSH, en CI, con `--no-browser` o con `--json` se confirma con el código como antes, y con un Cord que no conoce el regreso también.
- En la página de autorizar eliges la organización y ves los permisos. La llave del proyecto que el asistente guarda en tu `.env` ahora es una llave restringida de prueba (`rk_test_`) con un permiso por recurso; por defecto, lo mínimo que usan los archivos de `cord init`.
- El asistente detecta en tus dependencias HubSpot, Shopify, Slack, QuickBooks Online, Xero, Google Sheets y Microsoft Teams y te ofrece conectarlas desde el navegador: la pantalla se marca sola al terminar. Cord solo responde el estado de cada conexión.
- Al terminar, el asistente ofrece dejar el MCP de Cord en Claude Code, Cursor y VS Code. Solo escribe la dirección del servidor: la primera vez, tu agente te pide autorizar en Cord con OAuth. Nuevos `cord mcp add`, `cord mcp remove` y `cord mcp tutorial`.
- La pantalla de Astro de `cord init` sugiere un componente de React que envuelve `CordProvider` y `CordBuilder` con `client:load`: un hijo de una isla no entraba a su árbol.
- Preparado para integrar con IA (la IA lee tu proyecto y adapta la integración, con herramientas encerradas en la carpeta y una lista blanca de comandos). Cord todavía no lo enciende: mientras, el asistente integra con plantillas.

## 2.0.0

- `npx @flouviahq/cli` abre el asistente en pantalla completa: barra de Cord, bienvenida que detecta la carpeta y el framework, y un menú para continuar, cambiar de framework, ver qué va a hacer o revisar «Privacidad y datos». Mientras trabaja muestra las tareas con su avance, consejos, la acción en curso y cuatro pestañas: Estado, Registro (cada archivo y comando), Novedades (lo último del roadmap de Cord) y Visualizador. Al terminar deja el resumen y los webhooks escuchando en tu servidor local, y escribe `CORD-INTEGRACION.md` con lo que cambió, sin ningún valor de tu `.env`.
- El asistente necesita una terminal de al menos 80×28; si es más chica lo dice y sigue en cuanto cabe. `--simple` abre el asistente en línea de antes.
- Requiere Node 22 o posterior.
- La pantalla completa va en su propio archivo de `dist/chunks/`: los comandos sueltos no la cargan.

## 1.3.1

- `cord login` revoca la llave del CLI que reemplaza en el perfil: reconectar el mismo equipo ya no deja una llave viva sin uso. Solo se revoca una llave del CLI; una `sk_test_` que pegaste a mano con `--key` no se toca.
- Al aprobar el login, Cord revoca también tus llaves del CLI de antes de la 1.3 con el mismo nombre de equipo que llevan una semana sin usarse.

## 1.3.0

- `cord listen` ya no deja despierta la base de Cord: mientras no llegan eventos, la consulta se responde sin tocarla. Consulta cada segundo después de un evento y cada 4 mientras no llega nada.
- `cord listen` confirma cada reenvío: si tu servidor no responde, el evento vuelve a la cola y se reintenta a los 5, 15, 30 y 60 segundos. Antes se daba por entregado al recogerlo.
- El secreto de firma de `cord listen` es el mismo en cada sesión de la llave: reiniciar no obliga a cambiar el `.env`.
- `cord listen` cierra su sesión también al cerrar la terminal, corta el reenvío a los 15 segundos y acepta `--skip-verify`, `--print-secret` y `--close-all`. Abrir más de 5 sesiones con una llave cierra la más vieja en lugar de fallar.
- Un nombre de evento que no está en el catálogo es un error con sugerencia (antes escuchaba todos).
- `cord init` en Astro crea una ruta que funciona (antes respondía 500) y el proxy de Elements; Next.js Pages Router recibe su propia ruta con el cuerpo crudo; Laravel y Python reciben un verificador que no truena con una firma mal formada.
- `cord login` espera los 10 minutos completos, guarda la llave antes de verificarla e identifica el equipo con un id propio. La llave del CLI no cuenta en el tope de llaves del plan.
- `cord logout` revoca la llave en Cord. Nuevo `cord status` con permisos, vencimiento y perfil; `--profile` y `CORD_PROFILE` para varias cuentas.
- Nuevos `cord logs tail`, `cord api`, `cord open`, `cord completion` y `cord trigger --list`. `events tail` muestra también los eventos que disparas.
- `--json` en todos los comandos, `--yes`, `--debug` y `--no-color`; `cord init --framework --no-install` y `cord setup --no-wait` para CI. Errores a stderr y códigos de salida 0, 1, 2 y 130.
- Los errores se clasifican por código: una llave vencida pide `cord login` y deja de reintentar; sin red, reintenta sin cerrar tu sesión.
- Opciones desconocidas o que no aplican al comando se rechazan con sugerencia, y cada comando tiene su ayuda (`cord <comando> --help`).
- El CLI habla español, inglés, portugués, francés y alemán según tu sistema o `CORD_LANG`.
- Avisa una vez al día si hay una versión nueva (`CORD_NO_UPDATE_CHECK=1` lo apaga). En Windows, la configuración vive en `%APPDATA%`.

## 1.2.1

- `cord init` en Laravel, Django, Flask y FastAPI deja un verificador de firma sin dependencias en lugar de sugerir los SDK de PHP y Python, que todavía no están publicados.

## 1.2.0

- `npx @flouviahq/cli` sin comando abre el asistente: conecta la terminal, configura la cuenta con IA, integra el proyecto (instala el SDK con tu gestor de paquetes, crea las rutas y escribe el `.env`) y deja los webhooks escuchando, con menús, indicadores de progreso y un resumen final.
- Al autorizar desde el asistente, Cord puede crear también una Secret Key de prueba para el proyecto y el asistente la guarda en tu archivo de entorno ignorado por git.
- `cord listen` guarda el secreto de la sesión con `--env-file .env.local`.
- Reconectar el mismo equipo revoca su llave anterior del CLI.
- Todos los comandos con la nueva interfaz; sigue sin dependencias en tiempo de ejecución.

## 1.1.0

- `cord login` inicia sesión desde el navegador con un código de confirmación: la terminal recibe una llave restringida de prueba (90 días) sin copiar nada. `--no-browser` imprime la dirección; `--api-key` sigue aceptando una llave pegada.
- Nuevo `cord setup`: propone la configuración de la cuenta (perfil, marca, impuestos, catálogo y plantillas) a partir de tu sitio, una descripción y tu lista de precios. Se aprueba en el navegador y la terminal muestra el resultado.
- `cord init` sugiere `cord setup` cuando la cuenta todavía está vacía.
- El navegador solo se abre con direcciones del mismo origen que la API.

## 1.0.0

- `cord init`, `login`, `listen`, `trigger`, `simulate` y `events tail`.
