# LRU_ESTADO · snapshot al cierre

> Fichero: `LRU_ESTADO.md` · documento vivo sin sufijo de sesión · inaugurado en s203 (D-s203-A)
> Regla (`LRU_METODO §3·Cierre·4`): se **regenera entero** en cada cierre de sesión (nunca edit incremental). Es la fuente primaria del estado en el arranque; la línea 5 del MAPA, el pie del CLAUDE_ARRANQUE y `LRU_HANDOFF_VIVO.md` son contraste de coherencia. El histórico de snapshots vive en el git de este fichero.
> Desde s204 (D-s204-F/G): vive **solo en disco** · Claude lo lee vía MCP como primer acto del arranque · «Próxima sesión» declara la N (auto-sesión · «arranca» basta) · este fichero gana a cualquier copia del Project y a la memoria automática de Claude.

---

- **Sesión cerrada**: s251 · 2026-08-08 · **Bc2 + Bc3 materializadas y con banco de estreno en VERDE** (rpc1cl **0.251.2**): panel único embebido + OTA local por portal (Bc2, 0.251.1) y vigilante-péndulo + gating NET_WDT (Bc3, 0.251.2). **TD-s250-1 RESUELTA** (el botón GPIO27 era el pull-down por defecto — con `pull_up` flancos limpios, larga=AP maestra, corta=swid2). Enmiendas **E1-E6** registradas en el destilado s249 (§11 nuevo — regla de disputa aplicada).
- **Próxima sesión**: s252.
- **Handoff activo**: `LRU_HANDOFF_VIVO.md` (contiene s251→s252).

- **Lo entregado en s251** (git-cl `0274571`→`63a8b6e` · commits vía MCP · árbol limpio):
  - **Bc2 (0.251.1)**: `portal1.c/h` nuevo — panel S3 sin sección Pantalla, página estática en flash (~6,2 KB), endpoints `/wifi` (estado + **escaneo asíncrono** vía `mgos_wifi_scan` + join/connect), `/ota` (**multipart streaming** — enmienda E3: mongoose no streamea POST crudo), `/confirm`, `/capport`, catch-all 302 en `/`; **wifi-setup-web-ui RETIRADA**. `ota1`: API local sobre las mismas tripas (sha-readback + copy_fs + trial), flag NVS `resc` (**rescue_pending**: re-levanta el AP al boot con sondeo E4 — STA con IP→APSTA / sin IP a ~15 s→AP-solo — y ventana de prueba de **5 min broker-O-Confirmar**), `ota1_confirm_local`, **otalog v2 con `via`** (`mqtt|local|portal|boot` · blob v1 descartado, arbitrado).
  - **Bc3 (0.251.2)**: vigilante-péndulo en `ap1.c` (tick mgos 5 s, sin workers) — NORMAL→RESCATE (AP derivada, AP-solo gratis por s250c, TTL congelable)→REINTENTO (rotación nativa)→NORMAL; perillas `rescueN/T/M/H` por `to/cfg` (5/10/3/2, sin persistir); **NET_WDT congelado** fuera de NORMAL o con clientes (D-s249-D); campo `vig` en from/status y panel.
  - **Enmienda C**: destilado s249 corregido en sitio (§2, §3, §5, §9 + §11 E1-E6) — disco + Project.
- **Banco s251 (placa real, en verde)**: flancos GPIO27 ✔ (TD-s250-1 fuera) · larga→AP maestra ✔ · portal+escaneo (19 redes)+join desde móvil ✔ · **flasheo local multipart por AP ✔** (1,36 MB → app_1, `flash/local`, reboot, rescue APSTA, `valid/mqtt`) · **vigilante disparando solo a los 5 min ✔** (RESCATE derivada → móvil → red nueva → broker → PWA con v0.251.x) · **NET_WDT congelado en rescate ✔** (sin reboot a los 600 s).
- **Banco pendiente** (primeros pasos de s252 si se retoma): Bc2 — `valid via=portal` (Confirmar sin broker) · rollback provocado (`rollback/boot`) · `to/otalog` con `via` en PWA · OTA por broker con manifiesto local · trigger de boot (botón sujeto al reset, ahora con pull-up) · Ap.On camino APSTA. Bc3 — péndulo completo sin asociarse · **rotación multi-red con sta1** · NET_WDT guardián único (`rescueN:0`) · heap ciclo. **Al pasar Bc3 → TD-s235-1 muere y se desbloquea la OTA de flota clásica (TD-s234-1, urgente por la mina provision).**
- **Frentes restantes**: banco Bc2/Bc3 restante (arriba) · rebanada S3 de D-s249-F · réplica móvil (TD-s247-2 primero) · banco P1-P6 S3 (TD-s246-1) · TD-s248-1 · TD-s245-1 · PWA: pintar `vig` en Hw1 (opcional, el campo ya viaja).
- **Pendiente máquina Manuel** (no bloqueante): heredados (rebuild+deploy `dist` a boxdin + Unregister SW) · regenerar `index.html` desde `index.md` + redeploy · el **manifiesto local publica 0.251.1** (0.251.2 sin publicar; **NO desplegar firmware.json a boxdin** hasta cerrar el banco — TD-s235-1) · `git init` de `rpc1`/`blink1` · borrar `_to_delete` · Animate s221 · bitácora §B (s239-s251) + catálogo anillo 2 (s246-s249).

---
