# Actualizaciones del núcleo

La intranet admite ahora paquetes de actualización del núcleo (`core-update`) desde la pantalla **Administración · Plugins**.

## Qué preserva siempre
- `common/config.php`
- `config/installed.lock`
- `styles/css/theme-vars.css`
- `styles/images/`
- `apps/`
- `plugins/`
- `uploads/`, `files/`, `storage/`, `logs/`, `tmp/`
- `vendor/`

## Formato del paquete ZIP
El ZIP debe contener:

- `core-update.json`
- `payload/`

Ejemplo de `core-update.json`:

```json
{
  "type": "core-update",
  "id": "intranet-core",
  "name": "Actualización del núcleo de la intranet",
  "version": "2026.03.18.1",
  "description": "Actualiza el esqueleto de la intranet sin sobrescribir configuración local ni personalizaciones.",
  "payload_root": "payload",
  "preserve": [
    "common/config.php",
    "styles/css/theme-vars.css",
    "styles/images/",
    "apps/",
    "plugins/"
  ]
}
```

## Proceso
1. **Subir paquete local** desde Administración · Plugins.
2. El sistema valida que el ZIP contiene un `core-update.json` correcto.
3. Puedes **instalar** el paquete local o, si el Store remoto publica `core_updates`, **descargar e instalar** directamente desde el Store.
4. Antes de aplicar la actualización se genera un backup ZIP en `updates/core/backups/`.
5. El resultado se registra en `updates/core/install-log.json`.
