# Arranque automático — EQUIPITELLO

Auditoría: 2026-06-22 (pre-reinicio). JSON: `data/startup-audit-pre-reboot.json`

---

## Resumen rápido (qué arranca al login)

| Componente | Mecanismo | Estado | Icono bandeja |
|------------|-----------|--------|---------------|
| **Cursor Bridge** (8095) | Tarea `CursorBridgeAtLogon` (+25s) | ✅ Activo | Tarea `CursorBridgeTray` ✅ |
| **RoyalBroker PM2** (8086) | `Startup\RoyalBrokerStartup.cmd` | ✅ Activo | HKCU `RoyalBrokerTray` |
| **CaptaJaus PM2** (3000) | Mismo `pm2 resurrect` | ✅ (vía PM2) | HKCU `CaptaJausTray` |
| **ALimpiezas IA** (8090) | Tray arranca uvicorn si caído | ✅ | HKCU `ALimpiezasTray` → icono verde **AL** |
| **PM2Tray** (tarea antigua) | Solo CaptaJaus | ❌ **Deshabilitada** | Duplicaría CJ — no usar |
| **Tailscale** | Common Startup `.lnk` | ✅ Activo | App Tailscale |
| **AnyDesk** | Common Startup | ❌ Deshabilitado | — |
| **Docker Desktop** | HKCU Run | ❌ Deshabilitado | Manual |
| **Apache/mysql** | Servicios Windows Auto | ✅ Siempre |

---

## Arquitectura correcta (sin duplicados)

```
Login Windows
│
├─ [T+0s]  RoyalBrokerTray (HKCU\Run)     → royalbroker_tray.js   (icono dorado RB)
├─ [T+3s]  CaptaJausTray (HKCU\Run)       → captajaus_tray.js     (icono azul CJ)
├─ [T+6s]  ALimpiezasTray (HKCU\Run)      → alimpiezas_tray.js    (icono verde AL) → uvicorn :8090
├─ [T+20s] RoyalBrokerStartup.cmd         → pm2 resurrect + save  (daemon PM2)
├─ [T+25s] CursorBridgeAtLogon            → bridge puerto 8095
└─ [T+0s]  CursorBridgeTray               → icono bridge System Manager
```

**Un solo orquestador PM2:** `RoyalBrokerStartup.cmd` → `RoyalBrokerStartup_PM2.ps1`  
**Dos iconos de bandeja:** RB y CJ vía HKCU\Run (no vía tarea PM2Tray).

### Redundancia eliminada

| Entrada | Veredicto |
|---------|-----------|
| `Startup\RoyalBrokerStartup.cmd` | ✅ **Correcta** — única fuente pm2 resurrect |
| `HKCU\Run RoyalBrokerTray` | ✅ **Correcta** — icono RB |
| `HKCU\Run CaptaJausTray` | ✅ **Correcta** — icono CJ |
| Tarea `PM2Tray` | ❌ **Obsoleta** — duplica CaptaJaus; mantener Disabled |
| `pm2-resurrect.vbs` (fantasma Startup) | ❌ Eliminado del disco; entrada ghost OFF |
| `HKCU\Run Docker Desktop` | OFF — Docker manual si lo necesitas |

---

## Servicios Cursor / Bridge

| Tarea | Qué hace | ¿Correcto? |
|-------|----------|------------|
| `CursorBridgeAtLogon` | `cursor-bridge-manager.ps1 -Start` | ✅ Sí — agente móvil 8095 |
| `CursorBridgeTray` | Menú bandeja bridge | ✅ Sí — separado del bridge |

No confundir con Serena (python :24282) — eso lo lanza **Cursor IDE** al abrir, no el bridge.

Instalar/desinstalar bridge:
```powershell
cd C:\xampp\htdocs\cursor-mobile-bridge\tools
.\install-bridge-autostart.ps1          # instalar
.\install-bridge-autostart.ps1 -Uninstall
```

---

## Restaurar bandejas RB + CJ + AL

```powershell
cd C:\xampp\htdocs\cursor-mobile-bridge\tools
.\install-pm2-trays-autostart.ps1 -Apply
```

Verificar tras reinicio:
```powershell
Get-ItemProperty HKCU:\Software\Microsoft\Windows\CurrentVersion\Run | Select RoyalBrokerTray, CaptaJausTray, ALimpiezasTray
pm2 list
curl http://127.0.0.1:8090/health
```

Iconos esperados: **RB** dorado, **CJ** azul, **AL** verde, **Bridge**.

---

## ¿RoyalBrokerStartup.cmd y RoyalBrokerTray son lo mismo?

**No.** Son piezas complementarias:

| Pieza | Función | ¿Arranca el servidor? |
|-------|---------|------------------------|
| `RoyalBrokerStartup.cmd` | `pm2 resurrect` — restaura **royalbroker** + **lliria-properties** | ✅ Sí (motor PM2) |
| `RoyalBrokerTray` | Icono dorado — menú, logs, reiniciar desde bandeja | ❌ No (solo monitor) |

El `.cmd` es el **motor**; el tray es el **panel** en la bandeja. Sin el `.cmd`, PM2 no resurrectaría; sin el tray, el servidor podría estar online pero sin icono para controlarlo.

---

## Otros servicios opcionales

| Servicio | Cómo | Recomendación |
|----------|------|---------------|
| **Docker / stack xzonas** | Manual o habilitar Run Docker Desktop | Solo si usas contenedores a diario |
| **AnyDesk** | Rehabilitar `.lnk` en Common Startup | Si necesitas remoto siempre |
| **XAMPP Control** | Estaba OFF (Apache/mysql ya Auto) | No necesario |

---

## Checklist post-reinicio (sin redundancias)

Cada app se comprueba **una vez** (URL **o** pm2, no hace falta ambos):

| App | Comprobar |
|-----|-----------|
| Bridge | `http://127.0.0.1:8095/manager` |
| RoyalBroker | `http://localhost:8086` (= `pm2` → `royalbroker` online) |
| CaptaJaus | `http://localhost:3000` (= `pm2` → `lliria-properties` online) |
| ALimpiezas IA | `http://127.0.0.1:8090/health` |

Bandeja: iconos **RB**, **CJ**, **AL**, **Bridge**, Tailscale.

---

## Referencias

- `indicadorFenix\RoyalBrokerBot\tray\README.md` — diseño oficial trays
- `captajaus\pm2-tray\README.md` — CaptaJaus tray
- `ALimpiezas\tools\tray\README.md` — bandeja verde ALimpiezas
