Historia de releases

Lo que vino antes

Cambios visibles, en público. Cada versión apunta a lo más importante; el detalle vive en los commits del repo.

  1. v0.13.0 · CRUD en cualquier mes y fechas estimadas

    • Podés crear, editar y borrar gastos e ingresos en meses pasados, actuales o futuros desde el dashboard, el chat y Telegram; las líneas se agrupan por la fecha real del movimiento.
    • Si no indicás fecha en el chat, Clara usa hoy y la marca como estimada; en CSV/PDF conserva la fecha del extracto.
    • El agente actúa con menos confirmaciones en altas claras y mantiene confirmación en importaciones masivas y borrados.
  2. v0.12.10 · Telegram: CSV y PDF como documento

    • Podés mandar un export CSV del banco como archivo en Telegram; Clara lo interpreta igual que en el chat web.
    • Endurecimos la detección de PDF/CSV (incluye octet-stream con extensión .pdf/.csv) para que no caigan en “tipo de archivo no soportado”.
  3. v0.12.9 · Perfil y acceso en user.trefolio.com

    • Con la cuenta unificada del IdP, Configuración → Perfil y acceso enlaza el portal /account en user.trefolio.com (nombre, contraseña, Google, passkeys); Preferencias e integraciones siguen en Clara.
    • El nombre y la foto del perfil se sincronizan desde el IdP junto con el cupo diario.
  4. v0.12.8 · Idioma del IdP alineado con trefolio

    • Si venías de trefolio con la cookie `trefolio_ui_locale` (por ejemplo alemán o francés), Clara ahora la usa al abrir user.trefolio.com antes que solo el selector ES/EN local.
  5. v0.12.7 · Suscripción solo en user.trefolio.com

    • Configuración → Suscripción ahora solo enlaza la mejora y la gestión de facturación al IdP; desapareció el checkout Stripe Supporter local.
    • Las donaciones únicas siguen por Stripe en Clara; el webhook de Stripe solo registra donaciones.
    • El cupo diario se sincroniza desde el IdP en segundo plano (throttle ~60s) para que una baja en Stripe se refleje sin volver a iniciar sesión.
  6. v0.12.6 · Respuestas en el idioma del mensaje

    • El agente infiere el idioma principal de tu último mensaje (incluido texto de adjuntos o voz transcrita) y responde en ese idioma; si no alcanza, usa tu preferencia guardada (es/en).
  7. v0.12.5 · Login unificado: vincular cuenta existente

    • Si ya tenías usuario en Clara con Google o correo y entrabas por user.trefolio.com, NextAuth cortaba con «cuenta de Google no vinculada». Ahora enlazamos el proveedor trefolio-id al mismo usuario por email, igual que en Will.
  8. v0.12.4 · Login unificado: mismo idioma en user.trefolio.com

    • Si Clara estaba en castellano pero el navegador prefería otro idioma, la pantalla de acceso del IdP a veces abría en francés u otro idioma. Ahora mandamos el idioma de la UI de Clara en el parámetro OIDC `ui_locales`, así user.trefolio.com te recibe en el mismo idioma que venías usando.
  9. v0.12.3 · Ajustes: Pro y facturación en user.trefolio.com

    • Con la cuenta unificada del IdP, la tarjeta de Suscripción en Configuración ofrece «Pasá a Trefolio Pro» y «Gestionar facturación» apuntando a user.trefolio.com (upgrade y portal de Stripe) en lugar de quedar vacía cuando el upsell viejo de Supporter está apagado.
    • El modal del tope diario ahora dice explícitamente «Ver planes en user.trefolio.com» en el botón del enlace al IdP.
  10. v0.12.2 · Cuenta unificada de trefolio: Telegram y el tope diario

    • Si entrás con la cuenta de user.trefolio.com, guardamos el identificador del IdP y lo usamos para enlazar Telegram también ahí, así el mismo usuario queda mapeado entre productos.
    • Cuando tocás el tope de mensajes, el modal y Telegram te mandan al upgrade de Trefolio Pro en el IdP; el upsell viejo de Stripe Supporter queda apagado mientras el IdP unificado esté configurado.
  11. v0.12.1 · Compartir un viaje vuelve a funcionar de punta a punta

    • Si mandabas el link de un viaje compartido a una amiga, al apretar "Sumarme por Telegram" se cortaba con "No pudimos procesar tu pedido". El proxy nos estaba pisando el endpoint público y mandando el formulario al login. Ya pasa de largo y la invitación termina como toca: en una conversación nueva con Clara en Telegram.
    • Y ahora también podés pedirle a Clara que comparta el viaje sin abrir la web: decile "compartí Málaga con Cyn" o "mandame un link del cumple" y ella mintea uno fresco y te lo pega en el chat para que lo reenvíes. El link vence a los 30 días, igual que el de la web.
  12. v0.12.0 · Clara te cuenta qué está haciendo en Telegram

    • Mientras Clara piensa, ahora ves un mensaje cortito que se va actualizando con cada paso: "Anotando el gasto…", "Buscando tus bancos…", "Preparando gráfico…". Sentís que pasa algo en vez de mirar los tres puntitos.
    • El mensaje desaparece apenas llega la respuesta final, así no te queda ruido en el chat.
    • Misma idea que ya teníamos en el chat web: ahora Telegram también muestra cada acción a medida que ocurre.
  13. v0.11.3 · Cada gasto guarda el día — y desde una captura, también

    • Antes, si le mandabas una captura del banco, Clara podía cargar los movimientos con la fecha de hoy aunque la transacción fuera de hace una semana. Ahora lee la fecha real de cada línea (con día, mes y año) y la guarda como corresponde.
    • Si en la captura la fecha no se ve, está cortada o es ambigua ("abr", "ayer", sin año), te pregunta antes de cargar en vez de inventar el día.
    • Lo mismo aplica a tickets, PDFs y CSVs: la fecha que aparece en el comprobante es la que queda en tu mes, no la del momento en que la cargás.
  14. v0.11.2 · Si Clara se confunde el id del evento, igual te carga el gasto

    • Después del fix anterior, el modelo seguía colando el id del banco como si fuera id de evento (un CUID válido pero del namespace equivocado), y volvía a fallar con "el evento no existe".
    • Ahora si el `eventId` no resuelve a un viaje real tuyo, la línea se carga igual como gasto suelto y el agente recibe una nota explicando el error para que no lo repita en el próximo turno.
    • Misma lógica para `paidByUserId`: si lo que pasa el modelo no es un participante real del viaje, fallback a vos como pagador en vez de bloquear la carga.
  15. v0.11.1 · Cargar gastos por Telegram dejó de fallar por eventos fantasma

    • Si pasabas una captura del banco por Telegram y le decías "sí, cargá", a veces Clara intentaba pegar cada gasto a un evento inventado (un slash, una coma, el nombre del último viaje) y todo fallaba con "el evento no existe".
    • Ahora el agente solo puede pasar `eventId` y `paidByUserId` reales — el id que devuelve la propia herramienta — y le dijimos en el prompt que si no hay viaje activo, omita el campo en vez de inventar uno.
  16. v0.11.0 · Compartí un viaje y repartan los gastos al cierre

    • Las billeteras de evento ahora se comparten: desde el detalle del viaje generás un link y se lo mandás a quien venga. Se puede revocar cuando quieras y, por seguridad, el link en claro solo se ve una vez al generarlo.
    • Quien abre el link puede sumarse de dos formas: con su cuenta de Clara (un click y el viaje aparece en su panel) o solo por Telegram, sin crear cuenta. En el segundo caso le abrimos una conversación con el bot y queda como invitado del viaje.
    • Cada gasto del viaje guarda quién pagó. Cuando son varios participantes, Clara te pregunta 'pagaste vos o lo puso Marina?' antes de cargar, así no quedan gastos huérfanos a la hora de repartir.
    • Vista previa del reparto en vivo: en la pantalla del viaje ves total, parte que toca por cabeza, lo que pagaste vos, tu saldo (te deben / debés) y las transferencias sugeridas. Se actualiza con cada gasto.
    • Al cerrar el viaje, cada participante recibe por Telegram el resumen exacto: cuánto sale por cabeza, qué pagaste, y cuánto le tenés que pasar a quién (o cobrarle). El organizador absorbe el centavo de redondeo para que las cifras queden limpias.
    • Si te invitaron solo por Telegram y querés tener cuenta completa después, hay un upgrade en `/upgrade-guest` que te pide email + contraseña y mantiene todo lo que ya cargaste en el viaje.
  17. v0.10.0 · Borrar cuenta con 30 días para arrepentirte

    • Cuando pedís borrar la cuenta desde Configuración, ahora queda en cola por 30 días: nada se pierde y, si te arrepentís, iniciás sesión y tocás "Restaurar mi cuenta".
    • Mientras estás en cola: el chat, las APIs y los recordatorios diarios de Telegram quedan en pausa, y tu PAT de MCP deja de funcionar para que ningún cliente AI siga tocando datos que pediste borrar.
    • Si tenés Supporter activo, lo cancelamos en el momento que apretás borrar — no esperamos a los 30 días, así no se cobra otro mes que no vas a usar.
    • A los 7 y al último día te avisamos por email para que no te pierdas la ventana de gracia. Si te arrepentiste, el botón te lleva directo a recuperar la cuenta.
    • Si lo querés borrar definitivamente sin esperar, hay una opción explícita: marcás "Saltarse la gracia" en el formulario y eliminamos todo al instante.
    • Pasados los 30 días, una limpieza diaria borra todo en cascada: bancos, plantillas, gastos, mensajes, ahorros, tokens MCP y passkeys. La política de privacidad y los términos suben a 1.1 con este cambio.
  18. v0.9.0 · Recordatorios diarios por Telegram

    • Si durante el día no cargaste nada, Clara te escribe por Telegram a las 20:00 de tu zona horaria para preguntarte si tenés algún ingreso o gasto para registrar.
    • Se activa solo para usuarios con Telegram vinculado y se apaga con un switch en Configuración → Integraciones → Telegram.
    • Los mensajes los redacta Clara con IA pero no gastan tu cupo diario de consultas: son mensajes iniciados por el sistema, no por vos.
    • Respeta tu país: la zona horaria se infiere del que elegiste en el onboarding; si no hay match, el recordatorio sale a las 20:00 UTC.
  19. v0.8.1 · Telegram volvió a responder

    • Arreglamos un bug que dejaba a Clara muda en Telegram: el webhook tiraba 500 en cada mensaje (texto, foto o nota de voz) por una librería de PDF que se cargaba donde no debía. Ya está resuelto.
  20. v0.8.0 · Billeteras de evento — agrupá los gastos de un viaje en una sola línea

    • Armá una billetera para tu próximo viaje (o casamiento, cumple, evento puntual) con un nombre y un rango de fechas. Mientras esté abierta, los gastos siguen viviendo en su mes real, pero el dashboard los agrupa en una sola fila colapsable con el total.
    • Clara detecta que estás de viaje: cuando cargás un gasto cuya fecha cae adentro del rango del evento, lo suma automáticamente y te avisa el total acumulado. Si la descripción no pega (Spotify, alquiler), te pregunta antes de etiquetarlo.
    • Al cerrar el evento elegís cómo imputar la plata: 'todo a un mes' (default — ideal para viajes que cruzan meses) o 'cada gasto en su mes real'. Si después necesitás reabrirlo, los gastos vuelven a sus meses originales sin perder nada.
    • Cobertura completa: agente y MCP exponen las nuevas herramientas (`createEvent`, `closeEvent`, `attachExpenseToEvent`, etc.), todas con confirmación explícita en MCP cuando mueven datos.
    • Paridad UI: todo lo del chat se hace también con clicks. En cada fila del mes hay un menú para etiquetar o sacar de un evento al toque. Desde la página de la billetera tenés 'Sumar gastos' para enganchar varios gastos sueltos juntos, y editás nombre, fechas y color sin pasar por la consola.
  21. v0.7.4 · Lanzamiento LinkedIn: MCP endurecido, Telegram + PDF, i18n técnica

    • MCP per-user: rate limit por usuario (Upstash) + borrados con `confirm: true` alineados al chat.
    • MCP público: `?lang=es|en` / Accept-Language y `serverInfo.version` tomada del changelog.
    • Telegram: documentos PDF (texto + páginas raster), comandos `/` registrados por idioma (en/es).
    • Tokens de API: prefijo `clara_pat_` (se acepta `ada_pat_` legacy). README, diagrama Mermaid y screenshots en `public/screenshots/`.
    • CI: Postgres de servicio para que `prisma migrate diff` falle el PR si hay drift de migraciones.
    • Errores de API, tools del agente y tests anti-drift de español en capa API/AI para usuarios en inglés.
  22. v0.7.3 · Clara limpia movimientos duplicados de la pila de ahorros

    • Decile 'borrá los movimientos duplicados de mis ahorros' y Clara primero te muestra los grupos detectados (mismo tipo, monto, moneda, fecha y nota) para que confirmes antes de tocar nada.
    • Cuando confirmás, borra todos los extras de cada grupo en una sola transacción, conserva el más antiguo y reajusta la pila — sin riesgo de quedar descuadrada.
    • Solo afecta movimientos manuales (`MANUAL_DEPOSIT`/`MANUAL_WITHDRAWAL`). Los del sistema (aporte mensual, cobertura de deuda, derivación de sobrante) ya tienen unicidad por mes y se ignoran.
  23. v0.7.2 · Telegram te recibe con una guía paso a paso

    • Cuando vinculás Telegram por primera vez, Clara genera la bienvenida con IA: te saluda, te pregunta si arrancás por un ingreso o un gasto y te tira 3-4 ejemplos para que toques o reescribas.
    • Mientras la cuenta no esté seteada (sin moneda confirmada o sin movimientos del mes), cada turno te empuja amablemente al siguiente paso usando las mismas tools que ya conocés (addIncomeLine, addMonthLine, setPrimaryCurrency).
    • Si ya tenías la cuenta lista por la web, el saludo estático y el menú inline siguen igual — la guía solo aparece cuando hace falta.
  24. v0.7.1 · Clara también borra y resta de tus ahorros desde el chat

    • Decile 'borrá ese movimiento de ahorros' o 'sacá el depósito que cargué mal' y Clara lo borra del ledger (solo movimientos manuales — los del sistema se deshacen rehaciendo la decisión del mes).
    • 'Restale 50 a la pila' o 'saqué 200 de los ahorros' ahora dispara un retiro manual sin que tengas que ir a la página de ahorros.
    • Mismo poder desde MCP: cualquier cliente AI tuyo puede listar la pila, sumar, restar y borrar movimientos manuales con tu permiso.
  25. v0.7.0 · Cumplimiento GDPR: consentimiento, exportación, borrado y contacto

    • Política de privacidad y términos reescritos al detalle (Art. 13 GDPR): bases legales por dato, sub-procesadores con país, transferencias internacionales con SCC, retenciones numéricas y tus derechos uno por uno.
    • Aceptación demostrable: ahora guardamos `acceptedTermsAt` y la versión exacta que firmaste. Si cambian materialmente los términos te pedimos re-aceptar antes de seguir, sin trampas.
    • Settings → Tu información: descargá un dump JSON con todo lo que tenemos de vos (Art. 15) y borrá tu cuenta cuando quieras (Art. 17), con re-autenticación y cancelación automática de Stripe.
    • Canal público de contacto: nuevo formulario en /contact con captcha de Cloudflare, sin exponer ningún email personal del responsable.
    • Bandeja /admin/contact para que el equipo gestione consultas de privacidad, abuso, bugs y soporte con marcado de leído / respondido / archivado.
  26. v0.6.0 · Ingresos múltiples: sueldos, freelance y cobros puntuales

    • Sumá ingresos puntuales del mes (freelance, bonos, devoluciones, regalos) sin pisar el sueldo: cada cobro es una línea independiente, con fecha real y banco opcional.
    • Múltiples ingresos recurrentes con plantillas, igual que los gastos: declarás sueldo + alquiler que cobrás + retainer una sola vez y cada mes nuevo aparecen como pendientes para confirmar cuando entra la plata.
    • Multi-moneda con tipo de cambio congelado: si te pagan en USD y tu moneda principal es ARS, Clara te guarda el rate del momento del cobro y muestra el total convertido sin mentir.
    • Decile a Clara por chat: "cobré $250 de freelance", "me transfirieron el sueldo", "me llegó el bono" — registra la línea en el mes en curso, deduplica si ya estaba y te avisa.
    • Nueva página /incomes para ver y editar tus plantillas de ingreso, espejo de la página de gastos.
  27. v0.5.0 · Ahorro: pila global con ledger e integración total

    • Nueva sección /ahorro: pila de ahorro con balance al día, depósitos y retiros manuales, y movimientos del sistema (aporte mensual, sobrante de cierre, cobertura de deuda) explicados uno por uno.
    • Cada mes podés registrar un aporte mensual informativo: suma a tu ahorro, queda atado al mes, pero no toca el saldo del mes ni aparece como gasto.
    • Si el mes anterior te cierra en negativo, Clara te pregunta antes de abrir el nuevo: cubrir todo o lo que se pueda con tu ahorro, o pasarlo como deuda al mes que viene. Sin sorpresas.
    • Todo manejado también por chat y por MCP: la agente puede ver tu pila, agregar movimientos manuales, fijar el aporte del mes y cubrir deuda con ahorro.
  28. v0.4.2 · Mismos env vars de email que trefolio

    • Clara ahora lee `APP_BASE_URL` y `APP_SESSION_SECRET` además de `NEXT_PUBLIC_APP_URL` / `NEXTAUTH_SECRET`. Si self-hosteás Clara junto a trefolio, podés reutilizar las mismas variables sin renombrar nada.
    • Los emails de verificación siguen saliendo por Resend con el mismo `RESEND_API_KEY` y `RESEND_FROM_ADDRESS` que ya configuraste en trefolio.
    • Se documentó la equivalencia en `.env.example` para que al levantar un nuevo deploy sepas exactamente qué pegar.
  29. v0.4.1 · Passkeys + ojito para mostrar la contraseña

    • Login con passkey: huella, Face ID o llave USB. Más rápido y más seguro que la contraseña — y no hay nada que tipear.
    • Podés crear, renombrar y borrar tus passkeys desde Configuración. Cada usuario puede tener varias (laptop, celular, llave física).
    • Los inputs de contraseña ahora tienen un ojito para mostrar/ocultar lo que escribís en login, registro y configuración.
  30. v0.4.0 · Telegram en primera fila + login con captcha y email verificado

    • Telegram pasa a ser una feature destacada en la home: Clara entiende foto, voz y texto en Telegram con el mismo cerebro y cupo que la web.
    • El registro y el login con email/contraseña ahora pasan por Cloudflare Turnstile (captcha invisible) para frenar bots.
    • Al registrarte te mandamos un correo con un enlace firmado (JWT, vence en 24 hs) vía Resend; tenés que verificar el email antes de poder iniciar sesión con contraseña.
    • El login con Google sigue igual: si Google ya marca el email como verificado, no pedimos un paso extra.
  31. v0.3.3 · Build: versión de API de Stripe alineada al SDK

    • El cliente de Stripe vuelve a usar la versión de API que tipa el paquete instalado, así el deploy en Vercel compila de nuevo.
  32. v0.3.2 · Telegram: mensajes largos y gráficos sin cortar el envío

    • Los mensajes HTML ya no se parten en medio de una negrita: Telegram dejaba de entregar la respuesta entera cuando rechazaba el parseo.
    • Si igual falla el HTML, reintentamos el mismo fragmento en texto plano (sin perder el resto del mensaje).
    • Si una URL de gráfico falla, seguimos con el texto en lugar de frenar toda la respuesta.
  33. v0.3.1 · Gráficos en WhatsApp y respuestas con formato en Telegram

    • Cuando el agente llama a renderChart, Clara arma URLs PNG (QuickChart) y las manda antes del texto por WhatsApp (Twilio) y por Telegram.
    • En Telegram las respuestas del agente usan HTML seguro: las **negritas** del modelo se ven bien sin Markdown crudo.
    • Podés desactivar las imágenes salientes con CLARA_OUTBOUND_CHART_IMAGES=0 o usar QuickChart self-hosted con CLARA_QUICKCHART_BASE_URL.
  34. v0.3.0 · Clara también en Telegram

    • Vinculá Telegram desde Configuración → Integraciones: abrimos el bot con un enlace `t.me` y un código corto guardado en tu cuenta (Telegram solo acepta hasta 64 caracteres en `?start=`).
    • Mismo cerebro que la web: la IA, las herramientas y el cupo diario son compartidos entre web, WhatsApp y Telegram. Mandá fotos del banco, notas de voz o texto, y Clara responde en castellano rioplatense o inglés según tu idioma.
    • Los chats privados quedan listos hoy. Soporte de grupos (con menciones tipo `@clara`) llega pronto.
    • Si antes el bot no reaccionaba al tocar Iniciar, era por ese límite: ahora el flujo de vinculación usa un código que sí entra en el enlace profundo.
  35. v0.2.0 · Plan Supporter y donaciones

    • Cuando llegás al límite diario con Clara aparece un modal con dos opciones: donar lo que puedas (aporte único) o subir al plan Supporter por €7,99 al mes para llevar las consultas a 200 diarias.
    • Pagos vía Stripe Checkout. El número de tarjeta nunca pasa por Clara. Cancelás la suscripción cuando quieras desde Configuración → Suscripción.
    • Self-hosting sigue 100% gratis. La página de upgrade y el modal solo aparecen cuando un admin habilita la feature flag `quota_upsell` y las claves de Stripe están configuradas.
  36. v0.1.1 · Negritas legibles en WhatsApp

    • Las respuestas del agente usaban **negritas** estilo Markdown; WhatsApp espera *una sola* asterisco. Ahora convertimos el formato al enviar, así los totales se ven en negrita en lugar de asteriscos sueltos.
  37. v0.1.0 · Apertura pública de Clara

    • Landing pública con SEO completo y soporte para AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended).
    • Servidor MCP público en /api/mcp para que AI assistants conozcan Clara.
    • Servidor MCP autenticado por usuario en /api/mcp/user con tokens MCP gestionados desde Configuración.
    • llms.txt y llms-full.txt para descubrimiento por LLMs.
  38. v0.0.9 · Open Banking con Revolut

    • Conexión automática de solo lectura con bancos europeos vía Open Banking.
    • Sincronización por mes y matching contra plantillas planificadas.
    • UI nueva en Configuración para conectar/desconectar y configurar el banco por defecto.
  39. v0.0.8 · WhatsApp como inbox principal

    • Notas de voz transcritas por Whisper y clasificadas por el agente.
    • Respuestas en audio vía OpenAI TTS subidas a Vercel Blob.
    • Linking de número vía código de un solo uso desde Configuración.