Changelog

Historial de versiones de AI Tasker. No es un texto escrito a mano: sale del historial real de los repositorios del producto, con la fecha de cada release y los cambios de cada una.

AI Tasker unreleased

  • feat(mcp): generador de la seccion Tools del README del servidor MCP + gate de drift (core c747743)
  • feat(seo): auditoria mecanica de las guias + hoja de datos editorial (core 0383238)

AI Tasker 1.1.8

  • fix(mcp): la extension _meta del manifiesto cabe en el limite de 4 KB del registro (core 0a6b9fe)

AI Tasker 1.1.7

  • fix(mcp): namespace reverse-DNS en el manifiesto (dev.theboomer/ai-tasker) (core 7ec3f56)

AI Tasker 1.1.6

  • fix(e2e): calentamiento antes de la bateria y documentacion de la 1.1.5 (core 3861f80)
  • fix(mcp): el validador del manifiesto usa el schema vigente y consulta al registro (core b0e1532)
  • feat(mcp): manifiesto del Registry con el nombre real del dominio y el schema vigente (web a3600ea)

AI Tasker 1.1.5

  • fix(deploy): el health check exige la version publicada, no solo un 200 (core aba19bd)
  • fix(seo): description del manifiesto MCP dentro del limite del schema oficial (web 643820b)

AI Tasker 1.1.4

  • fix(release): el aviso de imagenes solo aparece si api o mcp siguen en version anterior (core 1e1d8cc)
  • feat(seo): fecha de revision visible con <time datetime> en home y precios (web 802b0d8)
  • feat(seo): publica el manifiesto MCP oficial (server.json) y lo enlaza desde llms.txt y .well-known (web ddda89e)

AI Tasker 1.1.3

  • feat(scripts): deploy-images.sh publica API y MCP desde la rama release con guarda de tres senales (core a9959a6)
  • feat(seo): imagen OG, dateModified, fichas de integracionriquas y cache corto (web 568f01f)

AI Tasker 1.1.2

  • fix(mcp): los codigos de tarea se resuelven con el workspace de la API key (servidor MCP 7901982)

AI Tasker 1.1.1

  • fix(release): la asercion de los marcadores de version miraba en el repo equivocado (core 2660dd1)
  • fix(mcp): list_projects y create_project aceptan el workspace por defecto (servidor MCP eec9154)

AI Tasker 1.1.0

  • fix(release): la version se publica en release aunque la rama ya exista (core 8f1c9ac)
  • feat(seo): generador del catalogo de tools, estrategia SEO/GEO y locks sincronizados (core bdd9c36)
  • fix(health): el require del package.json resolvia a /package.json y /health devolvia 500 (api 94dc692)
  • fix(attachments): escaneo basico local cuando no hay ClamAV (api 19d2a02)
  • fix(openapi): el servidor publico del spec era http://localhost:4000 (api 2db7550)
  • feat(health): el MCP expone la version del producto (servidor MCP 5ce51c2)
  • fix(mcp): la version que anuncia el MCP sale del package.json (servidor MCP 292733a)
  • fix(mcp): handshake valida la API key y las tools usan el workspace de la clave (servidor MCP c6baa13)
  • fix(seo): el shell del dashboard no debe indexarse (dashboard 4cfd006)
  • feat(seo): pagina de precios real, 404 en vez de soft-404 e i18n de integraciones (web d9054ec)

AI Tasker 1.0.0

  • feat(scripts): verificación cerrada post-migración (Clerk + ledger two-phase en prod) (core 209dffc)
  • feat(deploy): script de despliegue con guardas + estado real de Mongo, backups y repos (core ab84267)
  • fix(deploy): el despliegue comprueba que el tag del registro apunta a la imagen pedida (core f3709c9)
  • feat(ops): scripts del customer de Stripe en el alta y del cupon colgante (core a012ebb)
  • feat(ops): codigo promocional anclado al customer y cupon en la primera compra (core daff840)
  • feat: auth triple strategy (Clerk JWT / x-api-key / Bearer atkr_) + modelo ApiKey + upsert User + rutas /api/apikeys + 404/error handler + CORS multi-origin (api 9022415)
  • fix: soft delete real (deleted/deletedAt/archived), auth en DELETE, IDOR ai.js resuelto con checks de workspace, tokens atomicos $inc + refund, CREATE_TASK coste 0, whitelist PUT, move sincroniza children + depth con subtree, Gemini por header y modelo v1beta, salida LLM validada, 404/error handler (api 4bd0a06)
  • feat: POST /api/tasks acepta status validado (creación directa en columna del Kanban) (api a5b5984)
  • feat(fase4): referrals reales (code/verify/claim, 3 verificados → 50% pack) + Stripe token packs (checkout sessions + webhook raw con firma, acreditación idempotente por purchaseId) + /api/me y /api/tokens/{packs,balance,checkout,webhook} + campo referralDiscount en User + tests (27/27) + openapi actualizado (api 33a10b7)
  • feat(ai): fallback DeepSeek (OpenAI-compatible) tras Gemini vía callLlm + env vars; log de error Stripe en checkout (api c5d17ba)
  • feat(ai): /api/ai deshabilitado por defecto (AI_ENABLED!=true → 503 AI_SERVER_DISABLED) — modelo nexo: los agentes traen su propio LLM; tests deterministas sin red (api e569e79)
  • feat(ai-011): decision engine tipado /api/decide — Laya (laya-ts, embebido, $0) + Jev (OpenRouter Decisions API), gate DECISION_ENGINE_ENABLED independiente de AI_ENABLED (nexo: sin generación, solo choice/noul/score con probabilidades), router auto con fallback y métricas, requireTokens DECISION=5 tras validación, openapi + 5 tests deterministas sin red (32/32) (api f27ad2c)
  • fix(ai-011): Laya Router con loader local — checkpoint único sirve todas las claves de routeo (english/multilingual/typed-decisions) sin intento de descarga HF; fixes E2E HTTP detectado por route() al elegir 'english' en texto ES ambiguo (api 4f23115)
  • feat(clickup-parity): sprints CRUD + backlog filter + deps + comments + body markdown (api cd665ab)
  • feat(proyectos-v2): jerarquía Workspace→Project→Task + campos ricos + actores por canal + TaskLink (api 667b5f6)
  • feat(v2): Workspace.slug para URLs /w/:wsSlug + GET /:idOrSlug (api 7953c9f)
  • fix: discriminador estricto ObjectId vs slug (24 hex) — isValidObjectId acepta cualquier string de 12 bytes y confundía slugs como proyectos-qa con ObjectIds (api f440837)
  • fix(auth): capturar req.auth.userId ANTES del spread — @clerk/express lo expone como getter de prototipo y { ...req.auth } lo perdía → ensureUser(undefined) → 500 en toda la ruta Clerk de producción (los tests no la ejercitaban por usar x-test-clerk-id) (api 5927459)
  • feat(equipo-v3): invitaciones por email, team humano/agente y perfil editable (api 515d837)
  • feat(billing): facturación por unidad (2 €/mes) — asientos, checkout suscripción, webhooks y congelado 402 (api 2e1ca8f)
  • fix(deploy): GET / responde 200 — el health check de Coolify sonda la raíz y marcaba el deploy como failed (api 5288472)
  • fix(decisions): LAYA_MODEL_DIR con pesos ausentes → ENGINE_UNAVAILABLE, no 500 (api 4eb5eb0)
  • feat(tokens): ledger two-phase de cargos — reserva pending, cierre atómico y reconciliador (api 3e8c5dc)
  • fix(api): JSON malformado responde 400 INVALID_JSON, no 500 (api 28b51ed)
  • feat(referrals): GET /api/referrals informa si ya fuiste referido (api dc1d390)
  • feat(tasks): historial de actividad por tarea y GET /api/tasks/:id/activity (api 2425824)
  • feat(workspaces): espacio privado de bienvenida para cada cuenta nueva (api a7c12ce)
  • feat(projects): subproyectos anidados y sprints que cruzan proyectos del workspace (api 7d9bb8c)
  • feat(tasks): assignee=me resuelve al llamante según su credencial (api 4873885)
  • feat(tasks): assignees acepta "me" — el agente se autoasigna sin conocer su id (api d597555)
  • feat(webhooks): agentes multi-workspace y eventos firmados (api ead981a)
  • feat(onboarding): registrar agentes autonomos con cuota free (api 358c40c)
  • feat(linking): vincular workspace de agente con humano (api be51320)
  • feat(billing): PlanCatalog + ledger de operaciones coordinadas + uso/lead self-hosted (api 846108c)
  • feat(x402): registrar settlements del piloto (api 83c3ede)
  • feat(lifecycle): ciclo de vida 7+7 completo, wallet, adjuntos y notas de proyecto (api 889f53a)
  • feat(enforcement): cobertura de operaciones HTTP/MCP, export ZIP del feed y retencion 30d (api 68d3a67)
  • feat(credits): código de afiliado aleatorio, créditos regalo a ambas cuentas, sin descuento en factura (api 0ef047e)
  • fix(credits): el body de las rutas POST /api/credits no se parseaba y la afiliacion nunca pudo aplicarse (api 275bb34)
  • feat(credits): el checkout de packs crea y adjunta el customer de Stripe (api 5da2eb3)
  • fix(auth): resuelve y persiste el email del usuario desde la Backend API de Clerk (api 9fdfbfc)
  • fix(auth): reemite el codigo de afiliado heredado del clerkId (api dc7c132)
  • fix(auth): parsear la forma snake_case de la Backend API de Clerk (api be116b5)
  • fix(credits): sincronizar el email del customer de Stripe al reutilizarlo (api 40657dd)
  • fix(credits): aplicar el cupon del customer a la sesion de checkout (api e595821)
  • fix(credits): leer el cupon del customer en la forma real de Stripe (api 9856cfc)
  • feat(openapi): documentar la superficie de creditos y detecting sus routers (api db4004c)
  • feat(credits): retira el descuento de factura por referidos (500+500 creditos es el modelo) (api 1ca2b83)
  • feat(referrals): la afiliacion publica creditos, no un umbral de descuento (api c2b00aa)
  • fix(stripe): valida la firma del webhook contra una lista de secretos (api 68e30a0)
  • fix(billing): el checkout de asientos aplica el cupon del customer (api 510dfe7)
  • fix(billing): un unico customer de Stripe por persona (api 7f9a597)
  • feat(billing): el customer de Stripe se crea en el alta de humano y de agente (api 8a2abd2)
  • feat(billing): el cupon llega a la primera compra en los tres flujos de compra (api 217630e)
  • feat(billing): la suscripcion se registra con el evento que llegue (api f010ecb)
  • feat: rewrite MCP server — SDK 1.x (McpServer/registerTool + zod), split client/tools, Bearer atkr_ auth obligatorio, 10 tools alineados al backend real (workspaces, tasks CRUD, move, delete, 3 AI), errores 402/503 como isError con refund, README de configuración (servidor MCP c46e59e)
  • refactor(fase nexo): retirar tools ai_* (el agente MCP es el LLM); README + nota AI_ENABLED; v0.3.0 (servidor MCP 81cb78e)
  • feat(ai-011): MCP tool decide — decisiones tipadas (choice/noul/score) vía /api/decide (Laya/Jev, sin generación — coherente con nexo); README + v0.4.0 (servidor MCP f2941a6)
  • feat: doble transporte MCP (stdio + Streamable HTTP) — estándar grupo1-4; HTTP: POST/GET/DELETE /mcp + /health, auth Bearer atkr_ por request (AsyncLocalStorage, nunca del entorno del server), sesiones por Mcp-Session-Id con TTL 30min, registro via onsessioninitialized; stdio intacto con check de clave al arranque; E2E real vs backend (initialize→tools/list→create_task→decide laya→close, 401 sin clave, clave falsa por-request propagada al backend); v0.5.0 + scripts/e2e-http.mjs (servidor MCP 322f105)
  • fix(docker): COPY --from=build /app/dist absoluto — BuildKit resolvía ./dist contra la raíz del stage y fallaba la imagen (servidor MCP 3d5b773)
  • feat(clickup-parity): herramientas de sprints, comentarios y campos completos — v0.6.0 (servidor MCP 4603594)
  • feat(v0.7.0): proyectos + tareas v2 + relaciones tipadas (servidor MCP efa0ea3)
  • feat(v0.8.0): nexus entiende subproyectos y sprints multi-proyecto (servidor MCP 21cc10a)
  • feat(e2e): el agente se autoasigna por transporte real — 13/13 re-ejecutable (servidor MCP 21dcc79)
  • feat(mcp): herramientas de webhooks (servidor MCP edd9a9c)
  • feat(discovery): expose service info for agent onboarding (servidor MCP 443cfe4)
  • feat(onboarding): publicar alta autonoma desde MCP (servidor MCP df8ff81)
  • feat(linking): exponer link-token por MCP (servidor MCP 05e955a)
  • feat(x402): añadir piloto opt-in para MCP (servidor MCP f6176bd)
  • feat(mcp): advertencias de lifecycle 7+7 y reorganizacion de tools (servidor MCP 9f9e5b3)
  • feat(mcp): contrato de warnings de lifecycle en client y tests de contratos (servidor MCP bbe9ce0)
  • feat(mcp): herramientas de créditos (balance, packs, applyReferral, spend) (servidor MCP 74a5a9a)
  • fix(mcp): las tools de creditos no reenviaban el Authorization y no tenian annotations (servidor MCP 7a5aaa2)
  • feat: dashboard React19+Vite+TS con Tailwind v4+shadcn, Clerk auth, i18n es/en, theme system/light/dark, Kanban drag&drop con CRUD, gestión de API keys y placeholder tokens (dashboard bf8be1c)
  • feat(fase4): página Tokens — saldo/tier/uso IA, packs con descuento de referido, checkout Stripe, tarjeta de referidos (código/copiar/claim) e i18n es+en (dashboard b92d2f3)
  • feat: vistas Kanban/Backlog/Sprints + panel de detalle de tarea (dashboard 6586493)
  • feat(dash-v3): gestión de equipo, canje de invitaciones, perfil y agentes con bio (dashboard 5040173)
  • feat(billing-v3): página de Facturación — resumen de asientos, banner de pago fallido y checkout por suscripción (dashboard 3f9dca3)
  • feat(dash): canje de código de referido y menú lateral colapsado (dashboard 51bdb62)
  • feat(dash): columna derecha en la tarea — historial, comentarios y relacionados (dashboard b101081)
  • feat(dash): menú accesible en móvil, login centrado y aterrizaje en el espacio privado (dashboard e9c2da8)
  • feat(dash): árbol de subproyectos y sprints que se llenan buscando o pegando la URL (dashboard 7208473)
  • feat(task): un responsable puede ser un agente, elegido desde la UI (dashboard d2dab3f)
  • feat(dashboard): recarga configurable y gestion de agentes (dashboard 31b0409)
  • feat(dash): selector de vista Kanban/Lista con preferencia por proyecto (dashboard 8ec202d)
  • feat(dash): vistas Calendario y Gantt derivadas del mismo Task[] del proyecto (dashboard ab3e9ea)
  • feat(dash): panel wallet (saldo + top-up), notas de proyecto y planificacion sprint determinista (dashboard 6a3fee5)
  • feat(frontend): código de afiliado en credits, perfil Clerk conectado, tabs project, sin descuento (dashboard 0d91b1d)
  • feat(pages): _redirects con fallback SPA para despliegue en Cloudflare Pages (dashboard eb18ef3)
  • fix(dashboard): el menu lleva a la pagina de creditos y se retira el claim legacy (dashboard 1b4be5f)
  • fix(dashboard): la pagina legacy /tokens aplica codigos con el mecanismo de creditos (dashboard 5702ed2)
  • fix(dash): el copy de referidos promete creditos, no un 50 % de descuento (dashboard abb6725)
  • feat(dash): la version del producto se ve en el pie del dashboard (dashboard b8037e8)
  • feat(fase5): landing Astro SSR — es/en con routing y hreflang, hero/how/features/pricing/CTA al dashboard, meta+OG+canonical+JSON-LD, sitemap.xml y robots.txt SSR, build y smoke test OK (web 5e15d4e)
  • feat(landing): reposiciona AI Tasker como capa de coordinación agent-first (web ac80d08)
  • feat(web): créditos regalo sin descuento, hero con animaciones, llms.txt y sitemap actualizados (web 12fa585)
  • feat(cloudflare): adapter @astrojs/cloudflare para Pages SSR, wrangler.jsonc y lockfile (web bb3e965)
  • fix(astro): resolver site con loadEnv de Vite para el build de Cloudflare (web 4ecc2a2)
  • fix(astro): site con loadEnv de Vite y sin probe temporal (web 6d8d6a8)
  • fix(cloudflare): vars en wrangler.jsonc y defaults de URL reales (site, dashboard) (web 369c5d2)
  • fix(web): el copy de afiliacion no anuncia un maximo de 3 referidos (web 48565b6)
  • feat(web): meta de version y version en el pie del sitio (web 94758c4)

Los cambios se generan desde los commits de tipo feat, fix, perf y refactor de cada release. Los commits de documentación y de chores no se publican.

Guías · /llms.txt