Documentación de Mentat — en evolución continua.
OperaciónEntorno local

Entorno local

Todo el desarrollo y el QA E2E corren contra el suite de emuladores de Firebase (Auth, Functions, Firestore, Storage, Hosting). Nunca contra prod.

Levantar el stack

Emuladores

pnpm emulators        # buildea functions + arranca el suite

Espera a ver “All emulators ready”. UI en http://127.0.0.1:4000.

Sembrar datos

pnpm seed:emulator    # admin@demo.test / password123 + org-demo
pnpm seed:ontology    # ontología de ejemplo (opcional)
pnpm seed:objects     # objetos de ejemplo (opcional)

La app

pnpm --filter @mentat/web dev    # con NEXT_PUBLIC_USE_FIREBASE_EMULATORS=true

Login: admin@demo.test / password123.

Cargar el piloto de referencia

node scripts/pilot/load-config.mjs   # Ontología + Actions + DataSources del piloto
node scripts/pilot/e2e-pilot.mjs     # E2E con asserts (ingesta CSV + acciones)

Tests

pnpm -r typecheck                       # los 4 proyectos
pnpm --filter @mentat/functions test    # unit (sin emulador)
# integration + rules tests requieren el emulador corriendo

Gestión de procesos entre sesiones

⚠️

Antes de levantar emuladores o el dev server, verificá puertos ocupados por sesiones anteriores (4000/5001/8080/9099/9199/3000). Los procesos huérfanos y un .next/ corrupto son la causa #1 de falsos fallos. Matá los PIDs de esos puertos antes de relanzar.

# Windows: liberar un puerto
Get-NetTCPConnection -LocalPort 8080 -State Listen | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }

El Functions emulator es inestable en Windows al recargar el bundle. Si una callable deja de responder (“Failed to load function”), reiniciá el emulador y re-sembrá. No rebuildees el bundle con el emulador corriendo.