Commander vivía hasta hoy en dos dominios — runcommander.com para la landing de marketing y commander.dekimu.com para el panel de cliente. Desde hoy, eso es un solo dominio, un solo repo, una sola cookie. El panel de cliente se mueve a runcommander.com/dashboard, espejado en commander.es/dashboard para castellano. El subdominio de dekimu.com se retira.
El split original tenía sentido sobre el papel: marketing en un dominio top-level de marca, panel en el subdominio de empresa, ops del fundador intactas. En la práctica, cada salto de cliente cruzaba una frontera de cookie, cada componente compartido vivía en dos sitios, y cada deploy era un problema de coordinación. Dos repos, dos proyectos en Vercel, dos sets de envs. La forma más simple — un repo, un proyecto, dos dominios aliasados — hace lo mismo con un tercio de las piezas móviles.
Todas las superficies de panel — license, instances, run history, ops, settings — se mudaron al repo commander-landing. El slug se consolidó de `commander-app` a `commander`. La cookie de auth pasó a llamarse `commander_access`. El token del agente se renombró de `CLAUDE_CODE_OAUTH_TOKEN` a `COMMANDER_AGENT_TOKEN` con un fallback legacy de un ciclo, así los workers existentes no se rompen en el corte. Type-check verde en los cuatro repos tocados; los treinta y nueve tests del worker siguen pasando.
La arquitectura correcta es la que tiene menos costuras que el cliente puede sentir. Teníamos dos costuras. Ahora tenemos cero.
Nada — ese es el punto. Las URLs antiguas de commander.dekimu.com devuelven una redirección de un solo salto al nuevo path. El servidor de licencias mantiene la misma forma y firma los mismos payloads con la misma clave. Los workers existentes hacen heartbeat contra la nueva URL tras un único cambio de env. El webhook de Stripe se re-apunta cuando reactivamos el checkout. Desde el lado del usuario, runcommander.com es ahora todo el producto: pricing por delante, panel por detrás, un solo login entre los dos.
El doc de decisión está en el log de arquitectura; el brief de migración y el mapa completo del sistema están publicados. El propio Commander sigue gateado por los triggers de activación que escribimos hace semanas — el colapso de dominio era siempre una precondición, no un lanzamiento.