# Codex Suite — bandeja y arranque

## Por qué no funcionaba

Había **dos** fallos:

1. El icono antiguo era PowerShell (`bridge-system-tray.ps1`) disparado con **VBScript** (`wscript`). En este PC **no hay motor `.vbs`**, así que las tareas `CursorBridgeTray` / `CursorBridgeAtLogon` / `CursorBridgeWatchdog` acababan en error (código 1). Esas tareas están **deshabilitadas**; el arranque lo hace `ecosystem_boot.js`.
2. El tray nuevo (`codex_tray.js`) usaba `require()` dentro de un proyecto con `"type": "module"`. Node lo trataba como ESM y salía al instante. Hay un `tools/tray/package.json` con `"type": "commonjs"` para que el icono arranque.

Ahora usa el mismo sistema Node que JobsWorld / CaptaJaus / RoyalBroker / ALimpiezas. El Bridge `:8095` lo levanta el orquestador si el puerto está libre.

## Cómo reconocer el icono

Cuadrado **morado** con la letra **B** y tooltip **Cursor Bridge** (el icono clásico de bandeja, no la letra CS). Está junto al reloj; si no lo ves, abre la flecha `^` de iconos ocultos.

## Tras un reinicio

Círculo **índigo** con las letras **CS**. Tooltip: `Codex Suite :8095`.

## Tras un reinicio

Sí. `ecosystem_boot.js` arranca `node server.js` en `:8095` si el puerto está libre y lanza `codex_tray.js`. En **5–20 s** el menú debe decir **ONLINE**.

## Clic derecho — opciones

| Opción | Qué hace | Requisito |
|--------|----------|-----------|
| **● ONLINE / ○ OFFLINE Codex Suite :8095** | Estado del Cursor Mobile Bridge. Clic abre panel WinForms | Siempre |
| Puerto / HTTP | Solo lectura | Siempre |
| **Ver estado (ventana Windows)** | Diagnóstico health, `/codex-suite`, `/apps` | Siempre |
| **Abrir Codex Suite (ventana nativa)** | La app PWA en ventana propia (WebView2 o Edge `--app` aislado) | Bridge online |
| **Abrir Codex Suite (ventana app Edge)** | Forma clásica `--app` | Bridge online |
| **Abrir páginas** | Codex Suite, launcher `/apps`, health | Bridge online |
| Arrancar / Reiniciar / Detener Bridge | `node server.js` en `:8095` | Según estado |
| Carpeta proyecto | Explorer de `cursor-mobile-bridge` | Siempre |
| Actualizar estado | Recalcula menú | Siempre |
| Salir del tray | Quita el icono; **el Bridge sigue** | Siempre |

## URLs

- Codex Suite: `http://127.0.0.1:8095/codex-suite`
- Launcher: `http://127.0.0.1:8095/apps`
- Health: `http://127.0.0.1:8095/health`

## Procesos

- Bridge: `node server.js` (oculto, `NODE_OPTIONS=--max-old-space-size=2048`)
- Tray: `node tools/tray/codex_tray.js`
- Log: `cursor-mobile-bridge/data/codex-tray.log`
