# Auditoría EQUIPITELLO vs Servidor IA (.16)

**Fecha:** 2026-07-12  
**EQUIPITELLO:** `100.78.198.98` (Tailscale) — IDEs + Bridge `:8095`  
**Servidor lab IA:** `192.168.1.16` / `100.69.11.89` — Docker + servicios persistentes

## Principio de segregación (objetivo)

| EQUIPITELLO | Servidor .16 |
|-------------|--------------|
| Cursor + VS Code (UI agente) | Supervisor multiagent `:8787` |
| Bridge móvil `:8095` (puente Tailscale) | Evolution WhatsApp, RAG, Ollama pesado |
| Lectura JSONL chats en disco | Cron HTTP, workers, colas |
| SFTP uploadOnSave (extensión IDE) | Portal lab `:9080`, chatbot-unified |
| Tailscale cliente | Tailscale + Docker Compose |

**Regla:** Si el proceso debe seguir vivo con el PC apagado o sin IDE → **.16**. Si solo tiene sentido junto al IDE → **EQUIPITELLO**.

---

## Inventario actual

### EQUIPITELLO (correcto aquí)

| Servicio | Puerto | Notas |
|----------|--------|-------|
| cursor-mobile-bridge | 8095 | Hub, Mirror, Vault, Telegram adapter |
| Cursor IDE | — | agent-transcripts en `~/.cursor/projects` |
| VS Code + Copilot | — | transcripts Puter/extension |
| XAMPP local | 80/443 | Desarrollo PHP (no prod SiteGround) |
| Tailscale | — | Funnel opcional para webhook Telegram |

### Servidor .16 (correcto aquí)

| Servicio | Puerto | Compose / ruta |
|----------|--------|----------------|
| multiagent-supervisor | 8787 | `xzonassite/ops/multiagent-supervisor/deploy/` |
| Evolution API (WhatsApp) | 8080 | `docker-compose.evolution.yml` |
| Lab xzonas (portal) | 9080 | según deploy lab |
| Ollama / embeddings | 11434 | si está en compose supervisor |
| RAG / índices | — | supervisor data dirs |

### Duplicidades / malas decisiones detectadas

1. **Ollama en ambos equipos** — Si EQUIPITELLO tiene Ollama local para `explainWithOllama`, duplica RAM. **Migrar inferencia pesada solo a .16**; bridge usa `supervisor-remote`.
2. **Supervisor tunnel desde xzonassite** — El túnel PHP en prod apunta a .16; correcto. No duplicar supervisor en EQUIPITELLO.
3. **Polling Telegram + Webhook** — Con Funnel activo, desactivar `TELEGRAM_BRIDGE_POLLING=false` para evitar doble procesamiento.
4. **Mirror `projectPath` fijo en poll** — Corregido: ya no ancla feed a un solo proyecto.
5. **Apps launcher health** — Corre en bridge (EQUIPITELLO); health de servicios .16 debe consultar Tailscale IP `100.69.11.89`, no `localhost` del iPhone.
6. **Docker en EQUIPITELLO** — No instalar; usuario confirmó cliente sin Docker.
7. **Evolution en EQUIPITELLO** — El compose cliente solo apunta a .16; QR solo en servidor.

### Servicios que faltan o deberían migrarse a .16

| Candidato | Estado | Acción |
|-----------|--------|--------|
| Evolution WhatsApp | Compose en .16 | RDP + `docker compose up -d` + QR |
| Cron HTTP xzonassite | Prod SiteGround + ops HTTP | Mantener prod; lab cron en .16 si aplica |
| chatbot-unified workers | Parcial local | Panel PHP en htdocs; workers/colas → .16 |
| RAG reindex masivo | Supervisor .16 | Ya centralizado |
| Ollama explain bridge | Puede estar local | Apuntar solo a remote AI |

### Servicios que deben quedarse en EQUIPITELLO

- Bridge + Hub + Mirror + Vault (leen disco local IDE)
- Extensiones Cursor (SFTP, Serena MCP local)
- `htdocs` mirror F6 / desarrollo
- Tailscale Funnel (expone bridge, no mover a .16)

---

## Checklist operador

### Telegram webhook (Funnel)

```powershell
cd C:\xampp\htdocs\cursor-mobile-bridge
.\tools\setup-telegram-funnel.ps1
```

Variables `.env` bridge:

```
TELEGRAM_BRIDGE_POLLING=false
TELEGRAM_WEBHOOK_URL=https://<tu-machine>.ts.net/api/telegram/bridge
TELEGRAM_WEBHOOK_SECRET=<opcional>
```

### Evolution QR en .16

```powershell
.\tools\deploy-evolution-server16.ps1
```

Luego RDP a .16 → `http://100.69.11.89:8080/manager` → escanear QR.

### Reiniciar bridge tras cambios

```powershell
.\cursor-bridge-manager.ps1 -Restart
node tools/hub-verify.mjs
```

---

## URLs móvil (Tailscale)

| Recurso | URL |
|---------|-----|
| Hub 3D | `http://100.78.198.98:8095/hub` |
| Mirror fullscreen | `http://100.78.198.98:8095/mirror?v=20260712d` |
| Vault credenciales | `http://100.78.198.98:8095/vault` |
| Apps | `http://100.78.198.98:8095/apps` |
| Supervisor | `http://100.69.11.89:8787` |

---

## Riesgos residuales

- Funnel requiere Tailscale activo en EQUIPITELLO; si cae, volver a `TELEGRAM_BRIDGE_POLLING=true`.
- Vault expone .env completos: solo Tailscale + token bridge (uso personal operador).
- Chats SDK vs IDE: Mirror agrupa ambos bajo pestaña «Cursor»; clasificación en disco sigue separada.
