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)
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(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: 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)
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.